|
|
25.06.2005, 14:53
|
#481
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd:
Начинаю компиляцию декомпилированного файла
|
А попробуй начать просто компиляцию, т.е. режим
|
|
|
25.06.2005, 17:05
|
#483
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd:
А обязательно нужно прописывать в Gorhic src?
|
Гм, если хочешь, чтобы файл скомпилировался, то да. Если не хочешь - нет. Чего тут непонятного?
И выше приводились *описание исправления 3 ошибок а в каких папках их нужно исправлять?
|
Чувак, хватит называть все подряд папками. Есть такое специальное понятие - файл. Это такая штука, в которой инфа хранится. А папка - это такая штука, где файлы хранятся. А винчестер - это такая штука, в которой папки хранятся. Это понятно, чувак? ;D Пройдемся по теории. Странная и ничего не значащая на твой взгляд надпись, которую выдает zSpy, на самом деле имеет вполне конкретное значение.
Код:
00:08 Fatal:-1 U: PAR::File *STORY/NPC/NONE_666_Leo.d not found.(line 58)…<zParser.cpp,#599>
Это значит, что файл STORY/NPC/NONE_666_Leo.d , прописанный в файле GOTHIC.SRC, на самом деле не существует. Тебе кажется, что существует, но его там нет. Удали все из папки _decompiled/, потом зайди в папку content/STORY/NPC/ и проверь, есть ли там файл NPC/NONE_666_Leo.d. Потом скомпилируй в режиме zcomp:1,0.
И ещё никто б не мог попытаться у себя вставить NPC(NONE_666_Leo) с помощью проги от Vama и потом описать подробно что нужно делать и где и как исправить ошибки при компиляции если они есть?
|
Тут все научились вставлять НПС, да не какого-то жалкого NONE_666_Leo, а любых, уже год назад. И описывать подробно никто тут ничего не будет, тем более это описано подробно уже сотни раз.
и ещё есть ли ещё способ сделать игру русской после вставления NPC или диалогов кроме проги от Vama?
|
Чувак, игра русская, если русские скрипты, все очень просто. Ты можешь сделать русские скрипты как угодно - сам написать :), декомпилировать прогой Vam'a, попросить у кого-нибудь, в конце концов.
|
|
|
26.06.2005, 20:00
|
#484
|
|
Re: Скриптинг в Готике
Установил Готику 2(от Акелы).Потом взял OU.BIN и Gothic.DAT из мода Alternative_G2a(там по идее исправлены все ошибки) вставил в C:\Decompiler\_work\data\Scripts\_compiled и в C:\Decompiler\_work\data\Scripts\content\Cutscene Потом декомпелировал DAT файл. Вставил своего NPC(приведённый выше) В _decompiled и content(вставил все папки которые находились в _decompiled). Потом удолил всё из _decompiled.Зашёл в content там мой NPC был и везде был прописан(т.е в Npc_Globals, Startup, gothic.src( после Story\NPC\NONE_100_Xardas.d прорисал Story\NPC\NONE_666_Leo.d .Начал компиляцию но в конце выдаёт ошибку 00:04 Fatal:-1 U: PAR::File content /story/npc/none_666_Leo.d not found.(line 58)…<zParser.cpp,#599> Почему компиляция не видит?
Добавление от 06/25/05, в 20:53:07 И ещё когда я вставлял NPC я называл файл NONE_666_Leo.d и когда компелировал о н фактически сразу выдавл ошибку 00:04 Fatal:-1 U: PAR::File content /story/npc/none_666_Leo.d not found.(line 5…<zParser.cpp,#599> и компиляция останавливалась а сейчас я попробывад назвать файл NONE_666_Leo(без .d) и когда начал компиляцию то он эту ошибку не выдавал и красных ошибок не было только синии.По идее нужно только исправить синии ошибки и компиляция завершится до конца.Могло ли из-за .d выдавать ошибку 00:04 Fatal:-1 U: PAR::File content /story/npc/none_666_Leo.d not found.(line 5…<zParser.cpp,#599>?
Добавление от 06/26/05, в 13:35:57 Всем кто мне помог разобраться с прогой от Vama и встаквки NPC и диалогов ОГРОМНОЕ спосибо!Наконец то у меня всё получилось!А не выходило из-за какой-то глупой ошибки.Ещё раз всем спосибо.
Добавление от 06/26/05, в 19:20:56 Когда вставляешь диалог в игру,и когда начинаешь говорить с NPC то начинаются глюки(начинает говорить только через секунд 30).так же у меня было с модом dunklemagie.А когда установил мод Alternative_G2a то там было всё нормально. Как это можно исправить?
|
|
|
28.06.2005, 14:16
|
#485
|
|
Re: Скриптинг в Готике
Хотел создать амулет восстоновление маны(онуже расматривался в этой ветки): Вот что я делал В папке AI\Human\TA_Human создал файл ZS_Recharger В нём прописал func void ZS_Recharger() { B_ResetAll (self); B_ClearPerceptions (self); };
func int ZS_Recharger_loop() { if (Npc_GetStateTime(self) > 3) { Npc_SetStateTime (self, 0);
if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) { hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1; };
AI_Teleport (self, Npc_GetNearestWP (hero)); };
return LOOP_CONTINUE; };
func void ZS_Recharger_end() { AI_PlayAni (self,"T_LGUARD_2_STAND"); }; Далее в файле TA.d дописываем следующую строчку: func void TA_Recharger (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint) {TA_Min (self, start_h,start_m, stop_h, stop_m, ZS_Recharger, waypoint);}; Потом создал NPC(None_999_Recharger) instance None_999_Recharger (Npc_Default) { name = ""; guild = GIL_NONE; npctype = NPCTYPE_AMBIENT; flags = NPC_FLAG_IMMORTAL|NPC_FLAG_GHOST; level = 999; voice = 0; id = 999; noFocus = 1; bodyStateInterruptableOverride = 1;
damagetype = DAM_EDGE; damage [DAM_INDEX_EDGE] = 0;
//-------- visuals -------- B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M); Mdl_SetModelScale (self, 0.01, 0.01, 0.01);
//-------- talents -------- B_SetFightSkills (self, 0);
//------------- ai ------------- fight_tactic = FAI_HUMAN_COWARD;
// ------ TA anmelden ------ daily_routine = Rtn_start_999; }; TA_Stand_Eating (08,00,23,00,"NW_FARM1_OUT_03"); TA_Stand_ArmsCrossed (23,00,08,00,"NW_FARM1_OUT_03"); }; Его везде прописал(т.е в глобалсе в статупе и в Gothic src). Потом дописал в файле It_Amulette.d следующее: INSTANCE ItAm_Mana_Regener(C_Item) { name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET;
value = Value_Mana_Regener;
visual = "ItAm_Strg_01.3ds";
visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Mana_Regener; on_unequip = UnEquip_ItAm_Mana_Regener;
wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER";
description = "Амулет регенерации маны"; TEXT[5] = NAME_Value; COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; };
FUNC VOID Equip_ItAm_Mana_Regener() { Npc_ExchangeRoutine (None_999_Recharger,"Regeneration"); };
FUNC VOID UnEquip_ItAm_Mana_Regener() { Npc_ExchangeRoutine (None_999_Recharger,"Start"); }; Но когда компелирую то прога(Vama) выдаёт 3 ошибки 1)00:14 Fault:0 U: PAR:ITEMS/IT_AMMULETTED.D:VALUE_MANA_REGENER undeclfred name (line 427)…<zParser.cpp,#447 2) 00:14 Fault:0 U: PAR:ITEMS/IT_AMMULETTED.D:NONE_999_Recharger undeclfred name (line 427)…<zParser.cpp,#447 3) 00:14 Fault:0 U: PAR:ITEMS/IT_AMMULETTED.D:NONE_999_Recharger undeclfred name (line 427)…<zParser.cpp,#447 Вроде бы всё делал как было написано кроме NPC а то если как там было написано то он выдавл ошибки. Как их можно исправить?
Добавление от 06/28/05, в 12:51:47 Подправил непися instance None_999_Recharger (Npc_Default) { name = ""; guild = GIL_NONE; npctype = NPCTYPE_AMBIENT; flags = NPC_FLAG_IMMORTAL; level = 999; voice = 0; id = 999; noFocus = 1; bodyStateInterruptableOverride = 1;
damagetype = DAM_EDGE; damage [DAM_INDEX_EDGE] = 0;
//-------- visuals -------- B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M); Mdl_SetModelScale (self, 0.01, 0.01, 0.01);
//-------- talents -------- B_SetFightSkills (self, 0);
//------------- ai ------------- fight_tactic = FAI_HUMAN_COWARD;
// ------ TA anmelden ------ daily_routine = Rtn_start_999; };
func void Rtn_Regeneration_999 () { TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero)); TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero)); };
func void Rtn_start_999 () { TA_Stand_Eating (08,00,23,00,"NW_FARM1_OUT_01"); TA_Stand_ArmsCrossed (23,00,08,00,"NW_FARM1_OUT_01"); }; Теперь прога от Vama касательно непися ошибок не выдавала. Теперь выдаёт только одну ошибку 00:14 Fault:0 U: PAR:ITEMS/IT_AMULETTED.D:VALUE_MANAREGENER undeclared name (line 428)…<zError.cpp,#477> Как можно исправить эту ошибку?
Добавление от 06/28/05, в 13:36:19 И ещё прописал омулет в Gothic src.Всё равно выдаёт ту же ошибку. И ещё в IT_Amulette.d прописаны другие амулеты например const int Value_Am_ProtFire = 600;А мой амулет который я вставил нужно так прописываьь если да то как?И ещё что означает эта часть func void Rtn_Regeneration_999 () { TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero)); TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero)); }; Я её изменил во втором случае на веппоинт.может быть из-за этого ошибка? И вобще что я не правильно делаю?
|
|
|
28.06.2005, 15:28
|
#486
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd: Просто поменяй везде
на любое число, например на 100.
Я её изменил во втором случае на веппоинт.может быть из-за этого ошибка?
|
Изменил зря, но ошибка не из-за этого.
|
|
|
28.06.2005, 16:38
|
#487
|
|
Re: Скриптинг в Готике
2Bliz@rd:
И вобще что я не правильно делаю?
|
Сначала, вообще-то разбираются - что для чего и зачем, а потом делают, ты же пытаешься сделать наоборот, сначала что-то напишешь, а потом разбираешься (да еще и не сам) что же в результате получилось. Первоначально нужно выучить синтаксис и грамматику языка скриптов.
|
|
|
29.06.2005, 20:17
|
#488
|
|
Re: Скриптинг в Готике
Попытался всё сделать сначала,вот что я делал: 1)Созал непися(NONE_999_Recharger): instance None_999_Recharger (Npc_Default) { name = ""; guild = GIL_NONE; npctype = NPCTYPE_AMBIENT; flags = NPC_FLAG_IMMORTAL; level = 999; voice = 0; id = 999; noFocus = 1; bodyStateInterruptableOverride = 1;
damagetype = DAM_EDGE; damage [DAM_INDEX_EDGE] = 0;
//-------- visuals -------- B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M); Mdl_SetModelScale (self, 0.01, 0.01, 0.01);
//-------- talents -------- B_SetFightSkills (self, 0);
//------------- ai ------------- fight_tactic = FAI_HUMAN_COWARD;
// ------ TA anmelden ------ daily_routine = Rtn_start_999; };
func void Rtn_Regeneration_999 () { TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero)); TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero)); };
func void Rtn_start_999 () { TA_Stand_Eating (08,00,23,00,"NW_FARM1_OUT_01"); TA_Stand_ArmsCrossed (23,00,08,00,"NW_FARM1_OUT_01"); }; Потом его прописал Глобалсе var C_Npc Recharger; и Recharger = Hlp_GetNpc(NONE_999_Recharger); Потом в статупе Wld_InsertNpc(NONE_999_Recharger,"NW_FARM1_OUT_01" ); Всё это я прописывал после Лобарта. И ещё прописал в Gothic src Story\NPC\NONE_999_Recharger.d Прописал ниже ксардаса. Потом начал вставлять амулет: Сначала зашёл AI\Human\TA_Human и создал там ZS_Recharger В нём прописал func void ZS_Recharger() { B_ResetAll (self); B_ClearPerceptions (self); };
func int ZS_Recharger_loop() { if (Npc_GetStateTime(self) > 3) { Npc_SetStateTime (self, 0);
if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) { hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1; };
AI_Teleport (self, Npc_GetNearestWP (hero)); };
return LOOP_CONTINUE; };
func void ZS_Recharger_end() { AI_PlayAni (self,"T_LGUARD_2_STAND"); }; Потом зашёл в TA.D и прописал в самом конце func void TA_Recharger (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint) {TA_Min (self, start_h,start_m, stop_h, stop_m, ZS_Recharger, waypoint);}; Потом зашёл в IT_Amulette.D и после этого instance ItAm_Hp_Mana_01(C_Item) { name = "Амулет просвещения"; mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET; value = Value_Am_HpMana; visual = "ItAm_Hp_Mana_01.3ds"; visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Hp_Mana_01; on_unequip = UnEquip_ItAm_Hp_Mana_01; wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER"; description = "Амулет просвещения"; text[2] = NAME_Bonus_HP; count[2] = Am_HpMana_Hp; text[3] = NAME_Bonus_Mana; count[3] = Am_HpMana_Mana; text[5] = NAME_Value; count[5] = value; inv_zbias = INVCAM_ENTF_AMULETTE_STANDARD; }; прописал это INSTANCE ItAm_Mana_Regener(C_Item) { name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET;
value = 100;(здесь ИЗМЕНИЛ как и сказа Tycooon)
visual = "ItAm_Strg_01.3ds";
visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Mana_Regener; on_unequip = UnEquip_ItAm_Mana_Regener;
wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER";
description = "Амулет регенерации маны"; TEXT[5] = NAME_Value; COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; };
FUNC VOID Equip_ItAm_Mana_Regener() { Npc_ExchangeRoutine (None_999_Recharger,"Regeneration"); };
FUNC VOID UnEquip_ItAm_Mana_Regener() { Npc_ExchangeRoutine (None_999_Recharger,"Start"); }; Потом его прописал в Gothic src После AI\Human\TA_Human\ZS_Wash_FP.d Прописал AI\Human\TA_Human\ZS_Recharger.d Потом начал компиляцию и прога от Vama выдаёт ошибку(красным это после того как я исправил value = Value_Mana_Regener; на value = 100;а раньше ошибка была синяя приведена выше) Ошибка:00:01 Fatal:-1 U: PAR:ITEMS/IT_AMULETTED.D:Suntax error INSTANCE (line 420)…<zPARSER.cpp,#599> Как можно исправить эту ошибку(вроде бы заменил Value_Mana_Regener на 100(исправил в одном месте))?Заранее спосибо.
Добавление от 06/28/05, в 20:45:12 И ещё хотел попробывать сделать точь в точь как написал Finch. func void Rtn_Regeneration_999 () { TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero)); TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero)); };
func void Rtn_start_999 () { TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero)); TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero)); }; Но не знаю после кого в Startup.d и Npc_Globals.d нужно прописывать(незнаю где находится веппоинт)Никто бы не могсказать после кого нужно прописывать в глобалсе и стаупе?
Добавление от 06/29/05, в 19:37:34 Пытался вставить просто амулет без непися(а потом просто вставит его в инвентарь NPC), вот что я делал: В папке AI\Human\TA_Human создал файл ZS_Recharger Вот его содержимое: func void ZS_Recharger() { B_ResetAll (self); B_ClearPerceptions (self); };
func int ZS_Recharger_loop() { if (Npc_GetStateTime(self) > 3) { Npc_SetStateTime (self, 0);
if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) { hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1; };
AI_Teleport (self, Npc_GetNearestWP (hero)); };
return LOOP_CONTINUE; };
func void ZS_Recharger_end() { AI_PlayAni (self,"T_LGUARD_2_STAND"); }; Далее в файле TA.d дописывал следующую строчку: func void TA_Recharger (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint) {TA_Min (self, start_h,start_m, stop_h, stop_m, ZS_Recharger, waypoint);}; Ну и в конце-концов вставил в файле It_Amulette.d следующее: INSTANCE ItAm_Mana_Regener(C_Item) { name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET;
value = Value_Mana_Regener;
visual = "ItAm_Strg_01.3ds";
visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Mana_Regener; on_unequip = UnEquip_ItAm_Mana_Regener;
wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER";
description = "Амулет регенерации маны"; TEXT[5] = NAME_Value; COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; }; Но в компиляцие выдаёт ошибку: 00:00 Fatal:-1 U: PAR:ITEMS/IT_AMYLETTED.D:Syntax error:INSTANCE(line 421)…<zParser.cpp,#599> Указывает на эту строчку name = NAME_Amulett; Что я делаю не правильно?
Я попытался вставить амулет (защита от магии 50) всё получилось Просто вставил в папку IT_Amulette.d(_decompiled\Items): INSTANCE ItAm_Prot_Fire(C_Item) { name = "Амулет из жерла вулкана";
mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET;
value = 10000;
visual = "ItAm_Prot_Fire_01.3ds";
visual_skin = 0; material = MAT_METAL;
wear = WEAR_EFFECT; on_equip = Equip_Prot_Fire; on_unequip = UnEquip_Prot_Fire;
description = name;
TEXT[2] = "Защита от огня"; COUNT[2] = 50; TEXT[5] = NAME_Value; COUNT[5] = 10000;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; };
FUNC VOID Equip_Prot_Fire() { self.protection [PROT_FIRE] += 50; };
FUNC VOID UnEquip_Prot_Fire() { self.protection [PROT_FIRE] -= 50; }; потом вставил его в инвентарь( CreateInvItems (self,ItAm_Prot_Fire,1)Компелирую и всё. А с омулетом востоновления маны не получается какую я делаюошибку?
|
|
|
29.06.2005, 22:33
|
#491
|
|
Re: Скриптинг в Готике
Я создал амулет,вот что я делал: В AI\Human\TA_Human создал файл ZS_Recharger В нём прописал func void ZS_Recharger() { * * B_ResetAll (self); * * B_ClearPerceptions (self); };
func int ZS_Recharger_loop() { * * if (Npc_GetStateTime(self) > 3) * * { * * * * * Npc_SetStateTime (self, 0);
* * * * * if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) * * * * * { * * * * * * * * * * * hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1; * * * * * };
* * * * * AI_Teleport (self, Npc_GetNearestWP (hero)); * * * * * * * };
* * return LOOP_CONTINUE; };
func void ZS_Recharger_end() { * * AI_PlayAni (self,"T_LGUARD_2_STAND"); * * * }; потом TA.D вставил в конце следующее: func void TA_Recharger (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint){TA_Min(self,start_h,start_m, stop_h, stop_m, ZS_Recharger,waypoint);}; Потом создал непися(NONE_666_Leo): INSTANCE NONE_666_Leo(Npc_Default) { * * *// ------ NSC ------ * * *name ** * * * * *= "Лео"; * * *guild ** * * * * *= GIL_NONE; * * *id ** * * * * * * * *= 666; * * *voice ** * * * * *= 6; * * *flags * * * = FALSE; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *npctype * * * * * *= NPCTYPE_MAIN; * * * * * *// ------ Attribute ------ * * *B_SetAttributesToChapter (self, 2); * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// ------ Kampf-Taktik ------ * * *fight_tactic * * * * * *= FAI_HUMAN_NORMAL; * * * * * * * * *// ------ Equippte Waffen ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// ------ Inventory ------ * * *CreateInvItems (self,ITWr_Addon_William_01,1);//Joly: nicht austauschen oder umbenennen. * * *CreateInvItems (self,ITKe_Lockpick,2); * * *CreateInvItems (self,ITFo_Apple,1); * * * * * * * * * * CreateInvItems (self, ItAm_Mana_Regener,1); * * *// ------ visuals ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *B_SetNpcVisual ** * * * * *(self, MALE, "Hum_Head_Thief", Face_N_Homer, BodyTex_N, ITAR_BAU_L); * * * * * * *Mdl_SetModelFatness * * *(self, 0.9); * * *Mdl_ApplyOverlayMds * * *(self, "Humans_Relaxed.mds"); * * * * * *// ------ NSC-relevante Talente vergeben ------ * * *B_GiveNpcTalents (self); * * * * * *// ------ Kampf-Talente ------ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *B_SetFightSkills (self,30);
* * *// ------ TA anmelden ------ * * *daily_routine ** * * * * *= Rtn_Start_666; };
FUNC VOID Rtn_Start_666 () { * * * * * *TA_Stand_Eating * *(08,00,23,00,"NW_FARM1_OUT_01");
TA_Stand_ArmsCrossed * (23,00,08,00,"NW_FARM1_OUT_01"); }; Везде его прописал, потом прописал амулет в Gothic src: (AI\Human\TA_Human\ZS_Recharger.d) и прописал амулет IT_Amulette.D: INSTANCE *ItAm_Mana_Regener(C_Item) { * * name * * * * * * * * * = * * *NAME_Amulett;
* * mainflag * * * * * * = * * *ITEM_KAT_MAGIC; * * flags * * * * * * * * * = * * *ITEM_AMULET;
* * value * * * * * * * * * = * * *10000;
* * visual * * * * * * * * * = * * *"ItAm_Strg_01.3ds";
* * visual_skin * * * = * * *0; * * material * * * * * * = * * *MAT_METAL; * * on_equip * * * * * *= * * *Equip_ItAm_Mana_Regener; * * on_unequip * * * * * *= * * *UnEquip_ItAm_Mana_Regener;
* * wear * * * * * * * * *= * * * WEAR_EFFECT; * * effect * * * * * * * * *= * * *"SPELLFX_ITEMGLIMMER";
* * description * * * * * *= "Амулет регенерации маны"; * * * * * * TEXT[5] * * * * * * * * *= NAME_Value; * * COUNT[5] * * * * * *= value;
* * INV_ZBIAS * * * * * * * * * * * *= INVCAM_ENTF_AMULETTE_STANDARD; * * };
FUNC VOID Equip_ItAm_Mana_Regener() { * * Npc_ExchangeRoutine * * *(None_666_Leo,"Regeneration"); };
FUNC VOID UnEquip_ItAm_Mana_Regener() { * * Npc_ExchangeRoutine * * *(None_666_Leo,"Start"); }; Закомпилировал,ошиок не было.Вставляю датник и оушник в игру. Потом захожу в игру убиваю Лео беру амулет с помощью кодов становлюсь Паладином,трачу Ману потом одеваю амулет а он не прибавляет манны. Почему амулет не работает? * TycoooN а не мог ли ты написать как ты вставлял амулет если можно по подробней.Был бы очень благодарен!
|
|
|
29.06.2005, 22:55
|
#492
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd: Я не говорил, что он у меня не работает, я всего лишь дописал в IT_Amulette.d это:
Код:
INSTANCE ItAm_Mana_Regener(C_Item){ name = NAME_Amulett; mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET; value = 10000; visual = "ItAm_Strg_01.3ds"; visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Mana_Regener; on_unequip = UnEquip_ItAm_Mana_Regener; wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER"; description = "Амулет регенерации маны"; TEXT[5] = NAME_Value; COUNT[5] = value; INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; };
и скомпировал, ошибок не выдало :)
|
|
|
29.06.2005, 23:08
|
#493
|
|
Re: Скриптинг в Готике
2Bliz@rd:
Но в компиляцие выдаёт ошибку: 00:00 Fatal:-1 U: PAR:ITEMS/IT_AMYLETTED.D:Syntax error:INSTANCE(line 421)…<zParser.cpp,#599> Указывает на эту строчку name = NAME_Amulett; Что я делаю не правильно?
|
У меня такое ощущение, что ты компилируешь одни скрипты, а ошибки ищешь в других. Ключ -zcomp:1,0 - компиляция скриптов в директории Content. Ключ -zcomp:1,1 - компиляция скриптов в директории _decompiled. Результат же (дат и оу файлы) в любом случае находится в директории _decompiled.
|
|
|
30.06.2005, 13:37
|
#495
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd: Тьфу сорри, не до конца скопировал :) Вот что я вставлял:
Код:
INSTANCE *ItAm_Mana_Regener(C_Item){ * *name * * * * * * * * * = * * *NAME_Amulett; * *mainflag * * * * * * = * * *ITEM_KAT_MAGIC; * *flags * * * * * * * * * = * * *ITEM_AMULET; * *value * * * * * * * * * = * * *100; * *visual * * * * * * * * * = * * *"ItAm_Strg_01.3ds"; * *visual_skin * * * = * * *0; * *material * * * * * * = * * *MAT_METAL; * *on_equip * * * * * *= * * *Equip_ItAm_Mana_Regener; * *on_unequip * * * * * *= * * *UnEquip_ItAm_Mana_Regener; * *wear * * * * * * * * *= * * * WEAR_EFFECT; * *effect * * * * * * * * *= * * *"SPELLFX_ITEMGLIMMER"; * *description * * * * * *= "Амулет регенерации маны"; * * * * * *TEXT[5] * * * * * * * * *= NAME_Value; * *COUNT[5] * * * * * *= value; * *INV_ZBIAS * * * * * * * * * * * *= INVCAM_ENTF_AMULETTE_STANDARD; * *};FUNC VOID Equip_ItAm_Mana_Regener(){ * *//Npc_ExchangeRoutine * * *(None_999_Recharger,"Regeneration");};FUNC VOID UnEquip_ItAm_Mana_Regener(){ * *//Npc_ExchangeRoutine * * *(None_999_Recharger,"Start");};
З.Ы. На строки
Код:
Npc_ExchangeRoutine(None_999_Recharger,"Start");
и
Код:
Npc_ExchangeRoutine(None_999_Recharger,"Regeneration");
он у меня ругался, потому что None_999_Recharger нигде не прописан, поэтому эти строки я закомментировал ;)
|
|
|
30.06.2005, 17:58
|
#498
|
|
Re: Скриптинг в Готике
Вот NPC(NONE_99_Recharger): instance None_999_Recharger (Npc_Default) { name = ""; guild = GIL_NONE; npctype = NPCTYPE_AMBIENT; flags = NPC_FLAG_IMMORTAL|NPC_FLAG_GHOST; level = 999; voice = 0; id = 999; noFocus = 1; bodyStateInterruptableOverride = 1;
damagetype = DAM_EDGE; damage [DAM_INDEX_EDGE] = 0;
//-------- visuals -------- B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M); Mdl_SetModelScale (self, 0.01, 0.01, 0.01);
//-------- talents -------- B_SetFightSkills (self, 0);
//------------- ai ------------- fight_tactic = FAI_HUMAN_COWARD;
daily_routine = Rtn_start_999; };
func void Rtn_Regeneration_999 () { TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero)); TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero)); };
func void Rtn_start_999 () { TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero)); TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero)); };
Кто-нибудь может сказать после кого в Startup.D нужно прописать вот это: Wld_InsertNpc (None_999_Recharger,Npc_GetNearestWP (hero)); Просто полностью пытаюся делать как делал Finch а вот где веппоинт находится не знаю он просто указал Wld_InsertNpc (None_999_Recharger,Npc_GetNearestWP (hero)); а где его прописывать не знаю?
|
|
|
30.06.2005, 18:53
|
#500
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Нефариус:
Что нужно писать в диалоговом скрипте, чтобы во время разговора предмет был удален из инвентаря?
|
void Npc_RemoveInvItems (c_npc owner, int itemInstance, int amount); - указанное кол-во amount предметов itemInstance удаляется из инвентаря НПС owner и из игры. 2Bliz@rd:
Wld_InsertNpc (None_999_Recharger,Npc_GetNearestWP (hero)); Просто полностью пытаюся делать как делал Finch а вот где веппоинт находится не знаю он просто указал Wld_InsertNpc (None_999_Recharger,Npc_GetNearestWP (hero)); а где его прописывать не знаю?
|
Да какая разница где прописывать-то (в данном случае)? ::)
|
|
|
30.06.2005, 21:21
|
#501
|
|
Re: Скриптинг в Готике
Сделал полностью как описал финч т.е: В TA_Human создал ZS_Recharger и прописал там: func void ZS_Recharger() { B_ResetAll (self); B_ClearPerceptions (self); };
func int ZS_Recharger_loop() { if (Npc_GetStateTime(self) > 3) { Npc_SetStateTime (self, 0);
if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) { hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1; };
AI_Teleport (self, Npc_GetNearestWP (hero)); };
return LOOP_CONTINUE; };
func void ZS_Recharger_end() { AI_PlayAni (self,"T_LGUARD_2_STAND"); }; Потом в TA.D прописал в конце:
func void TA_Recharger(var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint) { TA_Min(self, start_h,start_m, stop_h, stop_m, ZS_Recharger,waypoint); }; И в IT_Amulette.D прописал: INSTANCE ItAm_Mana_Regener(C_Item) { name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET;
value = 10000;
visual = "ItAm_Strg_01.3ds";
visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Mana_Regener; on_unequip = UnEquip_ItAm_Mana_Regener;
wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER";
description = "Амулет регенерации маны"; TEXT[5] = NAME_Value; COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; };
FUNC VOID Equip_ItAm_Mana_Regener() { Npc_ExchangeRoutine (None_999_Recharger,"Regeneration"); };
FUNC VOID UnEquip_ItAm_Mana_Regener() { Npc_ExchangeRoutine (None_999_Recharger,"Start"); }; И прописал в Gothic src следующее: Прописал после AI\Human\TA_Human\ZS_Wash_FP.d это AI\Human\TA_Human\ZS_Recharger.d Потом создал непися (NONE_999_Recharger): instance None_999_Recharger (Npc_Default) { name = ""; guild = GIL_NONE; npctype = NPCTYPE_AMBIENT flags = NPC_FLAG_IMMORTAL; ;(здесь было NPC_FLAG_IMMORTAL|NPC_FLAG_GHOST; надеюсь если я убрал|NPC_FLAG_GHOST; ошибки не будет?) level = 999; voice = 0; id = 999; noFocus = 1; bodyStateInterruptableOverride = 1;
damagetype = DAM_EDGE; damage [DAM_INDEX_EDGE] = 0;
//-------- visuals -------- B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M); Mdl_SetModelScale (self, 0.01, 0.01, 0.01);
//-------- talents -------- B_SetFightSkills (self, 0);
//------------- ai ------------- fight_tactic = FAI_HUMAN_COWARD;
daily_routine = Rtn_start_999; };
// ------ TA anmelden ------ func void Rtn_Regeneration_999 () { TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero)); TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero)); };
func void Rtn_start_999 () { TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero)); TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero)); }; Прописал в статупе после этого Wld_InsertNpc (BAU_950_Lobart, "NW_FARM1_OUT_01"); это Wld_InsertNpc (None_999_Recharger,Npc_GetNearestWP (hero)); И прописал в Gothic src следующее: Story\NPC\NONE_999_Recharger.d(прописал после ксардаса) Закомпемпелировал без ошибок.А где теперь в игре искать None_999_Recharger? Потом создал второго непися(NONE_666_Leo) И поместил амулет ему в инвентарь(CreateInvItems (self,ItAm_Mana_Regener,1),Закомпелировал,без ошибок. Захожу в игру вселяюсь в него трачу Ману а амулет опять не работает.Почему? Что нужно чтобы он зароботал?Или нужно что-то прописать у безымянного(PC_HERO.d) Чтобы он зароботал?(посмотрел в моде манареолад)Кроме всего что я привёл выше где нибудь ещё надо прописывать чтобы амулет зароботал?Заранее спосибо.
|
|
|
02.07.2005, 04:52
|
#504
|
|
Re: Скриптинг в Готике
Сделал полностью как описал финч т.е
|
Ну, в общем-то не полностью...
создал второго непися(NONE_666_Leo) И поместил амулет ему в инвентарь(CreateInvItems (self,ItAm_Mana_Regener,1),Закомпелировал,без ошибок. Захожу в игру вселяюсь в него трачу Ману а амулет опять не работает.Почему?
|
Не работает, потому что амулет работает только у ГГ. Млин, читай скрипт! Там же все написано! Фишка в том, что амулет работает только тогда, когда речаджер появляется рядом с ГГ. А Лео, которого ты создал ГГ не является. Т.е. речарджер "типа" появляется возле ГГ, и у ГГ "типа" восстанавливается мана, но на самом деле этого не происходит!
Или нужно что-то прописать у безымянного(PC_HERO.d)
|
Да! =) Пропиши амулет в инвентаре ГГ и попробуй одеть его!
Вот допустим я создал мод а как сделать чтобы в готик стартёре он отображалась никак игра а как мод?
|
Создай отдельный инишник отталкиваясь от gothic.ini *;) Удачи, короче!
|
|
|
02.07.2005, 12:50
|
#506
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd:
Finch а как прописать амулет в инвенторе ГГ?
|
Так же, как у других НПС.
И ещё я чё то не понял а как сделать чтобы речаджер появился рядом с ГГ?
|
У тебя УЖЕ это сделано, зачем по твоему все эти скрипты нужны были? :lol:
|
|
|
02.07.2005, 13:49
|
#507
|
|
Re: Скриптинг в Готике
Я опять всё пробывал сделать заново: 1)в AI\Human\TA_Human создал файл ZS_Recharger вот его содержимое: func void ZS_Recharger() { B_ResetAll (self); B_ClearPerceptions (self); };
func int ZS_Recharger_loop() { if (Npc_GetStateTime(self) > 3) { Npc_SetStateTime (self, 0);
if (hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) { hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA]+1; };
AI_Teleport (self, Npc_GetNearestWP (hero)); };
return LOOP_CONTINUE; };
func void ZS_Recharger_end() { AI_PlayAni (self,"T_LGUARD_2_STAND"); }; Потом в TA.D прописал после этого func void TA_Guard_Hammer(var int start_h,var int start_m,var int stop_h,var int stop_m,var string waypoint) { TA_Min(self,start_h,start_m,stop_h,stop_m,ZS_Guar d_Hammer,waypoint); }; прописал это func void ta_recharger(var int start_h,var int start_m,var int stop_h,var int stop_m,var string waypoint) { TA_Min(self,start_h,start_m,stop_h,stop_m,zs_rech arger,waypoint); }; И прописал в IT_Amulette после этого instance ItAm_Dex_Strg_01(C_Item) { name = "Амулет мощи"; mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET; value = Value_Am_DexStrg; visual = "ItAm_Dex_Strg_01.3ds"; visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Dex_Strg_01; on_unequip = UnEquip_ItAm_Dex_Strg_01; wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER"; description = "Амулет мощи"; text[2] = NAME_Bonus_Dex; count[2] = Am_DexStrg_Dex; text[3] = NAME_Bonus_Str; count[3] = Am_DexStrg_Strg; text[5] = NAME_Value; count[5] = value; inv_zbias = INVCAM_ENTF_AMULETTE_STANDARD; };
func void Equip_ItAm_Dex_Strg_01() { Npc_ChangeAttribute(self,ATR_DEXTERITY,Am_DexStrg _Dex); Npc_ChangeAttribute(self,ATR_STRENGTH,Am_DexStrg_ Strg); };
func void UnEquip_ItAm_Dex_Strg_01() { Npc_ChangeAttribute(self,ATR_DEXTERITY,-Am_DexStrg_Dex); Npc_ChangeAttribute(self,ATR_STRENGTH,-Am_DexStrg_Strg); }; вставил это INSTANCE ItAm_Mana_Regener(C_Item) { name = NAME_Amulett;
mainflag = ITEM_KAT_MAGIC; flags = ITEM_AMULET;
value = 100;
visual = "ItAm_Strg_01.3ds";
visual_skin = 0; material = MAT_METAL; on_equip = Equip_ItAm_Mana_Regener; on_unequip = UnEquip_ItAm_Mana_Regener;
wear = WEAR_EFFECT; effect = "SPELLFX_ITEMGLIMMER";
description = "Амулет регенерации маны"; TEXT[5] = NAME_Value; COUNT[5] = value;
INV_ZBIAS = INVCAM_ENTF_AMULETTE_STANDARD; };
FUNC VOID Equip_ItAm_Mana_Regener() { //Npc_ExchangeRoutine (None_999_Recharger,"Regeneration"); };
FUNC VOID UnEquip_ItAm_Mana_Regener() { //Npc_ExchangeRoutine (None_999_Recharger,"Start"); }; потто создал непися(NONE_999_Recharger) вот его содержимое: instance None_999_Recharger (Npc_Default) { name = ""; guild = GIL_NONE; npctype = NPCTYPE_AMBIENT; flags = NPC_FLAG_IMMORTAL; level = 999; voice = 0; id = 999; noFocus = 1; bodyStateInterruptableOverride = 1;
damagetype = DAM_EDGE; damage [DAM_INDEX_EDGE] = 0;
//-------- visuals -------- B_SetNpcVisual (self, MALE, "Hum_Head_Fatbald", 0, 0, ITAR_MIL_M); Mdl_SetModelScale (self, 0.01, 0.01, 0.01);
//-------- talents -------- B_SetFightSkills (self, 0);
//------------- ai ------------- fight_tactic = FAI_HUMAN_COWARD;
// ------ TA anmelden ------ daily_routine = Rtn_start_999; };
func void Rtn_Regeneration_999 () { TA_Recharger (0,00,13,00, Npc_GetNearestWP (hero)); TA_Recharger (13,00,0,00, Npc_GetNearestWP (hero)); };
func void Rtn_start_999 () { TA_Stand_WP (0,00,13,00, Npc_GetNearestWP (hero)); TA_Stand_WP (13,00,0,00, Npc_GetNearestWP (hero)); }; Потом прописал его в статупе после этого Wld_InsertNpc(BAU_950_Lobart,"NW_FARM1_OUT_01"); Прописал это Wld_InsertNpc (None_999_Recharger,Npc_GetNearestWP (hero)); Потом амуле прописал в Gothic src После этого AI\Human\TA_Human\ZS_Wash_FP.d Прописал это AI\Human\TA_Human\ZS_Recharger.d И прописал непися после После этого Story\NPC\NONE_100_Xardas.d Прописал в это Story\NPC\NONE_999_Recharger.d Потом в PC_Hero.d прописал в самом начале амулет CreateInvItems(self, ItAm_Mana_Regener,1); Вот как это выглядит instance PC_Hero(Npc_Default) { name[0] = "Я"; guild = GIL_NONE; id = 0; voice = 15; level = 0; npcType = npctype_main; bodyStateInterruptableOverride = TRUE; exp = 0; exp_next = 500; lp = 0; attribute[ATR_STRENGTH] = 10; attribute[ATR_DEXTERITY] = 10; attribute[ATR_MANA_MAX] = 10; attribute[ATR_MANA] = 10; attribute[ATR_HITPOINTS_MAX] = 40; attribute[ATR_HITPOINTS] = 40; Mdl_SetVisual(self,"HUMANS.MDS"); Mdl_SetVisualBody(self,"hum_body_Naked0",9,0,"Hum _Head_Pony",Face_N_Player,0,NO_ARMOR); CreateInvItems(self, ItAm_Mana_Regener,1); B_SetFightSkills(self,10); }; Закомпелировал.Вставил оушник и датник в игру.начал игру.поболтал с Ксардосом Взял из сондука магию огненный шар стрельнул,одел амулет а она всёравно не восстанавливается.Что я опять делаю не правильно?
|
|
|
02.07.2005, 16:05
|
#510
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd:
00:14 Fatal:-1 U: PAR:STORY/DIALOGE/DIA_KDF_512_JAREK.D:Unknown identifier:B_TEACHPLAYERTALENTREGENERATE(line 160)…<zParser.cpp,#599>
|
Написано же всё. Ты что, совсем ничего по-английски не понимаешь? >:( :o
|
|
|
03.07.2005, 17:49
|
#513
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd:
00:10 Fatal:-1 U: PAR:STORY/DIALOGE/DIA_PAL_258_KEROLOTH.D:Expected (line 110)…<zParser.cpp,#599>
|
Ты чего, руками что ли сообщения zSpy переписываешь? Сомневаюсь, что ты не пропустил несколько символов ::)
Как можно исправить эту ошибку я просто сам бы попытался но у меня прога(uedit32) глючит?
|
1. Интересно, каким это образом ::) 2. А Блокнот aka Нотепад поюзать не дано? 3. Очень похоже на отмазку, ты уж извини. 4. Даже если кто-то тебе скажет, как исправить, как ты это сделаешь, если у тебя
;D :lol: Полностью согласен с Финчем.
|
|
|
03.07.2005, 21:00
|
#514
|
|
Re: Скриптинг в Готике
TycoooN эту ошибку я давно исправил!А насчёт символов я действительно пропустил .А спрогой я разобрался.Насчёт забивания скриптинга,забивать не буду,что я месяц просто так разбирался.И то что ты говорил что я ничего не пытаюсь делать сам ты ошибаешься,извине конечно,но как я уже говорил многое не получается,так что приходится обращаться сюда!
Добавление от 07/03/05, в 20:20:32 Я знаю что вопрос этот я задавал,но тогда у меня только получилось переименовать гильдию,но сейчас я попробывал вставить гильдию вот что я делал: В _Intern/Constants.d вместо const int GIL_EMPTY_X вставил const int GIL_GUR= 63;потом в B_SetMonsterAttitude прописал после Wld_SetGuildAttitudefromGuild,attitude,GIL_KDW);пр описал это Wld_SetGuildAttitude(fromGuild,attitude,GIL_GUR); потом после этого Wld_SetGuildAttitude(GIL_KDW,attitude,toGuild); прописал это Wld_SetGuildAttitude(fromGuild,attitude,GIL_GUR); То что я написал выше это правильно? Нужно ли прописывать в Species,если да то что и после чего?
|
|
|
03.07.2005, 22:06
|
#515
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Bliz@rd:
В _Intern/Constants.d вместо const int GIL_EMPTY_X вставил const int GIL_GUR= 63;
|
Это неправильно, т.к. если гильдия "человеческая", то ее номер должен быть меньше величины константы GIL_SEPERATOR_HUM, которая равна 16, и которую нельзя менять. Так что советую переделать под свои нужды гильдию GIL_EMPTY_D = 15; Тебе надо будет еще изменить файл AI/Human/Guilds.d, там в массиве GIL_ATTITUDES нужно прописать отношения твоей гильдии с другими. Ну и изменть в story/text.d массив TXT_GUILDS.
|
|
|
03.07.2005, 23:12
|
#516
|
|
Re: Скриптинг в Готике
2TycoooN:
Так что советую переделать под свои нужды гильдию GIL_EMPTY_D = 15
|
GIL_EMPTY_D трогать нельзя, её номер совпадает с GIL_PUBLIC. А чтобы переделать GIL_PUBLIC под другую гильдию людей придется изменять скрипты AI системы. Чтобы не было заблуждений лучше строку GIL_EMPTY_D = 15 вообще удалить.
|
|
|
04.07.2005, 14:33
|
#517
|
|
Re: Скриптинг в Готике
Vam но я сделал как написал TycoooN и всё работает.Вот что я делал в _Intern/Constants.d вместо GIL_EMPTY_D = 15; поставил const int GIL_GUR=15;//Гуру.Потом AI/Human/Guilds.d в конце прописал(вместо /* D */): /* GUR */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* GUR */ ATT_NEUTRAL, ATT_NEUTRAL, /* GUR */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* GUR */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* GUR */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL }; Потом в story/text.d после "Wassermagier", //Addon поставил "Гуру", Дальше сделал непися(GUR_666_Leo) прописал его везде закомпелировал зашёл в игру вселился в гильдии было написано Гуру. Поидее всё работает нормально?
|
|
|
04.07.2005, 14:56
|
#518
|
|
Re: Скриптинг в Готике
2Bliz@rd:
Поидее всё работает нормально?
|
Да оно работать и будет, только теперь GIL_PUBLIC ты заменил на GIL_GUR, в итоге все отношения других гильдий с публичной гильдией исчезли, вернее заменились отношениями с GIL_GUR.
|
|
|
04.07.2005, 19:01
|
#520
|
|
Re: Скриптинг в Готике
2Bliz@rd:
Т.е теперь к GIL_GUR относятся так же как относились раньше к GIL_PUBLIC?Я правильно понял я просто в принципе изменил название GIL_PUBLIC на GIL_GUR ,а в остольном осталось всё так же?
|
Если ты не правил таблицу в файле AI/Human/Guilds.d, то - да, если правил, то теперь к GIL_PUBLIC будут относиться, как к твоей GIL_GUR.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 20:51. Часовой пояс GMT +4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|