Автор Тема: The Culling of Stratholme (zone=4100)  (Прочетена 4692 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Неактивен Ballista

  • Emperor
  • ***
  • Публикации: 393
  • EVO Karma: 21
The Culling of Stratholme (zone=4100)
« -: Февруари 14, 2012, 12:49:57 pm »
Проблема е следния когато се пусне "евента" на Heroic и Arthas (http://www.wowhead.com/npc=26499) тръгне може да се убият само 2 боса (първи и втори), но когато се стигне до третия Arthas изчезва безследно и инста е до там.
Ако може да се оправи да не изчезва, за да може да се викат останалите босове ще сме ви благодарни.

Неактивен valio_

  • Challenger
  • *******
  • Публикации: 2399
  • EVO Karma: 171
  • Forum Nightmare
Re: The Culling of Stratholme (zone=4100)
« Отговор #1 -: Февруари 14, 2012, 01:04:38 pm »
Минете ли първите два боса трябва да седите плътно до артас иначе си взема ваканция. :clover:
Blade with whom i lived, Blade with whom now i died,
 serve right and justice one last time, seek last heart of evil, still one life of evil,
 cut well old friend, and then farewell

Неактивен hebectyjlka

  • Crusader
  • **
  • Публикации: 128
  • EVO Karma: 3
    • BloodSheD
  • Side: For The Horde
  • Герой: Hebectyjlka
Re: The Culling of Stratholme (zone=4100)
« Отговор #2 -: Февруари 15, 2012, 03:22:01 am »
Минете ли първите два боса трябва да седите плътно до артас иначе си взема ваканция. :clover:
Това важи за всякакъв escort. В момента е така направено, че ако NPC-то е в движение и ти излезе от полезрението (a.k.a. Sight Range) - няма да го видиш отново, освен ако не пуснеш event-а отначало.

Hebectyjlka - Protection Paladin; Kosmodisk - Resto Druid; Caladhiel - Fire Mage
You should never argue with idiots because they will just drag you down to their level....then beat you with experience!

Неактивен Ballista

  • Emperor
  • ***
  • Публикации: 393
  • EVO Karma: 21
Re: The Culling of Stratholme (zone=4100)
« Отговор #3 -: Февруари 15, 2012, 09:25:21 am »
Това важи за всякакъв escort. В момента е така направено, че ако NPC-то е в движение и ти излезе от полезрението (a.k.a. Sight Range) - няма да го видиш отново, освен ако не пуснеш event-а отначало.
3 дена подред ходя с различни хора стигаме до третия бос. Когато говориме с Arthas
за да пусне боса той минава през стената и изчезва. Ако правите днес TCoS ме викнете с вас да видиме какво ще стане. Герой - Lee.
« Последна редакция: Февруари 15, 2012, 09:27:37 am от Ballista »

Неактивен valio_

  • Challenger
  • *******
  • Публикации: 2399
  • EVO Karma: 171
  • Forum Nightmare
Re: The Culling of Stratholme (zone=4100)
« Отговор #4 -: Февруари 15, 2012, 01:25:24 pm »
Lee ако го мъчиш за ача или моунта се откажи.Боса за дракона го няма, а самия инс не го отчита, защото не работи куеста The royal escort.Аз се опитах преди 2 седмици и стигнахме без проблеми до Малганис, но просто не го отчита нито за куеста нито за инса.  :confused:
Blade with whom i lived, Blade with whom now i died,
 serve right and justice one last time, seek last heart of evil, still one life of evil,
 cut well old friend, and then farewell

Неактивен hebectyjlka

  • Crusader
  • **
  • Публикации: 128
  • EVO Karma: 3
    • BloodSheD
  • Side: For The Horde
  • Герой: Hebectyjlka
Re: The Culling of Stratholme (zone=4100)
« Отговор #5 -: Февруари 15, 2012, 02:05:07 pm »
Lee ако го мъчиш за ача или моунта се откажи.Боса за дракона го няма, а самия инс не го отчита, защото не работи куеста The royal escort.Аз се опитах преди 2 седмици и стигнахме без проблеми до Малганис, но просто не го отчита нито за куеста нито за инса.  :confused:
Преди малко се убедихме сами, че е така  :sad: Btw quest-ът никога не е работил, но преди поне отчиташе убитите босове за achievement-а...

Hebectyjlka - Protection Paladin; Kosmodisk - Resto Druid; Caladhiel - Fire Mage
You should never argue with idiots because they will just drag you down to their level....then beat you with experience!

untaught

  • Гост
Re: The Culling of Stratholme (zone=4100)
« Отговор #6 -: Февруари 15, 2012, 04:30:12 pm »
Току що минах инстанцията без проблем. :no:

Неактивен Muri

  • Gladiator
  • ****
  • Публикации: 652
  • EVO Karma: 15
  • Side: For The Alliance
  • Герой: Timewizard
Re: The Culling of Stratholme (zone=4100)
« Отговор #7 -: Февруари 15, 2012, 06:57:26 pm »
Там е малко на късмет ... имали сме рънове в които всичко е наред .... а е имало и fail-ове без никаква наша вина.
Timewizard

Неактивен Ballista

  • Emperor
  • ***
  • Публикации: 393
  • EVO Karma: 21
Re: The Culling of Stratholme (zone=4100)
« Отговор #8 -: Февруари 15, 2012, 09:39:18 pm »
Значи последно инста се бъгва когато си иска. Последния бос се бъгва и не дава achievementi, ако може да се оправят achievementi-те. За да може да ги взимаме и да взема "of The Frozen Waves". Мерси.

Неактивен admin

  • Owner
  • Challenger
  • *****
  • Публикации: 11572
  • EVO Karma: 316
  • Think of will!
    • Peycho's Blog - Think of will!
  • ISP: AWS
  • Герой: Alein
Re: The Culling of Stratholme (zone=4100)
« Отговор #9 -: Февруари 20, 2012, 09:47:49 am »
Нещата в инстанциите са по-сложни, там всичко се спаунва (босове, мобове, обекти) от скрипт след както някой влезе в инста.

Босовете нямат респаун време и се появяват само след ресет на инса. Каквато и промяна да направи някой от екипа по дб-то, то ще бъде напразно.

https://github.com/TrinityCore/TrinityCore/issues/search?q=Stratholme

Ето колко много репорти има.
A systems programmer will know what to do when society breaks down, because the systems programmer already lives in a world without laws.

EVOWOW Private Wow Server
WOTLK Database

Неактивен Feat

  • Crusader
  • **
  • Публикации: 183
  • EVO Karma: 10
  • wild child
Re: The Culling of Stratholme (zone=4100)
« Отговор #10 -: Март 06, 2012, 12:09:17 pm »
Пробвайте това мисля, че така би трябвало да стане
sql/updates/world/2011_12_18_04_world_conditions.sql
UPDATE spell_dbc SET EffectImplicitTargetA1 = 22, EffectImplicitTargetB1 = 7 WHERE Id = 58630;

DELETE FROM conditions WHERE SourceTypeOrReferenceId = 13 AND SourceEntry IN (61863, 68663);
INSERT INTO conditions (SourceTypeOrReferenceId, SourceEntry, ConditionTypeOrReference, ConditionValue1, Comment) VALUES
(13, 58630, 18, 1, 'Mal''Ganis - Kill Credit');

src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/boss_mal_ganis.cpp
#include "ScriptPCH.h"
#include "culling_of_stratholme.h"

enum Spells
{
    SPELL_CARRION_SWARM                         = 52720, //A cresting wave of chaotic magic splashes over enemies in front of the caster, dealing 3230 to 3570 Shadow damage and 380 to 420 Shadow damage every 3 sec. for 15 sec.
    H_SPELL_CARRION_SWARM                       = 58852,
    SPELL_MIND_BLAST                            = 52722, //Inflicts 4163 to 4837 Shadow damage to an enemy.
    H_SPELL_MIND_BLAST                          = 58850,
    SPELL_SLEEP                                 = 52721, //Puts an enemy to sleep for up to 10 sec. Any damage caused will awaken the target.
    H_SPELL_SLEEP                               = 58849,
    SPELL_VAMPIRIC_TOUCH                        = 52723, //Heals the caster for half the damage dealt by a melee attack.
    SPELL_KILL_CREDIT                           = 58630  // Non-existing spell as encounter credit, created in spell_dbc
};

enum Yells
{
    SAY_INTRO_1                                 = -1595009,
    SAY_INTRO_2                                 = -1595010,
    SAY_AGGRO                                   = -1595011,
    SAY_KILL_1                                  = -1595012,
    SAY_KILL_2                                  = -1595013,
    SAY_KILL_3                                  = -1595014,
    SAY_SLAY_1                                  = -1595015,
    SAY_SLAY_2                                  = -1595016,
    SAY_SLAY_3                                  = -1595017,
    SAY_SLAY_4                                  = -1595018,
    SAY_SLEEP_1                                 = -1595019,
    SAY_SLEEP_2                                 = -1595020,
    SAY_30HEALTH                                = -1595021,
    SAY_15HEALTH                                = -1595022,
    SAY_ESCAPE_SPEECH_1                         = -1595023,
    SAY_ESCAPE_SPEECH_2                         = -1595024,
    SAY_OUTRO                                   = -1595025,
};

enum CombatPhases
{
    COMBAT,
    OUTRO
};

class boss_mal_ganis : public CreatureScript
{
public:
    boss_mal_ganis() : CreatureScript("boss_mal_ganis") { }

    CreatureAI* GetAI(Creature* creature) const
    {
        return new boss_mal_ganisAI (creature);
    }

    struct boss_mal_ganisAI : public ScriptedAI
    {
        boss_mal_ganisAI(Creature* c) : ScriptedAI(c)
        {
            instance = c->GetInstanceScript();
        }

        uint32 uiCarrionSwarmTimer;
        uint32 uiMindBlastTimer;
        uint32 uiVampiricTouchTimer;
        uint32 uiSleepTimer;

        uint8 uiOutroStep;
        uint32 uiOutroTimer;

        bool bYelled;
        bool bYelled2;

        CombatPhases Phase;

        InstanceScript* instance;

        void Reset()
        {
             bYelled = false;
             bYelled2 = false;
             Phase = COMBAT;
             uiCarrionSwarmTimer = 6000;
             uiMindBlastTimer = 11000;
             uiVampiricTouchTimer = urand(10000, 15000);
             uiSleepTimer = urand(15000, 20000);
             uiOutroTimer = 1000;

             if (instance)
                 instance->SetData(DATA_MAL_GANIS_EVENT, NOT_STARTED);
        }

        void EnterCombat(Unit* /*who*/)
        {
            DoScriptText(SAY_AGGRO, me);
            if (instance)
                instance->SetData(DATA_MAL_GANIS_EVENT, IN_PROGRESS);
        }

        void DamageTaken(Unit* done_by, uint32 &damage)
        {
            if (damage >= me->GetHealth() && done_by != me)
                damage = me->GetHealth()-1;
        }

        void UpdateAI(const uint32 diff)
        {
            switch (Phase)
            {
                case COMBAT:
                    //Return since we have no target
                    if (!UpdateVictim())
                        return;

                    if (!bYelled && HealthBelowPct(30))
                    {
                        DoScriptText(SAY_30HEALTH, me);
                        bYelled = true;
                    }

                    if (!bYelled2 && HealthBelowPct(15))
                    {
                        DoScriptText(SAY_15HEALTH, me);
                        bYelled2 = true;
                    }

                    if (HealthBelowPct(1))
                    {
                        //Handle Escape Event: Don't forget to add Player::RewardPlayerAndGroupAtEvent
                        me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
                        uiOutroStep = 1;
                        Phase = OUTRO;
                        return;
                    }

                    if (Creature* pArthas = me->GetCreature(*me, instance ? instance->GetData64(DATA_ARTHAS) : 0))
                        if (pArthas->isDead())
                        {
                            EnterEvadeMode();
                            me->DisappearAndDie();
                            if (instance)
                                instance->SetData(DATA_MAL_GANIS_EVENT, FAIL);
                        }

                    if (uiCarrionSwarmTimer < diff)
                    {
                        DoCastVictim(SPELL_CARRION_SWARM);
                        uiCarrionSwarmTimer = 7000;
                    } else uiCarrionSwarmTimer -= diff;

                    if (uiMindBlastTimer < diff)
                    {
                        if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
                            DoCast(target, SPELL_MIND_BLAST);
                        uiMindBlastTimer = 6000;
                    } else uiMindBlastTimer -= diff;

                    if (uiVampiricTouchTimer < diff)
                    {
                        DoCast(me, SPELL_VAMPIRIC_TOUCH);
                        uiVampiricTouchTimer = 32000;
                    } else uiVampiricTouchTimer -= diff;

                    if (uiSleepTimer < diff)
                    {
                        DoScriptText(RAND(SAY_SLEEP_1, SAY_SLEEP_2), me);
                        if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
                            DoCast(target, SPELL_SLEEP);
                        uiSleepTimer = urand(15000, 20000);
                    } else uiSleepTimer -= diff;

                    DoMeleeAttackIfReady();
                    break;
                case OUTRO:
                    if (uiOutroTimer < diff)
                    {
                        switch (uiOutroStep)
                        {
                            case 1:
                                DoScriptText(SAY_ESCAPE_SPEECH_1, me);
                                me->GetMotionMaster()->MoveTargetedHome();
                                ++uiOutroStep;
                                uiOutroTimer = 8000;
                                break;
                            case 2:
                                me->SetTarget(instance ? instance->GetData64(DATA_ARTHAS) : 0);
                                me->HandleEmoteCommand(29);
                                DoScriptText(SAY_ESCAPE_SPEECH_2, me);
                                ++uiOutroStep;
                                uiOutroTimer = 9000;
                                break;
                            case 3:
                                DoScriptText(SAY_OUTRO, me);
                                ++uiOutroStep;
                                uiOutroTimer = 16000;
                                break;
                            case 4:
                                me->HandleEmoteCommand(33);
                                ++uiOutroStep;
                                uiOutroTimer = 500;
                                break;
                            case 5:
                                me->SetVisible(false);
                                me->Kill(me);
                                break;

                        }
                    } else uiOutroTimer -= diff;
                    break;
            }
        }

        void JustDied(Unit* /*killer*/)
        {
            if (instance)
            {
                instance->SetData(DATA_MAL_GANIS_EVENT, DONE);

                // give achievement credit and LFG rewards to players. criteria use spell 58630 which doesn't exist, but it was created in spell_dbc
                DoCast(me, SPELL_KILL_CREDIT);
            }
        }

        void KilledUnit(Unit* victim)
        {
            if (victim == me)
                return;

            DoScriptText(RAND(SAY_SLAY_1, SAY_SLAY_2, SAY_SLAY_3, SAY_SLAY_4), me);
        }
    };

};

void AddSC_boss_mal_ganis()
{
    new boss_mal_ganis();
}
« Последна редакция: Март 06, 2012, 12:11:36 pm от Feat »


Неактивен admin

  • Owner
  • Challenger
  • *****
  • Публикации: 11572
  • EVO Karma: 316
  • Think of will!
    • Peycho's Blog - Think of will!
  • ISP: AWS
  • Герой: Alein
Re: The Culling of Stratholme (zone=4100)
« Отговор #11 -: Март 06, 2012, 03:00:37 pm »
Feet не добавяме c++ скриптове ако не си забелязал.
A systems programmer will know what to do when society breaks down, because the systems programmer already lives in a world without laws.

EVOWOW Private Wow Server
WOTLK Database

Неактивен Feat

  • Crusader
  • **
  • Публикации: 183
  • EVO Karma: 10
  • wild child
Re: The Culling of Stratholme (zone=4100)
« Отговор #12 -: Март 06, 2012, 04:19:11 pm »
Знам Пейчо, но никога нее късно да започнете може да се постигнат доста добри резултати .


Неактивен admin

  • Owner
  • Challenger
  • *****
  • Публикации: 11572
  • EVO Karma: 316
  • Think of will!
    • Peycho's Blog - Think of will!
  • ISP: AWS
  • Герой: Alein
Re: The Culling of Stratholme (zone=4100)
« Отговор #13 -: Март 10, 2012, 07:02:08 pm »
Знам Пейчо, но никога нее късно да започнете може да се постигнат доста добри резултати .

Проблема не е в самото добавяне.

Това ще ме накара да прекомпилирам ядрото, и да спирам сървъра, което не ме кефи като цяло.
След това можем да говорим за възможни бъгове и крашове.
A systems programmer will know what to do when society breaks down, because the systems programmer already lives in a world without laws.

EVOWOW Private Wow Server
WOTLK Database

Неактивен Ballista

  • Emperor
  • ***
  • Публикации: 393
  • EVO Karma: 21
Re: The Culling of Stratholme (zone=4100)
« Отговор #14 -: Ноември 18, 2012, 10:12:26 am »
Проблема е следния когато се пусне "евента" на Heroic и Arthas (http://www.wowhead.com/npc=26499) тръгне може да се убият само 2 боса (първи и втори), но когато се стигне до третия Arthas изчезва безследно и инста е до там.
Ако може да се оправи да не изчезва, за да може да се викат останалите босове ще сме ви благодарни.
8 месеца след написването на темата положението е станало още по-зле.
В момента не може изобщо да се говори с  Arthas и "евента" в този инст не започва.
Инстанцията не работи изцяло в момента.