Auron_X
Beiträge: 929
|
Routine wird nicht gewechselt
Hallo, folgendes Prob: Die NPC soll die Routine wechseln und in die Arena latschen, aber das macht sie nicht. Stattdesssen verfällt sie einfach wieder in ihre Standardroutine.
Hier der Dialog:
code\:
// ************************************************** // EXIT // **************************************************
instance DIA_Asgarn_Exit (C_INFO) { npc = Stt_18001_Asgarn; nr = 999; condition = DIA_Asgarn_Exit_Condition; information = DIA_Asgarn_Exit_Info; permanent = TRUE; description = DIALOG_ENDE; };
FUNC INT DIA_Asgarn_Exit_Condition() { return TRUE; };
func VOID DIA_Asgarn_Exit_Info() { AI_StopProcessInfos (self); };
//************************************************** // Hallo *** //**************************************************
instance DIA_Asgarn_Hello (C_INFO) { npc = Stt_18001_Asgarn; condition = DIA_Asgarn_Hello_Condition; information = DIA_Asgarn_Hello_Info; permanent = FALSE; description = "Hallo"; };
FUNC INT DIA_Asgarn_Hello_Condition() { return TRUE; };
func VOID DIA_Asgarn_Hello_Info() { AI_Output(other,self,"DIA_Asgarn_Hello_15_00");//Hallo! AI_Output(self,other,"DIA_Asgarn_Hello_10_01");//Hallo, was willst du von mir? AI_Output(other,self,"DIA_Asgarn_Hello_15_02");//Nichts, ich wollte einfach nur "Hallo" sagen. AI_Output(self,other,"DIA_Asgarn_Hello_10_03");//Auf Wiedersehen. AI_Output(other,self,"DIA_Asgarn_Hello_15_04");//Na du hast aber schlechte Manieren! };
//************************************************** // Herausfordern *** //**************************************************
instance DIA_Asgarn_fight1 (C_INFO) { npc = Stt_18001_Asgarn; condition = DIA_Asgarn_fight1_Condition; information = DIA_Asgarn_fight1_Info; permanent = FALSE; description = "Ich muss dir mal Manieren beibringen!"; };
FUNC INT DIA_Asgarn_fight1_Condition() { if (Npc_KnowsInfo(hero,DIA_Asgarn_Hello)) { return TRUE; }; return FALSE; };
func VOID DIA_Asgarn_fight1_Info() { AI_Output(other,self,"DIA_Asgarn_fight1_15_00");//Ich denke ich muss dir mal manieren beibringen. AI_Output(self,other,"DIA_Asgarn_fight1_10_01");//Na klar, das können wir ja in der Arena ausmachen.
if (Wld_IsTime(18,30,20,00) == TRUE) { AI_Output(self,other,"DIA_Asgarn_fight1_10_02");//Aber nicht jetzt, wir wollen die anderen ja nicht beim Kämpfen stören... } else { AI_Output(self,other,"DIA_Asgarn_fight1_10_03");//Komm mit, wir werden ja sehen wer hier wem Manieren beibringt. //Diesen Text spricht er noch AI_StopProcessInfos(self);
Asgarnfight = TRUE; Npc_ExchangeRoutine(self,"Guide"); }; };
// ************************************** // IN DER ARENA // **************************************
instance DIA_Asgarn_fightstart (C_INFO) { npc = Stt_18001_Asgarn; nr = 1; condition = DIA_Asgarn_fightstart_Condition; information = DIA_Asgarn_fightstart_Info; permanent = 0; important = 1; };
FUNC INT DIA_Asgarn_fightstart_Condition() { if ( (Asgarnfight == TRUE) && (Npc_GetDistToWp (hero,"OCR_ARENABATTLE_TRAIN") < 500) ) { return TRUE; }; };
func VOID DIA_Asgarn_fightstart_Info() { AI_Output (self, other,"DIA_Asgarn_fightstart_10_00"); //So, dann wollen wir mal. Lets rock! AI_StopProcessInfos ( self ); Npc_ExchangeRoutine(self,"START"); Asgarnfight = FALSE; Npc_SetTarget(self,other); AI_StartState(self,ZS_ATTACK,1,""); };
Und hier noch die NPC-Instanz:
code\:
instance STT_18001_Asgarn (Npc_Default) { //-------- primary data -------- name = "Asgarn"; guild = GIL_STT; level = 28; npctype = NPCTYPE_MAIN; voice = 10; // k.A. musst du noch zuteilen... id = 18001; //-------- abilities -------- attribute[ATR_STRENGTH] = 35; attribute[ATR_DEXTERITY] = 20; attribute[ATR_MANA_MAX] = 5; attribute[ATR_MANA] = 0; attribute[ATR_HITPOINTS_MAX] = 220; attribute[ATR_HITPOINTS] = 220;
//-------- visuals -------- // animations Mdl_SetVisual (self,"HUMANS.MDS"); // body mesh bodytex skin head mesh headtex(schick ich mit) teethtex ruestung Mdl_SetVisualBody (self,"hum_body_Naked0", 0, 3, "Hum_Head_Bald", 118, 1, STT_ARMOR_M); B_Scale (self); Mdl_SetModelFatness(self,0); fight_tactic = FAI_HUMAN_RANGED;
//-------- Talente --------
Npc_SetTalentSkill (self, NPC_TALENT_1H,2); //-------- inventory -------- EquipItem (self, ItMw_2H_Staff_03); CreateInvItem (self, ItFo_Potion_Water_01); CreateInvItem (self, ItFoApple); CreateInvItems (self, ItMinugget,5); CreateInvItems (self, ItKeLockpick,2);
//------------- Daily Routine ------------- daily_routine = Rtn_start_10001; };
FUNC VOID Rtn_start_10001 () //Auch noch keine, du meintest um die Standorte müsse ich mich nicht kümmern { TA_SitAround (00,00,12,00,"OCR_HUT_Z5_SIT2"); TA_SitAround (12,00,00,00,"OCR_HUT_Z5_SIT2"); };
FUNC VOID Rtn_Guide_10001() { TA_GuidePC (00,00,12,00,"OCR_ARENABATTLE_TRAIN"); TA_GuidePC (12,00,00,00,"OCR_ARENABATTLE_TRAIN"); };
THX schonmal im Voraus Auron_X
|