|
Re: Декомпилятор скриптов Готики
Компилировал декомпилятором Версии 2.12. Скрипт:
var int bad_ritual;
prototype DEFAULT_DARKMAGE(C_Npc) { attribute[ATR_STRENGTH] = 10; aivar[REAL_STRENGTH] = 10; attribute[ATR_DEXTERITY] = 10; aivar[REAL_DEXTERITY] = 10; attribute[ATR_MANA_MAX] = 10; aivar[REAL_MANA_MAX] = 10; attribute[ATR_MANA] = 10; attribute[ATR_HITPOINTS_MAX] = 40; attribute[ATR_HITPOINTS] = 40; HitChance[NPC_TALENT_1H] = 0; HitChance[NPC_TALENT_2H] = 0; HitChance[NPC_TALENT_BOW] = 0; HitChance[NPC_TALENT_CROSSBOW] = 0; protection[PROT_EDGE] = 0; protection[PROT_BLUNT] = 0; protection[PROT_POINT] = 0; protection[PROT_FIRE] = 0; protection[PROT_MAGIC] = 0; damagetype = DAM_BLUNT; senses = SENSE_HEAR | SENSE_SEE; senses_range = PERC_DIST_ACTIVE_MAX; aivar[AIV_MM_FollowTime] = NPC_TIME_FOLLOW; aivar[AIV_FightDistCancel] = FIGHT_DIST_CANCEL; bodyStateInterruptableOverride = FALSE; guild = GIL_BAD; npcType = NPCTYPE_FRIEND; level = 50; voice = 4; flags = NPC_FLAG_IMMORTAL; B_SetAttributesToChapter(self,6); B_SetNpcVisual(self,MALE,"Hum_Head_Bald",Face_N_X ardas,BodyTex_N,ITAR_Xardas); Mdl_ApplyOverlayMds(self,"Humans_Mage.mds"); Mdl_SetModelFatness(self,0); B_SetFightSkills(self,30); CreateInvItems(self,ItPo_Health_03,10); senses = SENSE_SEE | SENSE_SMELL; senses_range = 2000; fight_tactic = FAI_HUMAN_MASTER; aivar[AIV_IgnoresArmor] = TRUE; B_GiveNpcTalents(self); aivar[AIV_MagicUser] = MAGIC_ALWAYS; aivar[AIV_EnemyOverride] = TRUE; };
instance BAD_9006_KRIEG(DEFAULT_DARKMAGE) { name[0] = "Хранитель войны"; id = 9006; daily_routine = rtn_start_9006; };
instance BAD_9007_PEST(DEFAULT_DARKMAGE) { name[0] = "Хранитель чумы"; id = 9007; daily_routine = rtn_start_9007; };
instance BAD_9008_HUNGER(DEFAULT_DARKMAGE) { name[0] = "Хранитель голода"; id = 9008; daily_routine = rtn_start_9008; };
instance BAD_9009_TOD(DEFAULT_DARKMAGE) { name[0] = "Хранитель смерти"; id = 9009; daily_routine = rtn_start_9009; };
func void rtn_start_9006() { ta_hueter(0,0,12,0,"OC_RAMP_16"); ta_hueter(12,0,0,0,"OC_RAMP_16"); };
func void rtn_nw_9006() { ta_hueter(0,0,12,0,"NW_LITTLESTONEHENDGE"); ta_hueter(12,0,0,0,"NW_LITTLESTONEHENDGE"); };
func void rtn_tot_9006() { ta_hueter(0,0,12,0,"TOT"); ta_hueter(12,0,0,0,"TOT"); };
func void rtn_start_9007() { ta_hueter(0,0,12,0,"NW_CITY_KANAL_06"); ta_hueter(12,0,0,0,"NW_CITY_KANAL_06"); };
func void rtn_ritual_9007() { ta_hueter(0,0,12,0,"NW_LITTLESTONEHENDGE_02") ; ta_hueter(12,0,0,0,"NW_LITTLESTONEHENDGE_02") ; };
func void rtn_start_9008() { ta_hueter(0,0,12,0,"NW_FARM2_PATH_02"); ta_hueter(12,0,0,0,"NW_FARM2_PATH_02"); };
func void rtn_ritual_9008() { ta_hueter(0,0,12,0,"NW_LITTLESTONEHENDGE"); ta_hueter(12,0,0,0,"NW_LITTLESTONEHENDGE"); };
func void rtn_start_9009() { ta_hueter(0,0,12,0,"ADW_MINE_MC_01"); ta_hueter(12,0,0,0,"ADW_MINE_MC_01"); };
func void rtn_nw_9009() { ta_hueter(0,0,12,0,"NW_LITTLESTONEHENDGE_01") ; ta_hueter(12,0,0,0,"NW_LITTLESTONEHENDGE_01") ; };
func void rtn_tot_9009() { ta_hueter(0,0,12,0,"TOT"); ta_hueter(12,0,0,0,"TOT"); };
func void zs_bad_routine() { Perception_Set_Normal(); AI_SetWalkMode(self,NPC_WALK); if(Npc_GetDistToWP(self,self.wp) > 1000) { if(Npc_GetDistToNpc(self,hero) < 10000) { AI_PlayAni(self,"T_RUN_2_MAG"); AI_PlayAni(self,"T_MAG_2_MAGRUN"); AI_PlayAni(self,"T_MAGRUN_2_HEASHOOT"); Wld_PlayEffect("spellFX_Teleport",self,self,0,0,0 ,FALSE); }; AI_Teleport(self,self.wp); }; AI_GotoWP(self,self.wp); AI_AlignToWP(self); };
func int zs_bad_routine_loop() { var int randomMove; if(KENNT_STEINKREIS) { if((((self.id == oth) && Npc_KnowsInfo(hero,bad_krieg_speak)) || Npc_KnowsInfo(hero,bad_tod_speak)) && (CurrentLevel != NEWWORLD_ZEN) && (Npc_GetDistToWP(self,"TOT") > 1000) && (self.aivar[AIV_INVINCIBLE] == FALSE)) { Npc_ExchangeRoutine(self,"Tot"); return LOOP_END; }; if((((self.id == oth) && Npc_KnowsInfo(hero,bad_krieg_speak)) || Npc_KnowsInfo(hero,bad_tod_speak)) && (CurrentLevel != NEWWORLD_ZEN) && (Npc_GetDistToWP(self,"TOT") <= 1000)) { self.flags = 0; Npc_ChangeAttribute(self,ATR_HITPOINTS,-self.attribute[ATR_HITPOINTS_MAX]); return LOOP_END; }; if((self.id == 9007) && Npc_KnowsInfo(hero,bad_pest_speak) && (Npc_GetDistToWP(self,"NW_LITTLESTONEHENDGE_02") > 1000) && (self.aivar[AIV_INVINCIBLE] == FALSE)) { Npc_ExchangeRoutine(self,"Ritual"); return LOOP_END; }; if((self.id == slf) && Npc_KnowsInfo(hero,bad_hunger_speak) && (Npc_GetDistToWP(self,"NW_LITTLESTONEHENDGE") > 1000) && (self.aivar[AIV_INVINCIBLE] == FALSE)) { Npc_ExchangeRoutine(self,"Ritual"); return LOOP_END; }; }; if((BAD_RITUAL == 1) && (self.id == oth)) { Wld_PlayEffect("FX_EarthQuake",self,self,0,0,0,FA LSE); AI_PlayAni(self,"T_PRACTICEMAGIC5"); Wld_PlayEffect("spellFX_INCOVATION_VIOLET",self,s elf,0,0,0,FALSE); BAD_RITUAL = 2; return LOOP_CONTINUE; }; if((BAD_RITUAL == 2) && (self.id == 9007)) { AI_PlayAni(self,"T_PRACTICEMAGIC5"); Wld_PlayEffect("spellFX_INCOVATION_VIOLET",self,s elf,0,0,0,FALSE); BAD_RITUAL = 3; return LOOP_CONTINUE; }; if((BAD_RITUAL == 3) && (self.id == slf)) { AI_PlayAni(self,"T_PRACTICEMAGIC5"); Wld_PlayEffect("spellFX_INCOVATION_VIOLET",self,s elf,0,0,0,FALSE); BAD_RITUAL = 4; return LOOP_CONTINUE; }; if(BAD_RITUAL == 4) { Wld_PlayEffect("FX_EarthQuake",self,self,0,0,0,FA LSE); AI_PlayAni(self,"T_PRACTICEMAGIC5"); Wld_PlayEffect("spellFX_INCOVATION_VIOLET",self,s elf,0,0,0,FALSE); BAD_RITUAL = 5; return LOOP_CONTINUE; }; if(Npc_GetStateTime(self) > 5) { randomMove = Hlp_Random(6); if(randomMove == 0) { AI_PlayAni(self,"R_LEGSHAKE"); }; if(randomMove == 1) { AI_PlayAni(self,"R_SCRATCHLSHOULDER"); }; if(randomMove == 2) { AI_PlayAni(self,"R_SCRATCHEGG"); }; if(randomMove == 3) { AI_PlayAni(self,"R_SCRATCHHEAD"); }; if(randomMove == 4) { AI_PlayAni(self,"R_SCRATCHRSHOULDER"); }; if(randomMove == 5) { AI_PlayAni(self,"T_PRACTICEMAGIC"); }; Npc_SetStateTime(self,0); }; return LOOP_CONTINUE; };
func void zs_bas_routine_end() { };
Но в строчках где использовано slf и oth выдат что undeclared name, а если исправляю на self и other, выдаёт что Cannot convert from type INT to INSTANCE
Прошу помощи
|