[wpdev-commits] xmlscripts/scripts/system trading.py,1.6,1.7
Brought to you by:
rip,
thiagocorrea
From: Sebastian H. <dar...@us...> - 2004-09-04 16:45:02
|
Update of /cvsroot/wpdev/xmlscripts/scripts/system In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5753/system Modified Files: trading.py Log Message: Small updates to trading. Index: trading.py =================================================================== RCS file: /cvsroot/wpdev/xmlscripts/scripts/system/trading.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** trading.py 25 Aug 2004 17:03:06 -0000 1.6 --- trading.py 4 Sep 2004 16:44:50 -0000 1.7 *************** *** 15,20 **** def onLogout( player ): ! if player.hastag( 'partner' ): ! partner = wolfpack.findchar( player.gettag( 'partner' ) ) box2 = partner.itemonlayer( LAYER_TRADING ) box1 = player.itemonlayer( LAYER_TRADING ) --- 15,20 ---- def onLogout( player ): ! if player.hastag( 'trade_partner' ): ! partner = wolfpack.findchar( player.gettag( 'trade_partner' ) ) box2 = partner.itemonlayer( LAYER_TRADING ) box1 = player.itemonlayer( LAYER_TRADING ) *************** *** 41,66 **** return True def onTradeStart( player1, player2, firstitem ): #player1 : I am #player2 : Partner ! #Creating trade container for me box1 = player1.itemonlayer( LAYER_TRADING ) if not box1: box1 = wolfpack.additem( "e75" ) ! box1.owner = player1.serial player1.additem( LAYER_TRADING, box1 ) box1.update() ! ! #Same operation for partner box2 = player2.itemonlayer( LAYER_TRADING ) if not box2: box2 = wolfpack.additem("e75") ! box2.owner = player2.serial player2.additem( LAYER_TRADING, box2 ) box2.update() if not box1 or not box2: return False --- 41,90 ---- return True + # + # This event is called if an item is dropped on another character and + # he is a logged in player. + # def onTradeStart( player1, player2, firstitem ): + # If we are trading with someone else right now, + # trading should be denied + if player2.hastag('trade_partner'): + partner = wolfpack.findchar(int(player2.gettag('trade_partner'))) + if partner and partner != player1: + player1.socket.sysmessage('Your trading partner is currently busy.') + if not wolfpack.utilities.tobackpack(firstitem, player1): + firstitem.update() + return False + + if player1.hastag('trade_partner'): + partner = wolfpack.findchar(int(player1.gettag('trade_partner'))) + if partner and partner != player2: + player1.socket.sysmessage('You are trading with someone else right now.') + if not wolfpack.utilities.tobackpack(firstitem, player1): + firstitem.update() + return False + #player1 : I am #player2 : Partner ! # Creating trade container for me box1 = player1.itemonlayer( LAYER_TRADING ) if not box1: box1 = wolfpack.additem( "e75" ) ! box1.owner = player1 player1.additem( LAYER_TRADING, box1 ) box1.update() ! # Same operation for partner box2 = player2.itemonlayer( LAYER_TRADING ) if not box2: box2 = wolfpack.additem("e75") ! box2.owner = player2 player2.additem( LAYER_TRADING, box2 ) box2.update() + # Unable to create trade containers if not box1 or not box2: + if not wolfpack.utilities.tobackpack(firstitem, player1): + firstitem.update() return False *************** *** 70,79 **** #We want to know serial of partner in future ! player1.settag( 'partner', player2.serial ) ! player2.settag( 'partner', player1.serial ) #We need to store button state of each player ! player1.settag( 'button', 0 ) ! player2.settag( 'button', 0 ) #Send trade window to both players --- 94,103 ---- #We want to know serial of partner in future ! player1.settag( 'trade_partner', player2.serial ) ! player2.settag( 'trade_partner', player1.serial ) #We need to store button state of each player ! player1.settag( 'trade_button', 0 ) ! player2.settag( 'trade_button', 0 ) #Send trade window to both players *************** *** 94,97 **** --- 118,124 ---- return True + # + # This is called on trade events + # def onTrade( player, type, buttonstate, itemserial ): #Receiving button state, close request etc... *************** *** 104,109 **** #Check if we have a partner ! if player.hastag( 'partner' ): ! partner = wolfpack.findchar( player.gettag( 'partner' ) ) if not partner: return False --- 131,136 ---- #Check if we have a partner ! if player.hastag( 'trade_partner' ): ! partner = wolfpack.findchar( player.gettag( 'trade_partner' ) ) if not partner: return False *************** *** 121,125 **** #Button pressed ? if buttonstate == 1: ! player.settag( 'button', 1 ) #Execute handler of specified type --- 148,152 ---- #Button pressed ? if buttonstate == 1: ! player.settag( 'trade_button', 1 ) #Execute handler of specified type *************** *** 134,139 **** #Close partner tradewindow for p in [player, partner]: ! p.deltag( 'partner' ) ! p.deltag( 'button' ) if box1: --- 161,166 ---- #Close partner tradewindow for p in [player, partner]: ! p.deltag( 'trade_partner' ) ! p.deltag( 'trade_button' ) if box1: *************** *** 152,157 **** def pressbutton( player, partner, box1, box2 ): #Switch buttons on trade gump ! button1 = player.gettag( 'button' ) ! button2 = partner.gettag( 'button' ) sendtradepacket( player.socket, 2, box1.serial, button1, button2, "" ) sendtradepacket( partner.socket, 2, box2.serial, button2, button1, "" ) --- 179,184 ---- def pressbutton( player, partner, box1, box2 ): #Switch buttons on trade gump ! button1 = player.gettag( 'trade_button' ) ! button2 = partner.gettag( 'trade_button' ) sendtradepacket( player.socket, 2, box1.serial, button1, button2, "" ) sendtradepacket( partner.socket, 2, box2.serial, button2, button1, "" ) *************** *** 159,162 **** --- 186,191 ---- #To far away for trading ? if player.distanceto( partner ) > 2: + player.socket.sysmessage('You are too far away to do that.') + partner.socket.sysmessage('You are too far away to do that.') closetrade( player, partner, box1, box2 ) return True |