|
|
06.01.2005, 20:47
|
#1
|
|
М: Скриптинг в Готике
Создаю тему для обсуждения скриптов в играх любимой нами серии Gothic. Собственно создаю эту тему по следующим причинам: 1. актуальность темы в связи с широким распространением декомпилятора Vam`а; 2. в данный момент многие из форумцев изучают скрипты (Я, francisc, Alexus_G, Killer-XXX и д.р.), и я думаю - тема очень даже пригодится; 3. невозможность обсуждения в других темах; Мой вопрос состоит вот в чем. Я создал скрипт по котрому непись показывает дорогу в СЛ. Вот он: instance GOTO_PAL_OC(C_Info) { * * *npc = pal_5000_agafon; * * *nr = 2; * * *condition = goto_pal_oc_condition; * * *information = goto_pal_oc_info; * * *important = 0; * * *permanent = 0; * * *description = "Ты можешь отвести меня в Старый лагерь?"; }; func int goto_pal_oc_condition() { * * * * *if(Npc_KnowsInfo(hero,info_pal_info)) * * *{ * * * * * *self.flags = 0; * * * * * *return 1; * * *}; }; func void goto_pal_oc_info() { * * *AI_Output(hero,self,"goto_pal_oc1"); * * *//Ты можешь показать мне дорогу в Старый лагерь? * * *AI_Output(self,hero,"goto_pal_oc2"); * * *//Конечно! Идем. * * *AI_StopProcessInfos(self); * * *Npc_SetPermAttitude(self,ATT_FRIENDLY); * * *Npc_ExchangeRoutine(self,"GUIDE"); }; instance GOTO_PAL_INOC(C_Info) { * * *npc = pal_5000_agafon; * * *condition = goto_pal_inoc_condition; * * *information = goto_pal_inoc_info; * * *important = 1; * * *permanent = 0; }; func int goto_pal_inoc_condition() { * * *if(Npc_KnowsInfo(hero,goto_pal_oc) && Hlp_StrCmp(Npc_GetNearestWP(self),"OC1")) * * *{ * * * * * *self.flags = 0; * * * * * *return 1; * * *}; }; func void goto_pal_inoc_info() { * * * *AI_Output(self,hero,"goto_pal_inoc_1"); * * *//Ну, вот мы и пришли. прямо перед тобой находится старый лагерь. Впечатляет? * * *AI_Output(hero,self,"goto_pal_inoc_10"); * * *//Еще бы! * * *AI_Output(self,hero,"goto_pal_inoc_2"); * * *//Ну так заходи, но будь осторожен! * * *AI_Output(hero,self,"goto_pal_inoc_3"); * * *//Что мне нужно знать? * * *AI_Output(self,hero,"goto_pal_inoc_grd"); * * *//Если сдешняя стража скажет тебе заплатить за защиту, лучше подчиниться, потом будешь рад, что заплатил * * *AI_Output(hero,self,"goto_pal_inoc_grd2"); * * *//Спасибо за совет! * * *AI_Output(self,hero,"goto_pal_inoc_end"); * * *//Удачи! Я возвращаюсь к метсу обмена. Если тебе что-нибудь понадобится, ты можешь найти меня там. * * *AI_StopProcessInfos(self); * * *Npc_ExchangeRoutine(self,"PRESTART"); }; Непись как и нужно, отправляется в СЛ, ждет ГГ, если тот отстал. но есть одна поблема - экспа за убитых им зверей не начисляется. я сравнивал со скриптами Мордрага - вроде все также. Так как прописать, чтобы начислялась экспа?
Последний раз редактировалось Impertor; 16.02.2020 в 07:51..
|
|
|
06.01.2005, 22:27
|
#2
|
|
|
|
|
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
|
|
|
|
|
|
Re: Скриптинг в Готике
2Borisoff:Наверна, тогда тебя еще не было на форуме, но тема то уже поднималась, вот . А вообще, мне кажется, что эту тему бы неплохо было прикрепить.
|
|
|
07.01.2005, 00:12
|
#3
|
|
Re: Скриптинг в Готике
2Borisoff:
Так как прописать, чтобы начислялась экспа?
|
pal_5000_agafon.aivar[AIV_PARTYMEMBER] = TRUE;
|
|
|
07.01.2005, 15:09
|
#5
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2dftool:
Какой признак отвечает за то кто враг, а кто друг
|
Гильдия.
А еще как в скриптах написано, появление монстров в разных главах.
|
В папке SCRIPTS/CONTENT/STORY/B_STORY/ файлы B_Enter_AddonWorld.d, B_Enter_DragonIsland.d, B_Enter_NewWorld.d и B_Enter_OldWorld.d Кажется, так ::)
|
|
|
07.01.2005, 20:55
|
#8
|
|
Re: Скриптинг в Готике
2TycoooN: Вот, еще раз все проверил, и все равно сам не появляется: Файл none_668_Alexus.d:
instance none_668_Alexus (Npc_Default) { // ------ NSC ------ name = "Alexus"; guild = GIL_none; id = 668; voice = 13; flags = 0; npctype = NPCTYPE_MAIN; // ------ Attribute ------ B_SetAttributesToChapter (self, 1);
// ------ Kampf-Taktik ------ fight_tactic = FAI_HUMAN_NORMAL; // ------ Equippte Waffen ------ EquipItem (self, ItMw_1h_Sld_Axe); EquipItem (self, ItRw_Sld_Bow); CreateInvItems (self, ItRw_Arrow, 10); // ------ Inventory ------ B_CreateAmbientInv (self); // ------ visuals ------ B_SetNpcVisual (self, MALE, "Hum_Head_FatBald", Face_N_Drax, BodyTex_N, ITAR_SLD_L); Mdl_SetModelFatness (self, 0); 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_668; };
FUNC VOID Rtn_Start_668 () { TA_Stand_Eating (07,00,21,00,"NW_BIGFARM_HUT_02");//оба Waypoint'а существуют, связаны Waynet'ом TA_Stand_ArmsCrossed (21,00,07,00,"NW_BIGFARM_HUT_05");//и находятся недалеко друг от друга: рядом с Бастером };
В файле Story NPC_Globals.d: var C_NPC Alexus; Alexus = hlp_GetNpc (none_668_Alexus);
В файле Startup.d: Wld_InsertNpc (none_668_Alexus, "BIGFARM");
Каждая строчка в последних двух файлах прописана после соответствующей строчки Бастера.
Кстати, забыл написать: Такая проблема у меня тогда, когда пытаешься вставить кого-то на уже готовую карту (Newworld, в моем случае). Если же я вставляю персонажа в свою собственную карту, то, как ни странно, все работает.
|
|
|
08.01.2005, 00:23
|
#9
|
|
Re: Скриптинг в Готике
2Alexus_G: Попробуй в файле startup.d вместо
Wld_InsertNpc (none_668_Alexus, "BIGFARM");
|
прописать строку Wld_InsertNpc (none_668_Alexus, "NW_BIGFARM_HUT_02"); По идее, должно сработать, т.к. ошибок в скриптах я, например, не вижу.
|
|
|
08.01.2005, 00:28
|
#10
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
Wld_InsertNpc * * *(none_668_Alexus, "NW_BIGFARM_HUT_02");
|
Можно и Wld_InsertNpc * * *(Alexus, "NW_BIGFARM_HUT_02"); раз уж ты прописал, что
var C_NPC Alexus; Alexus * * * * * * * * *= hlp_GetNpc (none_668_Alexus);
|
|
|
|
10.01.2005, 13:06
|
#13
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Fatalick: Отвечаю в этой теме.
Да, я хотел сказать как сделать отдельный запуск через GothicStarter? Что там с ini-файлами делать?
|
Заходишь в папку игры system/ и видишь там файл GothicGame.ini, создаешь его копию и переименовываешь её из GothicGame.ini в Mymod.ini (например). Далее, открываешь этот файл Mymod.ini и меняешь в нем строку VDF=GothicGame.mod на vdf=<mod-файлы твоего мода>. *Они должны лежать в папке игры data/modvdf. Можно также изменить графы Title=, Version=, Authors=, Webpage=, Description=, Icon=, но это по желанию - это всё отвечает за текст, который будет отображаться при выборе мода в GothicStarter'e Если что не понятно - спрашивай ещё :)
|
|
|
11.01.2005, 00:32
|
#17
|
|
Re: Скриптинг в Готике
2francisc:
А ты НПС_глобл удалил записи?
|
NPC_Global не отвечает за появление НПС!
Подскажите, пожалуйста, кто знает, в чем дело.
|
Попробуй удалить всех НПС из Стартапа. Если все равно НПС будут появляться, значит, у тебя спейсер перестал компилировать..
|
|
|
11.01.2005, 01:53
|
#18
|
|
|
|
|
*
Регистрация: 29.08.2004
Сообщений: 1
|
|
|
|
|
|
Re: Скриптинг в Готике
2finch:
Попробуй удалить всех НПС из Стартапа. Если все равно НПС будут появляться, значит, у тебя спейсер перестал компилировать..
|
Самое интересное, что сперва можно и не компилировать, а оставить все в исходниках. Кто установил полный Кит меня поймет и изменеиия вступают в силу после того как удалишь файл VDFS.DMP - игра при запуске построит новый VDFS.DMP с учетом твоих исправлений - типа добавленных неписей и т.д. А когда все скрипты отладишь, только тогда и компилируй...
|
|
|
11.01.2005, 11:16
|
#19
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2Pa:
Самое интересное, что сперва можно и не компилировать, а оставить все в исходниках. Кто установил полный Кит меня поймет и изменеиия вступают в силу после того как удалишь файл VDFS.DMP - игра при запуске построит новый VDFS.DMP с учетом твоих исправлений - типа добавленных неписей и т.д. А когда все скрипты отладишь, только тогда и компилируй...
|
Имхо скрипты надо компилировать прогой от Vam'a. С ней уж точно не будет никаких проблем - сунул новые gothic.dat и ou.bin - и всё работает :D :D :D
|
|
|
11.01.2005, 20:31
|
#23
|
|
Re: Скриптинг в Готике
2Pa:
Кто установил полный Кит меня поймет
|
Я установил, но не понял. :) Т.е. ты предлагешь не компилировать скрипты в Спейсере, а просто прописывать НПС во всех нужных файлах и удалять VDFS.DMP? За что же, интересно, тогда отвечает этот файл?
|
|
|
11.01.2005, 20:37
|
#24
|
|
Re: Скриптинг в Готике
2Alexus_G:
Я когда созданный им Gothic.dat декомпилирую прогой Vam'а, там все так, как и должно быть.
|
Не совсем понятно, что должно быть "как и". По идее, если Спейсер перестал компилировать, у тебя все остается неизменным, как было в исходной версии, изменения в которую ты вносишь. Старые неписи остануться, новые не появятся. Попробуй скомпилировать прогой Vam'а датник со своими изменениями.
|
|
|
11.01.2005, 22:35
|
#26
|
|
Re: Скриптинг в Готике
2Mitrich:
Не совсем понятно, что должно быть "как и".
|
Я имел в виду следующее: например я добавляю в Startup своего персонажа, компилирую Spacer'ом, затем декомпилирую обратно прогой Vam'а. И в получившемся после декомпиляции Startup'е есть строчка, добавляющая моего непися. Это и есть то, что должно быть, но игра ведет себя так, как будто ей пофиг, что написано в Startup'е и как будто берет данные откуда-то еще.
Попробуй скомпилировать прогой Vam'а датник со своими изменениями.
|
при компилировании прогой Vam'а у меня вылазит ошибка. Я уже написал в соответствующую тему. Жду ответа.
|
|
|
11.01.2005, 23:32
|
#27
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2francisc:
У меня такая проблема диалоги не появляются в игре. Хотя в меню появляется то что написанно в дескрипшонс,когда нажиаешь ничего не происходит неписи не говорят,появляется окно с надписью енд. Ou обновлял.Апдейт,а потом сохранить. Если у кого есть идеи пожалуйста ответьте.
|
Попробуй руками открыть OU.BIN и поискать, добавились ли туда фразы, которые ты прописал в скриптах. Если да - то не знаю что и посоветовать ::)
|
|
|
12.01.2005, 01:47
|
#29
|
|
Re: Скриптинг в Готике
2Alexus_G:
Кто как думает, почему моя Готика не смотрит в Startup, а ваши смотрят?
|
1. Попробуй удалить ВСЕ файлы из папки Gothic II\Data\modvdf. 2. После этого открой ИНИ-файл, через который ты запускаешь мод (возможно, что у тебя это GothicGame.ini).Файл находится в директории system. Только не спутай его с Gothic.ini Найди в этом файлике строчку, которая начинается на VDF= После VDF= не должно стоять НИЧЕГО. Если после = стоит названия МОД-файла, удали его. Сохрани ИНИ-файл и запусти игру. Если это не сработает, то больше идей у меня нету.
|
|
|
12.01.2005, 13:32
|
#30
|
|
Re: Скриптинг в Готике
2TycoooN: Я открывал...но не могу найти свои диалоги...нверное они почему то не заносятся в ou. Вот сам скрипт ,файл называется dia_none_fortuna "INSTANCE DIA_Fortuna_EXIT (C_INFO) { npc = None_1986_Fortuna; nr = 999; condition = DIA_Fortuna_EXIT_Condition; information = DIA_Fortuna_EXIT_Info; permanent = TRUE; description = DIALOG_ENDE; }; FUNC INT DIA_Fortuna_EXIT_Condition() { return TRUE; }; FUNC VOID DIA_Fortuna_EXIT_Info() { AI_StopProcessInfos (self); };
INSTANCE DIA_Fortuna_HI (C_INFO) { npc = None_1986_Fortuna ; nr = 1; condition = DIA_Fortuna_HI_Condition; information = DIA_Fortuna_HI_Info; permanent = FALSE; important = False; description = "Привет"; };
FUNC INT DIA_Fortuna_HI_Condition() { return TRUE;
};
FUNC VOID DIA_Fortuna_HI_Info()
{ AI_Output (other, self, "DIA_Fortuna_HI_1_00");//Привет AI_Output (self, other, "DIA_Fortuna_HI_01_01");//ТЫ!Это в самом деле ты! AI_Output (other, self, "DIA_Fortuna_HI_01_02");//Да,это я. AI_Output (other, self, "DIA_Fortuna_HI_01_03");//Ты Фортуно? AI_Output (self, other, "DIA_Fortuna_HI_01_04");//Да,а ты меня не забыл. };"
|
|
|
13.01.2005, 00:11
|
#32
|
|
Re: Скриптинг в Готике
2Fatalick:
Где в startup.d (если вообще там) прописывается начальное положенние ГГ?
|
Нигде. Начальное положение ГГ задается при помощи специального вэйпоинта.
|
|
|
13.01.2005, 16:34
|
#33
|
|
Re: Скриптинг в Готике
2finch: Даже не знаю, с чего начать. Спасибо за подсказку, которая решила мою проблему. Я раньше запускал Готику не как мод, а как игру, и она, видимо, действительно смотрела на какой-то другой файл (возможно как раз на GothicGame), только непонятно, почему? По умолчанию она ведь вроде не должна этого делать. Я запокавал свой датник в VDF, написал для него ini-файл и запустил как мод: все работает! Из-за такой ерунды столько мучений. Спасибо еще раз!
|
|
|
14.01.2005, 00:11
|
#34
|
|
Re: Скриптинг в Готике
2Alexus_G: Всегда пожалуйста! ;D
Я раньше запускал Готику не как мод, а как игру, и она, видимо, действительно смотрела на какой-то другой файл (возможно как раз на GothicGame), только непонятно, почему?
|
Ты запускал игру через GothicStarter, а он "видит" только ИНИ-файлы модов. Если бы ты запускал через gothic.exe или lr.exe, этих проблем бы не возникло.
|
|
|
14.01.2005, 00:20
|
#35
|
|
Re: Скриптинг в Готике
Вот проблемка: Декомпелировал я gothic.dat вместе c ou.bin,создалось много там всяких папок и файлов, нажимаю компилировать декомпилированный gothic.dat все нормально. Но вот попытался в Г1 добавить своего НПСа, создал файл, прописал в Startup.d, пытаюсь компилировать это декомпилятором, но он выдает ошибку что проблема именно в моем неписе. Поэтому у меня парочку вопросов возникло, могут конечно показаться глупыми но всеже: Все вопросы для Г1: 1) При распаковке worlds.VDF спейсер1 выдает сообщение какоето и никак нехочет загружаться? 2) Как создать в Спейсере свой вейпоинт? 3) Как созданного НПСа в самой готике вызвать через insert (как написать название НПСа)? 4) Для чего нужен файл FIGHT.DAT, menu.DAT и другие файлы из папки _compiled, придекомпиляции их ведь не создается? 5) Для чего нужен gothic.src? 6) Где надо прописовать своего НПСа кроме Startup.d, и после этого чем компилировать Спейсером или декомпилятором, чтобы язык остался русский? При компиляции gothic.src или при компиляции декомпилированного gothic.dat такое сообщение об ошибке: PAR: STORY/STARTUP.D: Unknown identifier: EBR_1001_ARTUR Заранее спасибо!!!
|
|
|
14.01.2005, 00:48
|
#36
|
|
Re: Скриптинг в Готике
2dftool:
но он выдает ошибку что проблема именно в моем неписе.
|
Что именно пишет?
При распаковке worlds.VDF спейсер1 выдает сообщение какоето и никак нехочет загружаться?
|
Какое?У меня были проблемы,он не мог найти 3ds файлы вроде.Но не при распаковке ,а при загрузке зена. А распоковывал я VDFS`ом.
Как создать в Спейсере свой вейпоинт?
|
Шелкаешь на W при этом показываются пути,потом найди на горизонтальной понели ногу,нажми ее потом правой кнопкой на экран ,потом там должно быть наиписанно инсерт вуапоинт(или типа того),потом в окне вводишь имя вуапринта.А не забудь вначале счелкнуть на какой -нибудь вуапоинт.
Как созданного НПСа в самой готике вызвать через insert (как написать название НПСа)?
|
insert название гильдии_идентификационный номер_имя.
Для чего нужен gothic.src?
|
Для обновления скриптов...
Где надо прописовать своего НПСа кроме Startup.d, и после этого чем компилировать Спейсером или декомпилятором, чтобы язык остался русский?
|
Компилировать прогой от VAM`a
такое сообщение об ошибке: PAR: STORY/STARTUP.D: Unknown identifier: EBR_1001_ARTUR
|
Скорее всего ты либо не положил скрипт нпс в папку NPC ,или там прописанно другое имя,или оно прписанно неверно.
Всегда пожалуйста. PS просьба в меня помидорами не бросать,я в принципе мог что то пропустить.
|
|
|
14.01.2005, 01:41
|
#38
|
|
Re: Скриптинг в Готике
2dftool:
1)Про распаковку worlds.VDF верно, распаковывается все нормально, а вот в Спейсере1 при открытии *.Zen файла выдает сообщение об ошибке, но не про 3ds а про другое (непонятное, вылезает менюшка там выбрать Cancle, Complite и какието еще настройки).
|
Знаешь, когда я только начинал разбираться в этом, мне на такие вопросы никто не отвечал... Лично я в теме Русская дока по спейсеру раза три писал, как "вылечить" эту ошибку! Слабо перелопатить? А самому с этой ошибкой разобраться? Понимаешь, если начать подробно отвечать на все твои вопросы, то не хватит ни времени, ни ограничения на сообщение в 25Кб! Если ты хочешь со всем разобраться, то обязательно разберешься! Проверено на своем опыте! Если будет что-то не получаться, то тебе всегда посоветуют, но вот список таких вопросов, половина из которых уже обсуждалось, вывешивать не надо!
|
|
|
14.01.2005, 08:14
|
#40
|
|
|
|
|
Регистрация: 15.04.2004
Адрес: Санкт-Петербург
Сообщений: 372
|
|
|
|
|
|
Re: Скриптинг в Готике
2dftool:
При добавлении НПС в самой игре: вроде в Г1 нельзя писать символ "_"
|
Можно. В Г1 надо нажать shift+"кнопка ? чуть левее правого shift'a"
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 16:51. Часовой пояс GMT +4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|