RU 📌 Pinned

Как сделать?

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

Aleks Versus Moderator 18.05.2013 18:39 (12 years ago)

AJIuK11,
Если ты отсчитываешь время при переходах между локациями (путешествие по комнатам, например), я бы посоветовал тебе выставлять время перед тем, как осуществить переход. Т.е. скажем есть у тебя действие “Выйти из дома”, которое занимает 30 секунд, и при этом герой попадает на “Улицу”:

act 'Выйти из дома':
       время_на_переход=30
       goto 'улица'
end

На локации onnewloc выполняется такой код. Общее игровое время увеличивается, а время, потраченное на переход, обнуляется:

!onnewloc
     общее_время += время_на_переход
     время_на_переход = 0

Так ты сможешь выставлять время перехода только там, где это необходимо, и выставлять на переход столько времени, сколько нужно: минуты, часы, дни…

Aleks Versus,
Спасибо. Способ, правда, не много не под мой случай. Мне нужно было что бы отсчет начинался в определенный момент с идентичным интервалом и не заканчивался далее. Зато ваш вариант подкинул мне идею более простого варианта прибавления времени отличного от заданного, а то в первоначальном варианте у меня был слишком громоздкий код.

if деньги >= 500:
act ‘купить бинт’:
cla
*clr
деньги = деньги - 500
if no obj ‘бинт’:addobj ‘бинт’
бинт = бинт + 1
‘Вы купили бинт’
else бинт=бинт+1
act ‘Отойти от прилавка.’:GOTO ‘аптека’
end
end
end
end

Что то я с командами end не понял. Вроде бы все команды if и act должны оканчиваться end. Но выскакивает ошибка, по недостатку end

Ошибка в строчке: if no obj ‘бинт’:addobj ‘бинт’
если используется одно строчный if то end не нужен.
Вот так будет правильно:
if no obj ‘бинт’:
addobj ‘бинт’
….

Спасибо за ответ)

Я уже сам допилил методом священного тыка. Сделал вот так. Вроде пока работает

if деньги >= 500:
act ‘купить бинт’:
cla
*clr
деньги = деньги - 500
if no obj ‘бинт’:addobj ‘бинт’
бинт = бинт + 1
‘Вы купили бинт’
act ‘Отойти от прилавка.’:GOTO ‘аптека’
end
else бинт=бинт+1
act ‘Отойти от прилавка.’:GOTO ‘аптека’
end

Советую использовать многострочные версии операторов IF и ACT.
Для меня это проще и нагляднее.

Я еще не волшебник, я только учусь)

vais,
см. второе сообщение в этой теме.

Здравствуйте, поискал на форуме, на мой вопрос кажется ничего не нашел. Мне нужно создать магазин.
У ГГ изночально есть 100 монет.
В начале я вставляю код, для обозначения здоровья:
IF (здоровье < 5) AND (умер = 0):
умер = 1
GOTO ‘смерть’
END
CLR
PL ‘В кармане: <<деньги>> руб.’
PL ‘Осталось здоровья: <<здоровье>> .’
здоровье = здоровье - 5
IF здоровье < 50:
PL ‘Вы ранены!’
END

Теперь для того чтобы не умереть нужно в магазине купить зелье, которая в свою очередь обнулит полностью или частично показатель здоровья .
CLR
здоровье = здоровье + 50
IF здоровье :
PL ‘Вы выпили зелье!’
END

Так же у ГГ есть возможность получать деньги (за счет выполнения заданий или еще как) и за эти деньги он должен купить зелье.
ЧТо мне нужно: Нужен код покупки зелья, который стоил бы 50 монет. При условии если у ГГ не хватает денег то зелье не попадет в инвентарь и не отнимет деньги (например вот так : - 23 монеты) А если у ГГ хватает денег, то при покупке зелье попадает в инвентарь, а из кошелька героя вычитались деньги за покупку. Очень прошу помощи так как сколько не эксперементировал ничего не выходило(

Alladan,
см. второе сообщение в теме Действие по условию.

Там описано два способа, выбери себе какой больше нравится.

Полагаю, что уже спрашивали, но…
Есть ли возможность сделать так, чтобы действие появлялось только при наличии предмета в инвентаре, без объявления переменной , соответствующей этому предмету?
Или по сути инвентарь – штука скорее декоративная?
(видела где-то что-то про OBJ, но потеряла где)

((И в догонку: я хочу потестировать свою недоделку, а для этого выложить ее на форум. Однако, форум при попытке создать-тему-загрузить-файл говорит, что-то про запрещенный формат. Что я делаю не так?))

Yksare,
1. Конечно, можно.

IF OBJ 'Пистолет':
    ACT 'Пристрелить гада':
        ...
    END
END

2. Разрешённые типы файлов: gam, qsp, txt, jpg, jpeg, png, gif, mp3, pdf, zip, rar, exe, apk, 7z.
Если есть проблемы с выкладыванием - можно выложить на любом файлохостинге. Например, Яндекс-диск. И опубликовать здесь ссылку.

Nex, спасибо. Пойду почищу от лишних переменных.

Какой лучший способ обойти ограничение на целые числа? Я использую mod, но конструкция выглядит громоздко, а чем сложнее запись, тем больше вероятность ошибки..

Anakox,
приведи конкретный пример, зачем это понадобилось.

Log in or Register to post comments.