М: Скриптинг в Готике
Создаю тему для обсуждения скриптов в играх любимой нами серии Gothic. Собственно создаю эту тему по следующим причинам:<br>1. актуальность темы в связи с широким распространением декомпилятора Vam`а;<br>2. в данный момент многие из форумцев изучают скрипты (Я, francisc, Alexus_G, Killer-XXX и д.р.), и я думаю - тема очень даже пригодится;<br>3. невозможность обсуждения в других темах;<br><br>Мой вопрос состоит вот в чем. Я создал скрипт по котрому непись показывает дорогу в СЛ. Вот он:<br><br>instance GOTO_PAL_OC(C_Info)<br>{<br> * * *npc = pal_5000_agafon;<br> * * *nr = 2;<br> * * *condition = goto_pal_oc_condition;<br> * * *information = goto_pal_oc_info;<br> * * *important = 0;<br> * * *permanent = 0;<br> * * *description = "Ты можешь отвести меня в Старый лагерь?";<br>};<br><br><br>func int goto_pal_oc_condition()<br>{<br> * * * * *if(Npc_KnowsInfo(hero,info_pal_info))<br> * * *{<br> * * * * * *self.flags = 0;<br> * * * * * *return 1;<br> * * *};<br>};<br><br>func void goto_pal_oc_info()<br>{<br> * * *AI_Output(hero,self,"goto_pal_oc1"); * * *//Ты можешь показать мне дорогу в Старый лагерь?<br> * * *AI_Output(self,hero,"goto_pal_oc2"); * * *//Конечно! Идем.<br> * * *AI_StopProcessInfos(self);<br> * * *Npc_SetPermAttitude(self,ATT_FRIENDLY);<br> * * *Npc_ExchangeRoutine(self,"GUIDE");<br>} ;<br><br><br>instance GOTO_PAL_INOC(C_Info)<br>{<br> * * *npc = pal_5000_agafon;<br> * * *condition = goto_pal_inoc_condition;<br> * * *information = goto_pal_inoc_info;<br> * * *important = 1;<br> * * *permanent = 0;<br>};<br><br><br>func int goto_pal_inoc_condition()<br>{<br> * * *if(Npc_KnowsInfo(hero,goto_pal_oc) && Hlp_StrCmp(Npc_GetNearestWP(self),"OC1") )<br> * * *{<br> * * * * * *self.flags = 0;<br> * * * * * *return 1;<br> * * *};<br>};<br><br>func void goto_pal_inoc_info()<br>{<br> * * * *AI_Output(self,hero,"goto_pal_inoc_1"); * * *//Ну, вот мы и пришли. прямо перед тобой находится старый лагерь. Впечатляет?<br> * * *AI_Output(hero,self,"goto_pal_inoc_10") ; * * *//Еще бы!<br> * * *AI_Output(self,hero,"goto_pal_inoc_2"); * * *//Ну так заходи, но будь осторожен!<br> * * *AI_Output(hero,self,"goto_pal_inoc_3"); * * *//Что мне нужно знать?<br> * * *AI_Output(self,hero,"goto_pal_inoc_grd" ); * * *//Если сдешняя стража скажет тебе заплатить за защиту, лучше подчиниться, потом будешь рад, что заплатил<br> * * *AI_Output(hero,self,"goto_pal_inoc_grd2" ;); * * *//Спасибо за совет!<br> * * *AI_Output(self,hero,"goto_pal_inoc_end" ); * * *//Удачи! Я возвращаюсь к метсу обмена. Если тебе что-нибудь понадобится, ты можешь найти меня там.<br> * * *AI_StopProcessInfos(self);<br> * * *Npc_ExchangeRoutine(self,"PRESTART");<b r>};<br><br><br>Непись как и нужно, отправляется в СЛ, ждет ГГ, если тот отстал. но есть одна поблема - экспа за убитых им зверей не начисляется. я сравнивал со скриптами Мордрага - вроде все также. Так как прописать, чтобы начислялась экспа?
|
Re: Скриптинг в Готике
2Borisoff:<br>Наверна, тогда тебя еще не было на форуме, но тема то уже поднималась,вот .<br>А вообще, мне кажется, что эту тему бы неплохо было прикрепить.
|
Re: Скриптинг в Готике
2Borisoff:
Цитата:
|
Re: Скриптинг в Готике
Какой признак отвечает за то кто враг, а кто друг. Если я хочу двух НПСов рядом поставить, и чтоб они начали сражаться когда я с кемнибудь из них поговорю.<br>А еще как в скриптах написано, появление монстров в разных главах.<br>
|
Re: Скриптинг в Готике
2dftool: <br>
Цитата:
Цитата:
|
Re: Скриптинг в Готике
Некоторым я уже задавал этот вопрос в приват, но если кто знает, ответьте пожалуйста:<br>NPC, которого я хочу вставить в игру, ни в какую не хочет появляться на карте сам. Если вставлять через консоль, то все нормально. В файлах Story NPC_Globals.d и Startup.d все прописано. Waypoint, на котором должен появляться персонаж тоже существует.
|
Re: Скриптинг в Готике
2Alexus_G: <br>Странно... покажи файлы НПС, что ли... ::)
|
Re: Скриптинг в Готике
2TycoooN: Вот, еще раз все проверил, и все равно сам не появляется: <br>Файл none_668_Alexus.d:<br><br>instance none_668_Alexus (Npc_Default)<br>{<br> // ------ NSC ------<br> name = "Alexus";<br> guild = GIL_none;<br> id = 668;<br> voice = 13;<br> flags = 0;<br> npctype = NPCTYPE_MAIN;<br> <br> // ------ Attribute ------<br> B_SetAttributesToChapter (self, 1);<br><br> // ------ Kampf-Taktik ------<br> fight_tactic = FAI_HUMAN_NORMAL;<br> <br> // ------ Equippte Waffen ------ <br> EquipItem (self, ItMw_1h_Sld_Axe);<br> EquipItem (self, ItRw_Sld_Bow);<br> CreateInvItems (self, ItRw_Arrow, 10);<br> <br> // ------ Inventory ------<br> B_CreateAmbientInv (self);<br> <br> // ------ visuals ------ <br> B_SetNpcVisual (self, MALE, "Hum_Head_FatBald", Face_N_Drax, BodyTex_N, ITAR_SLD_L); <br> Mdl_SetModelFatness (self, 0);<br> Mdl_ApplyOverlayMds (self, "Humans_Relaxed.mds");<br> <br> // ------ NSC-relevante Talente vergeben ------<br> B_GiveNpcTalents (self);<br> <br> // ------ Kampf-Talente ------ <br> B_SetFightSkills (self, 30);<br><br> // ------ TA anmelden ------<br> daily_routine = Rtn_Start_668;<br>};<br><br>FUNC VOID Rtn_Start_668 ()<br>{<br> TA_Stand_Eating (07,00,21,00,"NW_BIGFARM_HUT_02" ;);//оба Waypoint'а существуют, связаны Waynet'ом<br> TA_Stand_ArmsCrossed (21,00,07,00,"NW_BIGFARM_HUT_05" ;);//и находятся недалеко друг от друга: рядом с Бастером<br>};<br><br>В файле Story NPC_Globals.d:<br>var C_NPC Alexus;<br>Alexus = hlp_GetNpc (none_668_Alexus);<br><br>В файле Startup.d:<br>Wld_InsertNpc (none_668_Alexus, "BIGFARM");<br><br>Каждая строчка в последних двух файлах прописана после соответствующей строчки Бастера.<br><br>Кстати, забыл написать: Такая проблема у меня тогда, когда пытаешься вставить кого-то на уже готовую карту (Newworld, в моем случае). Если же я вставляю персонажа в свою собственную карту, то, как ни странно, все работает.
|
Re: Скриптинг в Готике
2Alexus_G: Попробуй в файле startup.d вместо <br>
Цитата:
|
Re: Скриптинг в Готике
Цитата:
Цитата:
|
Re: Скриптинг в Готике
2TycoooN: 2finch: Попробовал вместо Bigfarm прописать полное имя waypoint'а. Все равно не появляется. Я, кстати, и раньше пробовал так делать.<br>Я уверен, что дела в какой-нибудь мелочи, о которой даже упоминать-то не стоит, но которую я по своей невнимательности пропустил.<br>А что вы думаете по поводу того, что на созданной мной карте все работает как надо? Чем она отличается от готовой?
|
Re: Скриптинг в Готике
У меня такая же проблема.НПС не появляется на созданном мной вуапоинте,а появляется толко на уже сушествуюшим в игре.<br>Объясните как создавать вуапоинты,может я чего не так делаю.
|
Re: Скриптинг в Готике
2Fatalick: <br>Отвечаю в этой теме.<br><br>
Цитата:
|
Re: Скриптинг в Готике
Такой вопрос,у меня в моем моде не появляются диалоги.<br>При начале диалога есть только тема,когда ее нажиаешь,диалога не происходит,пресы не говорят,потом показывается меню с надписью енд.<br>Это для г2.<br>
|
Re: Скриптинг в Готике
2francisc: Скорее всего твои диалоги не заносятся в файл OU.csl. Об этом уже писали ранее. Я лично делал так:<br>1. Компилирую Gothic.dat. Все новые диалоги при этом заносятся в файл Ouinfo.inf<br>2. Открываю панель Output-Units и нажимаю Update. Затем Save.<br>И у меня все работало.<br><br>Вопрос ко всем:<br>За то, чтобы персонажи появлялись в игре отвечает файл Startup.d?<br>Если удалить из него кого-либо, то он в игре не должен появляться?<br>А у меня все равно появляется! Так же, и когда добавляешь в него что-то. Такое ощущение, что игра не видит этот файл. Подскажите, пожалуйста, кто знает, в чем дело.
|
Re: Скриптинг в Готике
2Alexus_G: <br>Его видит спайсер когда компилирует датинк.Ты попробуй удалить датник и компилировать новый.А ты НПС_глобл удалил записи?
|
Re: Скриптинг в Готике
2francisc:
Цитата:
Цитата:
|
Re: Скриптинг в Готике
2finch:<br>
Цитата:
|
Re: Скриптинг в Готике
2Pa: <br>
Цитата:
|
Re: Скриптинг в Готике
2TycoooN: <br>А чем открыть/создать .mod файл?
|
Re: Скриптинг в Готике
2Fatalick: прошу в World of Gothic FAQ. там все основные проги расписаны, найдешь ;)
|
Re: Скриптинг в Готике
2finch: Пробовал удалять из Startup'а всех, точнее многих. Все равно появляются. А Spacer компилирует! Я когда созданный им Gothic.dat декомпилирую прогой Vam'а, там все так, как и должно быть. Такое ощущение, что игра вообще не смотрит именно на Startup, а берет информацию о вставке из какого-то другого места.<br><br>2Pa: Что-то я не очень понял, что ты имеешь в виду. Как это не надо компилировать. VDFS.dmp по-моему за другое отвечает. Но в любом случае, я пробовал его удалять.
|
Re: Скриптинг в Готике
2Pa:
Цитата:
|
Re: Скриптинг в Готике
2Alexus_G:
Цитата:
|
Re: Скриптинг в Готике
У меня такая проблема диалоги не появляются в игре.<br>Хотя в меню появляется то что написанно в дескрипшонс,когда нажиаешь<br>ничего не происходит неписи не говорят,появляется окно с надписью енд.<br>Ou обновлял.Апдейт,а потом сохранить.<br>Если у кого есть идеи пожалуйста ответьте.
|
Re: Скриптинг в Готике
2Mitrich:
Цитата:
Цитата:
|
Re: Скриптинг в Готике
2francisc: <br>
Цитата:
|
Re: Скриптинг в Готике
2TycoooN: Спасибо. Поменял slf на self. Скомпилировал прогой Vam'а без ошибок. Но проблемы это не решило, как я и предпологал.<br>Кто как думает, почему моя Готика не смотрит в Startup, а ваши смотрят? :)
|
Re: Скриптинг в Готике
2Alexus_G:
Цитата:
|
Re: Скриптинг в Готике
2TycoooN: <br>Я открывал...но не могу найти свои диалоги...нверное они почему то не заносятся в ou.<br>Вот сам скрипт ,файл называется dia_none_fortuna<br>"INSTANCE DIA_Fortuna_EXIT (C_INFO)<br>{<br> npc = None_1986_Fortuna;<br> nr = 999;<br> condition = DIA_Fortuna_EXIT_Condition;<br> information = DIA_Fortuna_EXIT_Info;<br> permanent = TRUE;<br> description = DIALOG_ENDE;<br>};<br>FUNC INT DIA_Fortuna_EXIT_Condition()<br>{ <br> return TRUE;<br>};<br>FUNC VOID DIA_Fortuna_EXIT_Info()<br>{<br> AI_StopProcessInfos (self);<br>};<br><br>INSTANCE DIA_Fortuna_HI (C_INFO)<br>{<br> npc = None_1986_Fortuna ;<br> nr = 1;<br> condition = DIA_Fortuna_HI_Condition;<br> information = DIA_Fortuna_HI_Info;<br> permanent = FALSE;<br> important = False; <br> description = "Привет"; <br>}; <br><br>FUNC INT DIA_Fortuna_HI_Condition()<br>{<br> return TRUE;<br><br>};<br><br>FUNC VOID DIA_Fortuna_HI_Info() <br><br>{<br> AI_Output (other, self, "DIA_Fortuna_HI_1_00");//Привет<br> AI_Output (self, other, "DIA_Fortuna_HI_01_01");//ТЫ!Это в самом деле ты!<br> AI_Output (other, self, "DIA_Fortuna_HI_01_02");//Да,это я.<br> AI_Output (other, self, "DIA_Fortuna_HI_01_03");//Ты Фортуно?<br> AI_Output (self, other, "DIA_Fortuna_HI_01_04");//Да,а ты меня не забыл.<br> <br> };"
|
Re: Скриптинг в Готике
2TycoooN: <br>Где в startup.d (если вообще там) прописывается начальное положенние ГГ?
|
Re: Скриптинг в Готике
2Fatalick:
Цитата:
|
Re: Скриптинг в Готике
2finch: Даже не знаю, с чего начать. Спасибо за подсказку, которая решила мою проблему. Я раньше запускал Готику не как мод, а как игру, и она, видимо, действительно смотрела на какой-то другой файл (возможно как раз на GothicGame), только непонятно, почему? По умолчанию она ведь вроде не должна этого делать. Я запокавал свой датник в VDF, написал для него ini-файл и запустил как мод: все работает! Из-за такой ерунды столько мучений. Спасибо еще раз!
|
Re: Скриптинг в Готике
2Alexus_G: Всегда пожалуйста! ;D<br><br>
Цитата:
|
Re: Скриптинг в Готике
Вот проблемка: Декомпелировал я gothic.dat вместе c ou.bin,создалось много там всяких папок и файлов, нажимаю компилировать декомпилированный gothic.dat все нормально.<br>Но вот попытался в Г1 добавить своего НПСа, создал файл, прописал в Startup.d, пытаюсь компилировать это декомпилятором, но он выдает ошибку что проблема именно в моем неписе.<br>Поэтому у меня парочку вопросов возникло, могут конечно показаться глупыми но всеже:<br>Все вопросы для Г1:<br>1) При распаковке worlds.VDF спейсер1 выдает сообщение какоето и никак нехочет загружаться?<br>2) Как создать в Спейсере свой вейпоинт?<br>3) Как созданного НПСа в самой готике вызвать через insert (как написать название НПСа)?<br>4) Для чего нужен файл FIGHT.DAT, menu.DAT и другие файлы из папки _compiled, придекомпиляции их ведь не создается?<br>5) Для чего нужен gothic.src?<br>6) Где надо прописовать своего НПСа кроме Startup.d, и после этого чем компилировать Спейсером или декомпилятором, чтобы язык остался русский?<br>При компиляции gothic.src или при компиляции декомпилированного gothic.dat такое сообщение об ошибке:<br>PAR: STORY/STARTUP.D: Unknown identifier: EBR_1001_ARTUR<br>Заранее спасибо!!!<br>
|
Re: Скриптинг в Готике
2dftool:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Re: Скриптинг в Готике
Спасибо francisc: <br>Уточняю:<br>1)Про распаковку worlds.VDF верно, распаковывается все нормально, а вот в Спейсере1 при открытии *.Zen файла выдает сообщение об ошибке, но не про 3ds а про другое (непонятное, вылезает менюшка там выбрать Cancle, Complite и какието еще настройки). <br>2) При добавлении НПС в самой игре: вроде в Г1 нельзя писать символ "_" может ты написал про Г2 (в Г2 все нормально получалось).<br>
|
Re: Скриптинг в Готике
2dftool:
Цитата:
|
Re: Скриптинг в Готике
finch: <br>Что верно то верно, с этим я разобрался просто переустановил Г1 и все нормально (просто я до этого очень много всего в готике поизменял).<br>Проверил декомпилятор версии 1.8. то же все работает - это Good!!!<br><br>Про вопросы верно буду стараться поменьше задавать, но кто хочет отвечайте, а кто не хочет того я же не заставляю!!! <br>
|
Re: Скриптинг в Готике
2dftool: <br>
Цитата:
|
Текущее время: 01:11. Часовой пояс GMT +4. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
AGFC: Valley of Gothic © 2004-2022