Erster Boss Script

Hi,

Ich habe Heute das erste mal probiert einen Boss Script für Trinity mit C++ zu Scripten.

eigentlich sah es am Anfang ganz gut aus, aber dann als es zum Compaile kamm, Tauchten dann eine Menge Fehler auf.


/*

Boss Name : Katirus

Dangon : ****** Ally Srat Quest


By Rhule for ******.com

*/


#include "ScriptPCH.h"


enum Spells

{

    #define SPELL_Apokalypse           = 53210,

    #define SPELL_Suehne               = 53007,

	#define SPELL_Siebenfache		   = 51856,

	#define SPELL_Schattenblitzvortex  = 6963,

	#define SPELL_ARMYDEAD             = 67761


};



class boss_Katirus : public CreatureScript

{

public:

    boss_Katirus() : CreatureScript("boss_Katirus") { }


    CreatureAI* GetAI(Creature* pCreature) const

    {

        return new boss_KatirusAI (pCreature);

    }


    struct boss_KatirusAI : public ScriptedAI

    {

        boss_KatirusAI (Creature *c) : ScriptedAI(c)

        {

				uint32 Apokalypse_Timer;

                uint32 Suehne_Timer;

                uint32 Siebenfache_Timer;

                uint32 Schattenblitzvortex_Timer;

                uint32 ARMYDEAD_Timer;

                uint32 Phase;


		}


        void Reset()

        { 

		Apokalypse_Timer = 0;

        Suehne_Timer = 0;

        Siebenfache_Timer = 10000;

        Schattenblitzvortex_Timer = 10000;

        ARMYDEAD_Timer = 10000;

        Phase = 1;

		}


        void EnterCombat(Unit* /*who*/)

        {

			Phase=1 ;

		me->MonsterYell("Was ihr Lebt noch ? ", 0, 0);

		me->MonsterYell("Dafür das ihr Rausgefunden habt, das ich ein Verräter bin, werdet ihr", 0, 0);

		me->MonsterYell("Sterben. Niemand kann mich aufhalten!", 0, 0);

		me->MonsterYell("Sterbt nun hier Redoxx! Sterbt!!!", 0, 0);

		}


        void JustDied(Unit* /*killer*/)

        {


		me->MonsterSay("Obwohl ihr es geschafft habt mich zu besigen, wird Dunkelheit über die Euch bekannte Welt einbrechen... ",0,0);

		me->MonsterSay("Wartet nur ab Redoox, wartet nur ab",0,0);


		}


        void KilledUnit(Unit *) 

        {

		me->MonsterYell("Ich hab Euch gewarnt, Redoxx!", 0, 0);

		me->MonsterYell("Du und dein Begleiter hatten von anfang an keine Chance!", 0, 0);

		me->MonsterYell("Muhahahahaha", 0, 0);

		}


        void UpdateAI(const uint32 diff)

        {



if (!UpdateVictim())

return;

if (((me->GetHealth()*100 / me->GetMaxHealth()) < 60) && (Phase == 1))

	  {

        Phase = 2;

      }





/*Phase 1 Sühe und Apokalypse */


            if (Phase == 1)

						{

							    /* Apokalypse */

								if (Apokalypse_Timer <= uiDiff)

                                {

                                        DoCast(me->getVictim(), SPELL_Apokalypse);

                                        Apokalypse_Timer = 5000;

                                }

                                else

                                        Apokalypse_Timer -= uiDiff;


								/* Sühene */

								if (Suehne_Timer <= uiDiff)

                                {

                                        DoCast(me->getVictim(), SPELL_Suehne);

                                        Suehne_Timer = 5000;

                                }

                                else

                                        Suehne_Timer -= uiDiff;





							}


/*Phase 2 Schattenblitzvortex und Siebenfache */

			if (Phase == 2){


								/* Schattenblitzvortex */

								if (Schattenblitzvortex_Timer <= uiDiff)

                                {

                                        DoCast(me->getVictim(), SPELL_Schattenblitzvortex);

                                        Schattenblitzvortex_Timer = 5000;

                                }

                                else

                                        Schattenblitzvortex_Timer -= uiDiff;


								/* Siebenfache */

								if (Siebenfache_Timer <= uiDiff)

                                {

                                        DoCast(me->getVictim(), SPELL_Siebenfache);

                                        Siebenfache_Timer = 5000;

                                }

                                else

                                        Siebenfache_Timer -= uiDiff;

								if (((me->GetHealth()*100 / me->GetMaxHealth()) < 8) && (Phase == 2))

								 {

								 Phase = 3;

								}



			}

			/*Phase 3 Gestalt ändern und Arme der Toten */

			if (Phase == 3){










				}



            if (!UpdateVictim())

                return;

        }

    };


};


void AddSC_boss_Katirus()

{

    new boss_Katirus();

}

Das waren die ersten fehler, habe es umgebaut aber die Fehler waren die gleichen :


home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:152: error: expected `}' at end of input

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:152: error: expected unqualified-id at end of input

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:152: error: expected `}' at end of input

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp: In member function âvirtual void boss_Katirus::boss_KatirusAI::Reset()â:

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:45: error: âphaseâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp: In member function âvirtual void boss_Katirus::boss_KatirusAI::EnterCombat(Unit*)â:

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:50: error: âphaseâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp: In member function âvirtual void boss_Katirus::boss_KatirusAI::UpdateAI(uint32)â:

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:78: error: âPhaseâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:87: error: âPhaseâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:90: error: ât_Apokalypseâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:96: error: ât_Suehneâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:106: error: âPhaseâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:107: error: expected identifier before â(â token

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:107: error: expected `;' before â(â token

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:113: error: ât_SPELL_Siebenfacheâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:116: error: ât_Suehneâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:119: error: ât_SPELL_Siebenfacheâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:122: error: ât_Schattenblitzvortexâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:123: error: ât_Schattenblitzvortexâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:131: error: âSetDisplayIdâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:132: error: ât_ARMYDEADâ was not declared in this scope

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp: At global scope:

/home/trinitydev/TrinityCore/src/server/scripts/Kalimdor/boss_katirus.cpp:152: error: expected unqualified-id at end of input

Danke im Voraus

mfg

Rhule

[CODE]/*

Boss Name : Katirus

Dangon : ****** Ally Srat Quest

By Rhule for ******.com

*/

#include “ScriptPCH.h”

enum Spells

{

SPELL_Apokalypse = 53210,

SPELL_Suehne = 53007,

SPELL_Siebenfache = 51856,

SPELL_Schattenblitzvortex = 6963,

SPELL_ARMYDEAD = 67761

};

class boss_Katirus : public CreatureScript

{

public:

boss_Katirus() : CreatureScript("boss_Katirus") {}


CreatureAI* GetAI(Creature* pCreature) const

{

    return new boss_KatirusAI (pCreature);

}


struct boss_KatirusAI : public ScriptedAI

{

    boss_KatirusAI (Creature *c) : ScriptedAI(c)

    {

    }


    uint32 Apokalypse_Timer;

    uint32 Suehne_Timer;

    uint32 Siebenfache_Timer;

    uint32 Schattenblitzvortex_Timer;

    uint32 ARMYDEAD_Timer;

    uint32 Phase;


    void Reset()

    { 

        Apokalypse_Timer = 0;

        Suehne_Timer = 0;

        Siebenfache_Timer = 10000;

        Schattenblitzvortex_Timer = 10000;

        ARMYDEAD_Timer = 10000;

        Phase = 1;

    }


    void EnterCombat(Unit* /*who*/)

    {

        Phase=1;

        me->MonsterYell("Was ihr Lebt noch ? ", 0, 0);

        me->MonsterYell("Dafür das ihr Rausgefunden habt, das ich ein Verräter bin, werdet ihr", 0, 0);

        me->MonsterYell("Sterben. Niemand kann mich aufhalten!", 0, 0);

        me->MonsterYell("Sterbt nun hier Redoxx! Sterbt!!!", 0, 0);

    }


    void JustDied(Unit* /*killer*/)

    {

        me->MonsterSay("Obwohl ihr es geschafft habt mich zu besigen, wird Dunkelheit über die Euch bekannte Welt einbrechen... ",0,0);

        me->MonsterSay("Wartet nur ab Redoox, wartet nur ab",0,0);

    }


    void KilledUnit(Unit *) 

    {

            me->MonsterYell("Ich hab Euch gewarnt, Redoxx!", 0, 0);

            me->MonsterYell("Du und dein Begleiter hatten von anfang an keine Chance!", 0, 0);

            me->MonsterYell("Muhahahahaha", 0, 0);

    }


    void UpdateAI(const uint32 diff)

    {

        if (!UpdateVictim())

            return;


        if (((me->GetHealth()*100 / me->GetMaxHealth()) < 60) && (Phase == 1))

        {

            Phase = 2;

        }


        /*Phase 1 Sühe und Apokalypse */


        if (Phase == 1)

        {

            /* Apokalypse */

            if (Apokalypse_Timer <= diff)

            {

                DoCast(me->getVictim(), SPELL_Apokalypse);

                Apokalypse_Timer = 5000;

            }

            else Apokalypse_Timer -= diff;


            /* Sühene */

            if (Suehne_Timer <= diff)

            {

                DoCast(me->getVictim(), SPELL_Suehne);

                Suehne_Timer = 5000;

            }

            else Suehne_Timer -= diff;

        }


        /*Phase 2 Schattenblitzvortex und Siebenfache */

        if (Phase == 2)

        {

            /* Schattenblitzvortex */

            if (Schattenblitzvortex_Timer <= diff)

            {

                DoCast(me->getVictim(), SPELL_Schattenblitzvortex);

                Schattenblitzvortex_Timer = 5000;

            }

            else Schattenblitzvortex_Timer -= diff;


            /* Siebenfache */

            if (Siebenfache_Timer <= diff)

            {

                DoCast(me->getVictim(), SPELL_Siebenfache);

                Siebenfache_Timer = 5000;

            }

            else Siebenfache_Timer -= diff;


            if (((me->GetHealth()*100 / me->GetMaxHealth()) < 8) && (Phase == 2))

            {

                Phase = 3;

            }

        }

        /*Phase 3 Gestalt ändern und Arme der Toten */

        if (Phase == 3)

        {

        }

    }

};

};

void AddSC_boss_Katirus()

{

new boss_Katirus();

}[/CODE]

Ich hoffe es funktioniert. Bei mir kamen keine Errors mehr, hab aber das Script selber nicht getestet.

Darf ich Fragen, was du geändert hast ?

Habe ihn noch nicht getestet muss warten bis der Online ist der ihn einbindet ^^

Bin zwar nicht Fronty, aber was man beim groben drüberlesen erkennt, wäre:

Defines aus der Enumeration entfernt

Variablendeklarationen aus dem Konstruktor entfernt und ins Struct verschoben

Die doppelte UpdateVictim() Überprüfung entfernt

Einrückung

Btw. mit Umlauten könntest du Probleme bekommen

Ok danke /emoticons/default_smile.png

Naja so kann man die Umlaute auch schreiben:

ä = \303\244

ü = \303\274

ö = \303\266

ß = \303\237

So komplett neu geschrieben und die Fehler entdeckt /emoticons/default_smile.png

Ich Danke euch für Eure Hilfe

mfg

Rhule