Как сделать?
…
Podkovally:
или как?
JDN = JDNStart + time/1440
hour = (time/60) MOD 24
minut = time MOD 60
weekday = (JDN MOD 7) + 1
JDa = JDN + 32044
JDb = (4*JDa + 3)/146097
JDc = JDa - (146097*JDb/4)
JDd = (4*JDc + 3)/1461
JDe = JDc - 1461*JDd/4
JDm = (5*JDe + 2)/153
day = JDe - (153*JDm+2)/5 + 1
month = JDm + 3 - 12*(JDm/10)
year = 100*JDb + JDd - 4800 + JDm/10
$hour = iif (hour < 10, ’0<<hour>>’, ‘<<hour>>’)
$minut = iif (minut < 10, ’0<<minut>>’, ‘<<minut>>’)
Как-то так .
skunsss,
skunsss:
Как-то так .
Это перерасчёт значений часы/минуты/дни/месяца/годы исходя из значения переменной time.
Игровое время ты меняешь, изменяя переменную time. Вот там же где ты меняешь эту переменную нужно менять и значения переменных, отвечающих за голод и сон.
Aleks Versus:
Это перерасчёт значений часы/минуты/дни/месяца/годы исходя из значения переменной time.
Игровое время ты меняешь, изменяя переменную time. Вот там же где ты меняешь эту переменную нужно менять и значения переменных, отвечающих за голод и сон.
Временная система отсюда :
https://qsp.org/forum/790-kalendar-po-metodu-sceta-ulianskih-dnej
Что-то типа - Бодрость = Бодрость - 10 ?
IF Бодрость < 1:
GT ‘Подворотня’
end
И еще вопрос, как ограничить счетчик статов что-б они не выходили за пределы 100 .
skunsss:
Временная система отсюда :
http://qsp.su/index.php?option=com_agor … ;Itemid=57
отсюда-то отсюда, но ты понимаешь, как она работает? ))
Текущее время хранится в переменной time.
Локация calendar - пересчитывает значения.
Когда в игре происходит какое-то действие, должно изменяться текущее время и должны быть пересчитаны значения:
act 'Ехать на вокзал':
time += 45 & ! изменяем текущее время (прибавили сорок пять потраченных минут)
gs 'calendar' & ! пересчитываем значения
gt 'station' & ! отправляемся на локацию вокзала
end
Вот здесь как раз при изменении времени можно было изменить и значения бодрости и голода. Всё верно:
act 'Ехать на вокзал':
time += 45 & ! изменяем текущее время (прибавили сорок пять потраченных минут)
бодрость = бодрость - 10 & ! можно записать короче бодрость -= 10
голод = голод + 5 & ! можно записать короче голод += 5
gs 'calendar' & ! пересчитываем значения
gt 'station' & ! отправляемся на локацию вокзала
end
Чтобы ограничивать значения статов, нужно всякий раз проверять условие. Например для голода:
голод+=5
if голод > 100: голод = 100
Если тебе лень всякий раз писать это, или ты боишься забыть прописать проверку условия, можно написать универсальную локацию:
!golod
голод += args[0]
if голод >100: голод = 100
if голод < 0: голод = 0
Тогда, чтобы изменить значение голода, нужно будет писать:
gosub '!golod',5 & ! голод увеличился на 5 единиц
gosub '!golod',-15 & ! голод уменьшился на 15 единиц
P.S. И ещё, просьба, помещай код в блок для кода, кнопка 
А можно ли сделать так, чтобы текст описания появлялся ПОСТЕПЕННО САМ? Если возможно, то напишите пример кода.
Weliot:
А можно ли сделать так, чтобы текст описания появлялся ПОСТЕПЕННО САМ? Если возможно, то напишите пример кода
'а'
wait 50
cls
'а '
wait 50
cls
'а м'
wait 50
cls
'а мо'
wait 50
cls
'а мож'
wait 50
cls
'а можн'
wait 50
cls
'а можно'
wait 50
cls
'а можно'
wait 50
cls
'а можно л'
wait 50
cls
'а можно ли'
wait 50
cls
'а можно ли '
wait 50
cls
'а можно ли с'
wait 50
cls
'а можно ли сд'
wait 50
cls
'а можно ли сде'
wait 50
cls
'а можно ли сдел'
wait 50
cls
'а можно ли сдела'
wait 50
cls
'а можно ли сделат'
wait 50
cls
'а можно ли сделать'
wait 50
cls
'а можно ли сделать?'
end
Вроде всё правильно, что не так?
‘<p align=“right”>’ ’04/04/2245 15:01’ ‘<p align=“center”><font color=“#00FF00”>’ ‘текст’ ‘<hr></P>’
wait 170
end
‘<p align=“right”>’ ’04/04/2245 15:02’ ‘<p align=“center”>’ ‘текст.’ ‘<hr></P>’
wait 170
end
после wait не нужно ставить end
wait это задержка, cls нужно чтобы следующее на том же месте появлялось, иначе второй строкой вылезет,
принцип:
текст
задержка
очистка
текст
а end в самом конце
Aaaspavel:
а end в самом конце
зачем end в конце?
Weliot:
А можно ли сделать так, чтобы текст описания появлялся ПОСТЕПЕННО САМ? Если возможно, то напишите пример кода.
$stroka = 'А можно ли сделать так, чтобы текст появлялся постепенно?'
i=1
:for
if i<len($stroka)+1:
wait 250
*p $mid($stroka,i,1)
i=i+1
jump 'for'
end
Ещё посмотрите “кроличью нору”. Лежит в теме “не игры”.
Aleks Versus,
О, как интересно!
(просто так мимо пробегала)
А возможно ли прикрутить кнопку, чтобы скипнуть постепенное появление текста или пока цикл не закончится, его не удастся прервать?
Ну или увеличить скорость появления текста? Я посмотрела кроличью нору, там это как-то делается через counter.. Черт, это интересное открытие, давно хотела сделать что-то подобное!
UPD: все, я нашла, как увеличить скорость, сама проглядела, ха-ха, ну надо же, надо очки протереть Х)
О господи, уже больше 10 лет прошло, а авторы на QSP продолжают клепать “анимированное появление текста” и всё ещё надеются украсить этим игру, придать ей оригинальности…
Мрак.
Lisichka:
А возможно ли прикрутить кнопку, чтобы скипнуть постепенное появление текста
ту дело скорее не в цикле, а в wait. wait - прерывает выполнение программы на определённое время. А между wait - события считай происходят мгновенно, поэтому даже если ты создашь что-то типа:
$stroka = 'А возможно ли прикрутить кнопку, чтобы скипнуть постепенное появление текста или пока цикл не закончится, его не удастся прервать?'
act 'Прервать': recut=1
i=1
:for
if i<len($stroka)+1 and recut=0:
wait 10
*p $mid($stroka,i,1)
i=i+1
jump 'for'
else
*clr
$stroka
end
ты просто не успеешь нажать действие.
с другой стороны counter выполняется через определённые промежутки времени, поэтому можно попробовать через него:
#1
$stroka = 'А возможно ли прикрутить кнопку, чтобы скипнуть постепенное появление текста или пока цикл не закончится, его не удастся прервать?'
act 'Прервать': recut=1
i=1
$counter='counter'
SETTIMER 150
#counter
if i<len($stroka)+1 and recut=0 $curloc='1':
*p $mid($stroka,i,1)
i=i+1
elseif $curloc='1'
*clr
$stroka
settimer 500
end
Nex,
Ну иногда можно, если драматичный момент, чтобы создать напряжение, например)
Aleks Versus,
Спасибо, можно и так попробовать))
дело не в оригинальности, вот например, игра не просто нажми на строчку - получишь результат, а варианта:
style
#inv-show-gg{
background-image:url(../../../pic/poisk/fon.png);
left:50px;
top:300px;
}
#inv-show-gg:hover{background-image:url(../../../pic/poisk/glas-active.png);}
получится, что игрок видит просто картинку, но если поводить курсором по экрану, то в определённом месте проявится glas-active.png - иконка активации поиска клада. Но просто так игрок хрен догадается, разве что случайно наткнётся, поэтому в начале игры можно сделать что-то типа обучалки через тот же wait
ах-хах, забавно привел пример, знач wait 10, а SETTIMER 150 :)
а если wait 9000 поставить, то можно ролик на 90 сек показать
фокус в том, что wait подвешивает плеер и пока действие wait не закончится сделать с игрой нельзя вообще ничего, кроме alt+enter или alt+f4, поэтому то, что автор закладывает в wait гарантировано не будет пропущено игроком, а то, что игроку не известно сколько заложено времени, то лучшего занятия, чем почитать текст придумать сложно, вообще странно, что wait не сделали обязательным атрибутом текстовых игр, чтобы игрок не занимался кликодрочеством, а вынужден был ждать-читать текст. )))