2010-07-06 03:27:41 +02:00
/*
* Copyright (C) 2008-2010 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
2008-10-21 13:19:26 -05:00
*
2010-07-06 03:27:41 +02:00
* 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.
2008-10-21 13:19:26 -05:00
*
2010-07-06 03:27:41 +02:00
* 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, see <http://www.gnu.org/licenses/>.
2008-10-21 13:19:26 -05:00
*/
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
/* ScriptData
SDName: Zangarmarsh
SD%Complete: 100
2009-06-15 01:59:46 +02:00
SDComment: Quest support: 9752, 9785, 9803, 10009. Mark Of ... buffs.
2008-10-21 13:19:26 -05:00
SDCategory: Zangarmarsh
EndScriptData */
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
/* ContentData
npcs_ashyen_and_keleth
npc_cooshcoosh
npc_elder_kuruti
npc_mortog_steamhead
2009-01-09 23:56:25 +01:00
npc_kayra_longmane
2009-08-17 01:41:39 +02:00
npc_timothy_daniels
2008-10-21 13:19:26 -05:00
EndContentData */
2009-10-17 15:51:44 -07:00
2010-06-08 23:44:55 +02:00
#include "ScriptPCH.h"
2010-01-19 11:36:05 +01:00
#include "ScriptedEscortAI.h"
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
/*######
## npcs_ashyen_and_keleth
######*/
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
#define GOSSIP_ITEM_BLESS_ASH "Grant me your mark, wise ancient."
#define GOSSIP_ITEM_BLESS_KEL "Grant me your mark, mighty ancient."
2009-09-10 16:02:34 +02:00
//signed for 17900 but used by 17900,17901
2009-01-23 19:45:49 +01:00
#define GOSSIP_REWARD_BLESS -1000359
2008-10-21 13:19:26 -05:00
//#define TEXT_BLESSINGS "<You need higher standing with Cenarion Expedition to recive a blessing.>"
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
class npcs_ashyen_and_keleth : public CreatureScript
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
public :
npcs_ashyen_and_keleth () : CreatureScript ( "npcs_ashyen_and_keleth" ) { }
bool OnGossipHello ( Player * pPlayer , Creature * pCreature )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
if ( pPlayer -> GetReputationRank ( 942 ) > REP_NEUTRAL )
{
if ( pCreature -> GetEntry () == 17900 )
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_CHAT , GOSSIP_ITEM_BLESS_ASH , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_INFO_DEF + 1 );
if ( pCreature -> GetEntry () == 17901 )
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_CHAT , GOSSIP_ITEM_BLESS_KEL , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_INFO_DEF + 1 );
}
pPlayer -> SEND_GOSSIP_MENU ( pPlayer -> GetGossipTextId ( pCreature ), pCreature -> GetGUID ());
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
return true ;
}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
bool OnGossipSelect ( Player * pPlayer , Creature * pCreature , uint32 /*uiSender*/ , uint32 uiAction )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
if ( uiAction == GOSSIP_ACTION_INFO_DEF + 1 )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
pCreature -> setPowerType ( POWER_MANA );
pCreature -> SetMaxPower ( POWER_MANA , 200 ); //set a "fake" mana value, we can't depend on database doing it in this case
pCreature -> SetPower ( POWER_MANA , 200 );
if ( pCreature -> GetEntry () == 17900 ) //check which Creature we are dealing with
{
switch ( pPlayer -> GetReputationRank ( 942 ))
{ //mark of lore
case REP_FRIENDLY :
pCreature -> CastSpell ( pPlayer , 31808 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
case REP_HONORED :
pCreature -> CastSpell ( pPlayer , 31810 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
case REP_REVERED :
pCreature -> CastSpell ( pPlayer , 31811 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
case REP_EXALTED :
pCreature -> CastSpell ( pPlayer , 31815 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
}
2008-10-21 13:19:26 -05:00
}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
if ( pCreature -> GetEntry () == 17901 )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
switch ( pPlayer -> GetReputationRank ( 942 )) //mark of war
{
case REP_FRIENDLY :
pCreature -> CastSpell ( pPlayer , 31807 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
case REP_HONORED :
pCreature -> CastSpell ( pPlayer , 31812 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
case REP_REVERED :
pCreature -> CastSpell ( pPlayer , 31813 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
case REP_EXALTED :
pCreature -> CastSpell ( pPlayer , 31814 , true );
DoScriptText ( GOSSIP_REWARD_BLESS , pCreature );
break ;
}
2008-10-21 13:19:26 -05:00
}
2010-08-07 13:04:00 +06:00
pPlayer -> CLOSE_GOSSIP_MENU ();
pPlayer -> TalkedToCreature ( pCreature -> GetEntry (), pCreature -> GetGUID ());
2008-10-21 13:19:26 -05:00
}
2010-08-07 13:04:00 +06:00
return true ;
2008-10-21 13:19:26 -05:00
}
2010-08-07 13:04:00 +06:00
};
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
/*######
## npc_cooshcoosh
######*/
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
#define GOSSIP_COOSH "You owe Sim'salabim money. Hand them over or die!"
2009-10-17 15:51:44 -07:00
2009-10-17 07:42:48 -07:00
enum eCooshhooosh
2009-06-19 00:22:19 +02:00
{
SPELL_LIGHTNING_BOLT = 9532 ,
QUEST_CRACK_SKULLS = 10009 ,
FACTION_HOSTILE_CO = 45
};
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
class npc_cooshcoosh : public CreatureScript
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
public :
npc_cooshcoosh () : CreatureScript ( "npc_cooshcoosh" ) { }
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
struct npc_cooshcooshAI : public ScriptedAI
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
npc_cooshcooshAI ( Creature * c ) : ScriptedAI ( c )
{
m_uiNormFaction = c -> getFaction ();
}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
uint32 m_uiNormFaction ;
uint32 LightningBolt_Timer ;
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
void Reset ()
{
LightningBolt_Timer = 2000 ;
if ( me -> getFaction () != m_uiNormFaction )
me -> setFaction ( m_uiNormFaction );
}
void EnterCombat ( Unit * /*who*/ ) {}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
void UpdateAI ( const uint32 diff )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
if ( ! UpdateVictim ())
return ;
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
if ( LightningBolt_Timer <= diff )
{
DoCast ( me -> getVictim (), SPELL_LIGHTNING_BOLT );
LightningBolt_Timer = 5000 ;
} else LightningBolt_Timer -= diff ;
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
DoMeleeAttackIfReady ();
}
};
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
CreatureAI * GetAI ( Creature * pCreature )
{
return new npc_cooshcooshAI ( pCreature );
}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
bool GossipHello ( Player * pPlayer , Creature * pCreature )
{
if ( pPlayer -> GetQuestStatus ( QUEST_CRACK_SKULLS ) == QUEST_STATUS_INCOMPLETE )
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_CHAT , GOSSIP_COOSH , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_INFO_DEF );
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
pPlayer -> SEND_GOSSIP_MENU ( 9441 , pCreature -> GetGUID ());
return true ;
}
bool GossipSelect ( Player * pPlayer , Creature * pCreature , uint32 /*uiSender*/ , uint32 uiAction )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
if ( uiAction == GOSSIP_ACTION_INFO_DEF )
{
pPlayer -> CLOSE_GOSSIP_MENU ();
pCreature -> setFaction ( FACTION_HOSTILE_CO );
pCreature -> AI () -> AttackStart ( pPlayer );
}
return true ;
2008-10-21 13:19:26 -05:00
}
2010-08-07 13:04:00 +06:00
};
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
/*######
## npc_elder_kuruti
######*/
2009-10-17 15:51:44 -07:00
2009-12-06 20:32:16 -03:00
#define GOSSIP_ITEM_KUR1 "Greetings, elder. It is time for your people to end their hostility towards the draenei and their allies."
#define GOSSIP_ITEM_KUR2 "I did not mean to deceive you, elder. The draenei of Telredor thought to approach you in a way that would seem familiar to you."
#define GOSSIP_ITEM_KUR3 "I will tell them. Farewell, elder."
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
class npc_elder_kuruti : public CreatureScript
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
public :
npc_elder_kuruti () : CreatureScript ( "npc_elder_kuruti" ) { }
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
bool GossipHello ( Player * pPlayer , Creature * pCreature )
{
if ( pPlayer -> GetQuestStatus ( 9803 ) == QUEST_STATUS_INCOMPLETE )
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_CHAT , GOSSIP_ITEM_KUR1 , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_INFO_DEF );
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
pPlayer -> SEND_GOSSIP_MENU ( 9226 , pCreature -> GetGUID ());
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
return true ;
}
bool GossipSelect ( Player * pPlayer , Creature * pCreature , uint32 /*uiSender*/ , uint32 uiAction )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
switch ( uiAction )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
case GOSSIP_ACTION_INFO_DEF :
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_CHAT , GOSSIP_ITEM_KUR2 , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_INFO_DEF + 1 );
pPlayer -> SEND_GOSSIP_MENU ( 9227 , pCreature -> GetGUID ());
break ;
case GOSSIP_ACTION_INFO_DEF + 1 :
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_CHAT , GOSSIP_ITEM_KUR3 , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_INFO_DEF + 2 );
pPlayer -> SEND_GOSSIP_MENU ( 9229 , pCreature -> GetGUID ());
break ;
case GOSSIP_ACTION_INFO_DEF + 2 :
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
if ( ! pPlayer -> HasItemCount ( 24573 , 1 ))
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
ItemPosCountVec dest ;
uint32 itemId = 24573 ;
uint8 msg = pPlayer -> CanStoreNewItem ( NULL_BAG , NULL_SLOT , dest , itemId , 1 , false );
if ( msg == EQUIP_ERR_OK )
{
pPlayer -> StoreNewItem ( dest , itemId , true );
}
else
pPlayer -> SendEquipError ( msg , NULL , NULL , itemId );
2008-10-21 13:19:26 -05:00
}
2010-08-07 13:04:00 +06:00
pPlayer -> SEND_GOSSIP_MENU ( 9231 , pCreature -> GetGUID ());
break ;
2008-10-21 13:19:26 -05:00
}
}
2010-08-07 13:04:00 +06:00
return true ;
2008-10-21 13:19:26 -05:00
}
2010-08-07 13:04:00 +06:00
};
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
/*######
## npc_mortog_steamhead
######*/
2010-08-07 13:04:00 +06:00
class npc_mortog_steamhead : public CreatureScript
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
public :
npc_mortog_steamhead () : CreatureScript ( "npc_mortog_steamhead" ) { }
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
bool GossipHello ( Player * pPlayer , Creature * pCreature )
{
if ( pCreature -> isVendor () && pPlayer -> GetReputationRank ( 942 ) == REP_EXALTED )
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_VENDOR , GOSSIP_TEXT_BROWSE_GOODS , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_TRADE );
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
pPlayer -> SEND_GOSSIP_MENU ( pPlayer -> GetGossipTextId ( pCreature ), pCreature -> GetGUID ());
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
return true ;
}
bool GossipSelect ( Player * pPlayer , Creature * pCreature , uint32 /*uiSender*/ , uint32 uiAction )
2008-10-21 13:19:26 -05:00
{
2010-08-07 13:04:00 +06:00
if ( uiAction == GOSSIP_ACTION_TRADE )
{
pPlayer -> SEND_VENDORLIST ( pCreature -> GetGUID ());
}
return true ;
2008-10-21 13:19:26 -05:00
}
2010-08-07 13:04:00 +06:00
};
2009-10-17 15:51:44 -07:00
2009-01-09 23:56:25 +01:00
/*######
## npc_kayra_longmane
######*/
2009-10-17 15:51:44 -07:00
2009-10-17 07:42:48 -07:00
enum eKayra
2009-06-15 01:59:46 +02:00
{
2010-04-10 09:41:25 +02:00
SAY_START = - 1000343 ,
SAY_AMBUSH1 = - 1000344 ,
SAY_PROGRESS = - 1000345 ,
SAY_AMBUSH2 = - 1000346 ,
SAY_NEAR_END = - 1000347 ,
SAY_END = - 1000348 , //this is signed for 10646
2009-10-17 15:51:44 -07:00
2009-06-15 01:59:46 +02:00
QUEST_ESCAPE_FROM = 9752 ,
NPC_SLAVEBINDER = 18042
};
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
class npc_kayra_longmane : public CreatureScript
2009-01-09 23:56:25 +01:00
{
2010-08-07 13:04:00 +06:00
public :
npc_kayra_longmane () : CreatureScript ( "npc_kayra_longmane" ) { }
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
struct npc_kayra_longmaneAI : public npc_escortAI
2009-02-09 08:16:34 -05:00
{
2010-08-07 13:04:00 +06:00
npc_kayra_longmaneAI ( Creature * c ) : npc_escortAI ( c ) {}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
void Reset () { }
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
void WaypointReached ( uint32 i )
2009-02-09 08:16:34 -05:00
{
2010-08-07 13:04:00 +06:00
Player * pPlayer = GetPlayerForEscort ();
if ( ! pPlayer )
return ;
switch ( i )
{
case 4 :
DoScriptText ( SAY_AMBUSH1 , me , pPlayer );
DoSpawnCreature ( NPC_SLAVEBINDER , - 10.0f , - 5.0f , 0.0f , 0.0f , TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT , 30000 );
DoSpawnCreature ( NPC_SLAVEBINDER , - 8.0f , 5.0f , 0.0f , 0.0f , TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT , 30000 );
break ;
case 5 :
DoScriptText ( SAY_PROGRESS , me , pPlayer );
SetRun ();
break ;
case 16 :
DoScriptText ( SAY_AMBUSH2 , me , pPlayer );
DoSpawnCreature ( NPC_SLAVEBINDER , - 10.0f , - 5.0f , 0.0f , 0.0f , TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT , 30000 );
DoSpawnCreature ( NPC_SLAVEBINDER , - 8.0f , 5.0f , 0.0f , 0.0f , TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT , 30000 );
break ;
case 17 :
SetRun ( false );
DoScriptText ( SAY_NEAR_END , me , pPlayer );
break ;
case 25 :
DoScriptText ( SAY_END , me , pPlayer );
pPlayer -> GroupEventHappens ( QUEST_ESCAPE_FROM , me );
break ;
}
2009-02-09 08:16:34 -05:00
}
2010-08-07 13:04:00 +06:00
};
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
bool QuestAccept ( Player * pPlayer , Creature * pCreature , Quest const * pQuest )
2009-01-09 23:56:25 +01:00
{
2010-08-07 13:04:00 +06:00
if ( pQuest -> GetQuestId () == QUEST_ESCAPE_FROM )
{
DoScriptText ( SAY_START , pCreature , pPlayer );
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
if ( npc_escortAI * pEscortAI = CAST_AI ( npc_kayra_longmaneAI , pCreature -> AI ()))
pEscortAI -> Start ( false , false , pPlayer -> GetGUID ());
}
return true ;
2009-01-09 23:56:25 +01:00
}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
CreatureAI * GetAI ( Creature * pCreature )
{
return new npc_kayra_longmaneAI ( pCreature );
}
};
2009-10-17 15:51:44 -07:00
2009-08-17 01:41:39 +02:00
/*######
## npc_timothy_daniels
######*/
2009-10-17 15:51:44 -07:00
2009-08-17 01:41:39 +02:00
#define GOSSIP_TIMOTHY_DANIELS_ITEM1 "Specialist, eh? Just what kind of specialist are you, anyway?"
#define GOSSIP_TEXT_BROWSE_POISONS "Let me browse your reagents and poison supplies."
2009-10-17 15:51:44 -07:00
2009-10-17 07:42:48 -07:00
enum eTimothy
2009-08-17 01:41:39 +02:00
{
GOSSIP_TEXTID_TIMOTHY_DANIELS1 = 9239
};
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
class npc_timothy_daniels : public CreatureScript
2009-08-17 01:41:39 +02:00
{
2010-08-07 13:04:00 +06:00
public :
npc_timothy_daniels () : CreatureScript ( "npc_timothy_daniels" ) { }
bool GossipHello ( Player * pPlayer , Creature * pCreature )
{
if ( pCreature -> isQuestGiver ())
pPlayer -> PrepareQuestMenu ( pCreature -> GetGUID ());
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
if ( pCreature -> isVendor ())
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_VENDOR , GOSSIP_TEXT_BROWSE_POISONS , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_TRADE );
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
pPlayer -> ADD_GOSSIP_ITEM ( GOSSIP_ICON_CHAT , GOSSIP_TIMOTHY_DANIELS_ITEM1 , GOSSIP_SENDER_MAIN , GOSSIP_ACTION_INFO_DEF + 1 );
pPlayer -> SEND_GOSSIP_MENU ( pPlayer -> GetGossipTextId ( pCreature ), pCreature -> GetGUID ());
return true ;
}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
bool GossipSelect ( Player * pPlayer , Creature * pCreature , uint32 /*uiSender*/ , uint32 uiAction )
2009-08-17 01:41:39 +02:00
{
2010-08-07 13:04:00 +06:00
switch ( uiAction )
{
case GOSSIP_ACTION_INFO_DEF + 1 :
pPlayer -> SEND_GOSSIP_MENU ( GOSSIP_TEXTID_TIMOTHY_DANIELS1 , pCreature -> GetGUID ());
break ;
case GOSSIP_ACTION_TRADE :
pPlayer -> SEND_VENDORLIST ( pCreature -> GetGUID ());
break ;
}
2009-10-17 15:51:44 -07:00
2010-08-07 13:04:00 +06:00
return true ;
}
};
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
/*######
## AddSC
######*/
2009-10-17 15:51:44 -07:00
2008-10-21 13:19:26 -05:00
void AddSC_zangarmarsh ()
{
2010-08-07 13:04:00 +06:00
new npcs_ashyen_and_keleth ();
new npc_cooshcoosh ();
new npc_elder_kuruti ();
new npc_mortog_steamhead ();
new npc_kayra_longmane ();
new npc_timothy_daniels ();
2008-10-21 13:19:26 -05:00
}