Показать сообщение отдельно
Старый 03.10.2005, 21:37   #581
TSYLin

AGFC
Гость
 
Сообщений: n/a

По умолчанию 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

Прошу помощи
Ответить с цитированием