Как сделать?
…
kosmosnash,
посмотри вот эту тему. Если не поможет, уточни почему.
kosmosnash,
если тебе нужно чтобы не уходя с локации, менялось и описание и действия, это делается с помощью условий в коде локации. В условиях проверяешь переменные, отвечающие за тот или иной кусок описания, набор действий. Внутрь блока условия помещаешь вывод описания и действия. В действиях не забываешь переключать переменные.
IF шаг = 0:
'Я ступил на верёвочный мостик. Он пошатывается и скрипит, но выглядит надёжно.'
ACT 'Пройти дальше':
шаг = 1
GOTO $CURLOC
END
ELSE IF шаг = 1:
'Середина моста. Здесь выбита доска, я осторожно перешагиваю через провал. Главное, не смотреть вниз.'
ACT 'Пройти дальше':
шаг = 2
GOTO $CURLOC
END
ELSE IF шаг = 2:
'Конец моста уже близко. Руки предательски дрожат. Ещё немного.'
ACT 'Пройти дальше':
GOTO 'пещера'
END
END
Nex, насчет действия по таймеру, у меня все завязано на функции gt curloc, а из за этого у локации-учетчика свое время, а у локации боя свое. Поэтому либо аналог wait, либо найти способ обновления учетчика вместе с локацией боем.
Никита №1221:
Nex, насчет действия по таймеру, у меня все завязано на функции gt curloc, а из за этого у локации-учетчика свое время, а у локации боя свое. Поэтому либо аналог wait, либо найти способ обновления учетчика вместе с локацией боем.
Всё равно проблема решается только таймером. Что значит “обновление учетчика вместе с локацией боем”?
Никита №1221,
я ничего не понял из того, что ты написал. Выложи свой код, и напиши:
1. что должно происходить
2. что вместо этого на самом деле происходит
Локация conter:
if curloc=‘бой’:
if r=1:
*pl ‘Не стой столбом!’
hp=hp-урон
if hp<0:hp=0
if hp=0: gt ‘смерть’
gt curloc
else
r=1
end
end
Локация боя:
pb=0 & pa=0 & py=0
a=rand(1,2)
if a=1:pb=1&’
Противник блокирует!’
if a=2:pa=1&’
Противник атакует!’
if a=3:py=1&’
Противник уворачивается!’
Действия:
if pb=1: msg ‘Атаковать не удалось’ & hp=hp-урон
if py=1: msg ‘Вы успешно атаковали противника’ & здоровье=здоровье-dam
if pa=1: msg ‘Не вы, не противник не смогли нанести урона’
if hp<0:hp=0
if здоровье<0: здоровье=0
if hp=0: gt ‘смерть’
if здоровье=0: gt ‘победа’
gt curloc
Всего действий 3, остальные действия сходны, только операторы с убавлением здоровья разные.
Должно происходить:
Противник либо атакует, либо блокирует, либо уворачивается. Выводится текст, и за 2 секунды (Учетчик работает каждые 2 секунды) нужно использовать либо действие уклона, атаки, или блока. Правила как в камень-ножницы-бумага - атака бьет уклон, блок бьет атаку, уклон бьет блок. Учетчик нужен для ограничения времени выбора. Проблема в том, независимо от выбора действия учетчик отбирает здоровье каждые две секунды.
Никита №1221,
! ******************
! Стартовая локация игры
SETTIMER 1000
$COUNTER = 'COUNTER'
! ******************
! Локация "COUNTER"
IF ($CURLOC='бой'):
секунды = секунды + 1
IF секунды = 2:
*pl 'Не стой столбом!'
hp=hp-урон
IF hp<0:hp=0
IF hp=0: GT 'смерть'
GT $CURLOC
END
END
! ******************
! Локация боя:
! Сбрасываем счётчик секунд
секунды = 0
! Остальное по-старому
Останется некоторая неравномерность, “пропущенный удар” будет вызываться в интервале 1 < x < 3 секунд. Если нужно ещё сильнее приблизить к 2, то некоторым усложнением кода можно это сделать. Чем меньше интервал счётчика, тем ближе задержка будет к желаемому значению. Может быть, можно сбросить локацию-счётчик с помощью хака, и получить наиболее точные величины задержки, но это надо экспериментировать. Полагаю, для твоих целей хватит и предложенного кода.
Сейчас проверил - таймер сбрасывается установкой интервала счетчика (не знаю, поможет ли это для учетчика):
SETTIMER 500
newsash,
значит можно это использовать, и упростить код.
Спасибо, все работает!
Nex:
kosmosnash,
если тебе нужно чтобы не уходя с локации, менялось и описание и действия, это делается с помощью условий в коде локации. В условиях проверяешь переменные, отвечающие за тот или иной кусок описания, набор действий. Внутрь блока условия помещаешь вывод описания и действия. В действиях не забываешь переключать переменные.
Я как раз сам до этого додумался. Но спасибо. Есть опасение, что таким макаром я быстро перегружу код переменными. Есть же определенные ограничения вроде
kosmosnash,
2147483648 переменных ты при всём желании не превысишь.
здравствуйте, подскажите можно ли сделать так чтобы рисунок отображался определенным размером?
например у меня есть рисунок размером 500х500 пикселей, а мне нужно чтоб этот рисунок в игре был 200х200, но менять размер в фотошопе и других программах не вариант так как качество картинки сильно падает
ЗакТеррен,
<img src="..." width=200>
Nex,
спасибо