Показать сообщение отдельно
Старый 10.12.2008, 15:39   #1194
kraw

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М:Декомпилятор скриптов Готики

2Vam: Одна идея и одна просьба, относящиеся к GothicSourcer.

1) Идея такая. А что, если сделать в компилляторе такую вещь, как макроподстановки? Поясню на примере. Как известно, когда вносишь в скрипты новый класс (персонажа, диалог, предмет...), то он не появится пока не переинициализируешь игру. Ну, то есть, пока не переиграешь ее заново. Это порождает значительные неудобства при написании мода, его отладке и тестировании. А можно было бы сделать так - разработчик, начиная писать мод, заводит заранее n-ное количество "пустых" персонажей, диалогов и т. п.

Что-то вроде

instance npc1(Npc_Default)
{
* * * *name[0] = "Пусто";
* * * *npcType = npctype_ambient;
* * * *guild = GIL_NOV;
* * * *level = 9;
* * * *voice = 3;
* * * *id = 1311;
* * * *attribute[ATR_STRENGTH] = 15;
* * * *attribute[ATR_DEXTERITY] = 15;
* * * *attribute[ATR_MANA_MAX] = 0;
* * * *attribute[ATR_MANA] = 0;
* * * *attribute[ATR_HITPOINTS_MAX] = 148;
* * * *attribute[ATR_HITPOINTS] = 148;
* * * *Mdl_SetVisual(self,"HUMANS.MDS");
* * * *Mdl_ApplyOverlayMds(self,"Humans_Mage.mds");
* * * *Mdl_SetVisualBody(self,"hum_body_Naked0",1,1,"Hum _Head_Psio
nic",25,2,nov_armor_m);
* * * *B_Scale(self);
* * * *Mdl_SetModelFatness(self,-1);
* * * *fight_tactic = FAI_HUMAN_COWARD;
* * * *daily_routine = Rtn_start_1311;
};


func void Rtn_start_1311()
{
* * * *TA_Stay(0,0,8,0,"NOWHERE");
* * * *TA_Stay(8,0,24,0,"NOWHERE");
};

Дальше npc2, npc3 и т. д.

Также заводит пустые диалоги

instance dia1(C_Info)
{
* * * *npc = npc1;
* * * *nr = 7;
* * * *important = 0;
* * * *condition = dia1_Condition;
* * * *information = dia1_Info;
* * * *permanent = 0;
* * * *description = "";
};

func int dia1_Condition()
{
* * * *return 0;
};

func void dia1_Info()
{
};

Далее dia2, dia3 и т. д.

Они при инициализации игры сразу появятся , но, т. к. персонажи находятся "нигде", а диалоги с return0, никак проявляться не будут.

И когда разработчику понадобился новый персонаж, то он пишет что-то вроде (синтаксис, конечно, может быть другой)

#DEFINE Nov_1311_Ainar npc1

Понадобился новый диалог, разработчик пишет

#DEFINE DIA_Nov_1311_Ainar_Hellow dia1

И в дальнейшем использует в качестве идентификакторов не невразумительные npc1 и dia1, а сразу ему понятные Nov_1311_Ainar и DIA_Nov_1311_Ainar_Hellow. (или что-то вроде #Nov_1311_Ainar#)

А компиллятор во время обработки подставлял бы вместо макросов их значения.


2) Теперь просьба. Было бы здорово, если бы появилась возможность менять размер шрифта в редакторе.

Поставил я Готику и компиллятор на eeepc 901. Получилось замечательный инструмент разработчика модов. Только вот не хватает одной возможности - менять размер шрифта в редакторе компиллятора, а то разрешение на экране большое (1024x600), а диагональ экрана - маленькая. Я бы увеличил шрифт, и работа стала бы более комфортной. Причем интересует только размер шрифта в самом редакторе. Меню и прочая "обвязка" не интересует.

Ответить с цитированием