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)
Esempio n. 2
0
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
Esempio n. 3
0
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."))
Esempio n. 4
0
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.')
Esempio n. 5
0
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
Esempio n. 6
0
def onUse(char, item):
	if not checktool(char, item):
		return True

	menu = findmenu('TINKERING')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 7
0
def onUse(char, item):
	if not checktool(char, item):
		return True

	menu = findmenu('CARPENTRY')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 8
0
def onUse(char, item):
    if not checktool(char, item):
        return 1

    menu = findmenu("TINKERING")
    if menu:
        menu.send(char, [item.serial])
    return 1
Esempio n. 9
0
def onUse(player, item):
  if not checktool(player, item):
    return True

  menu = findmenu('BOWCRAFT')
  if menu:
    menu.send(player, [item.serial])
  return True
Esempio n. 10
0
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
Esempio n. 12
0
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
Esempio n. 13
0
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.'))
Esempio n. 14
0
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
Esempio n. 15
0
def onUse(char, item):
	menu = findmenu('INSCRIPTION')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 16
0
def showmenu(player):
    menu = findmenu("POLYMORPH")
    menu.send(player)
Esempio n. 17
0
def onUse(char, item):
	menu = findmenu('INSCRIPTION')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 18
0
def showmenu(player):
	menu = findmenu("POLYMORPH")
	menu.send(player)
Esempio n. 19
0
def onUse(char, item):
	menu = findmenu('BLACKSMITHING')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 20
0
def onUse(char, item):
    menu = findmenu('CARTOGRAPHY')
    if menu:
        menu.send(char, [item.serial])
    return True
Esempio n. 21
0
def onUse(char, item):
    menu = findmenu('TAILORING')
    if menu:
        menu.send(char, [item.serial])
    return True
Esempio n. 22
0
def onUse(char, item):
	menu = findmenu('ALCHEMY')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 23
0
def onUse(char, item):
	menu = findmenu('CARTOGRAPHY')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 24
0
def onUse(char, item):
    menu = findmenu('MASONRY')
    if menu:
        menu.send(char, [item.serial])
    return True
Esempio n. 25
0
def onUse(player, item):
    menu = findmenu('BOWCRAFT')
    if menu:
        menu.send(player, [item.serial])
    return True
Esempio n. 26
0
def onUse(char, item):
	menu = findmenu('GLASSBLOWING')
	if menu:
		menu.send(char, [item.serial])
	return True
def onUse(char, item):
	menu = findmenu('BLACKSMITHING')
	if menu:
		menu.send(char, [item.serial])
	return True
Esempio n. 28
0
def onUse(player, item):
	menu = findmenu('BOWCRAFT')
	if menu:
		menu.send(player, [item.serial])
	return True
Esempio n. 29
0
def onUse(char, item):
	menu = findmenu('TAILORING')
	if menu:
		menu.send(char, [item.serial])
	return True