Привет друзья. Знаком с 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)
Неактивен
Как у меня работает игра?!
Ядро параграф - Игра
отсюда запускаются другие параграфы
<<clrscr>> <<display 'Герой'>> <<display 'Действия'>> <<display '$location'>>
в параграфе Герой кнопки находятся и статусы, также там и находится показатель времени, который не переключается правильно
в параграфе Действия происходят обновления после нажатия на кнопки действия в параграфе Герой
дальше от Действия есть переход при изменениях в параграф Смена времени, тут и должно поменяться время,
но оно работает с опозданием
Неактивен
У вас ошибка в порядке вывода результатов на экран.
Вы сначала выводите время, потом уже пересчитываете его с учётом нажатой ссылки.
Варианты исправления:
вариант 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)
Неактивен
Aruny Спасибо большое!
вот что у меня потихой получается уже, это мой первый опыт:
:: StorySubtitle Эта история о юном парне, лет шестнадцати, который приехал учиться в академию чароплётов, в холодный край Теплоземья, но его не взяли, т.к. способности не позволяют, с горя он пропил все деньги на обратную дорогу домой, и теперь едва выживает, ибо он слишком юн, совсем не умеет драться, и не знает с какой стороны держаться за меч. Единственное чему он научился - игре на лютне, поэтому пока временно застрял в местной таверне, музицируя и развлекая гостей, чтобы заработать небольшое состояние и на эти деньги вернуться домой к родителям :: Смена времени <<loop $плюсЧас>> <<display 'Состояние героя'>> <<set $time++>> <<if $time == 12>> <<display 'Смена погоды'>> <<endif>> <<if $time > 23>> <<set $time = 0>> <<set $day++>> <<display 'Смена погоды'>> <<endif>> #<<break>> #<<continue>> <<endloop>> <<set $плюсЧас = 0>> :: StoryTitle Похождения юного барда. :: Герой <<if $health eq 10>> <<set $здоровье = 'лучшее'>> <<elseif $health >= 8>> <<set $здоровье = 'хорошее'>> <<elseif $health >= 6>> <<set $здоровье = 'неплохое'>> <<elseif $health eq 5>> <<set $здоровье = 'среднее'>> <<elseif $health eq 4>> <<set $здоровье = 'ранен'>> <<elseif $health eq 3>> <<set $здоровье = 'тяжело'>> <<elseif $health eq 2>> <<set $здоровье = 'очень тяжело'>> <<elseif $health eq 1>> <<set $здоровье = 'едва живой'>> <<else>> <<set $здоровье = 'мёртв'>> <<endif>> <<if $food >= 10>> <<set $еда = 'наелся'>> <<elseif $food >= 6>> <<set $еда = 'сытый'>> <<elseif $food >= 4>> <<set $еда = 'лёгкий голод'>> <<elseif $food >= 2>> <<set $еда = 'голод'>> <<elseif $food < 2>> <<set $еда = 'тяжкий голод'>> <<endif>> <<if $sleep <= 0>> <<set $сон= 'свежее'>> <<elseif $sleep <= 2>> <<set $сон= 'бодрое'>> <<elseif $sleep <= 5>> <<set $сон= 'хорошее'>> <<elseif $sleep <= 7>> <<set $сон= 'неплохое'>> <<elseif $sleep <= 10>> <<set $сон= 'вполне'>> <<elseif $sleep <= 14>> <<set $сон= 'уставшее'>> <<elseif $sleep <= 18>> <<set $сон= 'сонное'>> <<elseif $sleep <= 22>> <<set $сон= 'очень сонное'>> <<elseif $sleep <= 30>> <<set $сон= 'падает с ног'>> <<endif>> <<if $cold <= -20>> <<set $холод= 'окоченел'>> <<elseif $cold <= -15>> <<set $холод= 'оледенел'>> <<elseif $cold <= -10>> <<set $холод= 'замерз'>> <<elseif $cold <= -5>> <<set $холод= 'холодно'>> <<elseif $cold <= 0>> <<set $холод= 'прохладно'>> <<elseif $cold > 0>> <<set $холод= 'тепло'>> <<endif>> <<if $time == 0>> <<set $время = 'полночь'>> <<elseif $time <= 5>> <<set $время = 'ночь'>> <<elseif $time <= 6>> <<set $время = 'раннее утро'>> <<elseif $time <= 11>> <<set $время = 'утро'>> <<elseif $time <= 12>> <<set $время = 'полдень'>> <<elseif $time <= 16>> <<set $время = 'день'>> <<elseif $time <= 20>> <<set $время = 'вечер'>> <<elseif $time <= 24>> <<set $время = 'поздний вечер'>> <<endif>> ===[[Ждать|Действия{$action = 1}]] | [[Искать|Действия{$action = 2}]] | [[Играть на лютне|Действия{$action = 3}]]=== ===Золото: <<print $gold>> | Время: <<print $время >>=== ===Здоровье: <<print $здоровье>> | Голод: <<print $еда>> | Состояние: <<print $сон>> | Тело: <<print $холод>>=== ---- :: Смена погоды <<random $объект = 9>> <<if $объект == 9>> <<set $weather = 'ледяной ураган'>> <<set $streetTemp = -5>> <<elseif $объект == 8>> <<set $weather = 'непроглядная метель'>> <<set $streetTemp = -4>> <<elseif $объект == 7>> <<set $weather = 'сильный снегопад'>> <<set $streetTemp = -3>> <<elseif $объект == 6>> <<set $weather = 'завывает сильный ветер'>> <<set $streetTemp = -3>> <<elseif $объект == 5>> <<set $weather = 'дует ветер'>> <<set $streetTemp = -2>> <<elseif $объект == 4>> <<set $weather = 'лёгкий ветерок'>> <<set $streetTemp = -1>> <<elseif $объект == 3>> <<set $weather = 'чистое небо'>> <<set $streetTemp = -1>> <<elseif $объект == 2>> <<set $weather = 'пасмурно'>> <<set $streetTemp = -1>> <<elseif $объект == 1>> <<set $weather = 'мягкий снежок'>> <<set $streetTemp = -1>> <<else>> <<set $weather = 'спокойно'>> <<set $streetTemp = -1>> <<endif>> :: Игра <<display 'Герой'>> ===<<print $location>>=== ---- :: Действия <<if $action eq 1>> <<set $плюсЧас = 1>> ===[[Прошёл один час.|$location]]=== <<elseif $action eq 2>> <<set $плюсЧас = 1>> ===[[Вы ничего не нашли.|$location]]=== <<elseif $action eq 3>> <<set $плюсЧас = 2>> <<random $объект = 100>> <<if $объект >= 50>> ===[[Вы сыграли хорошо.|$location]]=== <<else>> ===[[Вы плохо сыграли на лютне.|$location]]=== <<endif>> <<endif>> <<set $action = 0>> <<display 'Смена времени'>> :: Еда в таверне Вы хорошо поели, голод отступил! <<set $gold = $gold - $price>> <<set $health = 10>> <<set $food = 10>> <<set $плюсЧас = 1>> <<display 'Смена времени'>> ===[[Закончить трапезу|Таверна]]=== :: Пить в таверне Вы нажрались в хлам! <<set $gold = $gold - $price>> <<set $плюсЧас = 1>> <<display 'Смена времени'>> ===[[Закончить попойку|Таверна]]=== :: Состояние героя # температура в комнате или на улице <<if $Temp == 'n/a'>> <<set $объект = $streetTemp>> <<else>> <<set $объект = $Temp>> <<endif>> <<random $объект2 = 1>> <<set $cold = $cold + $объект + $объект2>> <<if $cold > 20>> <<set $cold = 20>> <<elseif $cold < -20>> <<set $cold = -20>> <<endif>> # голод <<set $food = $food - 1>> <<if $food > 75>> <<set $food = 75>> <<elseif $food < -5>> <<set $food = -5>> <<endif>> # усталость <<set $sleep = $sleep + 1>> # уменьшения здоровья <<if $cold <= -20>> <<set $health = $health - 1>> Жуткий мороз, нужно найти тепло срочно! <<endif>> <<if $food < 0 >> <<if $sleep > 25>> <<if $health > 5 >> Вы невероятно сильно устали и очень голодны. <<set $health = $health - 1>> <<endif>> <<endif>> <<endif>> :: Start # Статусы героя <<set $gold = 100>> <<set $health = 10>> <<set $food = 10>> <<set $sleep = 0>> <<set $cold = 0>> <<set $fame = 0>> <<set $magic = 0>> # переменные окружения <<set $time = 12>> <<set $плюсЧас = 0>> <<set $day = 1>> <<set $Temp = 0>> <<set $weather = 'чистое небо'>> <<set $location = 'Таверна'>> <<set $streetTemp = -1>> # Важные переменные игры <<set $buy = 0>> <<set $action = 0>> <<set $update = 0>> <<set $mainQuest = 0>> <<br>><<br>> ===[[Игра|Таверна]]=== :: Сон в таверне Вы хорошо выспались! Прошло 7 часов. <<set $gold = $gold - $price>> <<set $health = 10>> <<set $sleep = 0>> <<set $плюсЧас = 7>> <<display 'Смена времени'>> ===[[Вернуться в таверну|Таверна]]=== :: Услуги <<if $buy == 1>> <<set $цена = 10>> <<if $gold >= $цена>> ===[[Вы можете поспать за 10 золотых монет.|Сон в таверне {$price = $цена}]]=== <<else>> ===У вас нет 10 золотых монет для того, чтобы поспать в комнате!=== <<endif>> <<elseif $buy == 2>> <<set $цена = 5>> <<if $gold >= $цена>> ===[[Купить еды за 5 золотых монет.|Еда в таверне {$price = $цена}]]=== <<else>> ===У вас нет 5 золотых монет для того, чтобы купить еды!=== <<endif>> <<elseif $buy == 3>> <<set $цена = 15>> <<if $gold >= $цена>> ===[[Купить крепкой выпивки за 15 золотых монет.|Пить в таверне {$price = $цена}]]=== <<else>> ===У вас нет 15 золотых монет для того, чтобы напиться!=== <<endif>> <<endif>> :: Таверна <<set $location = 'Таверна'>> <<set $Temp = 10>> <<display 'Игра'>> Таверна была просторна и уютна. Даже в самую лютую погоду здесь можно было укрыться от вьюги и холода, и погреться у камина. За стойкой стоял [[трактирщик|трактирщик]] и протирал гигантские пивные кружки. Дверь [[на улицу|Улица]] была сделана из крепкого резного дерева. За окном <<print $weather>>. :: Улица <<set $location = 'Улица'>> <<set $Temp = 'n/a'>> <<display 'Игра'>> На небольшой деревенской улочке расположилась [[таверна|Таверна]], чуть дальше стояли крепкие дома местных жителей. А над ними величественно возвышалась башня академии чароплётов. Сейчас <<print $weather>> :: Трактирщик ===Трактирщик=== ---- - Чего желаете, господин? [[Поспать|Трактирщик {$buy = 1}]], [[поесть|Трактирщик {$buy = 2}]], али может вы ценитель [[крепкой выпивки|Трактирщик {$buy = 3}]]? - обратился к вам трактирщик. <<display 'Услуги'>> <<set $buy = 0>> [[Уйти...|Таверна]]
Неактивен
Очень хорошо для первого опыта Много параметров, смена дня и ночи, погода. Теперь нужно добавить больше возможностей. Предлагаю, к примеру, сделать несколько таверн и ввести в таверны публику. В зависимости от того, какие люди набились в таверну, гг нужно будет исполнять разные песни. Угадал с песней - получил одобрение публики и денег заработал или еду-выпивку. Не угадал - поколотили и вышвырнули на улицу. Результат игры на лютне не должен целиком зависеть от рандома. Чем чаще бард играет песню из своего репертуара, тем лучше она у него получается. Сытый бард играет гораздо лучше голодного и замёрзшего. Разные песни могут требовать разный уровень алкогольного опьянения... можно много чего ещё придумать
И ещё в названии истории точка не ставится.
Неактивен
Morych написал:
Очень хорошо для первого опыта Много параметров, смена дня и ночи, погода. Теперь нужно добавить больше возможностей. Предлагаю, к примеру, сделать несколько таверн и ввести в таверны публику. В зависимости от того, какие люди набились в таверну, гг нужно будет исполнять разные песни. Угадал с песней - получил одобрение публики и денег заработал или еду-выпивку. Не угадал - поколотили и вышвырнули на улицу. Результат игры на лютне не должен целиком зависеть от рандома. Чем чаще бард играет песню из своего репертуара, тем лучше она у него получается. Сытый бард играет гораздо лучше голодного и замёрзшего. Разные песни могут требовать разный уровень алкогольного опьянения... можно много чего ещё придумать
И ещё в названии истории точка не ставится.
Вот это шикарная идея! Спасибо большое, Morych! Я конечно, в первый раз столько всего не осилю! Но идея с песнями шикарная,
попробую, как смогу реализовать!)
Отредактировано Sasha Makovsky (25.08.2014 16:51)
Неактивен
Постепенно всё можно осилить. А в случае чего поможем советом и кодом В продолжение идеи с песнями. Для начала у барда есть небольшой список доступных песен (пара штук). У каждой песни есть название и краткое описание, о чём там поётся, а также умение барда эту песню исполнять. Для хранения номеров известных песен можно использовать массив. В процессе игры список известных песен может увеличиваться (подслушал у другого барда, вычитал в книге, кто-то научил за умеренную плату). Более высокоуровненвые песни могут требовать большего мастерства владения лютней, более сильного голоса, но они и больше нравятся публике.
P. S. Поменял название темы.
Неактивен