def sextant_parts( char, item ): if not char.checkskill( TINKERING, 0, 500 ): if random.randint( 1, 100 ) <= 25: additional = localemsg( 15 ) if item.amount > 1: item.amount -= 1 item.update() else: item.delete() else: additional = localemsg( 16 ) char.message( "%s%s" % ( localemsg( 14 ), additional ) ) else: if item.amount > 1: item.amount -= 1 item.update() else: item.delete() if item.id == 0x1059: item = wolfpack.additem( '1057' ) else: item = wolfpack.additem( '1058' ) char.getbackpack().additem( item, 1, 1, 0 ) item.update() char.message( localemsg( 17 ) ) return 1
def dyingtub_response( char, args, target ): dyetub = wolfpack.finditem( args[0] ) if not dyetub or not char.canreach( dyetub, 2 ): char.message( localemsg( 6 ) ) return if not target.item: char.message( localemsg( 8 ) ) return # Valid Target? if not char.gm: if target.item.getoutmostchar() != char: char.socket.sysmessage( localemsg( 10 ) ) return if not target.item.dye: char.socket.sysmessage( localemsg( 11 ) ) return char.log( LOG_MESSAGE, "Dying item (%x,%x) using tub (%x,%x)\n" % ( target.item.serial, target.item.color, dyetub.serial, dyetub.color ) ) target.item.color = dyetub.color target.item.update() char.soundeffect(0x023e)
def dyingtub( char, item ): if not char.canreach( item, 2 ): char.socket.sysmessage( localemsg( 6 ) ) return 1 char.socket.sysmessage( localemsg( 18 ) ) char.socket.attachtarget( 'environment.dyingtub_response', [ item.serial ] ) return 1
def cotton( char, item ): if item.hastag( 'lastpick' ): lastpick = item.gettag( 'lastpick' ) if lastpick + COTTONPLANTS_REGROW > wolfpack.time.currenttime(): char.message( localemsg( 4 ) ) return 1 char.action( ANIM_ATTACK5 ) char.soundeffect( 0x13e ) cotton = wolfpack.additem( 'df9' ) if cotton and not tobackpack( cotton, char ): cotton.update() char.message( localemsg( 5 ) ) # Set a timer for the cotton plant item.settag( 'lastpick', wolfpack.time.currenttime() ) return 1
def hairdye_callback( char, args, response ): if response.button != 1: return # Check the item first item = wolfpack.finditem( args[0] ) if not item or item.container != char.getbackpack(): char.message( localemsg( 3 ) ) return # Check if it's a valid color if len( response.switches ) != 1: char.message( localemsg( 13 ) ) return color = response.switches[0] # Find the color for dye_group in hairdye_groups: if color >= dye_group[0] and color < dye_group[0] + dye_group[1]: item.delete() hair = char.itemonlayer( LAYER_HAIR ) beard = char.itemonlayer( LAYER_BEARD ) if beard: beard.color = color beard.update() if hair: hair.color = color hair.update() return char.message( localemsg( 12 ) )
def hairdye( char, item ): if item.container != char.getbackpack(): char.message( localemsg( 3 ) ) return 1 gump = cGump( x=50, y=50, callback="environment.hairdye_callback" ) # First Page (visible everywhere) gump.startPage( 0 ) gump.addBackground( 0xa28, 350, 355 ) gump.addResizeGump( 10, 44, 0x13EC, 110, 270 ) gump.addXmfHtmlGump( 0, 16, 350, 35, 0xF6D45 ) # Gump Title (Hair Color Selection...) # Ok Button gump.addButton( 50, 318, 0xFA5, 0xFA7, 1 ) gump.addXmfHtmlGump( 95, 319, 250, 35, 0xF6D46 ) # Add Hairdye Groups (visible on every page) i = 0 for dye_group in hairdye_groups: gump.addPageButton( 87, 50 + ( i * 22 ), 0x1468, 0x1468, i + 1 ) gump.addText( 20, 49 + ( i * 22 ), '*****', dye_group[0] ) i += 1 i = 0 for dye_group in hairdye_groups: gump.startPage( i + 1 ) for j in range( 0, dye_group[1] ): gump.addText( 178 + ( floor( j / 16 ) * 80 ), 42 + ( ( j % 16 ) * 17 ), '*****', dye_group[0] + j ) gump.addRadioButton( 156 + ( floor( j / 16 ) * 80 ), 42 + ( ( j % 16 ) * 17 ), 0xD2, 0xD3, dye_group[0] + j ) i += 1 gump.setArgs( [ item.serial ] ) gump.send( char ) return 1
def sextant( char, item ): char.message( localemsg( 0 ) ) return 1