RU 📌 Pinned

Как сделать?

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

evetaell:

И еще вопрос. Скажите, что делает переменная DYNAMIC? Из справки мне не очень понятно, если можно на примере.

dynamic - выполнение динамически сформированного кода
например код

dynamic INPUT("Кто такой Вася?")
Msg Вася

выведет в всплывающем окошке слово “Мудак”, если пользователь ввёл “Вася=‘Мудак’” в окно ввода, хотя мы до этого переменную Вася не использовали, и значение в неё не вводили, а лишь выполнили строку, которую ввёл пользователь.

Задать иконку предмету можно 2мя способами: во-первых, можно указать её при добавлении предмета:

addobj 'Черный шар','ball.png'

Во-вторых, можно использовать HTML в названии предмета:

addobj '<img src="ball.png" /><br />Черный шар'

В этом случае проверять на выбор нужно указывая всю строчку ‘<img src=“ball.png” />
Черный шар’.
Для удобства рекомендую создать отдельную переменную:

$ball_item='<img src="ball.png" /><br />Черный шар'

Добавлять предмет

addobj $ball_item

Проверять на выбор

if $selobj=$ball_item: ...

evetaell:

Подскажите, пожалуйста, с оформлением.
Вот мне нужно сделать, чтобы в предметах появлялся, например, артефакт “Черный шар”. Как мне сделать, чтобы он в предметах отображался иконкой шара и ниже подписью “Черный шар”? Причем при нажатии на иконку, выпадает меню: осмотреть, использовать.

Делается так:

addobj "Чёрный шар",путь_к_иконке_шара

меню делается так:
пишется в начельной локации код:

$меню[0]='осмотреть:локация_обрабатывающая_осмотр'
$меню[1]='пнуть:локация_обрабатывающая_пинок'
$onobjsel='локация_обработки_инвентаря'

в “локация_обработки_инвентаря” пишешь

menu "$меню"

в “локация_обрабатывающая_осмотр” и “локация_обрабатывающая_пинок” пишеш код и команду unsel

evetaell:

И еще вдогонку: как сделать вложенность предметов? То есть, например, я нажимаю на предмет: свитки, мне показываются все свитки отдельным окном предметов. Нажимаю “назад” и опять только общие названия предметов.

примерно так:

$onobjsel="инвентарь"
addobj "свитки"
addobj "другой хлам"

в “инвентарь”:

if $selobj="свитки":
 killall
 addobj "свиток №1"
 addobj "свиток №2"
 addobj "назад"
end
if $selobj="назад":
 killall
 addobj "свитки"
 addobj "другой хлам"
end
unsel

Screamer, а я killall-ом не убью все переменные вообще? А не только те, которые нужно.

Видимо, он хотел написать KILLOBJ, а не KILLALL.

да, с killall это я погарячился

Dark[Ol(U23)leneri] #34 11.07.2010 07:04 (15 years ago)

Хорошая задумка. На 5+

Спасибо отписавшимся )
Кажись, я уже всех замучила своими вопросами, но мы вчера с Ajent-ой думали одну штукость сделать и возник еще один вопрос. Ситуация: нужно, чтобы событие возникло через 20 секунд после нажатия действия, но с условием, что произведен переход. То есть, нажали действие, флаг активировался, прошло 20 секунд, в течение которых игрок может тыкать на любые переходы. Но событие совершится, только когда игрок опять тыкнет на любой переход (после 20+ секунд).

Может так?
0)вначале

$ONNEWLOC="переход_на_локацию"

1)в действии-инициаторе события пишем

флаг_события=1

2)в “переход_на_локацию”:

if флаг_события=1:
 флаг_события=2
 SETTIMER 20
 $COUNTER="обработчик_счётчика"
end
if флаг_события=3:msg "Событие!!!"

3)В “обработчик_счётчика”:

if флаг_события=2:флаг_события=3

Гдето так. Хотя лучше спрашивай Адженту

Screamer,
Ничего не получилось!Сделал всё как ты написал..но в предметах так ничего и не появилось.
Может быть есть ещё какой то способ!:)

Значит я неправильно тебя понял. Имхо в предметах и не должно было ничего появится.
PS заходи сейчас на #qsp может удастся лучше понять в чём проблема

evetaell, нужно проверять через msecscount. Сохраняем ее текущее значение, а там, где нужно проверить 20+ секунд пишем: if msecscount-startmsecs>20000: ….

Screamer,
Спасибо!Я уже разобрался,сделал по другому…помощь больше ненужна:)!!!
Но есть ещё вопрос!
Сейчас делаю игру стратегию,там нужно построить город,расставлять дома и т.д.
Мне нужно сделать так чтобы когда у меня закончатся деньги,мне нельзя будет строить дома.
Как это сделать???:)

asasas,
Для этого код добавление действия или код собственно построения дома, нужно разместить в операторе проверки условия IF. Например так:

if деньги >= стоимость_дома:
act "Построить дом": gs "строить_дом"
end

Log in or Register to post comments.