Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Ergebnis 1 bis 2 von 2
  1. Homepage besuchen Beiträge anzeigen #1 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline

    NPC soll anderen NPC nicht mehr angreifen, sobald die Verfolgung abgebrochen wurde

    Hallo,
    ich habe leider noch ein Problem, bei dem ich selbst nicht weiß, wie ich es beheben könnte...
    Über eine Funktion in der B_AssessPlayer lasse ich NPCs mit einer bestimmten Gilde den Helden per B_Attack (self, other, AR_GuildEnemy, 0); angreifen, sobald er eine bestimmte Rüstung trägt. Nun sollen die NPCs, die den Helden deshalb angegriffen haben, ihn nicht mehr angreifen, sobald diese die Verfolgung abgebrochen haben. Ich habe nun schon einiges probiert, jedoch greifen die NPCs den Spieler bei Sichtkontakt trotzdem immer wieder mit dem Spruch; "Du schon wieder!" an, selbst wenn dieser nicht mehr die Rüstung trägt, die dafür gesorgt hatte...

    Versucht habe ich das hier in der ZS_Attack_End:

    Code:
    if (self.aivar[AIV_PursuitEnd] == TRUE)    && (Npc_IsPlayer (other))
        && (self.guild < GIL_SEPERATOR_HUM)
        {
            if (self.aivar[AIV_LastPlayerAR] == AR_GuildEnemy)
            {
                Npc_SetTempAttitude(self, Npc_GetPermAttitude(self,hero));
            };
        };
    und:

    Code:
        if (self.aivar[AIV_PursuitEnd] == TRUE)
        && (Npc_IsPlayer (other))
            && (self.guild != GIL_BDT)
        && (self.guild < GIL_SEPERATOR_HUM)
        {
            if (self.aivar[AIV_LastPlayerAR] == AR_GuildEnemy)
            {
                if (self.npctype == NPCTYPE_FRIEND)
                {
                    B_SetAttitude (self, ATT_FRIENDLY);
                
                } else {
                
                    B_SetAttitude (self, ATT_NEUTRAL);
                };
            };
        };
    Ebenfalls in der ZS_Attack_End. Funktionieren tut das scheinbar auch, ich hatte Prints eingebaut, die auch angezeigt wurden. Nur scheint es nicht an der Attitude zu liegen...

  2. Homepage besuchen Beiträge anzeigen #2 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Ich konnte das Problem nach vielen Versuchen doch noch selbst beheben. Problem war das hier:

    Code:
        // ----- Nachbereitung bei Verfolgungsabbruch ------
        if (self.aivar[AIV_PursuitEnd] == TRUE)
        {
            // ------ TEMP_Hostile zum Player (NSC ist "upset") ------
            if (Hlp_IsValidNpc(other))     
            && (Npc_IsPlayer (other))
            && (self.npctype != NPCTYPE_FRIEND)
            {
                Npc_SetTempAttitude(self, ATT_HOSTILE);
            };
    Das stand direkt unter meinem Code, ebenfalls in der ZS_Attack_End:

    Code:
    if (self.guild == GIL_MIL)
            && (Hlp_IsValidNpc (other))
            && (Npc_IsPlayer (other))
            {
                if (self.aivar[AIV_ATTACKREASON] == AR_GuildEnemy)
                {
                    if (self.npctype == NPCTYPE_FRIEND)
                    {
                        B_SetAttitude(self, ATT_FRIENDLY);
                    
                    } else {
                    
                        B_SetAttitude(self, ATT_NEUTRAL);
                    };
                };
            };
    Nun habe ich das ganze einfach so abgeändert:

    Code:
    // ----- Nachbereitung bei Verfolgungsabbruch ------
        if (self.aivar[AIV_PursuitEnd] == TRUE)
        {
            // ------ TEMP_Hostile zum Player (NSC ist "upset") ------
            if (Hlp_IsValidNpc(other))     
            && (Npc_IsPlayer (other))
            && (self.npctype != NPCTYPE_FRIEND)
            {
                Npc_SetTempAttitude(self, ATT_HOSTILE);
            };
            
            if (self.guild == GIL_MIL)
            && (Hlp_IsValidNpc (other))
            && (Npc_IsPlayer (other))
            {
                if (self.aivar[AIV_ATTACKREASON] == AR_GuildEnemy)
                {
                    if (self.npctype == NPCTYPE_FRIEND)
                    {
                        B_SetAttitude(self, ATT_FRIENDLY);
                    
                    } else {
                    
                        B_SetAttitude(self, ATT_NEUTRAL);
                    };
                };
            };

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide