--HG--
branch : trunk
This commit is contained in:
megamage
2009-02-18 11:36:19 -06:00
2384 changed files with 9729 additions and 969 deletions
+1
View File
@@ -320,3 +320,4 @@ void ScriptedAI::DoGoHome()
m_creature->GetMotionMaster()->MoveTargetedHome();
}
*/
+1
View File
@@ -159,3 +159,4 @@ struct TRINITY_DLL_DECL ScriptedAI : public CreatureAI
};
#endif
@@ -119,3 +119,4 @@ void AddSC_default()
m_scripts[nrscripts++] = newscript;
}
@@ -152,3 +152,4 @@ uint32 GetSkillLevel(Player *player,uint32 trskill)
return TRADESKILL_LEVEL_NONE;
}
@@ -96,3 +96,4 @@ extern uint32 GetSkillLevel(Player *player,uint32 skill);
// -----------------------------------
#endif
+1
View File
@@ -31,3 +31,4 @@
#else
#define TRINITY_DLL_EXPORT extern "C" export
#endif
+1
View File
@@ -25,3 +25,4 @@ BOOL APIENTRY DllMain( HANDLE /*hModule*/, DWORD /*ul_reason_for_call*/, LPVOID
return true;
}
#endif
+1
View File
@@ -2136,3 +2136,4 @@ InstanceData* CreateInstanceData(Map *map)
return tmpscript->GetInstanceData(map);
}
+1
View File
@@ -82,3 +82,4 @@ void DoScriptText(int32 textEntry, WorldObject* pSource, Unit* target = NULL);
#endif
#endif
@@ -3,3 +3,4 @@
* Please see the included DOCS/LICENSE.TXT for more information */
#include "precompiled.h"
@@ -28,3 +28,4 @@ LPVOID lpReserved
#endif
#endif
+2 -1
View File
@@ -843,7 +843,7 @@ void LoadOverridenSQLData()
// Sunwell Plateau : Kalecgos : Spectral Rift
goInfo = const_cast<GameObjectInfo*>(GetGameObjectInfo(187055));
if(goInfo && goInfo->type == GAMEOBJECT_TYPE_GOOBER)
goInfo->type = GAMEOBJECT_TYPE_SPELLCASTER;
goInfo->goober.lockId = 57; // need LOCKTYPE_QUICK_OPEN
}
void LoadOverridenDBCData()
@@ -855,3 +855,4 @@ void LoadOverridenDBCData()
if(spellInfo)
spellInfo->EffectApplyAuraName[0] = 4; // proc debuff, and summon infinite fiends
}
@@ -205,3 +205,4 @@ struct TRINITY_DLL_DECL NullCreatureAI : public ScriptedAI
};
#endif
+1
View File
@@ -189,3 +189,4 @@ extern uint32 GetSkillLevel(Player *player,uint32 skill);
#define QUEST_DIALOG_STATUS(a,b,c) GetSession()->getDialogStatus(a,b,c)
#endif
@@ -43,3 +43,4 @@ class TRINITY_DLL_DECL ScriptedInstance : public InstanceData
};
#endif
@@ -64,3 +64,4 @@ void AddSC_areatrigger_scripts()
newscript->pAreaTrigger = &AreaTrigger_at_legion_teleporter;
newscript->RegisterSelf();
}
@@ -154,3 +154,4 @@ void AddSC_boss_emeriss()
newscript->GetAI = &GetAI_boss_emeriss;
newscript->RegisterSelf();
}
@@ -22,3 +22,4 @@ SDCategory: Bosses
EndScriptData */
#include "precompiled.h"
@@ -304,3 +304,4 @@ void AddSC_boss_taerar()
newscript->GetAI = &GetAI_boss_shadeoftaerar;
newscript->RegisterSelf();
}
@@ -244,3 +244,4 @@ void AddSC_boss_ysondre()
newscript->GetAI = &GetAI_mob_dementeddruids;
newscript->RegisterSelf();
}
@@ -1398,3 +1398,4 @@ void AddSC_mob_event()
newscript->GetAI = &GetAI_Mob_EventAI;
newscript->RegisterSelf();
}
@@ -218,3 +218,4 @@ extern UNORDERED_MAP<uint32, EventAI_CreatureError> EventAI_CreatureErrorPrevent
#define EVENTAI_EMPTY_EVENTLIST "SD2: Eventlist for Creature %i is empty but creature is using Mob_EventAI. Preventing EventAI on this creature."
*/
#endif
@@ -170,3 +170,4 @@ void AddSC_generic_creature()
newscript->GetAI = &GetAI_generic_creature;
newscript->RegisterSelf();
}
@@ -292,3 +292,4 @@ void SimpleAI::UpdateAI(const uint32 diff)
DoMeleeAttackIfReady();
}
@@ -72,3 +72,4 @@ protected:
};
#endif
@@ -0,0 +1,278 @@
/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Custom_Example
SD%Complete: 100
SDComment: Short custom scripting example
SDCategory: Script Examples
EndScriptData */
#include "precompiled.h"
// **** This script is designed as an example for others to build on ****
// **** Please modify whatever you'd like to as this script is only for developement ****
// **** Script Info ****
// This script is written in a way that it can be used for both friendly and hostile monsters
// Its primary purpose is to show just how much you can really do with scripts
// I recommend trying it out on both an agressive NPC and on friendly npc
// **** Quick Info ****
// Functions with Handled Function marked above them are functions that are called automatically by the core
// Functions that are marked Custom Function are functions I've created to simplify code
#define SPELL_BUFF 25661
#define SPELL_ONE 12555
#define SPELL_ONE_ALT 24099
#define SPELL_TWO 10017
#define SPELL_THREE 26027
#define SPELL_ENRAGE 23537
#define SPELL_BESERK 32309
#define SAY_AGGRO "Let the games begin."
#define SAY_RANDOM_0 "I see endless suffering. I see torment. I see rage. I see everything."
#define SAY_RANDOM_1 "Muahahahaha"
#define SAY_RANDOM_2 "These mortal infedels my lord, they have invaded your sanctum and seek to steal your secrets."
#define SAY_RANDOM_3 "You are already dead."
#define SAY_RANDOM_4 "Where to go? What to do? So many choices that all end in pain, end in death."
#define SAY_BESERK "$N, I sentance you to death!"
#define SAY_PHASE "The suffering has just begun!"
#define GOSSIP_ITEM "I'm looking for a fight"
#define SAY_DANCE "I always thought I was a good dancer"
#define SAY_SALUTE "Move out Soldier!"
struct TRINITY_DLL_DECL custom_exampleAI : public ScriptedAI
{
//*** HANDLED FUNCTION ***
//This is the constructor, called only once when the creature is first created
custom_exampleAI(Creature *c) : ScriptedAI(c) {Reset();}
//*** CUSTOM VARIABLES ****
//These variables are for use only by this individual script.
//Nothing else will ever call them but us.
uint32 Say_Timer; //Timer for random chat
uint32 Rebuff_Timer; //Timer for rebuffing
uint32 Spell_1_Timer; //Timer for spell 1 when in combat
uint32 Spell_2_Timer; //Timer for spell 1 when in combat
uint32 Spell_3_Timer; //Timer for spell 1 when in combat
uint32 Beserk_Timer; //Timer until we go into Beserk (enraged) mode
uint32 Phase; //The current battle phase we are in
uint32 Phase_Timer; //Timer until phase transition
//*** HANDLED FUNCTION ***
//This is called whenever the core decides we need to evade
void Reset()
{
Phase = 1; //Start in phase 1
Phase_Timer = 60000; //60 seconds
Spell_1_Timer = 5000; //5 seconds
Spell_2_Timer = 37000; //37 seconds
Spell_3_Timer = 19000; //19 seconds
Beserk_Timer = 120000; //2 minutes
}
//*** HANDLED FUNCTION ***
//Attack Start is called whenever someone hits us.
void Aggro(Unit *who)
{
//Say some stuff
DoSay(SAY_AGGRO,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(m_creature,8280);
}
//*** HANDLED FUNCTION ***
//Update AI is called Every single map update (roughly once every 100ms if a player is within the grid)
void UpdateAI(const uint32 diff)
{
//Out of combat timers
if (!m_creature->getVictim())
{
//Random Say timer
if (Say_Timer < diff)
{
//Random switch between 5 outcomes
switch (rand()%5)
{
case 0:
DoYell(SAY_RANDOM_0,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(m_creature,8831); //8831 is the index of the sound we are playing. You find these numbers in SoundEntries.dbc
break;
case 1:
DoYell(SAY_RANDOM_1,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(m_creature,8818);
break;
case 2:
DoYell(SAY_RANDOM_2,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(m_creature,8041);
break;
case 3:
DoYell(SAY_RANDOM_3,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(m_creature,8581);
break;
case 4:
DoYell(SAY_RANDOM_4,LANG_UNIVERSAL,NULL);
DoPlaySoundToSet(m_creature,8791);
break;
}
Say_Timer = 45000; //Say something agian in 45 seconds
}else Say_Timer -= diff;
//Rebuff timer
if (Rebuff_Timer < diff)
{
DoCast(m_creature,SPELL_BUFF);
Rebuff_Timer = 900000; //Rebuff agian in 15 minutes
}else Rebuff_Timer -= diff;
}
//Return since we have no target
if (!UpdateVictim())
return;
//Spell 1 timer
if (Spell_1_Timer < diff)
{
//Cast spell one on our current target.
if (rand()%50 > 10)
DoCast(m_creature->getVictim(),SPELL_ONE_ALT);
else if (m_creature->GetDistance(m_creature->getVictim()) < 25)
DoCast(m_creature->getVictim(),SPELL_ONE);
Spell_1_Timer = 5000;
}else Spell_1_Timer -= diff;
//Spell 2 timer
if (Spell_2_Timer < diff)
{
//Cast spell one on our current target.
DoCast(m_creature->getVictim(),SPELL_TWO);
Spell_2_Timer = 37000;
}else Spell_2_Timer -= diff;
//Spell 3 timer
if (Phase > 1)
if (Spell_3_Timer < diff)
{
//Cast spell one on our current target.
DoCast(m_creature->getVictim(),SPELL_THREE);
Spell_3_Timer = 19000;
}else Spell_3_Timer -= diff;
//Beserk timer
if (Phase > 1)
if (Beserk_Timer < diff)
{
//Say our line then cast uber death spell
DoPlaySoundToSet(m_creature,8588);
DoYell(SAY_BESERK,LANG_UNIVERSAL,m_creature->getVictim());
DoCast(m_creature->getVictim(),SPELL_BESERK);
//Cast our beserk spell agian in 12 seconds if we didn't kill everyone
Beserk_Timer = 12000;
}else Beserk_Timer -= diff;
//Phase timer
if (Phase == 1)
if (Phase_Timer < diff)
{
//Go to next phase
Phase++;
DoYell(SAY_PHASE,LANG_UNIVERSAL,NULL);
DoCast(m_creature,SPELL_ENRAGE);
}else Phase_Timer -= diff;
DoMeleeAttackIfReady();
}
};
//This is the GetAI method used by all scripts that involve AI
//It is called every time a new creature using this script is created
CreatureAI* GetAI_custom_example(Creature *_Creature)
{
return new custom_exampleAI (_Creature);
}
//This function is called when the player clicks an option on the gossip menu
void SendDefaultMenu_custom_example(Player *player, Creature *_Creature, uint32 action)
{
if (action == GOSSIP_ACTION_INFO_DEF + 1) //Fight time
{
//Set our faction to hostile twoards all
_Creature->setFaction(24);
_Creature->Attack(player, true);
player->PlayerTalkClass->CloseGossip();
}
}
//This function is called when the player clicks an option on the gossip menu
bool GossipSelect_custom_example(Player *player, Creature *_Creature, uint32 sender, uint32 action )
{
if (sender == GOSSIP_SENDER_MAIN)
SendDefaultMenu_custom_example(player, _Creature, action);
return true;
}
//This function is called when the player opens the gossip menu
bool GossipHello_custom_example(Player *player, Creature *_Creature)
{
player->ADD_GOSSIP_ITEM( 0, GOSSIP_ITEM , GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->PlayerTalkClass->SendGossipMenu(907,_Creature->GetGUID());
return true;
}
//Our Recive emote function
bool ReceiveEmote_custom_example(Player *player, Creature *_Creature, uint32 emote)
{
_Creature->HandleEmoteCommand(emote);
if (emote == TEXTEMOTE_DANCE)
((custom_exampleAI*)_Creature->AI())->DoSay(SAY_DANCE,LANG_UNIVERSAL,NULL);
if (emote == TEXTEMOTE_SALUTE)
((custom_exampleAI*)_Creature->AI())->DoSay(SAY_SALUTE,LANG_UNIVERSAL,NULL);
return true;
}
//This is the actual function called only once durring InitScripts()
//It must define all handled functions that are to be run in this script
//For example if you want this Script to handle Emotes you must include
//newscript->ReciveEmote = My_Emote_Function;
void AddSC_custom_example()
{
Script *newscript;
newscript = new Script;
newscript->Name="custom_example";
newscript->GetAI = &GetAI_custom_example;
newscript->pGossipHello = &GossipHello_custom_example;
newscript->pGossipSelect = &GossipSelect_custom_example;
newscript->pReceiveEmote = &ReceiveEmote_custom_example;
newscript->RegisterSelf();
}
@@ -0,0 +1,82 @@
/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Custom_Gossip_Codebox
SD%Complete: 100
SDComment: Show a codebox in gossip option
SDCategory: Script Examples
EndScriptData */
#include "precompiled.h"
#include <cstring>
//This function is called when the player opens the gossip menubool
bool GossipHello_custom_gossip_codebox(Player *player, Creature *_Creature)
{
player->ADD_GOSSIP_ITEM_EXTENDED(0, "A quiz: what's your name?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1, "", 0, true);
player->ADD_GOSSIP_ITEM(0, "I'm not interested", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
player->PlayerTalkClass->SendGossipMenu(907,_Creature->GetGUID());
return true;
}
//This function is called when the player clicks an option on the gossip menubool
bool GossipSelect_custom_gossip_codebox(Player *player, Creature *_Creature, uint32 sender, uint32 action )
{
if(action == GOSSIP_ACTION_INFO_DEF+2)
{
_Creature->Say("Normal select, guess you're not interested.", LANG_UNIVERSAL, 0);
player->CLOSE_GOSSIP_MENU();
}
return true;
}
bool GossipSelectWithCode_custom_gossip_codebox( Player *player, Creature *_Creature, uint32 sender, uint32 action, const char* sCode )
{
if(sender == GOSSIP_SENDER_MAIN)
{
if(action == GOSSIP_ACTION_INFO_DEF+1)
{
if(std::strcmp(sCode, player->GetName())!=0)
{
_Creature->Say("Wrong!", LANG_UNIVERSAL, 0);
_Creature->CastSpell(player, 12826, true);
}
else
{
_Creature->Say("You're right, you are allowed to see my inner secrets.", LANG_UNIVERSAL, 0);
_Creature->CastSpell(player, 26990, true);
}
player->CLOSE_GOSSIP_MENU();
return true;
}
}
return false;
}
void AddSC_custom_gossip_codebox()
{
Script *newscript;
newscript = new Script;
newscript->Name="custom_gossip_codebox";
newscript->pGossipHello = &GossipHello_custom_gossip_codebox;
newscript->pGossipSelect = &GossipSelect_custom_gossip_codebox;
newscript->pGossipSelectWithCode = &GossipSelectWithCode_custom_gossip_codebox;
newscript->RegisterSelf();
}
@@ -0,0 +1,201 @@
/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Test
SD%Complete: 100
SDComment: Script used for testing escortAI
SDCategory: Script Examples
EndScriptData */
#include "precompiled.h"
#include "../npc/npc_escortAI.h"
struct TRINITY_DLL_DECL npc_testAI : public npc_escortAI
{
public:
// CreatureAI functions
npc_testAI(Creature *c) : npc_escortAI(c) {Reset();}
uint32 DeathCoilTimer;
uint32 ChatTimer;
// Pure Virtual Functions
void WaypointReached(uint32 i)
{
switch (i)
{
case 1:
m_creature->Say("Hmm a nice day for a walk alright", LANG_UNIVERSAL, 0);
break;
case 3:
{
m_creature->Say("Wild Felboar attack!", LANG_UNIVERSAL, 0);
Creature* temp = m_creature->SummonCreature(21878, m_creature->GetPositionX()+5, m_creature->GetPositionY()+7, m_creature->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 3000);
temp->AI()->AttackStart(m_creature);
}
break;
case 4:
{
m_creature->Say("Time for me to go! See ya around $N!", LANG_UNIVERSAL, PlayerGUID);
m_creature->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
Unit* temp = Unit::GetUnit(*m_creature, PlayerGUID);
if (temp)
{
temp->MonsterSay("Bye Bye!", LANG_UNIVERSAL, 0);
temp->HandleEmoteCommand(EMOTE_ONESHOT_WAVE);
}
}
break;
}
}
void Aggro(Unit*)
{
if (IsBeingEscorted)
m_creature->Say("Help $N! I'm under attack!", LANG_UNIVERSAL, PlayerGUID);
else m_creature->Say("Die scum!", LANG_UNIVERSAL, 0);
}
void Reset()
{
DeathCoilTimer = 4000;
ChatTimer = 4000;
}
void JustDied(Unit* killer)
{
if (IsBeingEscorted)
{
//killer = m_creature when player got to far from creature
if (killer == m_creature)
{
Unit *pTemp = Unit::GetUnit(*m_creature,PlayerGUID);
if( pTemp )
DoWhisper("How dare you leave me like that! I hate you! =*(", pTemp);
}
else m_creature->Say("...no...how could you let me die $N", LANG_UNIVERSAL, PlayerGUID);
}
else m_creature->Say("ugh...", LANG_UNIVERSAL, 0);
}
void UpdateAI(const uint32 diff)
{
//Must update npc_escortAI
npc_escortAI::UpdateAI(diff);
//Combat check
if (InCombat && m_creature->getVictim())
{
if (DeathCoilTimer < diff)
{
m_creature->Say("Taste death!", LANG_UNIVERSAL, 0);
m_creature->CastSpell(m_creature->getVictim(), 33130, false);
DeathCoilTimer = 4000;
}else DeathCoilTimer -= diff;
}else
{
//Out of combat but being escorted
if (IsBeingEscorted)
if (ChatTimer < diff)
{
if (m_creature->HasAura(3593, 0))
{
m_creature->Say("Fireworks!", LANG_UNIVERSAL, 0);
m_creature->CastSpell(m_creature, 11540, false);
}else
{
m_creature->Say("Hmm, I think I could use a buff", LANG_UNIVERSAL, 0);
m_creature->CastSpell(m_creature, 3593, false);
}
ChatTimer = 12000;
}else ChatTimer -= diff;
}
}
};
CreatureAI* GetAI_test(Creature *_Creature)
{
npc_testAI* testAI = new npc_testAI(_Creature);
testAI->AddWaypoint(0, 1231, -4419, 23);
testAI->AddWaypoint(1, 1198, -4440, 23, 0);
testAI->AddWaypoint(2, 1208, -4392, 23);
testAI->AddWaypoint(3, 1231, -4419, 23, 5000);
testAI->AddWaypoint(4, 1208, -4392, 23, 5000);
return (CreatureAI*)testAI;
}
bool GossipHello_npc_test(Player *player, Creature *_Creature)
{
player->TalkedToCreature(_Creature->GetEntry(),_Creature->GetGUID());
_Creature->prepareGossipMenu(player,0);
player->ADD_GOSSIP_ITEM(0, "Click to Test Escort(Attack, Defend, Run)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->ADD_GOSSIP_ITEM(0, "Click to Test Escort(NoAttack, NoDefend, Walk)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
player->ADD_GOSSIP_ITEM(0, "Click to Test Escort(NoAttack, Defend, Walk)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
_Creature->sendPreparedGossip( player );
return true;
}
bool GossipSelect_npc_test(Player *player, Creature *_Creature, uint32 sender, uint32 action )
{
if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
((npc_escortAI*)(_Creature->AI()))->Start(true, true, true, player->GetGUID());
return true; // prevent Trinity core handling
}
if (action == GOSSIP_ACTION_INFO_DEF+2)
{
player->CLOSE_GOSSIP_MENU();
((npc_escortAI*)(_Creature->AI()))->Start(false, false, false, player->GetGUID());
return true; // prevent Trinity core handling
}
if (action == GOSSIP_ACTION_INFO_DEF+3)
{
player->CLOSE_GOSSIP_MENU();
((npc_escortAI*)(_Creature->AI()))->Start(false, true, false, player->GetGUID());
return true; // prevent Trinity core handling
}
return false;
}
void AddSC_test()
{
Script *newscript;
newscript = new Script;
newscript->Name="test";
newscript->GetAI = &GetAI_test;
newscript->pGossipHello = &GossipHello_npc_test;
newscript->pGossipSelect = &GossipSelect_npc_test;
newscript->RegisterSelf();
}
@@ -191,3 +191,4 @@ void AddSC_go_scripts()
newscript->pGOHello = &GOHello_go_tablet_of_the_seven;
newscript->RegisterSelf();
}
@@ -169,3 +169,4 @@ void guardAI::UpdateAI(const uint32 diff)
}
}
}
@@ -23,3 +23,4 @@ struct TRINITY_DLL_DECL guardAI : public ScriptedAI
void UpdateAI(const uint32 diff);
};
#endif
@@ -4071,3 +4071,4 @@ void AddSC_guards()
newscript->GetAI = &GetAI_guard_undercity;
newscript->RegisterSelf();
}
@@ -593,3 +593,4 @@ void AddSC_item_scripts()
newscript->pItemUse = &ItemUse_item_zezzak_shard;
newscript->RegisterSelf();
}
@@ -0,0 +1,43 @@
/* Copyright (C) 2006 - 2008 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Item_Test
SD%Complete: 100
SDComment: Used for Testing Item Scripts
SDCategory: Items
EndScriptData */
#include "precompiled.h"
extern void LoadDatabase();
bool ItemUse_item_test(Player *player, Item* _Item, SpellCastTargets const& targets)
{
LoadDatabase();
return true;
}
void AddSC_item_test()
{
Script *newscript;
newscript = new Script;
newscript->Name="item_test";
newscript->pItemUse = &ItemUse_item_test;
newscript->RegisterSelf();
}
@@ -300,3 +300,4 @@ void npc_escortAI::Start(bool bAttack, bool bDefend, bool bRun, uint64 pGUID)
//Disable questgiver flag
m_creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
}
@@ -85,3 +85,4 @@ struct TRINITY_DLL_DECL npc_escortAI : public ScriptedAI
bool Run;
};
#endif
@@ -142,3 +142,4 @@ void AddSC_npc_innkeeper()
newscript->pGossipSelect = &GossipSelect_npc_innkeeper;
newscript->RegisterSelf();
}
@@ -1201,3 +1201,4 @@ void AddSC_npc_professions()
//newscript->pGossipSelect = &GossipSelect_go_soothsaying_for_dummies;
newscript->RegisterSelf();*/
}
@@ -1213,3 +1213,4 @@ void AddSC_npcs_special()
newscript->GetAI = &GetAI_npc_snake_trap_serpents;
newscript->RegisterSelf();
}
@@ -60,3 +60,4 @@ void AddSC_alterac_mountains()
newscript->GetAI = &GetAI_npc_ravenholdt;
newscript->RegisterSelf();
}
@@ -162,3 +162,4 @@ void AddSC_arathi_highlands()
newscript->pQuestAccept = &QuestAccept_npc_professor_phizzlethorpe;
newscript->RegisterSelf();
}
@@ -317,3 +317,4 @@ void AddSC_ashenvale()
newscript->pQuestAccept = &QuestAccept_npc_ruul_snowhoof;
newscript->RegisterSelf();
}
@@ -356,3 +356,4 @@ void AddSC_boss_exarch_maladaar()
newscript->GetAI = &GetAI_mob_stolen_soul;
newscript->RegisterSelf();
}
@@ -208,4 +208,5 @@ void AddSC_boss_shirrak_the_dead_watcher()
newscript->Name="mob_focus_fire";
newscript->GetAI = &GetAI_mob_focus_fire;
newscript->RegisterSelf();
}
}
@@ -287,3 +287,4 @@ void AddSC_boss_nexusprince_shaffar()
newscript->GetAI = &GetAI_mob_ethereal_beacon;
newscript->RegisterSelf();
}
@@ -136,3 +136,4 @@ void AddSC_boss_pandemonius()
newscript->GetAI = &GetAI_boss_pandemonius;
newscript->RegisterSelf();
}
@@ -440,3 +440,4 @@ void AddSC_boss_darkweaver_syth()
newscript->GetAI = &GetAI_mob_syth_shadow;
newscript->RegisterSelf();
}
@@ -219,3 +219,4 @@ void AddSC_boss_talon_king_ikiss()
newscript->GetAI = &GetAI_boss_talon_king_ikiss;
newscript->RegisterSelf();
}
@@ -7,3 +7,4 @@
#define DATA_IKISSDOOREVENT 1
#endif
@@ -72,3 +72,4 @@ void AddSC_instance_sethekk_halls()
newscript->GetInstanceData = &GetInstanceData_instance_sethekk_halls;
newscript->RegisterSelf();
}
@@ -203,3 +203,4 @@ void AddSC_boss_ambassador_hellmaw()
newscript->GetAI = &GetAI_boss_ambassador_hellmaw;
newscript->RegisterSelf();
}
@@ -175,3 +175,4 @@ void AddSC_boss_blackheart_the_inciter()
newscript->GetAI = &GetAI_boss_blackheart_the_inciter;
newscript->RegisterSelf();
}
@@ -321,3 +321,4 @@ void AddSC_boss_grandmaster_vorpil()
newscript->GetAI = &GetAI_mob_voidtraveler;
newscript->RegisterSelf();
}
@@ -201,3 +201,4 @@ void AddSC_boss_murmur()
newscript->GetAI = &GetAI_boss_murmur;
newscript->RegisterSelf();
}
@@ -12,3 +12,4 @@
#define DATA_MURMUREVENT 5
#define DATA_GRANDMASTERVORPIL 6
#endif
@@ -244,3 +244,4 @@ void AddSC_instance_shadow_labyrinth()
newscript->GetInstanceData = &GetInstanceData_instance_shadow_labyrinth;
newscript->RegisterSelf();
}
@@ -515,3 +515,4 @@ void AddSC_azshara()
newscript->GetAI = &GetAI_mob_depth_charge;
newscript->RegisterSelf();
}
@@ -152,3 +152,4 @@ void AddSC_boss_azuregos()
newscript->GetAI = &GetAI_boss_azuregos;
newscript->RegisterSelf();
}
@@ -698,3 +698,4 @@ void AddSC_azuremyst_isle()
newscript->RegisterSelf();
}
@@ -556,3 +556,4 @@ void AddSC_the_barrens()
newscript->pQuestAccept = &QuestAccept_npc_wizzlecrank_shredder;
newscript->RegisterSelf();
}
@@ -66,3 +66,4 @@ void AddSC_black_temple()
newscript->pGossipSelect = &GossipSelect_npc_spirit_of_olum;
newscript->RegisterSelf();
}
@@ -345,3 +345,4 @@ void AddSC_boss_gurtogg_bloodboil()
newscript->GetAI = &GetAI_boss_gurtogg_bloodboil;
newscript->RegisterSelf();
}
@@ -2221,3 +2221,4 @@ void AddSC_boss_illidan()
newscript->GetAI = &GetAI_parasitic_shadowfiend;
newscript->RegisterSelf();
}
@@ -313,3 +313,4 @@ void AddSC_boss_mother_shahraz()
newscript->GetAI = &GetAI_boss_shahraz;
newscript->RegisterSelf();
}
@@ -685,3 +685,4 @@ void AddSC_boss_reliquary_of_souls()
newscript->GetAI = &GetAI_npc_enslaved_soul;
newscript->RegisterSelf();
}
@@ -836,3 +836,4 @@ void AddSC_boss_shade_of_akama()
newscript->pGossipSelect = &GossipSelect_npc_akama;
newscript->RegisterSelf();
}
@@ -311,3 +311,4 @@ void AddSC_boss_supremus()
newscript->GetAI = &GetAI_npc_volcano;
newscript->RegisterSelf();
}
@@ -534,3 +534,4 @@ void AddSC_boss_teron_gorefiend()
newscript->GetAI = &GetAI_boss_teron_gorefiend;
newscript->RegisterSelf();
}
@@ -223,3 +223,4 @@ void AddSC_boss_najentus()
newscript->pGOHello = &GOHello_go_najentus_spine;
newscript->RegisterSelf();
}
@@ -32,3 +32,4 @@
#define DATA_GAMEOBJECT_SUPREMUS_DOORS 25
#define DATA_BLOOD_ELF_COUNCIL_VOICE 26
#endif
@@ -865,3 +865,4 @@ void AddSC_boss_illidari_council()
newscript->GetAI = &GetAI_boss_high_nethermancer_zerevor;
newscript->RegisterSelf();
}
@@ -349,3 +349,4 @@ void AddSC_instance_black_temple()
newscript->GetInstanceData = &GetInstanceData_instance_black_temple;
newscript->RegisterSelf();
}
@@ -1322,3 +1322,4 @@ void AddSC_blackrock_depths()
newscript->pChooseReward = &ChooseReward_npc_rocknot;
newscript->RegisterSelf();
}
@@ -104,3 +104,4 @@ void AddSC_boss_ambassador_flamelash()
newscript->GetAI = &GetAI_boss_ambassador_flamelash;
newscript->RegisterSelf();
}
@@ -113,3 +113,4 @@ void AddSC_boss_anubshiah()
newscript->GetAI = &GetAI_boss_anubshiah;
newscript->RegisterSelf();
}
@@ -102,3 +102,4 @@ void AddSC_boss_draganthaurissan()
newscript->GetAI = &GetAI_boss_draganthaurissan;
newscript->RegisterSelf();
}
@@ -165,3 +165,4 @@ void AddSC_boss_general_angerforge()
newscript->GetAI = &GetAI_boss_general_angerforge;
newscript->RegisterSelf();
}
@@ -79,3 +79,4 @@ void AddSC_boss_gorosh_the_dervish()
newscript->GetAI = &GetAI_boss_gorosh_the_dervish;
newscript->RegisterSelf();
}
@@ -86,3 +86,4 @@ void AddSC_boss_grizzle()
newscript->GetAI = &GetAI_boss_grizzle;
newscript->RegisterSelf();
}
@@ -103,3 +103,4 @@ void AddSC_boss_high_interrogator_gerstahn()
newscript->GetAI = &GetAI_boss_high_interrogator_gerstahn;
newscript->RegisterSelf();
}
@@ -82,3 +82,4 @@ void AddSC_boss_magmus()
newscript->GetAI = &GetAI_boss_magmus;
newscript->RegisterSelf();
}
@@ -97,3 +97,4 @@ void AddSC_boss_moira_bronzebeard()
newscript->GetAI = &GetAI_boss_moira_bronzebeard;
newscript->RegisterSelf();
}
@@ -641,3 +641,4 @@ void AddSC_boss_tomb_of_seven()
newscript->pGossipSelect = &GossipSelect_boss_doomrel;
newscript->RegisterSelf();
}
@@ -23,4 +23,5 @@
#define DATA_GO_BAR_KEG 16
#define DATA_GO_BAR_KEG_TRAP 17
#define DATA_GO_BAR_DOOR 18
#endif
#endif
@@ -304,4 +304,5 @@ InstanceData* GetInstanceData_instance_blackrock_depths(Map* map)
newscript->Name = "instance_blackrock_depths";
newscript->GetInstanceData = &GetInstanceData_instance_blackrock_depths;
newscript->RegisterSelf();
}
}
@@ -99,3 +99,4 @@ void AddSC_boss_drakkisath()
newscript->GetAI = &GetAI_boss_drakkisath;
newscript->RegisterSelf();
}
@@ -203,3 +203,4 @@ void AddSC_boss_gyth()
newscript->GetAI = &GetAI_boss_gyth;
newscript->RegisterSelf();
}
@@ -93,3 +93,4 @@ void AddSC_boss_halycon()
newscript->GetAI = &GetAI_boss_halycon;
newscript->RegisterSelf();
}
@@ -129,3 +129,4 @@ void AddSC_boss_highlordomokk()
newscript->GetAI = &GetAI_boss_highlordomokk;
newscript->RegisterSelf();
}
@@ -84,3 +84,4 @@ void AddSC_boss_mothersmolderweb()
newscript->GetAI = &GetAI_boss_mothersmolderweb;
newscript->RegisterSelf();
}
@@ -125,3 +125,4 @@ void AddSC_boss_overlordwyrmthalak()
newscript->GetAI = &GetAI_boss_overlordwyrmthalak;
newscript->RegisterSelf();
}
@@ -91,3 +91,4 @@ void AddSC_boss_pyroguard_emberseer()
newscript->GetAI = &GetAI_boss_pyroguard_emberseer;
newscript->RegisterSelf();
}
@@ -83,3 +83,4 @@ void AddSC_boss_quatermasterzigris()
newscript->GetAI = &GetAI_boss_quatermasterzigris;
newscript->RegisterSelf();
}
@@ -89,3 +89,4 @@ void AddSC_boss_rend_blackhand()
newscript->GetAI = &GetAI_boss_rend_blackhand;
newscript->RegisterSelf();
}
@@ -93,3 +93,4 @@ void AddSC_boss_shadowvosh()
newscript->GetAI = &GetAI_boss_shadowvosh;
newscript->RegisterSelf();
}
@@ -91,3 +91,4 @@ void AddSC_boss_thebeast()
newscript->GetAI = &GetAI_boss_thebeast;
newscript->RegisterSelf();
}
@@ -119,3 +119,4 @@ void AddSC_boss_warmastervoone()
newscript->GetAI = &GetAI_boss_warmastervoone;
newscript->RegisterSelf();
}
@@ -126,3 +126,4 @@ void AddSC_boss_broodlord()
newscript->GetAI = &GetAI_boss_broodlord;
newscript->RegisterSelf();
}
@@ -312,3 +312,4 @@ void AddSC_boss_chromaggus()
newscript->GetAI = &GetAI_boss_chromaggus;
newscript->RegisterSelf();
}
@@ -101,3 +101,4 @@ void AddSC_boss_ebonroc()
newscript->GetAI = &GetAI_boss_ebonroc;
newscript->RegisterSelf();
}

Some files were not shown because too many files have changed in this diff Show More