Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
09.07.2012 11:12

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Как сделать что-то или "я вот не понимаю"

Если у Вас есть вопросы, как сделать что-то в программе или Вы не понимаете чего-то (то ли это ошибка, то ли фича и т.д.), то спрашивайте в этой теме.

Неактивен

0    0    #2
14.01.2016 16:24

cd3snake
Участник (+1)
Зарегистрирован: 14.01.2016
Сообщений: 4

Re: Как сделать что-то или "я вот не понимаю"

Подскажите как на 4ой версии аксмы сделать смену фона, в зависимости от происходящего в истории?
На 2ой версии можно было выбирать тему макросом <<style>> , в 4ке это не возможно(
В данный момент вышел из положения, путем показа солнышка или луны в заголовке, но, это все не то.
Заранее спасибо!)

Неактивен

1    0    #3
20.01.2016 17:32

cd3snake
Участник (+1)
Зарегистрирован: 14.01.2016
Сообщений: 4

Re: Как сделать что-то или "я вот не понимаю"

Поработал не много с календарем.
Конечно есть что улучшать, добавить алгоритм Зеллера, улучшить работу в цикле, если кто поможет - Велком)))
Високосность присутствует

Код:

:: time
<<loop 10>><<if $minut gte 60>>
<<set $hour = $hour + 1>>
<<set $minut = $minut - 60>>
<<endif>><<endloop>>
<<loop 10>><<if $hour gte 24>>
<<set $day = $day + 1>>
<<set $hour = $hour - 24>>
<<set $week = $week + 1>>
<<endif>><<endloop>>
<<If $week gt 7 >>
<<set $week = $week - 7>>
<<endif>>
<<if ($month eq 1) or ($month eq 3) or ($month eq 5) or ($month eq 7) or ($month eq 8) or ($month eq 10) or ($month eq 12)>>
 <<if $day gt 31>>
 <<set $day = $day - 31>>
 <<set $month = $month + 1>>
 <<endif>>
<<endif>>
<<if ($month eq 4) or ($month eq 6) or ($month eq 9) or ($month eq 11)>>
 <<if $day gt 30>>
 <<set $day = $day - 30>>
 <<set $month = $month + 1>>
 <<endif>>
<<endif>>
<<if $month eq 2 and $year%4 neq 0>>
 <<if $day gt 28>>
 <<set $day = $day - 28>>
 <<set $month = $month + 1>>
<<endif>>
<<endif>>
<<if $month eq 2 and $year%4 eq 0>>
 <<if $day gt 29>>
 <<set $day = $day - 29>>
 <<set $month = $month + 1>>
 <<endif>>
<<endif>>
<<if $month gt 12>>
<<set $year = $year + 1>>
<<set $month = $month - 12>>
<<endif>>
<<If $week == 1>> <<set $day_name ='Пн'>> <<endif>>
<<If $week == 2>> <<set $day_name ='Вт'>> <<endif>>
<<If $week == 3>> <<set $day_name ='Ср'>> <<endif>>
<<If $week == 4>> <<set $day_name ='Чт'>> <<endif>>
<<If $week == 5>> <<set $day_name ='Пт'>> <<endif>>
<<If $week == 6>> <<set $day_name ='Сб'>> <<endif>>
<<If $week == 7>> <<set $day_name ='Вс'>> <<endif>>
<<If $month == 1>> <<set $month_name = 'января'>> <<endif>>
<<If $month == 2>> <<set $month_name = 'февраля'>> <<endif>>
<<If $month == 3>> <<set $month_name = 'марта'>> <<endif>>
<<If $month == 4>> <<set $month_name = 'апреля'>> <<endif>>
<<If $month == 5>> <<set $month_name = 'мая'>> <<endif>>
<<If $month == 6>> <<set $month_name = 'июня'>> <<endif>>
<<If $month == 7>> <<set $month_name = 'июля'>> <<endif>>
<<If $month == 8>> <<set $month_name = 'августа'>> <<endif>>
<<If $month == 9>> <<set $month_name = 'сентября'>> <<endif>>
<<If $month == 10>> <<set $month_name = 'октября'>> <<endif>>
<<If $month == 11>> <<set $month_name = 'ноября'>> <<endif>>
<<If $month == 12>> <<set $month_name = 'декабря'>> <<endif>>
<<if $hour lt 10>> <<set $nullh=0>><<endif>>
<<if $hour gte 10>> <<set $nullh=''>><<endif>>
<<if $minut lt 10>> <<set $nullm=0>><<endif>>
<<if $minut gte 10>> <<set $nullm=''>><<endif>>

Вывод можно оформить самим как угодно.
Пример:
http://s018.radikal.ru/i522/1601/3f/a6e1045e21f1.png

Код:

<<print $nullh>><<print $hour>>:<<print $nullm>><<print $minut>> <<print $day_name>>. <<print $day>> <<print $month_name>> <<print $year>>г.

Конечно не забыть задать стартовые параметры

Код:

:: s_c
<<set $minut = 20>>
<<set $hour = 23>>
<<set $day = 27>>
<<set $week = 4>>
<<set $month = 2>>
<<set $year = 1700>>

и подключить

Код:

<<display 'time'>>

Отредактировано cd3snake (20.01.2016 19:01)

Неактивен

0    0    #4
22.01.2016 08:20

cd3snake
Участник (+1)
Зарегистрирован: 14.01.2016
Сообщений: 4

Re: Как сделать что-то или "я вот не понимаю"

По работе календаря
С циклом 10 можно передавать
minut = minut + 600
hour = hour + 240
Если передавать больше, ломается, можно получить - nn часов и nnn минут.
Того что есть, более чем достаточно, кому мало, можно увеличить n раз выполнение цикла.
Более 100 делать не рекомендую, начинаются притормаживания.
Можно даже оптимизировать цикл часов. Не вижу смысла в передачи количества часов > 2ух суток.

Так же можно передавать day, не забыв так же прибавить week. И т.д.

Отредактировано cd3snake (22.01.2016 10:20)

Неактивен

0    0    #5
23.01.2016 16:21

cd3snake
Участник (+1)
Зарегистрирован: 14.01.2016
Сообщений: 4

Re: Как сделать что-то или "я вот не понимаю"

Причесал не много. теперь в минутах, неделя спокойно переваривается

Код:

<<loop $minut.toString()*10>>
<<if $minut gte 60>>
<<set $hour = $hour + 1>>
<<set $minut = $minut - 60>>
<<endif>>
<<endloop>>
<<loop $hour.toString()*10>>
<<if $hour gte 24>>
<<set $day = $day + 1>>
<<set $hour = $hour - 24>>
<<set $week = $week + 1>>
<<endif>>
<<endloop>>
<<If $week gt 7 >>
<<set $week = $week - 7>>
<<endif>>
############
<<if ($month eq 1) or ($month eq 3) or ($month eq 5) or ($month eq 7) or ($month eq 8) or ($month eq 10) or ($month eq 12)>>
 <<if $day gt 31>>
 <<set $day = $day - 31>>
 <<set $month = $month + 1>>
 <<endif>>
<<endif>>
############
<<if ($month eq 4) or ($month eq 6) or ($month eq 9) or ($month eq 11)>>
 <<if $day gt 30>>
 <<set $day = $day - 30>>
 <<set $month = $month + 1>>
 <<endif>>
<<endif>>
############
<<if $month eq 2 and $year%4 eq 0>>
 <<if $day gt 29>>
 <<set $day = $day - 29>>
 <<set $month = $month + 1>>
 <<endif>>
<<endif>>
<<if $month eq 2 and $year%4 neq 0>>
 <<if $day gt 28>>
 <<set $day = $day - 28>>
 <<set $month = $month + 1>>
<<endif>>
<<endif>>
#########
<<if $month gt 12>>
<<set $year = $year + 1>>
<<set $month = $month - 12>>
<<endif>>
#########
<<If $week == 1>> <<set $day_name ='Пн'>> <<endif>>
<<If $week == 2>> <<set $day_name ='Вт'>> <<endif>>
<<If $week == 3>> <<set $day_name ='Ср'>> <<endif>>
<<If $week == 4>> <<set $day_name ='Чт'>> <<endif>>
<<If $week == 5>> <<set $day_name ='Пт'>> <<endif>>
<<If $week == 6>> <<set $day_name ='Сб'>> <<endif>>
<<If $week == 7>> <<set $day_name ='Вс'>> <<endif>>
<<If $month == 1>> <<set $month_name = 'января'>> <<endif>>
<<If $month == 2>> <<set $month_name = 'февраля'>> <<endif>>
<<If $month == 3>> <<set $month_name = 'марта'>> <<endif>>
<<If $month == 4>> <<set $month_name = 'апреля'>> <<endif>>
<<If $month == 5>> <<set $month_name = 'мая'>> <<endif>>
<<If $month == 6>> <<set $month_name = 'июня'>> <<endif>>
<<If $month == 7>> <<set $month_name = 'июля'>> <<endif>>
<<If $month == 8>> <<set $month_name = 'августа'>> <<endif>>
<<If $month == 9>> <<set $month_name = 'сентября'>> <<endif>>
<<If $month == 10>> <<set $month_name = 'октября'>> <<endif>>
<<If $month == 11>> <<set $month_name = 'ноября'>> <<endif>>
<<If $month == 12>> <<set $month_name = 'декабря'>> <<endif>>
#########
<<if $hour lt 10>><<set $nullh=0>><<else>><<set $nullh=''>><<endif>>
<<if $minut lt 10>><<set $nullm=0>><<else>><<set $nullm=''>><<endif>>

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru