|
Re: Gothic 1, 2, 3: Технические вопросы
2Нефариус:Нашёл ошибку в скрипте бандита Скиннера Story\Dialoge\DIA_BDT_1082_Addon_Skinner.d (выделена красным цветом):
Cпойлер(щелкните, чтобы прочесть):
instance DIA_Addon_Skinner_EXIT(C_Info) { npc = BDT_1082_Addon_Skinner; nr = 999; condition = DIA_Addon_Skinner_EXIT_Condition; information = DIA_Addon_Skinner_EXIT_Info; permanent = TRUE; description = Dialog_Ende; };
func int DIA_Addon_Skinner_EXIT_Condition() { return TRUE; };
func void DIA_Addon_Skinner_EXIT_Info() { AI_StopProcessInfos(self); };
instance DIA_Addon_Skinner_PICKPOCKET(C_Info) { npc = BDT_1082_Addon_Skinner; nr = 900; condition = DIA_Addon_Skinner_PICKPOCKET_Condition; information = DIA_Addon_Skinner_PICKPOCKET_Info; permanent = TRUE; description = Pickpocket_100; };
func int DIA_Addon_Skinner_PICKPOCKET_Condition() { return C_Beklauen(100,200); };
func void DIA_Addon_Skinner_PICKPOCKET_Info() { Info_ClearChoices(DIA_Addon_Skinner_PICKPOCKE T); Info_AddChoice(DIA_Addon_Skinner_PICKPOCKET,Dialo g_Back,DIA_Addon_Skinner_PICKPOCKET_BACK); Info_AddChoice(DIA_Addon_Skinner_PICKPOCKET,DIALO G_PICKPOCKET,DIA_Addon_Skinner_PICKPOCKET_DoIt); };
func void DIA_Addon_Skinner_PICKPOCKET_DoIt() { B_Beklauen(); Info_ClearChoices(DIA_Addon_Wache_02_PICKPOCKET); };
func void DIA_Addon_Skinner_PICKPOCKET_BACK() { Info_ClearChoices(DIA_Addon_Wache_02_PICKPOCKET); B_Say(self,self,"$AWAKE"); };
instance DIA_Addon_Skinner_Hi(C_Info) { npc = BDT_1082_Addon_Skinner; nr = 2; condition = DIA_Addon_Skinner_Hi_Condition; information = DIA_Addon_Skinner_Hi_Info; permanent = TRUE; important = TRUE; };
func int DIA_Addon_Skinner_Hi_Condition() { if(Npc_IsInState(self,ZS_Talk)) { return TRUE; }; };
func void DIA_Addon_Skinner_Hi_Info() { AI_Output(self,other,"DIA_Addon_Skinner_Hi_08_00" ); //Ты зачем меня разбудил, а? Я уверен, что ты толком и не знаешь... AI_Output(self,other,"DIA_Addon_Skinner_Hi_08_01" ); //Нет - не надо ничего говорить. Оправдываться слишком поздно. AI_Output(self,other,"DIA_Addon_Skinner_Hi_08_02" ); //У тебя теперь есть выбор. Ты можешь сразиться со мной и моей Бетти. А можешь попробовать убежать. AI_Output(self,other,"DIA_Addon_Skinner_Hi_08_03" ); //И на твоем месте я бы начинал разбег... AI_StopProcessInfos(self); B_Attack(self,other,AR_NONE,1); };
instance DIA_Addon_Skinner_Attentat(C_Info) { npc = BDT_1082_Addon_Skinner; nr = 9; condition = DIA_Addon_Skinner_Attentat_Condition; information = DIA_Addon_Skinner_Attentat_Info; permanent = FALSE; description = "По поводу нападения..."; };
func int DIA_Addon_Skinner_Attentat_Condition() { if(MIS_Judas == LOG_Running) { return TRUE; }; };
func void DIA_Addon_Skinner_Attentat_Info() { AI_Output(other,self,"DIA_Addon_Skinner_Attentat_ 15_00"); //По поводу нападения... AI_Output(self,other,"DIA_Addon_Skinner_Attentat_ 08_01"); //Что тебе нужно? Info_ClearChoices(DIA_Addon_Skinner_Attentat) ; Info_AddChoice(DIA_Addon_Skinner_Attentat,"Я хочу убрать Эстебана.",DIA_Addon_Skinner_ATTENTAT_ADDON_CONTRA ); Info_AddChoice(DIA_Addon_Skinner_Attentat,"Я хочу найти предателя.",DIA_Addon_Skinner_ATTENTAT_ADDON_PRO); };
func void DIA_Addon_Skinner_ATTENTAT_ADDON_CONTRA() { AI_Output(other,self,"DIA_Addon_Skinner_ATTENTAT_ ADDON_CONTRA_15_00"); //Я хочу убрать Эстебана. AI_Output(self,other,"DIA_Addon_Skinner_ATTENTAT_ ADDON_CONTRA_08_01"); //Отлично. Judas_Counter = Judas_Counter + 1; Info_ClearChoices(DIA_Addon_Skinner_Attentat) ; };
func void DIA_Addon_Skinner_ATTENTAT_ADDON_PRO() { AI_Output(other,self,"DIA_Addon_Skinner_ATTENTAT_ ADDON_PRO_15_00"); //Я хочу найти предателя. AI_Output(self,other,"DIA_Addon_Skinner_ATTENTAT_ ADDON_PRO_08_01"); //Дерьмо. Info_ClearChoices(DIA_Addon_Skinner_Attentat) ; };
Выделенное надо заменить на DIA_Addon_Skinner_PICKPOCKET. Также я считаю излишним при отказе от карманной кражи зевок Скиннера: B_Say(self,self,"$AWAKE");Ещё одно предложение - сделать, чтобы Скиннер не спал круглые сутки, а с 21:00 до 1:00 бухал в таверне Снафа - предполагаю, что тогда будет можно поговорить с ним о покушении на Эстебана (не проверял). :-/ Story\NPC\BDT_1082_Addon_Skinner.d (закомментированы исходные строки скрипта):
Cпойлер(щелкните, чтобы прочесть):
func void Rtn_Start_1082() { TA_Sleep(1,0,21,0,"BL_DOWN_HUT_02_SLEEP"); // TA_Sleep(9,0,21,0,"BL_DOWN_HUT_02_SLEEP"); TA_Stand_Drinking(21,0,1,0,"BL_INN_03_C"); // TA_Sleep(21,0,9,0,"BL_DOWN_HUT_02_SLEEP"); };
|