07:03
ОбновитьСмайлыУправление мини-чатом
Мини чат

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Rasteador, Королёв  
Форум » Любительские модификации для "Корсаров" » Уроки по созданию модификаций » Урок по "быстрым переходам" (Как же прописать "быстрые переходы"?)
Урок по "быстрым переходам"
MettДата: Воскресенье, 24.11.2013, 19:54 | Сообщение # 1
 Гардемарин
Сообщений:
17
Награды:
Репутация:
Замечания:
Итак, большинство начинающих модмейкеров при прописывании новой локации сталкивается с такой проблемой: что написать в этой строке Locations[n].fastreload = "???";

Сейчас будем разбираться. Для этого заходим в папку program\battle_interface и открываем файл fast_reload_table.c
Что мы там увидим:
В самом верху файла задаются дефайны (#define) - новичкам их лучше не трогать.

Смотрим дальше...
Код
void initFastReloadTable()

собственно функция, которая отвечает за переходы, в ней они все и прописаны.

Теперь разберем содержимое этой функции на примере Форт Оранжа.
Код
makearef(curTable, objFastReloadTable.table.FortOrange);

это функция записывает значение objFastReloadTable.table.FortOrange в переменную curTable типа aref, т.е. был object objFastReloadTable.table.FortOrange, а стал aref curTable
Зачем это делается?
Для того чтобы движок каждый раз при инициализации (проще говоря: при запуске функции) не искал в переменных этот объект.
Сколько раз вызывается объект, столько раз будет происходить цикл поиска, а перевод на переменную сократит этот цикл во много раз, и, следовательно, уменьшится нагрузка на движок, что в свою очередь добавляет стабильности игре.

Рассмотрим готовый пример:
Код
curTable.l1.pic = FRP_STORE;
curTable.l1.tex = FRT_STORE;
curTable.l1.location = "FortOrange_store";

и

Код
objFastReloadTable.table.FortOrange.l1.pic = FRP_STORE;
objFastReloadTable.table.FortOrange.l1.tex = FRT_STORE;
objFastReloadTable.table.FortOrange.l1.location = "FortOrange_store";

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

Код
makearef(curTable,objFastReloadTable.table.FortOrange);

на месте FortOrange надо прописать то, что записано в Locations[n].fastreload
Например у меня будет прописано Locations[n].fastreload = "Nassau";
Тогда я буду писать так:
Код
makearef(curTable,objFastReloadTable.table.Nassau);


Теперь немного инфы про строки ниже.
Это собственно древо переходов.
В строке curTable.l1.pic задается картинка перехода.
В строке curTable.l1.tex задается текст, которым подписан переход.
В строке curTable.l1.location задается локация, в которую ведет «быстрый переход».
Если вы внимательно смотрели файл, то заметили, что значения в curTable.l1.pic и curTable.l1.tex задаются дефайнами.
Теперь рассмотри порядок «быстрых переходов».
Первым будет магазин, потом таверна и только потом резиденция (как видно l1, l2, l3).
Код
// store
curTable.l1.pic = FRP_STORE;
curTable.l1.tex = FRT_STORE;
curTable.l1.location = "FortOrange_store";
// tavern
curTable.l2.pic = FRP_TAVERN;
curTable.l2.tex = FRT_TAVERN;
curTable.l2.location = "FortOrange_tavern";
// residence
curTable.l3.pic = FRP_RESIDENCE;
curTable.l3.tex = FRT_RESIDENCE;
curTable.l3.location = "FortOrange_townhall";


К слову, это сделано для расчетов в других файлах, которые отвечают за интерфейс, сам же порядок переходов зависит от того, что расположили первым.
Допустим надо первым сделать резиденцию, пишем ее вверху, можно хоть с номером l100, она все ровно будет на первом месте, но лучше так не извращаться, мало ли к каким последствиям это приведет.
Код
// residence
curTable.l100.pic = FRP_RESIDENCE;
curTable.l100.tex = FRT_RESIDENCE;
curTable.l100.location = "FortOrange_townhall";
// store
curTable.l1.pic = FRP_STORE;
curTable.l1.tex = FRT_STORE;
curTable.l1.location = "FortOrange_store";


Если внимательно прочли и вникли в суть, то создать свои быстрые переходы не составит особого труда.

Урок написал Mett 04.04.2013


Сообщение отредактировал Mett - Воскресенье, 24.11.2013, 20:00
 
Форум » Любительские модификации для "Корсаров" » Уроки по созданию модификаций » Урок по "быстрым переходам" (Как же прописать "быстрые переходы"?)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика