Merge, thanks to Aokromes for testing my patches.

Added tag UP30 for e653a5b8d0

--HG--
branch : trunk
This commit is contained in:
Machiavelli
2010-05-26 20:26:03 +02:00
92 changed files with 63 additions and 4082 deletions
+1
View File
@@ -24,3 +24,4 @@ eed51550303dd1ca6c8617711265ec573c085263 3.2.2a-last
b048ef8c4b39afb28c66f5c16a2d2cc5eb8d12d2 3.2.2a-really-last
433ffdb940c1589af6b0243fb40f74cbc12e6a18 3.3.2-last
50ede8e9dc8a83776fb6a0bfe17af9391c17b625 Teacher's & SoulForge's birthday
e653a5b8d0100c99337e012e4b66848efd028cfb UP30
+1 -17
View File
@@ -86,25 +86,9 @@ UPDATE `gameobject_template` SET `ScriptName`='go_dragonflayer_cage' WHERE entry
UPDATE `gameobject_template` SET `ScriptName`='go_black_cage' WHERE `entry`=195310;
/* GUARD */
UPDATE `creature_template` SET `ScriptName`='guard_azuremyst' WHERE `entry`=18038;
UPDATE `creature_template` SET `ScriptName`='guard_generic' WHERE `entry` IN (727,1423,1735,1738,1742,1743,1744,1745,1746,2209,2210,3084,3212,3215,3217,3218,3219,3220,3221,3222,3223,3224,3502,3571,4262,4264,5595,5624,5725,5953,9460,11190,13076,15184,16221,16222,16733,18038,19687);
UPDATE `creature_template` SET `ScriptName`='guard_orgrimmar' WHERE `entry`=3296;
UPDATE `creature_template` SET `ScriptName`='guard_stormwind' WHERE `entry` IN (68,1976);
UPDATE `creature_template` SET `ScriptName`='guard_contested' WHERE `entry` IN (9460,4624,3502,11190,15184);
UPDATE `creature_template` SET `ScriptName`='guard_elwynnforest' WHERE `entry`=1423;
UPDATE `creature_template` SET `ScriptName`='guard_eversong' WHERE `entry`=16221;
UPDATE `creature_template` SET `ScriptName`='guard_darnassus' WHERE `entry`=4262;
UPDATE `creature_template` SET `ScriptName`='guard_teldrassil' WHERE `entry`=3571;
UPDATE `creature_template` SET `ScriptName`='guard_ironforge' WHERE `entry`=5595;
UPDATE `creature_template` SET `ScriptName`='guard_dunmorogh' WHERE `entry` IN (727,13076);
UPDATE `creature_template` SET `ScriptName`='guard_undercity' WHERE `entry`=5624;
UPDATE `creature_template` SET `ScriptName`='guard_bluffwatcher' WHERE `entry`=3084;
UPDATE `creature_template` SET `ScriptName`='guard_durotar' WHERE `entry`=5953;
UPDATE `creature_template` SET `ScriptName`='guard_mulgore' WHERE `entry` IN (3212,3215,3217,3218,3219,3220,3221,3222,3223,3224);
UPDATE `creature_template` SET `ScriptName`='guard_dunmorogh' WHERE `entry` IN (727,13076);
UPDATE `creature_template` SET `ScriptName`='guard_tirisfal' WHERE `entry` IN (1735,1738,2210,1744,1745,5725,1743,2209,1746,1742);
UPDATE `creature_template` SET `ScriptName`='guard_silvermoon' WHERE `entry`=16222;
UPDATE `creature_template` SET `ScriptName`='guard_exodar' WHERE `entry`=16733;
UPDATE `creature_template` SET `ScriptName`='guard_shattrath' WHERE `entry`=19687;
UPDATE `creature_template` SET `ScriptName`='guard_shattrath_aldor' WHERE `entry`=18549;
UPDATE `creature_template` SET `ScriptName`='guard_shattrath_scryer' WHERE `entry`=18568;
@@ -0,0 +1,44 @@
--
-- Update basic NPC guards to use a common AI - gossip now handled in database
--
-- guard_azuremyst -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (18038);
-- guard_bluffwatcher -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (3084);
-- guard_contested -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (3502,4624,9460,11190,15184);
-- guard_darnassus -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (4262);
-- guard_dunmorogh -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (727,13076);
-- guard_durotar -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (5953);
-- guard_elwynnforest -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (1423);
-- guard_eversong -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (16221);
-- guard_exodar -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (16733);
-- guard_ironforge -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (5595);
-- guard_mulgore -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (3212,3215,3217,3218,3219,3220,3221,3222,3223,3224);
-- guard_shattrath -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (19687);
-- guard_silvermoon -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (16222);
-- guard_teldrassil -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (3571);
-- guard_tirisfal -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (1735,1738,1742,1743,1744,1745,1746,2209,2210,5725);
-- guard_undercity -> guard_generic
UPDATE `creature_template` SET `ScriptName` = 'guard_generic' WHERE `entry` IN (5624);
--
-- Update (remove) scripts from NPCs that had gossip - gossip now handled in database (AI removed)
--
-- NPC Surristrasz
UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` IN (24795);
-- NPC Tiare
UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` IN (30051);
-- NPC Fizzcrank Fullthrottle
UPDATE `creature_template` SET `ScriptName` = '' WHERE `entry` IN (25590);
@@ -1 +0,0 @@
UPDATE `battleground_template` SET `MinPlayersPerTeam`='10', `MaxPlayersPerTeam`='10' WHERE `battleground_template`.`id`=32;
-1
View File
@@ -135,4 +135,3 @@ void GuardAI::JustDied(Unit *killer)
if (Player* pkiller = killer->GetCharmerOrOwnerPlayerOrPlayerItself())
me->SendZoneUnderAttackMessage(pkiller);
}
+10 -2
View File
@@ -1630,8 +1630,16 @@ void Spell::EffectDummy(uint32 i)
// Life Tap
if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARLOCK_LIFETAP)
{
int32 damage = m_spellInfo->EffectBasePoints[0] + (6 * m_spellInfo->baseLevel);
int32 mana = damage + (m_caster->ToPlayer()->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS+SPELL_SCHOOL_SHADOW) / 2);
float spFactor = 0;
switch (m_spellInfo->Id)
{
case 11689: spFactor = 0.2; break;
case 27222:
case 57946: spFactor = 0.5; break;
default: spFactor = 0; break;
}
int32 damage = m_spellInfo->EffectBasePoints[0] + (6.3875 * m_spellInfo->baseLevel);
int32 mana = damage + (m_caster->ToPlayer()->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS+SPELL_SCHOOL_SHADOW) * spFactor);
if (unitTarget && (int32(unitTarget->GetHealth()) > damage))
{
-170
View File
@@ -22,9 +22,6 @@ SDCategory: Borean Tundra
EndScriptData */
/* ContentData
npc_fizzcrank_fullthrottle
npc_surristrasz
npc_tiare
npc_iruk
npc_corastrasza
npc_jenny
@@ -42,155 +39,6 @@ EndContentData */
#include "ScriptedEscortAI.h"
#include "ScriptedFollowerAI.h"
/*######
## npc_fizzcrank_fullthrottle
######*/
#define GOSSIP_ITEM_GO_ON "Go on."
#define GOSSIP_ITEM_TELL_ME "Tell me what's going on out here, Fizzcrank."
enum eFizzcrank
{
GOSSIP_TEXTID_FIZZCRANK1 = 12456,
GOSSIP_TEXTID_FIZZCRANK2 = 12457,
GOSSIP_TEXTID_FIZZCRANK3 = 12458,
GOSSIP_TEXTID_FIZZCRANK4 = 12459,
GOSSIP_TEXTID_FIZZCRANK5 = 12460,
GOSSIP_TEXTID_FIZZCRANK6 = 12461,
GOSSIP_TEXTID_FIZZCRANK7 = 12462,
GOSSIP_TEXTID_FIZZCRANK8 = 12463,
GOSSIP_TEXTID_FIZZCRANK9 = 12464,
QUEST_THE_MECHAGNOMES = 11708
};
bool GossipHello_npc_fizzcrank_fullthrottle(Player* pPlayer, Creature* pCreature)
{
if (pCreature->isQuestGiver())
pPlayer->PrepareQuestMenu(pCreature->GetGUID());
if (pPlayer->GetQuestStatus(QUEST_THE_MECHAGNOMES) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELL_ME, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
return true;
}
bool GossipSelect_npc_fizzcrank_fullthrottle(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
switch(uiAction)
{
case GOSSIP_ACTION_INFO_DEF+1:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK1, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+2:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK2, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+3:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK3, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+4:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK4, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+5:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK5, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+6:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK6, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+7:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK7, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+8:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_GO_ON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK8, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+9:
pPlayer->SEND_GOSSIP_MENU(GOSSIP_TEXTID_FIZZCRANK9, pCreature->GetGUID());
pPlayer->AreaExploredOrEventHappens(QUEST_THE_MECHAGNOMES);
break;
}
return true;
}
/*######
## npc_surristrasz
######*/
#define GOSSIP_ITEM_FREE_FLIGHT "I'd like passage to the Transitus Shield."
#define GOSSIP_ITEM_FLIGHT "May I use a drake to fly elsewhere?"
enum eSurristrasz
{
SPELL_ABMER_TO_COLDARRA = 46064
};
bool GossipHello_npc_surristrasz(Player* pPlayer, Creature* pCreature)
{
if (pCreature->isQuestGiver())
pPlayer->PrepareQuestMenu(pCreature->GetGUID());
if (pCreature->isTaxi())
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_FREE_FLIGHT, GOSSIP_SENDER_MAIN, GOSSIP_OPTION_GOSSIP);
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, GOSSIP_ITEM_FLIGHT, GOSSIP_SENDER_MAIN, GOSSIP_OPTION_TAXIVENDOR);
}
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
return true;
}
bool GossipSelect_npc_surristrasz(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
if (uiAction == GOSSIP_OPTION_GOSSIP)
{
pPlayer->CLOSE_GOSSIP_MENU();
//TaxiPath 795 (amber to coldarra)
pPlayer->CastSpell(pPlayer, SPELL_ABMER_TO_COLDARRA, true);
}
if (uiAction == GOSSIP_OPTION_TAXIVENDOR)
pPlayer->GetSession()->SendTaxiMenu(pCreature);
return true;
}
/*######
## npc_tiare
######*/
#define GOSSIP_ITEM_TELEPORT "Teleport me to Amber Ledge, please."
enum eTiare
{
SPELL_TELEPORT_COLDARRA = 50135
};
bool GossipHello_npc_tiare(Player* pPlayer, Creature* pCreature)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_TELEPORT, GOSSIP_SENDER_MAIN, GOSSIP_OPTION_GOSSIP);
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
return true;
}
bool GossipSelect_npc_tiare(Player* pPlayer, Creature* /*pCreature*/, uint32 /*uiSender*/, uint32 uiAction)
{
if (uiAction == GOSSIP_OPTION_GOSSIP)
{
pPlayer->CLOSE_GOSSIP_MENU();
pPlayer->CastSpell(pPlayer, SPELL_TELEPORT_COLDARRA, true);
}
return true;
}
/*######
## npc_sinkhole_kill_credit
######*/
@@ -2335,24 +2183,6 @@ void AddSC_borean_tundra()
{
Script *newscript;
newscript = new Script;
newscript->Name = "npc_fizzcrank_fullthrottle";
newscript->pGossipHello = &GossipHello_npc_fizzcrank_fullthrottle;
newscript->pGossipSelect = &GossipSelect_npc_fizzcrank_fullthrottle;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_surristrasz";
newscript->pGossipHello = &GossipHello_npc_surristrasz;
newscript->pGossipSelect = &GossipSelect_npc_surristrasz;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_tiare";
newscript->pGossipHello = &GossipHello_npc_tiare;
newscript->pGossipSelect = &GossipSelect_npc_tiare;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_sinkhole_kill_credit";
newscript->GetAI = &GetAI_npc_sinkhole_kill_credit;
File diff suppressed because it is too large Load Diff