RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2424021 views

points=points-1
clr & p 'Скилл1 взят' & goto 'step3'

Вот это никак не относится ко 2му IF’у.

не знаю ) объединил в общую конструкцию так как работают при одном условии. И работает все нормально.

Dark[Ol(U23)leneri] #34 21.05.2010 21:46 (15 years ago)

:( меня поражает Ваша активность)

Если еще не понятно:

if p1=0:
  act 'Скилл1':
    if p1=0 : p1=p1+1
      points=points-1
       clr & p 'Скилл1 взят' & goto 'step3'
     end   
  end
end

Эквивалентно

if p1=0:
  act 'Скилл1':
    if p1=0 : p1=p1+1
    points=points-1
    clr & p 'Скилл1 взят' & goto 'step3'
  end
end

Да, первая форма будет работать, т.к. лишний end игнорируется.

gr1mm3r,
В конструкции

IF <условие> : оператор1 & оператор2
оператор3
оператор4
END

при выполнении условия будут выполняться операторы 1, 2, 3 и 4, а при невыполнении условия - 3 и 4, т.к. в первой строке - однострочный IF. Лишний END игнорируется. Для того, чтобы он был многострочным, нужно не писать ничего в той же строке после двоеточия - соответственно, записывать операторы в последующих строках.

IF <условие> :
оператор1
оператор2
оператор3
оператор4
END

Синим я раскрасил те операторы, которые выполняются при выполнении условия.

Спасибо за разъяснения. Теперь понятно.

Помогите нубу. На локации посредством хтмл я реализовал взятие предмета из активной ссылки. Проблема заключается в том, что при повторном нажатии на ссылку добавляется ещё один такой предмет. Как это запретить?

=NOSgod=,
Функция проверки, есть ли предмет в инвентаре: OBJ

Там, где у тебя написано

ADDOBJ имя_предмета

замени на

IF NO OBJ имя_предмета : ADDOBJ имя_предмета

Nex:

IF NO OBJ имя_предмета : ADDOBJ имя_предмета

Это следует делать, если ГГ не должен брать предмет лишь потому, что у него такой уже есть.
Однако сама ссылка при этом останется активна и если герой выкинет предмет, то сможет взять по ней еще один. Т.е. это подходит в одном из следующих случаев:
1)Ссылка - неиссякаемый источник предметов. Например, предмет «палка», а ссылка – «куча хвороста».
2)Предмет уникален, но взяв, его уже нельзя убрать из инвентаря. А когда можно, игрок уже не сможет вернуться к локации с этой ссылкой.
3)Предмет уникален, но после утраты\использования оказывается опять в месте, задаваемом этой ссылкой. Например, предмет - «голубь (почтовый)», а ссылка – его родная голубятня.

Совершенно верно.
Я писал код, имея в виду второй случай - там достаточно элементарного запрета дублирования предметов.

А вообще, конечно, универсальней будет сделать флажок, вот так:

IF ключ_взят_со_стола=0: ключ_взят_со_стола=1 & оператор1 & оператор2 & ...

С таким флажком можно будет и описание генерировать, например

*P 'Вы видите стол'
IF ключ_взят_со_стола=0:
  *PL ', на котором лежит ключ.'
ELSE
  *PL '.'
END

Тогда проще записать
‘Вы видите стол<<IIF(ключ_взят_со_стола,””,”, на котором лежит ключ”)>>.’

Byte,
Проще? А если со стола можно взять не только ключ, а еще и графин, причем на столе он может стоять пустой либо наполненный водой? Тогда IIF’ами будет просто нечитаемо, а описанным мной способом - вполне ясно и наглядно. Ну и разумеется, автору удобнее и простые и сложные участки записывать единообразно, поэтому я рекомендую свой способ как самый оптимальный, простой, удобный.

Всем спасибо. только как это будет выглядеть в виде хтмл ссылки - я в этом не очень шарю.

Dark[Ol(U23)leneri] #34 24.05.2010 23:42 (15 years ago)

if no obj ‘Название ссылки/предмета’: ‘<a class = ‘‘plain’’ href=“EXEC: menu ‘‘Предмета’’ “>Название ссылки/предмета</a>’

Как-то так.

Dark,
неверно. Зависит от того, как сделано “подбирание” предмета, конечно, но точно не так, как ты описал.
Ведь проверка на наличие предмета должна осуществляться в момент выполнения кода ссылки, а не только в момент вывода описания.

=NOSgod=,
Вариантов масса. Например, так:

<a href="EXEC: IF NO OBJ 'Предмет' : ADDOBJ 'Предмет' ">Предмет</a>

Если приведешь свой код - подскажу, как его исправить.

Log in or Register to post comments.