Как сделать?
…
Aleks Versus,
Массив создаётся как отдельная локация?
во, созрел ещё один вопрос: игры на классике ладно, худо-бедно, но защищены паролем от дурака, а игры на навигаторе, как сдедующей ступени эволюции уже незащищены ничем… нет возможности сложить хотя бы css сложить в архив и запаролить, вроде навигатор должен читать архивы
Совёнок,
массив - это, в грубом приближении, набор переменных с одинаковыми именами, которые различаются по индексу (называем эти переменные - ячейки массива). В нашем случае $track - это массив. $track[0], $track[1], $track[2] - ячейки массива. Почему я и предложил тебе прочитать эту статейку - ТЫЦ.
И вроде бы я ясно понятно написал:
Aleks Versus:
В начале игры:
Код:
! заносим файлы в массив
Т.е. на самой первой локации в твоей игре. Я не знаю, как она называется. “начало”, “start”, “1” быть может.
Помогите разобраться. Делал пример из уроков. Захотел запилить время на примере одной из игр код следующий:
Spoiler
!Время
if minut >= 60:
:loopmin
set hour = hour + 1
set minut = minut - 60
if minut >= 60:
jump ‘loopmin’
end
end
if hour >= 24:
hour -= 24
weekday += 1
number += 1
end
:loop_weekday
if weekday >= 8:
weekday -= 7
jump ‘loop_weekday’
end
:loop_number
if number >= 31:
number -= 30
month += 1
jump ‘loop_number’
end
:loop_year
if month >= 13:
month -= 12
year += 1
jump ‘loop_year’
end
if minut < 10:set $nilmin = ’0’
if minut >= 10:set $nilmin = ‘’
!Дни недели
if weekday = 1:set $weekday = ‘Понедельник’
if weekday = 2:set $weekday = ‘Вторник’
if weekday = 3:set $weekday = ‘Среда’
if weekday = 4:set $weekday = ‘Четверг’
if weekday = 5:set $weekday = ‘Пятница’
if weekday = 6:set $weekday = ‘Суббота’
if weekday = 7:set $weekday = ‘Воскресенье’
!Месяца
If month = 1:set $month = ‘Января’
If month = 2:set $month = ‘Февраля’
If month = 3:set $month = ‘Марта’
If month = 4:set $month = ‘Апреля’
If month = 5:set $month = ‘Мая’
If month = 6:set $month = ‘Июня’
If month = 7:set $month = ‘Июля’
If month = 8:set $month = ‘Августа’
If month = 9:set $month = ‘Сентября’
If month = 10:set $month = ‘Октября’
If month = 11:set $month = ‘Ноября’
If month = 12:set $month = ‘Декабря’
end
!Отображение времени
CLR
PL ‘Сейчас <<number>> <<$month>> <<year>> года, <<$weekday>>. Время <B><<hour>></B> часов <B><<$nilmin>><<minut>></B> минут
В кармане: <<Money>> руб.’
Код времени находится в локации Stat. Изначальный параметр времени (hour = 20) в стартовой локации ( с кнопкой начать). К примеру в локации спальня (bedroom) пишу условие:
Spoiler
gs ‘stat’
if hour < 23:
act ‘Поспать часик’:
cla
hour += 1
‘Я проспал час.’
act ‘Встать’:gt’bedroom’
end
end
Сколько бы я времени не крутил кнопка ‘поспать’ так и не появляется.
Если же в условии я пишу =20 то кнопка появляется, при этом так и остается висеть. Как я понимаю проблемма в том что время берется не просчитанное а из стартового условия. Помогите разобраться пожалуйста.
Bup0H,
всё работает. Дело в чём-то другом. Проверил в чистой игре:#ЧИСТАЯ ИГРА#
В чистой игре работает. Вставил код в пример из урока. Сначала заработало, сейчас нет. Не пойму что не дает.
vremya_i_uslovie_(2).qsp
Bup0H,
если ты имеешь ввиду ошибку “локация с заданным названием не существует”, то эта ошибка говорит сама за себя. У тебя переход на локацию bedroom, которой нет в игре. А так - работает.
Нет, нет с локацией то все понятно, кнопка не исчезает. Вот что изменилось в чистой версии, я поменял знак и добаил кнопку по накрутке часов. Условие уже не работает. 22.qsp
'<a href="exec:gt ''a'',''st''">текст</a>'
текст в навигаторе, который активирует действие.
вопрос: как этот текст заменить картинкой, которую нужно ещё и расположить на экране в нужном месте, что-то типа интерактивной карты, это мне для каждой из 2812 точек в css координаты выставлять?
и ещё один вопрос по поводу msg
его никак нельзя сделать всплывающим сообщением?
сейчас по сути msg это как всплывающий запрет, обрывающий действия, к примеру квест на 3 часа игрового времени диалог, где первая фраза активирует вторую(if fr=1:fr=2), вторая третью(if fr=2:fr=3) и так далее по цепочке и посреди квеста вдруг всплывает msg, то он обрывает квест и приходится переписывать код для нпс, потому как уже if fr=8, а значит с этим нпс, который настроен на if fr=1 квест продолжить не получится
блин, в общем то разобрался, каждую точку придётся отображать в style.css, с фиксированными точками понятно, а вот как правильно написать код, задумка такая: карту разобью на ячейки, карта 900px на 500рх, это выйдет 180 ячеек 50px на 50px, можно задать каждому свою ячейку. мб кто-то даст совет как это сделать правильнее?
Bup0H,
ну а как оно сработает? Ты заходишь на локацию bedroom, один раз выполняется код:
gs 'stat'
if hour > 22:
act 'Поспать часик':
cla
hour += 1
'Я проспал час.'
act 'Встать':gt'bedroom'
end
end
ACT 'Подождать час':
hour += 1
gs 'Stat'
END
Когда ты щёлкаешь по действию “Подождать час” - срабатывает только:
hour += 1
gs 'Stat'
Чтобы вновь проверить, доступно ли действие “поспать часик”, нужно, чтобы код на локации bedroom выполнился ещё раз, для этого нужно снова на неё перейти:
ACT 'Подождать час':
hour += 1
gs 'Stat'
goto 'bedroom'
END
Aaaspavel:
сейчас по сути msg это как всплывающий запрет, обрывающий
ничего подобного. msg не прерывает выполнение кода. После того, как щёлкнул по OK, код выполняется далее.
С картой твоей вообще ничего не понял. Если у тебя простая таблица, состоящая из квадратных картинок, зачем прописывать координаты ячеек через стили? Отрисуй таблицей.
Aleks Versus:
С картой твоей вообще ничего не понял. Если у тебя простая таблица, состоящая из квадратных картинок, зачем прописывать координаты ячеек через стили? Отрисуй таблицей.
сама по себе каждая локация это $BACKIMAGE = ‘content/back.png’, а нпс на ней не постоянно присутствуют, а появляются по игровому времени либо в зависимости от квеста, соответственно для каждой игровой ситуации в зависимости от игрового времени и квестов отрисовывать ещё и новую таблицу для каждой локации? если вначале игры на локации будут две картинки нпс, то в середине их там может оказаться около 20-50, а отображаться должны только доступные для активации
style
/* s-map */
#map-one-one{left:0px; top:0px}
#map-one-two{left:0px; top:50px}
qsp
if hour = 7 or hour = 18 and lani=12:
'<div id = "map-one-one" class="map-elements"><a href="exec:gs''gs_time_loc'' & gt''m''"><img src="pic/maps-a/home.png"></a><span>Дом</span></div>'
if hour >= 3 and hour <= 23 and derty=2:
'<div id = "map-one-two" class="map-elements"><a href="exec:gs''gs_time_loc'' & gt''arka''"><img src="pic/maps-place/arka.png"></a><span>Арка</span></div>'
а что может дать таблица из плюсов?
Aleks Versus:
Re: Как сделать?
Aaaspavel написал(а):
сейчас по сути msg это как всплывающий запрет, обрывающий
ничего подобного. msg не прерывает выполнение кода. После того, как щёлкнул по OK, код выполняется далее.
да ну?
игровая ситуация:
локация holl
$metka = $ARGS[0]
$loc = $CURLOC
gs'gs_inv_show'
$location = 'holl'
if hour = 9 or hour = 21:
'<div id="acts-buttons">'
'<a href="exec:gs''gs_time'' & minut+=20 & gt ''holl_2''">поговорить с нпс</a>'
'</div>'
else
msg'магазин закрывается, продавец уходит' & gt'place'
end
если hour = 9 и minut<=39 то msg вообще не появится в этой локации, потому как мы перейдём в следующую,
а если hour = 9 и minut>=40 то msg оборвёт действия и выставит нас за дверь.