[wpdev-commits] xmlscripts/scripts/deeds carpentry_deed.py,1.3,1.4
Brought to you by:
rip,
thiagocorrea
From: Incanus <inc...@us...> - 2004-09-27 22:37:02
|
Update of /cvsroot/wpdev/xmlscripts/scripts/deeds In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28010/scripts/deeds Modified Files: carpentry_deed.py Log Message: - Fixed bug #0000330. (carpentry deeds broken) Index: carpentry_deed.py =================================================================== RCS file: /cvsroot/wpdev/xmlscripts/scripts/deeds/carpentry_deed.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** carpentry_deed.py 21 Jul 2004 14:20:42 -0000 1.3 --- carpentry_deed.py 27 Sep 2004 22:36:47 -0000 1.4 *************** *** 48,52 **** return name = target.gettag( 'carpentry_type' ) ! if not deeds.haskey( name ): return tooltip_id = deeds[ name ][ 0 ] --- 48,52 ---- return name = target.gettag( 'carpentry_type' ) ! if not deeds.has_key( name ): return tooltip_id = deeds[ name ][ 0 ] *************** *** 58,74 **** def onUse( char, item ): if not char or not item: ! return # check if this char is in it's own house ! if char.multi == -1: ! # msg ! return 1 ! multi = wolfpack.finditem( char.multi ) if not multi or multi.ownserial != char.serial: ! # msg ! return 1 # send target cursor - char.socket.clilocmessage( 0xF55DA, "", 0x3b2, 3 ) char.socket.attachtarget( "deeds.carpentry_deed.response", [ item ] ) def response( char, args, target ): item = args[0] --- 58,82 ---- def onUse( char, item ): if not char or not item: ! return True ! # check if this char is in it's own house ! if not( char.multi ): ! #You can only build this in a house. ! char.socket.clilocmessage(500275) ! return True ! if not multi or multi.ownserial != char.serial: ! #You must own the house to do this. ! char.socket.clilocmessage(502096) ! return True ! ! #Where would you like to place this decoration? ! char.socket.clilocmessage( 1049780, "", 0x3b2 ) ! # send target cursor char.socket.attachtarget( "deeds.carpentry_deed.response", [ item ] ) + return True + def response( char, args, target ): item = args[0] *************** *** 80,85 **** if not target.pos: return ! if char.distanceto( pos ) > 3: ! char.socket.clilocmessage( 500251, "", 0x3b2, 3 ) return # check if there is sufficient room for the item --- 88,99 ---- if not target.pos: return ! if( target.item ): ! #we don't want to target items in containers ! if( target.item.getoutmostchar() ): ! # msg ! return ! if not( char.canreach( target, 3 ) ): ! #That location is too far away. ! char.socket.clilocmessage( 500251, "", 0x3b2 ) return # check if there is sufficient room for the item *************** *** 93,107 **** # check valid item if not item.hastag( 'carpentry_type' ): ! return 0 name = item.gettag( 'carpentry_type' ) ! if not deeds.haskey( name ): ! return 0 dir = deeds[ name ][ 1 ] items = deeds[ name ][ 2: ] if not items: ! return 0 num_item = len( items ) if not num_item: ! return 0 # check the spots --- 107,121 ---- # check valid item if not item.hastag( 'carpentry_type' ): ! return False name = item.gettag( 'carpentry_type' ) ! if not deeds.has_key( name ): ! return False dir = deeds[ name ][ 1 ] items = deeds[ name ][ 2: ] if not items: ! return False num_item = len( items ) if not num_item: ! return False # check the spots *************** *** 110,116 **** ret2 = 0 if num_item == 1: ! return check_spot( pos ) elif num_item == 2: ! ret0 = check_spot( pos ) if dir == 1: ret1 = check_spot( pos.x, pos.y + 1, pos.map ) --- 124,130 ---- ret2 = 0 if num_item == 1: ! return check_spot( pos.x, pos.y, pos.map ) elif num_item == 2: ! ret0 = check_spot( pos.x, pos.y, pos.map ) if dir == 1: ret1 = check_spot( pos.x, pos.y + 1, pos.map ) *************** *** 119,123 **** return ret0 & ret1 elif num_item == 3: ! ret0 = check_spot( pos ) if dir == 1: ret1 = check_spot( pos.x, pos.y + 1, pos.map ) --- 133,137 ---- return ret0 & ret1 elif num_item == 3: ! ret0 = check_spot( pos.x, pos.y, pos.map ) if dir == 1: ret1 = check_spot( pos.x, pos.y + 1, pos.map ) *************** *** 133,156 **** ret0 = check_spot( x, y, pos.map ) if not ret0: ! return 0 ! return 1 # pentagram elif num_item == 9: ret0 = wolfpack.items( pos.x, pos.y, pos.map, 2 ) if not ret0: ! return 0 ! return 1 # no other case : error ! return 0 ! ! def check_spot( pos ): ! if len( wolfpack.items( pos.x, pos.y, pos.map ) ): ! return 0 ! return 1 def check_spot( x, y, map ): if len( wolfpack.items( x, y, map ) ): ! return 0 ! return 1 def setup_item( item, pos ): --- 147,166 ---- ret0 = check_spot( x, y, pos.map ) if not ret0: ! return False ! return True # pentagram elif num_item == 9: ret0 = wolfpack.items( pos.x, pos.y, pos.map, 2 ) if not ret0: ! return False ! return True # no other case : error ! return False def check_spot( x, y, map ): + #TODO: needs check for z value too if len( wolfpack.items( x, y, map ) ): ! return False ! return True def setup_item( item, pos ): *************** *** 159,163 **** return name = item.gettag( 'carpentry_type' ) ! if not deeds.haskey( name ): return dir = deeds[ name ][ 1 ] --- 169,173 ---- return name = item.gettag( 'carpentry_type' ) ! if not deeds.has_key( name ): return dir = deeds[ name ][ 1 ] *************** *** 166,177 **** return num_item = len( items ) ! if not num_items: return # put items if num_item == 1: ! put_item( items[ 0 ] ) elif num_item == 2: ! put_item( items[ 0 ] ) if dir == 1: x1 = pos.x --- 176,187 ---- return num_item = len( items ) ! if not num_item: return # put items if num_item == 1: ! put_item( items[ 0 ], pos.x, pos.y, pos.z, pos.map ) elif num_item == 2: ! put_item( items[ 0 ], pos.x, pos.y, pos.z, pos.map ) if dir == 1: x1 = pos.x *************** *** 180,197 **** x1 = pos.x + 1 y1 = pos.y ! put_item( items[ 1 ], x1, y1, pos.map ) elif num_item == 3: ! put_item( items[ 1 ], pos.x, pos.y, pos.map ) if dir == 1: ! put_item( items[ 0 ], pos.x, pos.y - 1, pos.map ) ! put_item( items[ 2 ], pos.x, pos.y + 1, pos.map ) else: ! put_item( items[ 0 ], pos.x - 1, pos.y, pos.map ) ! put_item( items[ 2 ], pos.x + 1, pos.y, pos.map ) elif num_item == 4: i = 0 for x in range( pos.x, pos.x + 2 ): for y in range( pos.y, pos.y + 2 ): ! put_item( items[ i ], x, y, pos.map ) i += 1 elif num_item == 9: --- 190,207 ---- x1 = pos.x + 1 y1 = pos.y ! put_item( items[ 1 ], x1, y1, pos.z, pos.map ) elif num_item == 3: ! put_item( items[ 1 ], pos.x, pos.y, pos.z, pos.map ) if dir == 1: ! put_item( items[ 0 ], pos.x, pos.y - 1, pos.z, pos.map ) ! put_item( items[ 2 ], pos.x, pos.y + 1, pos.z, pos.map ) else: ! put_item( items[ 0 ], pos.x - 1, pos.y, pos.z, pos.map ) ! put_item( items[ 2 ], pos.x + 1, pos.y, pos.z, pos.map ) elif num_item == 4: i = 0 for x in range( pos.x, pos.x + 2 ): for y in range( pos.y, pos.y + 2 ): ! put_item( items[ i ], x, y, pos.z, pos.map ) i += 1 elif num_item == 9: *************** *** 199,222 **** for y in range( pos.x - 1, pos.x + 2 ): for x in range( pos.y - 1, pos.y + 2 ): ! put_item( items[ i ], x, y, pos.map ) i += 1 ! def put_item( str, pos ): ! item = wolfpack.additem( str ) ! if not item: ! return 0 ! item.moveto( pos ) ! # locked down ! item.movable = 3 ! item.update() ! return 1 ! ! def put_item( str, x, y, map ): item = wolfpack.additem( str ) if not item: ! return 0 ! item.moveto( x, y, map ) # locked down item.movable = 3 item.update() ! return 1 --- 209,223 ---- for y in range( pos.x - 1, pos.x + 2 ): for x in range( pos.y - 1, pos.y + 2 ): ! put_item( items[ i ], x, y, pos.z, pos.map ) i += 1 ! def put_item( str, x, y, z, map ): item = wolfpack.additem( str ) if not item: ! return False ! item.moveto( x, y, z, map ) # locked down item.movable = 3 + item.decay = 0 item.update() ! return True |