RU 📌 Pinned

Как сделать?

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

Спасибо за пример :-) Чувством юмора ты не обделён, посмеялся :-)

Мне понравилось как ты код пишешь, теперь в своей игре переписую, компактно, очень понравилось.

Lexon:

Спасибо за пример :-) Чувством юмора ты не обделён, посмеялся :-)

Мне понравилось как ты код пишешь, теперь в своей игре переписую, компактно, очень понравилось.

Если что, обращайся, я на работе с нпс собаку съел. Их можно заставить реагировать и на одежду героя, и друг на друга и вообще на что хочешь, сколько в них жизни вложишь, такими они и получатся. Вот с оформлением это не ко мне, хтмл знаю плохо и всякие менюшечки и кнопочки меня утомляют.

DaGrozz:

slot=slot_num[npc]
memory[’<<npc>>,<<slot>>,<<X[npc]>>,<<Y[npc]>>,<<Z[npc]>>,<<R[npc]>>’]=total_minut

Индексация массива при любый условиях начинается с нуля, то есть memory[’<<npc>>,<<slot>>,<<X[npc]>>,<<Y[npc]>>,<<Z[npc]>>,<<R[npc]>>’] = memory[0]. А по поводу очистки многомерных массивов - многомерных массивов, по типу как в других языках(mass3) в Quest Soft Player не существует, а массив типа [’<<npc>>,<<slot>>,<<X[npc]>>,<<Y[npc]>>,<<Z[npc]>>,<<R[npc]>>’] одномерный и имеет определенный индекс! Например: mass[’Вася Пупкин’], если он идет первым, то его аналог mass[0] и из этого следует, что чтобы удалить значение нужно знать индекс. К пример у тебя идут массивы memory[’1’], memory[’2’]…. Не важно, что в них написано, они будут индексироваться по порядку(с нуля), но это долго и искать их это жесть! Но если ты уверен, что значение массива больше нигде не встретится, то найти индекс массива можно с помощью ARRPOS(0,’имя_массива’, любое значение), Например mass[ARRPOS(0,’mass’,12)] = 0 элемент массива mass, в котором есть значение 12, ноль или через killvar mass[ARRPOS(0,’mass’,12)] удалит переменную вовсе.

Слушай, а вот что бы разговор или квест был только раз в сутки, для этого нужно что то помудрить? Допустим кузнец даёт квест, помыть пол, для подъёма репутации у него, и пол можно мыть только раз в сутки, если раньше подойдёшь он тебя пошлёт, только через 24 часа. Никак не пойму как это прописать, допустим по времени запустить квест, легко, а вот как что бы через сутки

Lexon:

Слушай, а вот что бы разговор или квест был только раз в сутки, для этого нужно что то помудрить? Допустим кузнец даёт квест, помыть пол, для подъёма репутации у него, и пол можно мыть только раз в сутки, если раньше подойдёшь он тебя пошлёт, только через 24 часа. Никак не пойму как это прописать, допустим по времени запустить квест, легко, а вот как что бы через сутки

в локации когда берёшь квест можно прописать:

dayQW = 1

и в локации где у тебя прописан календарь при переходе времени с 23.59 на следующий день сделать обнуление:

dayQW = 0

соответственно квест у тебя будет начинаться-проверяться при посещении локации
if dayQW = 0:

Aleks Versus,
DarkDen,
Спасибо, буду думать. Но скорее всего придется отказаться от памяти нпс. Слишком проблемно.
Lexon,
Ну или другим способом. Как я тебе фингал сделал в твоем примере. quest_timer=time+60*24 И проверять if quest_timer>time: тогда можно запускать разговор

DaGrozz:

quest_timer=time+60*24 И проверять if quest_timer>time: тогда можно запускать разговор

в этом случае квест можно будет взять только через 24 часа, т.е. завтра по времени как сегодня

Aaaspavel:

DaGrozz:

quest_timer=time+60*24 И проверять if quest_timer>time: тогда можно запускать разговор

в этом случае квест можно будет взять только через 24 часа, т.е. завтра по времени как сегодня

Ну а в твоем случае поговорив в 23.55, через пять минут можно говорить опять. И тот и другой способ надо применять в зависимости от ситуации.

Я кстати со знаком ошибся, да и вообще лучше подстраховатся. if quest_timer<time and quest_timer>0:

У меня вопрос. Возможно вы уже отвечали на него, но мне всё же не понятно. Мне нужно сделать рандомный переход на локацию, например: есть три локации, мне надо чтобы рандом перебрасывал на одну из них, при этом была возможность настроить шанс попадание на ту или иную локацию. Всё что я знаю про рандомный переход:
RAND (0,3)
GT “1”+rand(0,1)
GT “2”+rand(2,3) Только всё это работает криво, через раз и не более чем на 2 локациях. Желательно по яснее, я глубоко в коды не погружался. Мне проще делать дольше но не загружать голову огромным количеством кодов.

DRSOPE,

chance=rand(1,100)
if chance<=30:gt'loc1'
if chance>30 and chance<60:gt'loc2'
if chance>=60:gt'loc3'

DaGrozz:

Aaaspavel написал(а):
DaGrozz написал(а):
quest_timer=time+60*24 И проверять if quest_timer>time: тогда можно запускать разговор
в этом случае квест можно будет взять только через 24 часа, т.е. завтра по времени как сегодня
Ну а в твоем случае поговорив в 23.55, через пять минут можно говорить опять. И тот и другой способ надо применять в зависимости от ситуации.

Я кстати со знаком ошибся, да и вообще лучше подстраховатся. if quest_timer<time and quest_timer>0:

ну, я исходил из обычной практики, что локация в которой берется квест не круглосуточный супермаркет, а соответственно имеет время работы, к примеру, с утра до вечера и таком случае обнуление квеста переходом дня не запускает автоповтора через 5 минут, а как минимум завтра с начала рабочего времени, а в случае если время на разговор с квестодателем тоже тратится:
if quest_timer<time and quest_timer>0:
time=time+30
quest_timer=time+60*24
то придя сегодня к закрытию кузницы и взяв квест - завтра этот квест обновится уже после закрытия кузницы и взять его будет невозможно до послезавтра

DeathSpace:

Re: Как сделать?

Ребят,мне нужно чтобы мой qsp файл сразу открывался во весь экран а не окошком т.е. чтобы мне не нужно было нажимать ALT+ENTER.
Можно так сделать?

это зависит от источника происхождения qspgui, у меня их уже несколько, они в архивах с играми идут, так вот, одни открываются только в оконном режиме не сохраняя расположения элементов в момент закрытия, другие в полноэкранном и сохраняя расположение элементов

Задачка сия для любителей поковыряться в аере (коими я считаю Алекса Версуса и Вервольфа) и прочих пытливых умов.

Цель: сделать подсвечивающиеся кнопки в игре.
ТЗ от Байта:

1. разместить окошко с действиями в заданном месте экрана
2. назначить нестандартный шаблон для действий: а) без наведения б) с наведением
3. всё есть тут http://qsp.su/misc/aero/help.htm - см. Параметры основного экрана / Список действий
шаблон == формат
4. в форматах могут использоваться те же HTML элементы и стили, что и для обычного текста
5. после указания шаблонов (форматов), добавить несколько ACT’ов
6. Выложить получившийся код в свободный доступ. Лучший код можно добавить в документацию. Нужно даже. :)

Примечание: там в справке %IMAGE% - это то, что написано вторым аргументом в ACT. можно не использовать совсем.
Как то так :) Есть желающие попробовать реализовать шаблон?

как сделать…
короче идея такая - джекил и хайд, 2 гг сразу, 24 игровых часа каждый, переключение в 00 часов каждого дня, как сделать двойные статы понятно, а вот как правильно задать условия для переключения с одного на другого через день никак не разберусь, чёт-нечет как словить?

Log in or Register to post comments.