def smelt(self, player, arguments, target): if not checkanvilandforge(player): player.socket.clilocmessage(1042678) return tool = wolfpack.finditem(arguments[0]) if not checktool(player, tool): return if tool == target.item: player.socket.clilocmessage(1044271) return # Smelt a weapon item = target.item weapon = itemcheck(item, ITEM_WEAPON) shield = itemcheck(item, ITEM_SHIELD) armor = itemcheck(item, ITEM_ARMOR) # See if it's in our ore list. if weapon or shield or armor: if item.container != player.getbackpack(): player.socket.clilocmessage(1044274) return if item.hastag('resname'): resname = str(item.gettag('resname')) else: resname = None for metal in METALS: if metal[5] == resname: # Try to find out how many ingots this item would need menu = findmenu('BLACKSMITHING') action = menu.findcraftitem(item.baseid) returned = 0.25 + min(1000, player.skill[MINING]) / 2000 if action and action.submaterial1 > 0: amount = int(math.floor(action.submaterial1 * returned)) else: amount = 1 if amount > 0: # Randomly select one of the resources required by that metal item.delete() ingots = wolfpack.additem(random.choice(metal[3])) ingots.amount = amount if not tobackpack(ingots, player): ingots.update() player.soundeffect(0x2a) player.soundeffect(0x240) player.socket.clilocmessage(1044270) self.send(player, arguments) return player.socket.clilocmessage(1044272) self.send(player, arguments)
def go(socket, command, arguments): player = socket.player if len(arguments) == 0: global generated if not generated: socket.sysmessage("Generating go menu.") socket.sysmessage("Please wait...") generateGoMenu() generated = 1 menu = findmenu("GOMENU") if menu: socket.sysmessage("Bringing up the travel gump.") menu.send(player) else: socket.sysmessage("Didn't find the GOMENU menu.") return elif arguments.count(",") >= 1: parts = arguments.split(",") pos = player.pos try: pos.x = int(parts[0]) pos.y = int(parts[1]) if len(parts) >= 3: pos.z = int(parts[2]) if len(parts) >= 4: pos.map = int(parts[3]) if not isValidPosition(pos): socket.sysmessage("Error: Destination invalid!") return False player.removefromview() player.moveto(pos) player.update() player.socket.resendworld() return except: pass # If we reach this point it was no valid coordinate # See if we can get a def location = wolfpack.getdefinition(WPDT_LOCATION, arguments) if location: (x, y, z, map) = location.text.split(",") pos = wolfpack.coord(int(x), int(y), int(z), int(map)) if not isValidPosition(pos): socket.sysmessage("Error: Destination invalid!") return False player.removefromview() player.moveto(pos) player.update() player.socket.resendworld() else: socket.sysmessage("Usage: <x, y, z, map>|<location>") return
def add(socket, command, arguments): if len(arguments) > 0: if wolfpack.getdefinition(WPDT_ITEM, arguments): socket.sysmessage(tr("Where do you want to place the item '%s'?") % arguments) socket.attachtarget("commands.add.additem", [arguments, False]) elif wolfpack.getdefinition(WPDT_NPC, arguments): socket.sysmessage(tr("Where do you want to spawn the npc '%s'?") % arguments) socket.attachtarget("commands.add.addnpc", [arguments]) elif wolfpack.getdefinition(WPDT_MULTI, arguments): node = wolfpack.getdefinition(WPDT_MULTI, arguments) count = node.childcount for i in range(0, count): subnode = node.getchild(i) if subnode.name == "id": # Found the display id dispid = hex2dec(subnode.value) socket.sysmessage(tr("Where do you want to place the multi '%s'?") % arguments) socket.attachmultitarget("commands.add.addmulti", dispid - 0x4000, [arguments, False], 0, 0, 0) else: socket.sysmessage(tr("No Item, NPC or Multi definition by that name found.")) return global generated if not generated: generated = True socket.sysmessage(tr("Generating add menu.")) socket.sysmessage(tr("Please wait...")) generateAddMenu(socket.player.serial) return menu = findmenu("ADDMENU") if menu: menu.send(socket.player) else: socket.sysmessage(tr("No ADDMENU menu found."))
def add(socket, command, arguments): if len(arguments) > 0: if wolfpack.getdefinition(WPDT_ITEM, arguments): socket.sysmessage("Where do you want to place the item '%s'?" % arguments) socket.attachtarget("commands.add.additem", [arguments, False]) elif wolfpack.getdefinition(WPDT_NPC, arguments): socket.sysmessage("Where do you want to spawn the npc '%s'?" % arguments) socket.attachtarget("commands.add.addnpc", [arguments]) elif wolfpack.getdefinition(WPDT_MULTI, arguments): socket.sysmessage("Where do you want to place the multi '%s'?" % arguments) socket.attachtarget("commands.add.addmulti", [arguments, False]) else: socket.sysmessage('No Item, NPC or Multi definition by that name found.') return global generated if not generated: socket.sysmessage('Generating add menu.') socket.sysmessage('Please wait...') generateAddMenu() generated = 1 menu = findmenu('ADDMENU') if menu: menu.send(socket.player) else: socket.sysmessage('No ADDMENU menu found.')
def go(socket, command, arguments): player = socket.player if len(arguments) == 0: global generated if not generated: socket.sysmessage('Generating go menu.') socket.sysmessage('Please wait...') generateGoMenu() generated = 1 menu = findmenu('GOMENU') if menu: socket.sysmessage('Bringing up the travel gump.') menu.send(player) else: socket.sysmessage("Didn't find the GOMENU menu.") return elif arguments.count(',') >= 1: parts = arguments.split(',') pos = player.pos try: pos.x = int(parts[0]) pos.y = int(parts[1]) if len(parts) >= 3: pos.z = int(parts[2]) if len(parts) >= 4: pos.map = int(parts[3]) if not isValidPosition(pos): socket.sysmessage("Error: Destination invalid!") return False player.removefromview() player.moveto(pos) player.update() player.socket.resendworld() return except: pass # If we reach this point it was no valid coordinate # See if we can get a def location = wolfpack.getdefinition(WPDT_LOCATION, arguments) if location: (x, y, z, map) = location.text.split(',') pos = wolfpack.coord(int(x), int(y), int(z), int(map)) if not isValidPosition(pos): socket.sysmessage("Error: Destination invalid!") return False player.removefromview() player.moveto(pos) player.update() player.socket.resendworld() else: socket.sysmessage('Usage: <x, y, z, map>|<location>') return
def onUse(char, item): if not checktool(char, item): return True menu = findmenu('TINKERING') if menu: menu.send(char, [item.serial]) return True
def onUse(char, item): if not checktool(char, item): return True menu = findmenu('CARPENTRY') if menu: menu.send(char, [item.serial]) return True
def onUse(char, item): if not checktool(char, item): return 1 menu = findmenu("TINKERING") if menu: menu.send(char, [item.serial]) return 1
def onUse(player, item): if not checktool(player, item): return True menu = findmenu('BOWCRAFT') if menu: menu.send(player, [item.serial]) return True
def onUse(char, item): if not checktool(char, item): return 1 menu = findmenu('TAILORING') if menu: menu.send(char, [item.serial]) return 1
def onUse(char, item): if not checktool(char, item): return True if not checkanvilandforge(char): char.socket.clilocmessage(1044267) return True menu = findmenu('BLACKSMITHING') if menu: menu.send(char, [item.serial]) return True
def onUse(char, item): if not item.getoutmostchar() == char: char.socket.clilocmessage(1042001) # That must be in your pack for you to use it. return True # simply open the sack if item.baseid in ["1039", "1045"]: item.id += 0x1 item.baseid = 1046 item.update() return True if not item.baseid in ACTIONS: menu = findmenu("COOKING") if menu: menu.send(char, [item.serial]) return True char.socket.attachtarget("skills.cooking.%s" % ACTIONS[item.baseid], [item.serial]) return True
def add(socket, command, arguments): if len(arguments) > 0: if wolfpack.getdefinition(WPDT_ITEM, arguments): socket.sysmessage( tr("Where do you want to place the item '%s'?") % arguments) socket.attachtarget("commands.add.additem", [arguments, False]) elif wolfpack.getdefinition(WPDT_NPC, arguments): socket.sysmessage( tr("Where do you want to spawn the npc '%s'?") % arguments) socket.attachtarget("commands.add.addnpc", [arguments]) elif wolfpack.getdefinition(WPDT_MULTI, arguments): node = wolfpack.getdefinition(WPDT_MULTI, arguments) count = node.childcount for i in range(0, count): subnode = node.getchild(i) if subnode.name == 'id': # Found the display id dispid = hex2dec(subnode.value) socket.sysmessage( tr("Where do you want to place the multi '%s'?") % arguments) socket.attachmultitarget("commands.add.addmulti", dispid - 0x4000, [arguments, False], 0, 0, 0) else: socket.sysmessage( tr('No Item, NPC or Multi definition by that name found.')) return global generated if not generated: generated = True socket.sysmessage(tr('Generating add menu.')) socket.sysmessage(tr('Please wait...')) generateAddMenu(socket.player.serial) return menu = findmenu('ADDMENU') if menu: menu.send(socket.player) else: socket.sysmessage(tr('No ADDMENU menu found.'))
def onUse(char, item): if not item.getoutmostchar() == char: char.socket.clilocmessage( 1042001) # That must be in your pack for you to use it. return True # simply open the sack if item.baseid in ["1039", "1045"]: item.id += 0x1 item.baseid = 1046 item.update() return True if not item.baseid in ACTIONS: menu = findmenu('COOKING') if menu: menu.send(char, [item.serial]) return True char.socket.attachtarget("skills.cooking.%s" % ACTIONS[item.baseid], [item.serial]) return True
def onUse(char, item): menu = findmenu('INSCRIPTION') if menu: menu.send(char, [item.serial]) return True
def showmenu(player): menu = findmenu("POLYMORPH") menu.send(player)
def onUse(char, item): menu = findmenu('BLACKSMITHING') if menu: menu.send(char, [item.serial]) return True
def onUse(char, item): menu = findmenu('CARTOGRAPHY') if menu: menu.send(char, [item.serial]) return True
def onUse(char, item): menu = findmenu('TAILORING') if menu: menu.send(char, [item.serial]) return True
def onUse(char, item): menu = findmenu('ALCHEMY') if menu: menu.send(char, [item.serial]) return True
def onUse(char, item): menu = findmenu('MASONRY') if menu: menu.send(char, [item.serial]) return True
def onUse(player, item): menu = findmenu('BOWCRAFT') if menu: menu.send(player, [item.serial]) return True
def onUse(char, item): menu = findmenu('GLASSBLOWING') if menu: menu.send(char, [item.serial]) return True