public static void OnDamage(NPCProto npc, NPCProto victim, NPCProto attacker,
                                    int damage, bool dropUnconscious, bool dropDead)
        {
            NPCAI ai = npc.getAI();

            if (victim.HP != 0)
            {
                if (npc.getAttitudeToGuild(victim.getGuild()) == Enumeration.GuildsAttitude.FRIENDLY &&
                    npc.getAttitudeToGuild(attacker.getGuild()) != Enumeration.GuildsAttitude.FRIENDLY)
                {
                    ai.addEnemy(attacker);
                }
                else if (npc.getAttitudeToGuild(attacker.getGuild()) == Enumeration.GuildsAttitude.FRIENDLY &&
                         npc.getAttitudeToGuild(victim.getGuild()) != Enumeration.GuildsAttitude.FRIENDLY)
                {
                    ai.addEnemy(victim);
                }
            }
            else if (ai.AssessBodyRoutine != null)
            {
                ai.AssessBodyRoutine(npc, victim);
            }
        }
예제 #2
0
        public static void OnDamage(NPCProto npc, NPCProto victim, NPCProto attacker, int damage, bool dropUnconscious, bool dropDead)
        {
            NPCAI ai = victim.getAI();

            if (victim.HP == 0)
            {
                victim.standAnim();
                victim.playAnimation("S_DEADB");
                return;
            }

            if (attacker == null)
            {
                return;
            }
            ai.addEnemy(attacker);
        }