Skip to content

Commit

Permalink
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Browse files Browse the repository at this point in the history
Conflicts:
	src/server/game/Entities/Player/Player.cpp
	src/server/game/Entities/Player/Player.h
	src/server/game/Guilds/Guild.cpp
	src/server/game/Handlers/TradeHandler.cpp
	src/server/scripts/Commands/cs_modify.cpp
	src/server/scripts/Kalimdor/zone_durotar.cpp
  • Loading branch information
Vincent-Michael committed May 18, 2014
2 parents a3793b1 + 7228bd3 commit ef5bc9c
Show file tree
Hide file tree
Showing 41 changed files with 462 additions and 130 deletions.
169 changes: 169 additions & 0 deletions contrib/conf_merge/confdiffmerge.php
@@ -0,0 +1,169 @@
<!--
@title Configuration file merger/differ.
@about This script allows you to diff two config files and select which value to pick between the two.
It will then give you an updated configuration file with the settings you chose.
How-to: a) Paste both versions of your config file, submit the form.
b) Select values you want to keep in the next form, then submit said form.
c) Copy the output'd config file and profit!
Note: if either one of your config file has custom values, make sure that it is set to be the NEW
config file on the first step (right hand textarea). This will be adressed at a later date.
@author Warpten
@date 05/17/2014
@license GNU GPL v2(GPL)
@version 0.0.1
-->
<!DOCTYPE html>
<html>
<head>
<title>&lt;world/auth&gt;server.conf diff</title>
<style type="text/css">
form * { font-family: Verdana; font-size: 11px; }
form#step1 { position: relative; width: 800px; }
form#step2 { width: 500px; }
form > div { position: absolute; width: 50%; height: 500px; }
form > div:nth-child(1) { right: 0px; }
textarea { width: 90%; height: 500px; }
h3 { display: block; margin: 3px; padding: auto; text-align: center; }
input.valueName { border: 0px; background-color: white; }
form > p { margin: 0; padding: 3px; border-bottom: 1px solid black; }
textarea#result { width: 1000px; }
</style>
</head>

<body>
<?php

function printIndent($string, $indent = 1)
{
echo str_pad("\r\n" . $string, $indent, " ");
}

if (!isset($_POST['step']))
{
?>
<form action="" method="POST" id="step1">
<div>
<h3>Paste the new configuration file</h3>
<textarea name="leftFile"></textarea>
</div><div>
<h3>Paste the old configuration file</h3>
<textarea name="rightFile"></textarea>
<input type="submit" value="Compare files" />
</div>
<input type="hidden" name="step" value="0" />
</form>
<?php
}
else if ($_POST['step'] == 0)
{
if (@empty($_POST['leftFile']) || @empty($_POST['rightFile']))
printf("You did not provide either the old or the new configuration file.<br />");

define('EOL', "\n\n");
$settingsData = array();

// Process them
$newFile = explode(EOL, $_POST['leftFile']);
$oldFile = explode(EOL, $_POST['rightFile']);

for ($i = 0, $o = count($oldFile); $i < $o; ++$i)
{
$oldFile[$i] = explode(PHP_EOL, $oldFile[$i]);
for ($j = 0, $p = count($oldFile[$i]); $j < $p; ++$j)
{
$currentLine = $oldFile[$i][$j];
if (preg_match("#^([A-Z.]+) = (?:\"?)(.*)(?:\"?)$#iU", $currentLine, $data) !== false)
if (strlen($data[1]) != 0)
$settingsData[$data[1]]["oldValue"] = str_replace('"', '', trim($data[2]));
}
}

for ($i = 0, $o = count($newFile); $i < $o; ++$i)
{
$newFile[$i] = explode(PHP_EOL, $newFile[$i]);
for ($j = 0, $p = count($newFile[$i]); $j < $p; ++$j)
{
$currentLine = $newFile[$i][$j];
if (preg_match("#^([A-Z.]+) = (?:\"?)(.*)(?:\"?)$#iU", $currentLine, $data) !== false)
if (strlen($data[1]) != 0)
$settingsData[$data[1]]["newValue"] = str_replace('"', '', trim($data[2]));
}
}

printIndent("<p>Please select values you want to keep. Note the script will default to new values, unless said <i>new</i> value does not exist.<br />You also can take advantage of this form and edit fields.</p>", 1);
printIndent('<form action="" method="POST" id="step2">', 1);

foreach ($settingsData as $itemName => &$values)
{
$displayOld = isset($values['oldValue']) ? $values['oldValue'] : "Value missing";
$displayNew = isset($values['newValue']) ? $values['newValue'] : "Value missing";

if ($displayOld == $displayNew)
continue;

$line = '<p><input type="text" class="valueName" name="nameCross[]" value="' . $itemName . '" />';
$line .= '<input type="radio" name="optionSelector[' . $itemName . ']" value="oldValue" ' . ($displayOld != "Value missing" ? "checked" : "") . '/>';
$line .= '<input type="text" name="oldValue[]" value="' . $displayOld . '" /> ';
$line .= '<input type="radio" name="optionSelector[' . $itemName . ']" value="newValue" ' . ($displayNew != "Value missing" ? "checked" : "") . '/>';
$line .= '<input type="text" name="newValue[]" value="' . $displayNew . '" /></p>';
printIndent($line, 2);
}
printIndent('<input type="hidden" name="step" value="1" />', 2);
printIndent('<input type="submit" value="Gief resulting configuration file" />', 2);
printIndent('<input type="hidden" name="file" value="' . htmlspecialchars($_POST['rightFile']) . '" />', 2);
printIndent('</form>', 1);
}
else if ($_POST['step'] == 1)
{
$errors = array();

$confFile = $_POST['file'];

foreach ($_POST['optionSelector'] as $valueName => &$keyName)
{
$definiteValueIndex = -1;
foreach ($_POST['nameCross'] as $index => &$key)
{
if ($key == $valueName)
{
$definiteValueIndex = $index;
break;
}
}

if ($definiteValueIndex == -1)
{
// TODO: Handle custom values that get lost
continue;
}

$newStr = $_POST[$keyName][$definiteValueIndex];
$oldStr = $_POST[$keyName == "oldValue" ? "newValue" : "oldValue"][$definiteValueIndex];
if (!ctype_digit($newStr))
$newStr = '"' . $newStr . '"';
if (!ctype_digit($oldStr))
$oldStr = '"' . $oldStr . '"';

$newValueString = $valueName . " = " . $newStr;
$oldValueString = $valueName . " = " . $oldStr;
$confFile = str_replace($oldValueString, $newValueString, $confFile);
}
echo "<p>Here is your new configuration file:</p>";
echo '<form><textarea id="result">';
printf('%s', $confFile);
echo '</textarea></form>';

if (!empty($errors))
{
echo "<p>The following errors happened during processing:</p><ul><li>";
echo implode("</li><li>", $errors);
echo "</li>";
}
}
?>

<script type="text/javascript">

</script>
</body>
</html>
2 changes: 2 additions & 0 deletions sql/updates/world/2014_05_13_00_world_conditions.sql
@@ -0,0 +1,2 @@
--
UPDATE `conditions` SET `SourceEntry`=46763 WHERE `SourceEntry`=46753;
17 changes: 17 additions & 0 deletions sql/updates/world/2014_05_18_00_world_misc.sql
@@ -0,0 +1,17 @@
--
UPDATE `creature_template` SET `npcflag`=3, `AIName`='SmartAI' WHERE `entry`=37120;

DELETE FROM `gossip_menu_option` WHERE `menu_id`=10910 AND `id`=1;
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`) VALUES
(10910, 1, 'I must ask that you reforge Shadow''s Edge for me, Highlord Mograine.', 37855, 1, 1);

DELETE FROM `smart_scripts` WHERE `entryorguid`=37120;
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
(37120, 0, 0, 0, 62, 0, 100, 0, 10910, 1, 0, 0, 11, 72995, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Highlord Darion Mograine - On Gossip Option 1 Selected - Cast Shadow''s Edge'),
(37120, 0, 1, 0, 62, 0, 100, 0, 10910, 1, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Highlord Darion Mograine - On Gossip Option 1 Selected - Close Gossip');

DELETE FROM `conditions` WHERE `SourceGroup`=10910;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(15, 10910, 1, 0, 0, 8, 0, 24912, 0, 0, 1, 0, 0, '', 'Highlord Darion Mograine: Hide Gossip option if player has quest 24912 rewarded'),
(15, 10910, 1, 0, 0, 8, 0, 24743, 0, 0, 0, 0, 0, '', 'Highlord Darion Mograine: Show Gossip option if player has quest 24743 rewarded'),
(15, 10910, 1, 0, 0, 2, 0, 49888, 1, 0, 1, 0, 0, '', 'Highlord Darion Mograine: Show Gossip option if player does not have Shadow''s Edge');
37 changes: 37 additions & 0 deletions sql/updates/world/2014_05_18_01_world_misc.sql
@@ -0,0 +1,37 @@
--
SET @ENTRY := 27914;
UPDATE `creature_template` SET `gossip_menu_id`=9619, `npcflag`=129 WHERE `entry`=@ENTRY;

DELETE FROM `gossip_menu_option` WHERE `menu_id`=9619;
INSERT INTO `gossip_menu_option` (`menu_id`, `id`, `option_icon`, `option_text`, `OptionBroadcastTextID`, `option_id`, `npc_option_npcflag`, `action_menu_id`, `action_poi_id`, `box_coded`, `box_money`, `box_text`, `BoxBroadcastTextID`) VALUES
(9619, 0, 0, 'How does this work?', 27298, 1, 1, 9620, 0, 0, 0, '', 0),
(9619, 1, 1, 'Show me what you have to trade.', 27299, 3, 128, 0, 0, 0, 0, '', 0);

DELETE FROM `gossip_menu` WHERE `entry` IN (9619,9620) AND `text_id` IN (13005,13006);
INSERT INTO `gossip_menu` (`entry`, `text_id`) VALUES
(9619, 13005),
(9620, 13006);

DELETE FROM `creature_text` WHERE `entry`=@ENTRY;
INSERT INTO `creature_text` (`entry`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `comment`, `BroadcastTextID`) VALUES
(@ENTRY, 0, 0, 'I have arrived. Shall we set to work, then?', 12, 0, 100, 0, 0, 0, 'Ethereal Soul-Trader', 27295),
(@ENTRY, 1, 0, 'Ah, more essence to capture...', 12, 0, 100, 0, 0, 0, 'Ethereal Soul-Trader', 27336),
(@ENTRY, 2, 0, 'Here is your share.', 12, 0, 100, 0, 0, 0, 'Ethereal Soul-Trader', 27341);

DELETE FROM `npc_text` WHERE `ID` IN (13005,13006);
INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `prob0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `prob1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `prob2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `prob3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `prob4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `prob5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `prob6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `prob7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES
(13005, 'How may this one help you, $gsir:madame;?', '', 27296, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 18019),
(13006, 'My business partner slays things; I drain a portion of their essence... a pittance, really; the slightest of slivers. It won''t be missed.$B$BStill, to fulfil my portion of the contract, I pay in Ethereal Credits.$B$BOne may redeem these credits for items I sell at any time. I''m bound to have something that will interest you...', '', 27300, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 18019);

DELETE FROM `npc_vendor` WHERE `entry`=@ENTRY;
INSERT INTO `npc_vendor` (`entry`, `slot`, `item`, `maxcount`, `incrtime`, `ExtendedCost`) VALUES
(@ENTRY, 0, 38308, 0, 0, 2411), -- Ethereal Essence Sphere
(@ENTRY, 1, 38300, 0, 0, 2411), -- Diluted Ethereum Essence
(@ENTRY, 2, 38294, 0, 0, 2412), -- Ethereal Liqueur
(@ENTRY, 3, 38291, 0, 0, 2408), -- Ethereal Mutagen
(@ENTRY, 4, 38163, 0, 0, 2408), -- Soul-Trader's Head Wrap
(@ENTRY, 5, 38160, 0, 0, 2410), -- Soul-trader's Bindings
(@ENTRY, 6, 38286, 0, 0, 2407), -- Soul-Trader's Pauldrons
(@ENTRY, 7, 38285, 0, 0, 2408), -- Soul-Trader's Waistband
(@ENTRY, 8, 38161, 0, 0, 2409), -- Soul-Trader's Gloves
(@ENTRY, 9, 38162, 0, 0, 2409); -- Soul-Trader's Boots
4 changes: 4 additions & 0 deletions sql/updates/world/2014_05_18_02_world_gameobject.sql
@@ -0,0 +1,4 @@
--
UPDATE `gameobject` SET `position_x`=914.3752, `position_y`=-146.9912, `position_z`=-49.75655, `orientation`=3.68265, `VerifiedBuild`=15595 WHERE `guid`=43097;
UPDATE `gameobject` SET `position_x`=915.7144, `position_y`=-149.2887, `position_z`=-49.75705, `orientation`=3.647741, `VerifiedBuild`=15595 WHERE `guid`=43098;
UPDATE `gameobject` SET `position_x`=917.0272, `position_y`=-151.5825, `position_z`=-49.75756, `orientation`=3.647741, `VerifiedBuild`=15595 WHERE `guid`=43099;
48 changes: 48 additions & 0 deletions sql/updates/world/2014_05_18_03_world_misc.sql
@@ -0,0 +1,48 @@
--
-- Nesingwary Lackey Ear (35188) drop chance fix by nelegalno
-- Needed for Can't Get Ear-nough... (11867) "turn in only" repeatable quest
SET @EAR := 35188;

UPDATE `creature_loot_template` SET `ChanceOrQuestChance` = ABS(`ChanceOrQuestChance`) WHERE `item`=@EAR;

-- Clam Master K
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=25800 AND `SourceEntry`=@EAR;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,25800,@EAR,0,0,9,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Clam Master K only if Ears of Our Enemies quest taken"),
(1,25800,@EAR,0,1,8,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Clam Master K only if Ears of Our Enemies quest rewarded");

-- Loot Crazed Poacher
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=25806 AND `SourceEntry`=@EAR;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,25806,@EAR,0,0,9,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Loot Crazed Poacher only if Ears of Our Enemies quest taken"),
(1,25806,@EAR,0,1,8,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Loot Crazed Poacher only if Ears of Our Enemies quest rewarded");

-- Loot Crazed Diver
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=25836 AND `SourceEntry`=@EAR;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,25836,@EAR,0,0,9,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Loot Crazed Diver only if Ears of Our Enemies quest taken"),
(1,25836,@EAR,0,1,8,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Loot Crazed Diver only if Ears of Our Enemies quest rewarded");

-- Northsea Mercenary
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=25839 AND `SourceEntry`=@EAR;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,25839,@EAR,0,0,9,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Northsea Mercenary only if Ears of Our Enemies quest taken"),
(1,25839,@EAR,0,1,8,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Northsea Mercenary only if Ears of Our Enemies quest rewarded");

-- Northsea Thug
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=25843 AND `SourceEntry`=@EAR;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,25843,@EAR,0,0,9,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Northsea Thug only if Ears of Our Enemies quest taken"),
(1,25843,@EAR,0,1,8,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Northsea Thug only if Ears of Our Enemies quest rewarded");

-- Minion of Kaw
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=25880 AND `SourceEntry`=@EAR;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,25880,@EAR,0,0,9,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Minion of Kaw only if Ears of Our Enemies quest taken"),
(1,25880,@EAR,0,1,8,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Minion of Kaw only if Ears of Our Enemies quest rewarded");

-- Loot Crazed Hunter
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=1 AND `SourceGroup`=25979 AND `SourceEntry`=@EAR;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
(1,25979,@EAR,0,0,9,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Loot Crazed Hunter only if Ears of Our Enemies quest taken"),
(1,25979,@EAR,0,1,8,0,11866,0,0,0,0,'',"Nesingwary Lackey Ear drops from Loot Crazed Hunter only if Ears of Our Enemies quest rewarded");

0 comments on commit ef5bc9c

Please sign in to comment.