Game Maker - создание игр | HellRoom Games
Май 21, 2025, 02:31:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Реализация квестов  (Прочитано 7478 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Hamster099
«Старожил форума»
******

Репутация: 164
Offline Offline

Награды:
1000 сообщений!За постоянность! [100 дней на форуме]За лояльность! [+150 репутации]
API: GameMaker Studio Master
Сообщений: 1264



« Ответ #15 : Ноябрь 13, 2011, 12:38:32 »

да и зачем в начале игры присваивать сразу все игровые реплики? где-нибудь не то напишу или недопроверю, и вместо "game start!" увидим "END" 
А как ты хочешь, чтобы игровые реплики сами создавались по ходу игры? Если у тебя такая инновационная игра, то тогда конечно мой метод ненужен.
Чтобы не запутаться, грузи все реплики из ini, там их легче редактировать. Да и дебаггинг никто не отменял. А вот зачем создавать лишние объекты, если в любое время любую реплику можно прочитать из массива, это мне непонятно  errm
Записан
Xell
Участник
****

Репутация: 9
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 177


« Ответ #16 : Ноябрь 13, 2011, 13:49:40 »

да и зачем в начале игры присваивать сразу все игровые реплики? где-нибудь не то напишу или недопроверю, и вместо "game start!" увидим "END" 
А как ты хочешь, чтобы игровые реплики сами создавались по ходу игры? Если у тебя такая инновационная игра, то тогда конечно мой метод ненужен.
Чтобы не запутаться, грузи все реплики из ini, там их легче редактировать. Да и дебаггинг никто не отменял. А вот зачем создавать лишние объекты, если в любое время любую реплику можно прочитать из массива, это мне непонятно  errm
ну вот как мне считать из ini 3 реплики подряд?
в лучшем случае - timeline, в худшем - alarm
при этом 3 реплики мне придётся считывать не единожды (всмысле не одни и те же три), то есть в каждом случае нужен отдельный timeline
затем эти timeline должны считываться при каких-то событиях, то есть например при прохождении региона - значит нужно заранее иметь 100 объектов-регионов для каждого timeline
не думаю что я смогу в этом не запутаться, и не уверен, что требуется на постоянной основе держать в игре сотню "лишних" объектов 
ну или например квест засчитывается при убийстве монстра определённого типа, можно написать у этого типа монстра проверку (если квест взят - засчитываем как выполненный), но это дополнительные сложности, куда проще добавить этому типу монстра дополнительное событие уже по ходу игры, а потом удалить :)
Записан
Hamster099
«Старожил форума»
******

Репутация: 164
Offline Offline

Награды:
1000 сообщений!За постоянность! [100 дней на форуме]За лояльность! [+150 репутации]
API: GameMaker Studio Master
Сообщений: 1264



« Ответ #17 : Ноябрь 13, 2011, 16:36:23 »

ну вот как мне считать из ini 3 реплики подряд?
в лучшем случае - timeline, в худшем - alarm

ид квеста есть, адрес реплики есть.
Код:
i=ид_реплики
repeat(3) {реплика=quest[квест, i]; i+=1}
а вообще, делай как хочешь
Записан
Xell
Участник
****

Репутация: 9
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 177


« Ответ #18 : Ноябрь 13, 2011, 16:58:01 »

ну вот как мне считать из ini 3 реплики подряд?
в лучшем случае - timeline, в худшем - alarm

ид квеста есть, адрес реплики есть.
Код:
i=ид_реплики
repeat(3) {реплика=quest[квест, i]; i+=1}
а вообще, делай как хочешь
они же должны идти по одной и с промежутком, пропорциональным длине реплики
GM же объектно-ориентированный, без применения объектов ничего не сделать 
PS а так очень удобно, после создания внутри меню квестового объекта сразу задаём ему на степ вот такое вот событие
Код:
global.txt1='
if(instance_exists(o_drawer)==1)
{
global.timeline_for_text=timeline_add();

timeline_moment_add(global.timeline_for_text,global.time_to_read,"
global.speaker_color=global.player_color;
global.speaker_name=global.player_name;
global.replica_color=global.talk_color;
global.replica_text='+chr(39)+'it's the first quest replica'+chr(39)+';
");
global.time_to_read+=global.sttrd*string_length("it's the first quest replica");

timeline_moment_add(global.timeline_for_text,global.time_to_read,"
global.speaker_color=global.player_color;
global.speaker_name=global.player_name;
global.replica_color=global.talk_color;
global.replica_text='+chr(39)+'it's the second quest replica'+chr(39)+';
");
global.time_to_read+=global.sttrd*string_length("it's the second quest replica");

timeline_moment_add(global.timeline_for_text,global.time_to_read,"
global.speaker_color=global.player_color;
global.speaker_name=global.player_name;
global.replica_color=global.talk_color;
global.replica_text='+chr(39)+'it's the third quest replica'+chr(39)+';

");
global.time_to_read+=global.sttrd*string_length("it's the third quest replica");

timeline_moment_add(global.timeline_for_text,global.time_to_read,"
global.speaker_name='+chr(39)+''+chr(39)+';
global.replica_text='+chr(39)+''+chr(39)+';
q_beginning.lap=2;
");

with (o_drawer)
{
timeline_index=global.timeline_for_text;
timeline_running=1;
timeline_speed=1;
}
object_event_clear(q_beginning,ev_step,ev_step_normal);
}
'
в итоге 3 реплики подряд читаются, с правильным интервалом 
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.088 секунд. Запросов: 28.