Привет друзья. Знаком с 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)
Неактивен