aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVincent-Michael <Vincent_Michael@gmx.de>2014-08-27 23:06:40 +0200
committerVincent-Michael <Vincent_Michael@gmx.de>2014-08-27 23:06:40 +0200
commitc0c708cf02631118eaab093c43ab8c0b88dcbae2 (patch)
tree58a821030610675495563817dac969be7d19f26d /src
parentb56e7f2ec6c606d413f2e3c0868eeced24d687aa (diff)
parent00475facf257c5bb4ffa76086d91bb82a8c2113b (diff)
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/game/Scripting/ScriptMgr.h
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Scripting/ScriptMgr.cpp5
-rw-r--r--src/server/game/Scripting/ScriptMgr.h4
-rw-r--r--src/server/worldserver/RemoteAccess/RASession.cpp8
4 files changed, 15 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 876c4a48946..d9c92d00a18 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -23198,6 +23198,8 @@ bool Player::ModifyMoney(int64 amount, bool sendError /*= true*/)
SetMoney(GetMoney() + amount);
else
{
+ sScriptMgr->OnPlayerMoneyLimit(this, amount);
+
if (sendError)
SendEquipError(EQUIP_ERR_TOO_MUCH_GOLD, NULL, NULL);
return false;
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp
index f1e6ba6ca6d..be75f42492a 100644
--- a/src/server/game/Scripting/ScriptMgr.cpp
+++ b/src/server/game/Scripting/ScriptMgr.cpp
@@ -1180,6 +1180,11 @@ void ScriptMgr::OnPlayerMoneyChanged(Player* player, int64& amount)
FOREACH_SCRIPT(PlayerScript)->OnMoneyChanged(player, amount);
}
+void ScriptMgr::OnPlayerMoneyLimit(Player* player, int64 amount)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnMoneyLimit(player, amount);
+}
+
void ScriptMgr::OnGivePlayerXP(Player* player, uint32& amount, Unit* victim)
{
FOREACH_SCRIPT(PlayerScript)->OnGiveXP(player, amount, victim);
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 506d792ce44..14155b536a3 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -705,6 +705,9 @@ class PlayerScript : public UnitScript
// Called when a player's money is modified (before the modification is done)
virtual void OnMoneyChanged(Player* /*player*/, int64& /*amount*/) { }
+ // Called when a player's money is at limit (amount = money tried to add)
+ virtual void OnMoneyLimit(Player* /*player*/, int64 /*amount*/) { }
+
// Called when a player gains XP (before anything is given)
virtual void OnGiveXP(Player* /*player*/, uint32& /*amount*/, Unit* /*victim*/) { }
@@ -1052,6 +1055,7 @@ class ScriptMgr
void OnPlayerFreeTalentPointsChanged(Player* player, uint32 newPoints);
void OnPlayerTalentsReset(Player* player, bool noCost);
void OnPlayerMoneyChanged(Player* player, int64& amount);
+ void OnPlayerMoneyLimit(Player* player, int64 amount);
void OnGivePlayerXP(Player* player, uint32& amount, Unit* victim);
void OnPlayerReputationChange(Player* player, uint32 factionID, int32& standing, bool incremental);
void OnPlayerDuelRequest(Player* target, Player* challenger);
diff --git a/src/server/worldserver/RemoteAccess/RASession.cpp b/src/server/worldserver/RemoteAccess/RASession.cpp
index bc15952cb37..18217d4e882 100644
--- a/src/server/worldserver/RemoteAccess/RASession.cpp
+++ b/src/server/worldserver/RemoteAccess/RASession.cpp
@@ -31,12 +31,12 @@ using boost::asio::ip::tcp;
void RASession::Start()
{
- boost::asio::socket_base::bytes_readable command(true);
- _socket.io_control(command);
- std::size_t bytes_readable = command.get();
+ // wait 1 second for active connections to send negotiation request
+ for (int counter = 0; counter < 10 && _socket.available() == 0; counter++)
+ std::this_thread::sleep_for(std::chrono::milliseconds(100));
// Check if there are bytes available, if they are, then the client is requesting the negotiation
- if (bytes_readable > 0)
+ if (_socket.available() > 0)
{
// Handle subnegotiation
boost::array<char, 1024> buf;