RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2424203 views

Имеется куча всяких территорий.
1) На каждой территории в зависимости от её типа могу проживать только определенные животные.
2) Количество видов животных проживаемых на территории зависит от её размера.
3) Животные для заселения выбираются случайным образом из всех подходящих видов.

Как сделать, чтобы для каждой территории запоминалось, какие животные на ней проживают?

Aleks Versus Moderator 01.11.2015 19:33 (10 years ago)

Deonder,
например так

! aninumber - номер животного по порядку (на территории)
! territory - номер участка по порядку
! $животное['<<territory>>:<<aninumber>>']='название животного или другой идентификатор'
! животные на нулевом участке
$животное['0:0']='собака'
$животное['0:1']='собака'
$животное['0:2']='крокодил'
! животные на первом участке
$животное['1:0']='тигра'
$животное['1:1']='пума'
! животное на втором участке
$животное['2:0']='летающий макаронный монстр'

Спасибо. Подходит.
Ещё вопрос, больше теоретический. Возможно ли сделать так чтобы картинки шли по контуру основного окна? Сверху, снизу, по бокам. Не обязательно все сразу.

Aleks Versus Moderator 02.11.2015 14:15 (10 years ago)

Deonder,
теоретически можно добиться того, чтобы картинки шли сверху и по бокам. Рисуешь html-таблицу шириной в 100%. В верхней строке верхняя картинка, в левой ячейке - левая, в правой - правая, углы соответственно, если нужны. Вот прилепить картинку к низу окна адекватно не получится, я думаю. Разными костылями я в классике смог сделать например это:

Aleks Versus
а если сделать таблицу вида 3х3 и зафиксировать размер окна?

Aleks Versus Moderator 02.11.2015 19:36 (10 years ago)

Deonder,
в классическом плеере нельзя зафиксировать размер окна. Можно зафиксировать размер таблицы, но тогда будут проблемы с маленькими экранами. В общем всюду и везде придётся выдумывать костыли.

Deonder, фиксировать размер окна можно в Quest Navigator`е с помощью CSS стилей.

BlackFox:

А как сами статы сделать?

И возможно ли сделать 2 счетчика. 1 - как бы статы которые меняются за счет действии и за период времени как например с голодом. 2 - зачитывает определенные действия

Рад что тут добрые и отзывчивые люди

Aleks Versus рассказал тебе все достаточно подробно и с примерами, я очень постараюсь тоже подсобить и сделать более удобный и понятный вид=З
Если сегодня время найду, то скину сюда пример обработчиков для большинства видов характеристик, как статичных и изменяющихся, только при определенных условиях взаимодействия с чем-либо, так и изменяющихся со временем=)

Storm,
в Навигаторе для фиксирования размера окна используется файл настроек игры.

Nex, я имел ввиду другое. Допустим, если ему надо как-то изменить размер окна основного описания или какого-нибудь другого.

Storm, Nex
Достаточно будет просто сделать фиксированным, без дальнейших изменений.

Здравствуйте. Подскажите пожалуйста как сделать СИМУЛЯЦИЮ ЖИЗНИ персонажа. Если подробнее: есть допустим локации 1,2,3,4,5,6,7. Мне нужно чтобы какой-нибудь персонаж в момент времени допустим 17 часов мог находиться в случайных трех локациях из списка, в момент времени 18 часов - в четырех определенных локациях из списка ну и т.д. При сработке определенных событий (допустим, разговор с вами) перемещение должно отключаться и после этого должно происходить переопределение местоположения с учетом произошедших изменений(допустим, определенная локация должна исключиться из списка). Если вы зафиксировали персонажа в определенной локации, то он должен находиться там определенное время.
Пока что все до чего я допетрил - в ONNEWLOC поместил gs обращение к спецлокации, на которой происходит что-то вроде фиксации нужного персонажа в пространстве с выбором случайной локации. Чтобы переопределение не случалось очень уж часто - пришлось вводить костыль с запретом захода в спецлокацию на определенное время. Поскольку опыт изучения QSP у меня мизерный - конструкция получилась очень громоздкой, с кучей циклов для определенного времени. Внесение определенных триггеров я еще даже в нее не начинал. Может можно как-то попроще? Наверняка есть игры где это уже реализовано. И немного не в тему: как грамотно сбрасывать состояние нужных переменных с небольшим циклом жизни (если непонятно - допустим, есть переменная которая после проверки изменила значение с 0 на 1, и необходимо чтобы она сохраняла это значение неизвестное заранее количество внутриигрового времени в пределах суток, а после этого изменила значение обратно на 0)?

И еще вопрос вдогонку. Частенько сталкиваюсь с такой проблемой: в основной локации происходит GS обращение к служебной локации, в которой происходят некоторые действия, начисляется время и происходит gs обращение к еще одной локации, которая отвечает за вычисление времени. Так вот, если не использовать $Curloc - автоматического обновления времени в основной локации не происходит. А если использовать - я не вижу результатов действий.
Основная локация —> gs [’Служебная’]
‘Служебная’: действия, time+30, —> gs [’time’]
Как обойти это, не могу понять.

Aleks Versus Moderator 03.11.2015 15:31 (10 years ago)

St-john:

Подскажите пожалуйста как сделать СИМУЛЯЦИЮ ЖИЗНИ персонажа.

St-john,
сложный вопрос. Набросаем для начала так:
Тебе нужно завести массив, описывающий персонажа. А лучше несколько массивов:
$personage_name[] - имя персонажа
$personage_place[] - в какой локации находится персонаж
$personage_list[] - расписание персонажа.
$personage_stop[] - фиксация персонажа.
В $personage_list - вносим код, который изменяет положение персонажа по времени, например:

$personage_list[0] = {
if $personage_stop[0]='':
! если персонаж не застопорен, изменяем местоположение
	if (time['hour']>17 and time['hour']<22):
		$personage_place[0]=str(rand(2,5))	&	!)ставим персонаж в случайную локацию между 2 и 5
	else
		$personage_place[0]=str(rand(6,12))	&	!)ставим персонаж в случайную локацию между 6 и 12
	end
end
}

В onnewloc циклически запускаешь код из каждой ячейки массива $personage_list[] (оператор dynamic). Ну и маркеры, метки и прочее - всё применимо к коду в $personage_list[]. Пока могу подсказать только так.

Aleks Versus:

St-john,
сложный вопрос. Набросаем для начала так:

Был бы рад увидеть хотя бы небольшой пример кода, который можно было бы опробовать. Как я уже говорил - QSP изучаю совсем недавно, и в массивах пока плаваю.

Log in or Register to post comments.