Привет друзья. Знаком с AXMA несколько дней, пытаюсь склепать свою первую историю и вот незадача,
я не совсем понимаю, как работают обновления. Почему-то нажимая на кнопку Ждать первый раз время не перемещается на 1 час
вперёд как запланировано, а действие Искать не отнимает час, но работает как обновление, если после этого нажать
на неё. Какое-то странное опоздание, как сделать так, чтобы при нажатии Ждать, час сразу же обновлялся?
:: StoryTitle Прилючения барда. :: Смена погоды :: Start # переменные окружения <<set $time = 12>> <<set $плюсЧас = 0>> <<set $day = 1>> <<set $weather = 'чистое небо'>> <<set $location = 'Таверна'>> <<set $action= 0>> <<set $streetTemp = -1>> <<br>><<br>> ===[[Игра|Игра]]=== :: Таверна Таверна была просторна и уютна. За окном <<print $weather>>. :: Действия <<if $action eq 1>> <<set $плюсЧас = 1>> Прошёл один час. <<elseif $action eq 2>> <<set $плюсЧас = 0>> Вы ничего не нашли. <<elseif $action eq 3>> <<set $плюсЧас = 1>> Игра на лютне удалась. <<endif>> <<if $action neq 0>> <<display 'Смена времени'>> ---- <<set $action = 0>> <<endif>> :: Смена времени <<loop $плюсЧас>> <<set $time++>> <<if $time >= 23>> <<set $time = 0>> <<set $day++>> <<display 'Смена погоды'>> <<endif>> <<endloop>> <<set $плюсЧас = 0>> :: Игра <<clrscr>> <<display 'Герой'>> <<display 'Действия'>> <<display '$location'>> :: Герой ===[[Ждать|Игра {$action = 1}]] | [[Искать|Игра {$action = 2}]] | [[Играть на лютне|Игра {$action = 3}]]=== ===Время: <<print $time>> | День: <<print $day>>=== ----
Отредактировано Sasha Makovsky (24.08.2014 02:42)
Неактивен
У вас ошибка в порядке вывода результатов на экран.
Вы сначала выводите время, потом уже пересчитываете его с учётом нажатой ссылки.
Варианты исправления:
вариант 1.
Совсем убрать переменную $плюсЧас, весь файл будет вида:
128[::]0[::]0 :: StoryTitle[::]8-8-3 Приключения барда. :: Смена погоды[::]344-8-1 :: Таверна[::]520-8-6 Таверна была просторна и уютна. За окном <<print $weather>>. :: Смена времени[::]160-8-0 <<if $time >= 23>> <<set $time = 0>> <<set $day++>> <<display 'Смена погоды'>> <<endif>> <<set $плюсЧас = 0>> :: Start[::]672-8-1 # переменные окружения <<set $time = 12>> <<set $day = 1>> <<set $weather = 'чистое небо'>> <<set $location = 'Таверна'>> <<set $action= 0>> <<set $streetTemp = -1>> <<br>><<br>> ===[[Игра|Игра]]=== :: Действия[::]8-176-0 <<if $action eq 1>> Прошёл один час. <<elseif $action eq 2>> Вы ничего не нашли. <<elseif $action eq 3>> Игра на лютне удалась. <<endif>> <<if $action neq 0>> <<display 'Смена времени'>> ---- <<set $action = 0>> <<endif>> :: Игра[::]160-176-5 <<clrscr>> <<display 'Герой'>> <<display 'Действия'>> <<display '$location'>> :: Герой[::]312-176-5 ===[[Ждать|Игра {$action = 1}{$time = $time + 1}]] | [[Искать|Игра {$action = 2}{$time = $time + 0}]] | [[Играть на лютне|Игра {$action = 3}{$time = $time + 1}]]=== ===Время: <<print $time>> | День: <<print $day>>=== ---
Вариант 2, добавить ещё один параграф для пересчёта времени до вывода на экран:
128[::]0[::]0 :: StoryTitle[::]8-8-3 Приключения барда. :: Таверна[::]520-8-6 Таверна была просторна и уютна. За окном <<print $weather>>. :: Start[::]672-8-1 # переменные окружения <<set $time = 12>> <<set $плюсЧас = 0>> <<set $day = 1>> <<set $weather = 'чистое небо'>> <<set $location = 'Таверна'>> <<set $action= 0>> <<set $streetTemp = -1>> <<br>><<br>> ===[[Игра|Игра]]=== :: Смена погоды[::]344-8-1 день закончился :: Герой[::]312-176-5 ===[[Ждать|Игра {$action = 1}]] | [[Искать|Игра {$action = 2}]] | [[Играть на лютне|Игра {$action = 3}]]=== ===Время: <<print $time>> | День: <<print $day>>=== ---- :: Игра[::]160-176-5 <<clrscr>> <<display 'пересчёт хода'>> <<display 'смена времени'>> <<display 'Герой'>> <<display 'Действия'>> <<display '$location'>> <<if $сменаДня == true>> <<display 'Смена погоды'>> <<endif>> <<set $сменаДня = false>> :: пересчёт хода[::]160-328-0 <<if $action eq 1>> <<set $плюсЧас = 1>> <<elseif $action eq 2>> <<set $плюсЧас = 0>> <<elseif $action eq 3>> <<set $плюсЧас = 1>> <<endif>> :: Действия[::]8-176-0 <<if $action eq 1>> Прошёл один час. <<elseif $action eq 2>> Вы ничего не нашли. <<elseif $action eq 3>> Игра на лютне удалась. <<endif>> <<if $action neq 0>> <<display 'Смена времени'>> ---- <<endif>> <<set $action = 0>> :: Смена времени[::]160-8-0 <<loop $плюсЧас>> <<set $time++>> <<if $time > 23>> <<set $time = 0>> <<set $day++>> <<set $сменаДня = true>> <<endif>> <<endloop>> <<set $плюсЧас = 0>>
Кстати, у вас опечатка в слове "приключения" в названии игры ;-)
И при пересчёте времени надо проверку не $time >= 23, а либо $time >= 24, либо $time > 23, иначе у вас новый день начинается в 23 часа.
Отредактировано Aruny (24.08.2014 09:52)
Неактивен