Как сделать?
…
points=points-1
clr & p 'Скилл1 взят' & goto 'step3'
Вот это никак не относится ко 2му IF’у.
не знаю ) объединил в общую конструкцию так как работают при одном условии. И работает все нормально.
:( меня поражает Ваша активность)
Если еще не понятно:
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’ами будет просто нечитаемо, а описанным мной способом - вполне ясно и наглядно. Ну и разумеется, автору удобнее и простые и сложные участки записывать единообразно, поэтому я рекомендую свой способ как самый оптимальный, простой, удобный.
Всем спасибо. только как это будет выглядеть в виде хтмл ссылки - я в этом не очень шарю.
if no obj ‘Название ссылки/предмета’: ‘<a class = ‘‘plain’’ href=“EXEC: menu ‘‘Предмета’’ “>Название ссылки/предмета</a>’
Как-то так.
Dark,
неверно. Зависит от того, как сделано “подбирание” предмета, конечно, но точно не так, как ты описал.
Ведь проверка на наличие предмета должна осуществляться в момент выполнения кода ссылки, а не только в момент вывода описания.
=NOSgod=,
Вариантов масса. Например, так:
<a href="EXEC: IF NO OBJ 'Предмет' : ADDOBJ 'Предмет' ">Предмет</a>
Если приведешь свой код - подскажу, как его исправить.