|
Re: Скриптинг в Готике
Ещё один вопрос, скопировал из Тёмного мага следущий скрипт
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 == 9006) && Npc_KnowsInfo(hero,bad_krieg_speak)) || ((self.id == 9009) && 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 == 9006) && Npc_KnowsInfo(hero,bad_krieg_speak)) || ((self.id == 9009) && 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 == 9008) && 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 == 9006)) * * *{ * * * * * *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 == 9008)) * * *{ * * * * * *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) && (self.id == 9009)) * * *{ * * * * * *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() { };
zSpy пишет что unknown identifier ta_hueter
ожет быть надо где-нибудь что-нибудь прописать?
2Vam: Большое спасибо
|