mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
Core/Scripting: Replace a couple core scripts in Storm Peaks with SAI and DB gossip.
This commit is contained in:
39
sql/updates/world/2013_06_26_01_world_misc.sql
Normal file
39
sql/updates/world/2013_06_26_01_world_misc.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
-- Add gossip id to Frostborn Scout
|
||||
UPDATE `creature_template` SET `gossip_menu_id`=9841 WHERE `entry`=29811;
|
||||
-- Add Missing Gossip for Frostborn Scout
|
||||
DELETE FROM `gossip_menu` WHERE `entry`=9841 AND `text_id`=13611;
|
||||
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9841,13611);
|
||||
DELETE FROM `gossip_menu` WHERE `entry`=9842 AND `text_id`=13612;
|
||||
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9842,13612);
|
||||
DELETE FROM `gossip_menu` WHERE `entry`=9843 AND `text_id`=13613;
|
||||
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9843,13613);
|
||||
DELETE FROM `gossip_menu` WHERE `entry`=9844 AND `text_id`=13614;
|
||||
INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES (9844,13614);
|
||||
-- Add Any Missing Gossip Option for Frostborn Scout
|
||||
DELETE FROM `gossip_menu_option` WHERE menu_id IN (9841,9842,9843);
|
||||
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`,`option_text`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`)VALUES
|
||||
(9841,0,0,"Are you okay? I''ve come TO take you back TO Frosthold IF you can stand.",1,1,9842,0,0,0,''),
|
||||
(9842,0,0,"I''m sorry that I didn''t get here sooner. What happened?",1,1,9843,0,0,0,''),
|
||||
(9843,0,0,"I''ll go get SOME help. Hang IN there.",1,1,9844,0,0,0,'');
|
||||
-- Add Gossip option condition
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (15) AND `SourceGroup` IN (9841);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
|
||||
(15,9841,0,0,28,12864,0,0,1,0,'','Agnetta Tyrsdottar - Show gossip option only if quest "Missing scouts" is not complete');
|
||||
|
||||
-- Frostborn Scout SAI for Quest: Missing scouts
|
||||
SET @ENTRY := 29647;
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,0,1,62,0,100,0,9843,0,0,0,15,12864,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Frostborn Scout - On Gossip Option Select - Give quest credit for Quest: Missing scouts');
|
||||
|
||||
-- Agnetta_Tyrsdottar SAI Quest: Is That Your Goblin?
|
||||
SET @ENTRY := 30154;
|
||||
UPDATE `creature_template` SET `AIName`= 'SmartAI',`ScriptName`= '' WHERE `entry`=@ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `source_type`=0 AND `entryorguid`=@ENTRY;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
(@ENTRY,0,0,1,62,0,100,0,9874,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Close Gossip Window'),
|
||||
(@ENTRY,0,1,2,61,0,100,0,0,0,0,0,2,45,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Set Faction'),
|
||||
(@ENTRY,0,2,3,61,0,100,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Say 0'),
|
||||
(@ENTRY,0,3,0,61,0,100,0,0,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Gossip Option Select - Attack Envoker'),
|
||||
(@ENTRY,0,4,0,25,0,100,0,0,0,0,0,2,2109,0,0,0,0,0,7,0,0,0,0,0,0,0, 'Agnetta_Tyrsdottar - On Reset - Set faction');
|
||||
@@ -26,103 +26,6 @@
|
||||
#include "Player.h"
|
||||
#include "WorldSession.h"
|
||||
|
||||
/*######
|
||||
## npc_agnetta_tyrsdottar for QUEST_ITS_THAT_YOUR_GOBLIN 12969
|
||||
######*/
|
||||
|
||||
enum eAgnetta
|
||||
{
|
||||
FACTION_HOSTILE_AT1 = 45,
|
||||
SAY_AGGRO = 0,
|
||||
GOSSIP_ID = 9874,
|
||||
GOSSIP_OPTION_ID = 0
|
||||
};
|
||||
|
||||
class npc_agnetta_tyrsdottar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_agnetta_tyrsdottar() : CreatureScript("npc_agnetta_tyrsdottar") { }
|
||||
|
||||
struct npc_agnetta_tyrsdottarAI : public ScriptedAI
|
||||
{
|
||||
npc_agnetta_tyrsdottarAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
void Reset()
|
||||
{
|
||||
me->RestoreFaction();
|
||||
}
|
||||
|
||||
void sGossipSelect(Player* player, uint32 sender, uint32 action)
|
||||
{
|
||||
if (sender == GOSSIP_ID && action == GOSSIP_OPTION_ID)
|
||||
{
|
||||
player->CLOSE_GOSSIP_MENU();
|
||||
me->setFaction(FACTION_HOSTILE_AT1);
|
||||
Talk(SAY_AGGRO);
|
||||
AttackStart(player);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_agnetta_tyrsdottarAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
/*######
|
||||
## npc_frostborn_scout
|
||||
######*/
|
||||
|
||||
#define GOSSIP_ITEM1 "Are you okay? I've come to take you back to Frosthold if you can stand."
|
||||
#define GOSSIP_ITEM2 "I'm sorry that I didn't get here sooner. What happened?"
|
||||
#define GOSSIP_ITEM3 "I'll go get some help. Hang in there."
|
||||
|
||||
enum eFrostbornScout
|
||||
{
|
||||
QUEST_MISSING_SCOUTS = 12864
|
||||
};
|
||||
|
||||
class npc_frostborn_scout : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_frostborn_scout() : CreatureScript("npc_frostborn_scout") { }
|
||||
|
||||
bool OnGossipHello(Player* player, Creature* creature)
|
||||
{
|
||||
|
||||
if (player->GetQuestStatus(QUEST_MISSING_SCOUTS) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
player->PlayerTalkClass->SendGossipMenu(13611, creature->GetGUID());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF+1:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
|
||||
player->PlayerTalkClass->SendGossipMenu(13612, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+2:
|
||||
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
|
||||
player->PlayerTalkClass->SendGossipMenu(13613, creature->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+3:
|
||||
player->PlayerTalkClass->SendGossipMenu(13614, creature->GetGUID());
|
||||
player->AreaExploredOrEventHappens(QUEST_MISSING_SCOUTS);
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/////////////////////
|
||||
///npc_injured_goblin
|
||||
/////////////////////
|
||||
@@ -576,8 +479,6 @@ class spell_close_rift : public SpellScriptLoader
|
||||
|
||||
void AddSC_storm_peaks()
|
||||
{
|
||||
new npc_agnetta_tyrsdottar();
|
||||
new npc_frostborn_scout();
|
||||
new npc_injured_goblin();
|
||||
new npc_roxi_ramrocket();
|
||||
new npc_brunnhildar_prisoner();
|
||||
|
||||
Reference in New Issue
Block a user