C++ Boss Script?

Guten Tag

Ich habe vor mir eine Custom Instance zu erstellen…

Nun meine Frage, gibt es hier irgend wo eine C++ Vorlage für ein ein Boss Script?

MFG

example_*.cpp

https://github.com/TrinityCore/TrinityCore/tree/master/src/server/scripts/Examples

http://www.trinitycore.org/f/index.php?/topic/6-trinitycore-developing-standards/

Hätte sonst evt jemand für mich Zeit für ein Privat Gespräch in ICQ oder Skype?

Hab gerade etwas Schwierigkeiten…

http://www.ac-web.org/forums/showthread.php?t=92997

Das ist ein bisschen alt aber wenn du dir aktuelle Boss Scripts ansiehst kannst du die Fehler ganz einfach ändern

Danke dir… Nur naja… Bin etwas schwer von Begriff.

Ambesten wäre schon ein Normaler Boss Script mit Spell Text und fertig, eine kleine Anleitung was wie wo wirkt und das reicht mir dann auch =)

Darum halt fals jmd Zeit hätte für ICQ oder Skypen,…

Max hat mit gerade etwas gehofeln… Jedoch geht hier Spell Cast usw nicht so richtig und den Boss Spricht auch nicht… Why?

[CODE]#include “ScriptPCH.h”

enum eNums

{

SPELL_WEIHE           = 71122,

SPELL_LICHTBLITZ      = 19750,

SPELL_HDG             = 66007,

SPELL_GOTTESSCHILD    = 642

};

class boss_juke : public CreatureScript

{

public:

boss_juke() : CreatureScript("boss_juke") { }


struct boss_jukeAI : public ScriptedAI

{

	boss_jukeAI(Creature *c) : ScriptedAI(c) {}


	uint32 Weihe_Timer;

	uint32 Lichtblitz_Timer;

	uint32 Hdg_Timer;

	uint32 Gottesschild_Timer;

	uint32 Weihe_Phase;

	uint32 Lichtblitz_Phase;

	uint32 Hdg_Phase;

	uint32 Gottesschild_Phase;


	void Reset()

	{

		Weihe_Timer                 = 1000;

		Lichtblitz_Timer            = 1000;

		Hdg_Timer                   = 1000;

		Gottesschild_Timer          = 1000;

		Weihe_Phase                 = 1;

		Lichtblitz_Phase            = 1;

		Hdg_Phase                   = 1;

		Gottesschild_Phase          = 1;



	}


	void KilledUnit(Unit * /*victim*/)

	{

		// Optional falls der Boss etwas schreien soll wenn er jmd. killt

		me->MonsterYell("Du nichtsnutz! Hast du wirklich gedacht du hättest eine Chance", LANG_UNIVERSAL, NULL);

	}


	void JustDied(Unit * /*victim*/)

	{

		// Optional falls der Boss etwas schreien soll wenn er Stirbt

		me->MonsterYell("Nein...Nein!! Wie ist das nur möglich?!", LANG_UNIVERSAL, NULL);

	}


	void EnterCombat(Unit * /*who*/)

	{

		// Optional falls der Boss etwas schreien soll wenn er InFight geht

		me->MonsterYell("Und ein weiterer Kampf beginnt wo für euch der Letzte sein wird!", LANG_UNIVERSAL, NULL);

	}


	void UpdateAI(const uint32 uiDiff)

	{

		if(!me->getVictim())

		{

		}


		if(!UpdateVictim())

			return;

		{

			// Life Berechnung (in dem Fall 90% Life)

			if(!HealthAbovePct(90))

			{

				if(Hdg_Timer <= uiDiff)

				{

					// Hammer der Gerechtigkeit auf den Main Tank

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

					Hdg_Phase = 2;

				}

				else

					Hdg_Timer -= uiDiff;

			}


			if(!HealthAbovePct(75))

			{

				if(Lichtblitz_Timer <= uiDiff)

				{	// Heilt sich selbst mit Lichtblitz

					DoCast(me, SPELL_LICHTBLITZ);

					Lichtblitz_Phase = 2;

				}

				else

					Lichtblitz_Timer -= uiDiff;

			}


			if(!HealthAbovePct(50))

			{

				if((Lichtblitz_Timer <= uiDiff) && (Lichtblitz_Phase == 2))

				{

					DoCast(me, SPELL_LICHTBLITZ);

					Lichtblitz_Phase = 3;

				}

				else

					Lichtblitz_Timer -= uiDiff;

			}


			if(!HealthAbovePct(10))

			{

				if(Gottesschild_Timer <= uiDiff)

				{

					DoCast(me, SPELL_GOTTESSCHILD);

				}

				else

				{

					Gottesschild_Timer -= uiDiff;

				}


				if((Lichtblitz_Timer <= uiDiff) && (Lichtblitz_Phase == 3))

				{

					DoCast(me, SPELL_LICHTBLITZ);

					Lichtblitz_Phase = 4;

				}

				else

				{

					Lichtblitz_Timer -= uiDiff;

				}

			}


			if(!HealthAbovePct(10))

			{

				if(Gottesschild_Timer <= uiDiff)

				{

					DoCast(me, SPELL_GOTTESSCHILD);

				}

				else

				{

					Gottesschild_Timer -= uiDiff;

				}


				if((Lichtblitz_Timer <= uiDiff) && (Lichtblitz_Phase == 4))

				{

					DoCast(me, SPELL_LICHTBLITZ);

					Lichtblitz_Phase = 5;

				}

				else

				{

					Lichtblitz_Timer -= uiDiff;

				}

			}


			if(!HealthAbovePct(10))

			{

				if(Gottesschild_Timer <= uiDiff)

				{

					DoCast(me, SPELL_GOTTESSCHILD);

				}

				else

				{

					Gottesschild_Timer -= uiDiff;

				}


				if((Lichtblitz_Timer <= uiDiff) && (Lichtblitz_Phase == 5))

				{

					DoCast(me, SPELL_LICHTBLITZ);

					Lichtblitz_Phase = 6;

				}

				else

				{

					Lichtblitz_Timer -= uiDiff;

				}

			}

		}


	// Melee Attack 					

	DoMeleeAttackIfReady();

	}

};


	CreatureAI *GetAI(Creature *creature) const

	{

		return new boss_jukeAI(creature);

	}

};

void AddSC_boss_juke()

{

new boss_juke();

}[/CODE]

Versuchs mal so. Was ich gemacht habe:

Bei me->MonsterYell muss als letzter Parameter eine GUID von der Kreatur die den Text schreien soll angegeben sein. Wenn du das auf NULL setzt soll guid 0 schreien, gibts logischerweise nicht also schreit keiner.

UpdateAI schaust dir am besten selbst an was ich gemacht habe, zT einfach nur Strukturänderungen ums auf die Trinity standarts anzupassen, aber auch das {} bei UpdateVictim raus genommen weil das return; einfach reicht.

Kleiner Tipp: Statt die Phase auf = 2 zu setzen kannste auch ++Lichtblitz_Phase; nehmen, setzt dann einfach die derzeitige Zahl + 1. Das gleiche geht auch umgekehrt mit --Lichtblitz_Phase;

Edit: typo

Edit²: Die Funktion geht nun so: “UpdateAI(uint32 const diff)”

Edit3: DoCast(me->getVictim(), SPELL); wird nun so benutzt: DoCastVictim(SPELL);

Edit4: typo -.-

Edit5: Timer fix

Na dan… Hab es mal eingebaut jedoch geht es immer noch nicht…

Und die Spells macht er auch nicht mehr nur noch den ab 10%

Nimm mal das aktuelle, hab n paar mal editiert. nimm mal äöü aus den MonsterYells, vllt liegts daran. (Wenns daran liegt machs via DB und Talk(dbentry)/emoticons/default_wink.png

Ansonsten sitz ich grad am Laptop, ohne vc++ isses immer schwierig so scripts gescheit durchzuschauen…

Ahh hab den spell fehler, Timer wird nicht nachgesetzt. In 2 Minuten update ich den post oben, nimm das dann mal.

Edit: Updated…ka obs funktioniert muss jetzt erstmal afk, nacher schau ich nochmal drauf.

Geht immer noch nicht =(

Spells macht er immer noch nicht nur noch ab 10% und da macht er NUR Gottesschild obwohl er noch Lichtbliz chmachen sollte.

/Edit

Wen der Stirbt sagt er was… Kann mir evt jmd sagen was die NPC faction oder flag ist für aggro damit er mich angfreift?

Das meint ich mit Editor scheiße, pass auf ich lass es jetzt und post dir nacher wenn ich an meinen Rechner komm ne richtige Version dann sollts auch gehn.

Faction 16 war glaub feindlich. Not Attackable flag ist 2, falls du das gesetzt hast einfach derzeitige unit_flags-2

Okay danke =)

So

es geht langsam… Nur hab nun nur noch das Problem das er wen er sich bei 75% heil das kein Ende mehr hat da heilt und heilt er sich nur noch Unterbrechnung!

/push

Immer noch Fehlerhaft =(

Sorry habs gestern nicht mehr geschafft (war aufm b-day, ich glaub ich hät mehr Fehler eingebaut als ausgebessert wenn du verstehst was ich meine /emoticons/default_tongue.png )

Post mal das aktuelle oder hast das 1. editiert?

blub???

Geht immer noch nicht =(

/push