From: <ac...@us...> - 2008-07-16 23:32:38
|
Revision: 1920 http://planeshift.svn.sourceforge.net/planeshift/?rev=1920&view=rev Author: acraig Date: 2008-07-16 23:32:48 +0000 (Wed, 16 Jul 2008) Log Message: ----------- Fixed some issues with having exchanges and trades with merchants open at the same time. Merged from trunk Modified Paths: -------------- stable/src/server/exchangemanager.cpp stable/src/server/psserverchar.cpp Modified: stable/src/server/exchangemanager.cpp =================================================================== --- stable/src/server/exchangemanager.cpp 2008-07-16 04:02:57 UTC (rev 1919) +++ stable/src/server/exchangemanager.cpp 2008-07-16 23:32:48 UTC (rev 1920) @@ -1354,6 +1354,18 @@ return; } + // Check to make sure that the client or target are not busy with a merchant first. + if ( target->GetCharacterData()->GetTradingStatus() != psCharacter::NOT_TRADING ) + { + psserver->SendSystemError(client->GetClientNum(), "%s is busy at the moment", target->GetName()); + return; + } + if ( client->GetCharacterData()->GetTradingStatus() != psCharacter::NOT_TRADING ) + { + psserver->SendSystemError(client->GetClientNum(), "You are busy with the merchant", target->GetName()); + return; + } + // if the command was "/give": if (!withPlayer) { Modified: stable/src/server/psserverchar.cpp =================================================================== --- stable/src/server/psserverchar.cpp 2008-07-16 04:02:57 UTC (rev 1919) +++ stable/src/server/psserverchar.cpp 2008-07-16 23:32:48 UTC (rev 1920) @@ -823,6 +823,12 @@ return; } + if ( client->GetExchangeID() ) + { + psserver->SendSystemError(client->GetClientNum(), "You are already busy with another trade" ); + return; + } + merchant = target->GetCharacterData(); if(!merchant) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |