Ru-MaNGOS

Ru-MaNGOS (http://ru-mangos.ru/index.php)
-   MaNGOSZero (1.12.X) (http://ru-mangos.ru/forumdisplay.php?f=48)
-   -   Training Dummy [for classic] (http://ru-mangos.ru/showthread.php?t=5257)

Mayss 13.03.2012 10:48

Training Dummy [for classic]
 
Возникла идея "сделать" вернее взять с getmangos скрипт, и прикрутить его к классику.

Код:

#include "precompiled.h"

#define OUT_OF_COMBAT_TIME 5000

struct MANGOS_DLL_DECL npc_training_dummyAI : public Scripted_NoMovementAI
{
    uint32 combat_timer;
    npc_training_dummyAI(Creature* pCreature) : Scripted_NoMovementAI(pCreature)
    {
        Reset();
    }
    void Reset()
    {
        m_creature->addUnitState(UNIT_STAT_STUNNED);
        m_creature->addUnitState(UNIT_STAT_CONTROLLED);
        combat_timer = 0;
    }
    void DamageTaken(Unit* pDoneBy, uint32 &uiDamage)
    {
        combat_timer = 0;
    }
    void UpdateAI(const uint32 diff)
    {
        if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
            return;

        m_creature->ModifyHealth(m_creature->GetMaxHealth());
        m_creature->SetTargetGuid(ObjectGuid());
        combat_timer += diff;

        if (combat_timer > OUT_OF_COMBAT_TIME)
            EnterEvadeMode();
    }
};
CreatureAI* GetAI_npc_training_dummy(Creature* pCreature)
{
    return new npc_training_dummyAI(pCreature);
}

void AddSC_npc_training_dummy()
{
    Script *newscript = new Script;
    newscript->Name = "npc_training_dummy";
    newscript->GetAI = &GetAI_npc_training_dummy;
    newscript->RegisterSelf();
}

Код:

INSERT INTO `creature_template` VALUES (19211,0,0,3019,0,'Training Dummy',NULL,0,3,3,6000000,700000,0,0,597,914,914,0,1,1,0,0,10,11,0,5,1,2000,2200,0,0,0,0,0,0,0,0,1.76,2.42,100,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,'',0,3,0,0,1,0,0,0,16384,2,'npc_training_dummy');
INSERT INTO `creature_template` VALUES (19212,0,0,3019,0,'Veteran\'s Training Dummy',NULL,0,55,55,6000000,700000,0,0,3221,914,914,0,1,1,0,0,10,11,0,5,1,2000,2200,0,0,0,0,0,0,0,0,1.76,2.42,100,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,'',0,3,0,0,1,0,0,0,16384,2,'npc_training_dummy');
INSERT INTO `creature_template` VALUES (19213,0,0,3019,0,'Training Dummy',NULL,0,60,60,6000000,700000,0,0,3750,914,914,0,1,1,0,0,10,11,0,5,1,2000,2200,0,0,0,0,0,0,0,0,1.76,2.42,100,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,'',0,3,0,0,1,0,0,0,16384,2,'npc_training_dummy');
INSERT INTO `creature_template` VALUES (19214,0,0,3019,0,'Raider\'s Training Dummy',NULL,0,63,63,6000000,700000,0,0,4647,914,914,0,1,1,0,3,10,11,0,5,1,2000,2200,0,0,0,0,0,0,0,0,1.76,2.42,100,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,'',0,3,0,0,1,0,0,0,16384,2,'npc_training_dummy');

ID можете сменить на свои, если они уже используются.
З.Ы у 3 уровня 597 брони, у 55 уровня 3221 брони, у 60 уровня 3750, и у 63(босс) 4647 соответственно. Это верно? взято из YTDB значения брони по уровням, или в классике они были меньше?.

Mayss 13.03.2012 11:09

Разобрался, обновил первый пост.

KiriX 13.03.2012 11:58

Мб тут m_creature->SetTargetGuid(ObjectGuid());?

Mayss 13.03.2012 12:03

Цитата:

Сообщение от KiriX (Сообщение 26610)
Мб тут m_creature->SetTargetGuid(ObjectGuid());?

Спасибо, уже разобрался и добавил SQL :thank_you:

Amaru 14.03.2012 14:37

Т.е. комбат не сбросится, пока хоть 1 человек из его аггро листа его бьет.
На офе комбат в любом случае сбрасывается - как в пвп


Текущее время: 19:40. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS