aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/FULL/world_script_texts.sql46
-rw-r--r--sql/FULL/world_scripts_full.sql2
-rw-r--r--sql/FULL/world_spell_full.sql2
-rw-r--r--sql/updates/5131_world_scripts_dk.sql47
-rw-r--r--src/bindings/scripts/scripts/eastern_kingdoms/scarlet_enclave/chapter2.cpp60
-rw-r--r--src/game/Player.cpp23
6 files changed, 144 insertions, 36 deletions
diff --git a/sql/FULL/world_script_texts.sql b/sql/FULL/world_script_texts.sql
index ee8a3a7dcc4..ba097629279 100644
--- a/sql/FULL/world_script_texts.sql
+++ b/sql/FULL/world_script_texts.sql
@@ -1,4 +1,4 @@
--- Up to TC2 4748
+-- Up to TC2 4748
--
-- trinityscript_script_texts.sql Contains data for table `script_texts` mainly used in C++ parts.
-- valid entries for table are between -1000000 and -1999999
@@ -1996,6 +1996,50 @@ INSERT INTO `script_texts` (`entry`, `content_default`, `content_loc1`, `content
--
+DELETE FROM script_texts WHERE entry BETWEEN -1609600 AND -1609501;
+INSERT INTO `script_texts` (`entry`,`content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+-- How To Win Friends And Influence Enemies
+ (-1609501, 'I\'ll tear the secrets from your soul! Tell me about the "Crimson Dawn" and your life may be spared!',0,0,0,0,'player SAY_PERSUADE1'),
+ (-1609502, 'Tell me what you know about "Crimson Dawn" or the beatings will continue!',0,0,0,0,'player SAY_PERSUADE2'),
+ (-1609503, 'I\'m through being courteous with your kind, human! What is the "Crimson Dawn?"',0,0,0,0,'player SAY_PERSUADE3'),
+ (-1609504, 'Is your life worth so little? Just tell me what I need to know about "Crimson Dawn" and I\'ll end your suffering quickly.',0,0,0,0,'player SAY_PERSUADE4'),
+ (-1609505, 'I can keep this up for a very long time, Scarlet dog! Tell me about the "Crimson Dawn!"',0,0,0,0,'player SAY_PERSUADE5'),
+ (-1609506, 'What is the "Crimson Dawn?"',0,0,0,0,'player SAY_PERSUADE6'),
+ (-1609507, '"Crimson Dawn!" What is it! Speak!',0,0,0,0,'player SAY_PERSUADE7'),
+ (-1609508, 'You\'ll be hanging in the gallows shortly, Scourge fiend!',0,0,0,0,'crusader SAY_CRUSADER1'),
+ (-1609509, 'You\'ll have to kill me, monster! I will tell you NOTHING!',0,0,0,0,'crusader SAY_CRUSADER2'),
+ (-1609510, 'You hit like a girl. Honestly. Is that the best you can do?',0,0,0,0,'crusader SAY_CRUSADER3'),
+ (-1609511, 'ARGH! You burned my last good tabard!',0,0,0,0,'crusader SAY_CRUSADER4'),
+ (-1609512, 'Argh... The pain... The pain is almost as unbearable as the lashings I received in grammar school when I was but a child.',0,0,0,0,'crusader SAY_CRUSADER5'),
+ (-1609513, 'I used to work for Grand Inquisitor Isillien! Your idea of pain is a normal mid-afternoon for me!',0,0,0,0,'crusader SAY_CRUSADER6'),
+ (-1609514, 'I\'ll tell you everything! STOP! PLEASE!',0,0,0,20,'break crusader SAY_PERSUADED1'),
+ (-1609515, 'We... We have only been told that the "Crimson Dawn" is an awakening. You see, the Light speaks to the High General. It is the Light...',0,0,0,20,'break crusader SAY_PERSUADED2'),
+ (-1609516, 'The Light that guides us. The movement was set in motion before you came... We... We do as we are told. It is what must be done.',0,0,0,20,'break crusader SAY_PERSUADED3'),
+ (-1609517, 'I know very little else... The High General chooses who may go and who must stay behind. There\'s nothing else... You must believe me!',0,0,0,20,'break crusader SAY_PERSUADED4'),
+ (-1609518, 'LIES! The pain you are about to endure will be talked about for years to come!',0,0,0,0,'break crusader SAY_PERSUADED5'),
+ (-1609519, 'NO! PLEASE! There is one more thing that I forgot to mention... A courier comes soon... From Hearthglen. It...',0,0,0,20,'break crusader SAY_PERSUADED6'),
+-- Ambush At The Overlook
+ (-1609531, 'Hrm, what a strange tree. I must investigate.',0,0,0,0,'Scarlet Courier SAY_TREE1'),
+ (-1609532, 'What''s this!? This isn''t a tree at all! Guards! Guards!',0,0,0,0,'Scarlet Courier SAY_TREE2'),
+-- Bloody Breakout
+ (-1609561, 'I\'ll need to get my runeblade and armor... Just need a little more time.',0,0,0,399,'Koltira Deathweaver SAY_BREAKOUT1'),
+ (-1609562, 'I\'m still weak, but I think I can get an anti-magic barrier up. Stay inside it or you\'ll be destroyed by their spells.',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT2'),
+ (-1609563, 'Maintaining this barrier will require all of my concentration. Kill them all!',0,0,0,16,'Koltira Deathweaver SAY_BREAKOUT3'),
+ (-1609564, 'There are more coming. Defend yourself! Don\'t fall out of the anti-magic field! They\'ll tear you apart without its protection!',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT4'),
+ (-1609565, 'I can\'t keep barrier up much longer... Where is that coward?',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT5'),
+ (-1609566, 'The High Inquisitor comes! Be ready, death knight! Do not let him draw you out of the protective bounds of my anti-magic field! Kill him and take his head!',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT6'),
+ (-1609567, 'Stay in the anti-magic field! Make them come to you!',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT7'),
+ (-1609568, 'The death of the High Inquisitor of New Avalon will not go unnoticed. You need to get out of here at once! Go, before more of them show up. I\'ll be fine on my own.',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT8'),
+ (-1609569, 'I\'ll draw their fire, you make your escape behind me.',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT9'),
+ (-1609570, 'Your High Inquisitor is nothing more than a pile of meat, Crusaders! There are none beyond the grasp of the Scourge!',0,1,0,0,'Koltira Deathweaver SAY_BREAKOUT10'),
+ (-1609581, 'The Crusade will purge your kind from this world!',0,1,0,0,'High Inquisitor Valroth start'),
+ (-1609582, 'It seems that I\'ll need to deal with you myself. The High Inquisitor comes for you, Scourge!',0,1,0,0,'High Inquisitor Valroth aggro'),
+ (-1609583, 'You have come seeking deliverance? I have come to deliver!',0,0,0,0,'High Inquisitor Valroth yell'),
+ (-1609584, 'LIGHT PURGE YOU!',0,0,0,0,'High Inquisitor Valroth yell'),
+ (-1609585, 'Coward!',0,0,0,0,'High Inquisitor Valroth yell'),
+ (-1609586, 'High Inquisitor Valroth\'s remains fall to the ground.',0,2,0,0,'High Inquisitor Valroth death');
+
+
DELETE FROM `creature_ai_scripts` WHERE `creature_id` in (26796, 26798, 26929, 26928, 26930);
INSERT INTO `creature_ai_scripts` VALUES
-- Commander Stoutbeard
diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql
index e389cea3f9d..2325579a505 100644
--- a/sql/FULL/world_scripts_full.sql
+++ b/sql/FULL/world_scripts_full.sql
@@ -113,6 +113,8 @@ UPDATE `creature_template` SET `ScriptName`='npc_ebon_gargoyle' WHERE `entry`=27
UPDATE `gameobject_template` SET `ScriptName`='go_inconspicuous_mine_car' WHERE (`entry`='190767');
UPDATE `creature_template` SET `ScriptName`='npc_scarlet_miner_cart' WHERE (`entry`='28817');
UPDATE `creature_template` SET `ScriptName`='npc_scarlet_miner' WHERE (`entry`='28841');
+UPDATE `creature_template` SET `ScriptName`='npc_crusade_persuaded' WHERE `entry` IN (28939,28940,28610);
+
/* */
/* ZONE */
diff --git a/sql/FULL/world_spell_full.sql b/sql/FULL/world_spell_full.sql
index 8dbde223b50..9b966564021 100644
--- a/sql/FULL/world_spell_full.sql
+++ b/sql/FULL/world_spell_full.sql
@@ -2021,6 +2021,8 @@ INSERT INTO `npc_spellclick_spells` (npc_entry, spell_id, quest_start, quest_sta
(31896, 60123, 0, 0, 0, 0x2, 0, 27873, 2),
(31897, 60123, 0, 0, 0, 0x2, 0, 7001, 2);
+update item_template set spellppmRate_1 = 1 where entry = 39371; -- persuader
+
-- --------
-- NAXXARAMAS
-- --------
diff --git a/sql/updates/5131_world_scripts_dk.sql b/sql/updates/5131_world_scripts_dk.sql
new file mode 100644
index 00000000000..dbfbdc21d55
--- /dev/null
+++ b/sql/updates/5131_world_scripts_dk.sql
@@ -0,0 +1,47 @@
+UPDATE `creature_template` SET `ScriptName`='npc_crusade_persuaded' WHERE `entry` IN (28939,28940,28610);
+
+update item_template set spellppmRate_1 = 1 where entry = 39371; -- persuader
+
+
+DELETE FROM script_texts WHERE entry BETWEEN -1609600 AND -1609501;
+INSERT INTO `script_texts` (`entry`,`content_default`,`sound`,`type`,`language`,`emote`,`comment`) VALUES
+-- How To Win Friends And Influence Enemies
+ (-1609501, 'I\'ll tear the secrets from your soul! Tell me about the "Crimson Dawn" and your life may be spared!',0,0,0,0,'player SAY_PERSUADE1'),
+ (-1609502, 'Tell me what you know about "Crimson Dawn" or the beatings will continue!',0,0,0,0,'player SAY_PERSUADE2'),
+ (-1609503, 'I\'m through being courteous with your kind, human! What is the "Crimson Dawn?"',0,0,0,0,'player SAY_PERSUADE3'),
+ (-1609504, 'Is your life worth so little? Just tell me what I need to know about "Crimson Dawn" and I\'ll end your suffering quickly.',0,0,0,0,'player SAY_PERSUADE4'),
+ (-1609505, 'I can keep this up for a very long time, Scarlet dog! Tell me about the "Crimson Dawn!"',0,0,0,0,'player SAY_PERSUADE5'),
+ (-1609506, 'What is the "Crimson Dawn?"',0,0,0,0,'player SAY_PERSUADE6'),
+ (-1609507, '"Crimson Dawn!" What is it! Speak!',0,0,0,0,'player SAY_PERSUADE7'),
+ (-1609508, 'You\'ll be hanging in the gallows shortly, Scourge fiend!',0,0,0,0,'crusader SAY_CRUSADER1'),
+ (-1609509, 'You\'ll have to kill me, monster! I will tell you NOTHING!',0,0,0,0,'crusader SAY_CRUSADER2'),
+ (-1609510, 'You hit like a girl. Honestly. Is that the best you can do?',0,0,0,0,'crusader SAY_CRUSADER3'),
+ (-1609511, 'ARGH! You burned my last good tabard!',0,0,0,0,'crusader SAY_CRUSADER4'),
+ (-1609512, 'Argh... The pain... The pain is almost as unbearable as the lashings I received in grammar school when I was but a child.',0,0,0,0,'crusader SAY_CRUSADER5'),
+ (-1609513, 'I used to work for Grand Inquisitor Isillien! Your idea of pain is a normal mid-afternoon for me!',0,0,0,0,'crusader SAY_CRUSADER6'),
+ (-1609514, 'I\'ll tell you everything! STOP! PLEASE!',0,0,0,20,'break crusader SAY_PERSUADED1'),
+ (-1609515, 'We... We have only been told that the "Crimson Dawn" is an awakening. You see, the Light speaks to the High General. It is the Light...',0,0,0,20,'break crusader SAY_PERSUADED2'),
+ (-1609516, 'The Light that guides us. The movement was set in motion before you came... We... We do as we are told. It is what must be done.',0,0,0,20,'break crusader SAY_PERSUADED3'),
+ (-1609517, 'I know very little else... The High General chooses who may go and who must stay behind. There\'s nothing else... You must believe me!',0,0,0,20,'break crusader SAY_PERSUADED4'),
+ (-1609518, 'LIES! The pain you are about to endure will be talked about for years to come!',0,0,0,0,'break crusader SAY_PERSUADED5'),
+ (-1609519, 'NO! PLEASE! There is one more thing that I forgot to mention... A courier comes soon... From Hearthglen. It...',0,0,0,20,'break crusader SAY_PERSUADED6'),
+-- Ambush At The Overlook
+ (-1609531, 'Hrm, what a strange tree. I must investigate.',0,0,0,0,'Scarlet Courier SAY_TREE1'),
+ (-1609532, 'What''s this!? This isn''t a tree at all! Guards! Guards!',0,0,0,0,'Scarlet Courier SAY_TREE2'),
+-- Bloody Breakout
+ (-1609561, 'I\'ll need to get my runeblade and armor... Just need a little more time.',0,0,0,399,'Koltira Deathweaver SAY_BREAKOUT1'),
+ (-1609562, 'I\'m still weak, but I think I can get an anti-magic barrier up. Stay inside it or you\'ll be destroyed by their spells.',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT2'),
+ (-1609563, 'Maintaining this barrier will require all of my concentration. Kill them all!',0,0,0,16,'Koltira Deathweaver SAY_BREAKOUT3'),
+ (-1609564, 'There are more coming. Defend yourself! Don\'t fall out of the anti-magic field! They\'ll tear you apart without its protection!',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT4'),
+ (-1609565, 'I can\'t keep barrier up much longer... Where is that coward?',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT5'),
+ (-1609566, 'The High Inquisitor comes! Be ready, death knight! Do not let him draw you out of the protective bounds of my anti-magic field! Kill him and take his head!',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT6'),
+ (-1609567, 'Stay in the anti-magic field! Make them come to you!',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT7'),
+ (-1609568, 'The death of the High Inquisitor of New Avalon will not go unnoticed. You need to get out of here at once! Go, before more of them show up. I\'ll be fine on my own.',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT8'),
+ (-1609569, 'I\'ll draw their fire, you make your escape behind me.',0,0,0,0,'Koltira Deathweaver SAY_BREAKOUT9'),
+ (-1609570, 'Your High Inquisitor is nothing more than a pile of meat, Crusaders! There are none beyond the grasp of the Scourge!',0,1,0,0,'Koltira Deathweaver SAY_BREAKOUT10'),
+ (-1609581, 'The Crusade will purge your kind from this world!',0,1,0,0,'High Inquisitor Valroth start'),
+ (-1609582, 'It seems that I\'ll need to deal with you myself. The High Inquisitor comes for you, Scourge!',0,1,0,0,'High Inquisitor Valroth aggro'),
+ (-1609583, 'You have come seeking deliverance? I have come to deliver!',0,0,0,0,'High Inquisitor Valroth yell'),
+ (-1609584, 'LIGHT PURGE YOU!',0,0,0,0,'High Inquisitor Valroth yell'),
+ (-1609585, 'Coward!',0,0,0,0,'High Inquisitor Valroth yell'),
+ (-1609586, 'High Inquisitor Valroth\'s remains fall to the ground.',0,2,0,0,'High Inquisitor Valroth death');
diff --git a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_enclave/chapter2.cpp b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_enclave/chapter2.cpp
index 87033b9899f..7e02091d11d 100644
--- a/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_enclave/chapter2.cpp
+++ b/src/bindings/scripts/scripts/eastern_kingdoms/scarlet_enclave/chapter2.cpp
@@ -58,6 +58,7 @@ struct TRINITY_DLL_DECL npc_crusade_persuadedAI : public ScriptedAI
uiSpeech_counter = 0;
uiPlayerGUID = 0;
me->SetReactState(REACT_AGGRESSIVE);
+ me->RestoreFaction();
}
void SpellHit(Unit *caster, const SpellEntry *spell)
@@ -66,36 +67,34 @@ struct TRINITY_DLL_DECL npc_crusade_persuadedAI : public ScriptedAI
{
if(CAST_PLR(caster)->GetQuestStatus(12720) == QUEST_STATUS_INCOMPLETE)
{
- if (rand()%100 < 5) // chance
- {
- uiPlayerGUID = caster->GetGUID();
- uiSpeech_timer = 1000;
- uiSpeech_counter = 1;
- me->setFaction(35);
- me->CombatStop(true);
- me->GetMotionMaster()->MoveIdle();
- me->SetReactState(REACT_PASSIVE);
+ uiPlayerGUID = caster->GetGUID();
+ uiSpeech_timer = 1000;
+ uiSpeech_counter = 1;
+ me->setFaction(caster->getFaction());
+ me->CombatStop(true);
+ me->GetMotionMaster()->MoveIdle();
+ me->SetReactState(REACT_PASSIVE);
+ DoCastAOE(58111, true);
- switch(rand()%6)
- {
- case 0: DoScriptText(SAY_PERSUADE1, caster);break;
- case 1: DoScriptText(SAY_PERSUADE2, caster);break;
- case 2: DoScriptText(SAY_PERSUADE3, caster);break;
- case 3: DoScriptText(SAY_PERSUADE4, caster);break;
- case 4: DoScriptText(SAY_PERSUADE5, caster);break;
- case 5: DoScriptText(SAY_PERSUADE6, caster);break;
- case 6: DoScriptText(SAY_PERSUADE7, caster);break;
- }
+ switch(rand()%6)
+ {
+ case 0: DoScriptText(SAY_PERSUADE1, caster);break;
+ case 1: DoScriptText(SAY_PERSUADE2, caster);break;
+ case 2: DoScriptText(SAY_PERSUADE3, caster);break;
+ case 3: DoScriptText(SAY_PERSUADE4, caster);break;
+ case 4: DoScriptText(SAY_PERSUADE5, caster);break;
+ case 5: DoScriptText(SAY_PERSUADE6, caster);break;
+ case 6: DoScriptText(SAY_PERSUADE7, caster);break;
+ }
- switch(rand()%5)
- {
- case 0: DoScriptText(SAY_CRUSADER1, me);break;
- case 1: DoScriptText(SAY_CRUSADER2, me);break;
- case 2: DoScriptText(SAY_CRUSADER3, me);break;
- case 3: DoScriptText(SAY_CRUSADER4, me);break;
- case 4: DoScriptText(SAY_CRUSADER5, me);break;
- case 5: DoScriptText(SAY_CRUSADER6, me);break;
- }
+ switch(rand()%5)
+ {
+ case 0: DoScriptText(SAY_CRUSADER1, me);break;
+ case 1: DoScriptText(SAY_CRUSADER2, me);break;
+ case 2: DoScriptText(SAY_CRUSADER3, me);break;
+ case 3: DoScriptText(SAY_CRUSADER4, me);break;
+ case 4: DoScriptText(SAY_CRUSADER5, me);break;
+ case 5: DoScriptText(SAY_CRUSADER6, me);break;
}
}
}
@@ -122,17 +121,16 @@ struct TRINITY_DLL_DECL npc_crusade_persuadedAI : public ScriptedAI
case 4: DoScriptText(SAY_PERSUADED4, me); uiSpeech_timer = 8000; break;
case 5: DoScriptText(SAY_PERSUADED5, pPlayer); uiSpeech_timer = 8000; break;
case 6: DoScriptText(SAY_PERSUADED6, me);
- me->RestoreFaction();
pPlayer->Kill(me);
//me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
//me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
uiSpeech_counter = 0;
- if(pPlayer->GetQuestStatus(12720) == QUEST_STATUS_INCOMPLETE)
- pPlayer->AreaExploredOrEventHappens(12720);
+ pPlayer->GroupEventHappens(12720, me);
return;
}
++uiSpeech_counter;
+ DoCastAOE(58111, true);
}else uiSpeech_timer -= diff;
return;
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 8c0843385d2..942c5179778 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -7334,6 +7334,18 @@ void Player::CastItemCombatSpell(Unit *target, WeaponAttackType attType, uint32
if(spellData.SpellPPMRate)
{
+ if(spellData.SpellId == 52781) // Persuasive Strike
+ {
+ switch(target->GetEntry())
+ {
+ default:
+ return;
+ case 28939:
+ case 28940:
+ case 28610:
+ break;
+ }
+ }
uint32 WeaponSpeed = GetAttackTime(attType);
chance = GetPPMProcChance(WeaponSpeed, spellData.SpellPPMRate, spellInfo);
}
@@ -7383,10 +7395,13 @@ void Player::CastItemCombatSpell(Unit *target, WeaponAttackType attType, uint32
float chance = pEnchant->amount[s] != 0 ? float(pEnchant->amount[s]) : GetWeaponProcChance();
- if (entry && entry->PPMChance)
- chance = GetPPMProcChance(proto->Delay, entry->PPMChance, spellInfo);
- else if (entry && entry->customChance)
- chance = entry->customChance;
+ if (entry)
+ {
+ if(entry->PPMChance)
+ chance = GetPPMProcChance(proto->Delay, entry->PPMChance, spellInfo);
+ else if(entry->customChance)
+ chance = entry->customChance;
+ }
// Apply spell mods
ApplySpellMod(pEnchant->spellid[s],SPELLMOD_CHANCE_OF_SUCCESS,chance);