Example #1
0
def findlock(socket, command, arguments):
	if len(arguments) == 0:
		socket.sysmessage( tr('Usage: findlock <lock>') )
		return

	lock = arguments.strip().lower()
	items = wolfpack.itemiterator()
	item = items.first

	while item:
		if item.hasscript( "lock" ):
			if item.hastag( "lock" ) and item.gettag( "lock" ).lower() == lock:
				container = item.getoutmostitem()

				if container.container:
					container = container.container

				socket.sysmessage( tr("Going to item '%s' [Serial: 0x%x; Top: 0x%x]." % (item.getname(), item.serial, container.serial)) )
				pos = container.pos
				socket.player.removefromview()
				socket.player.moveto(pos)
				socket.player.update()
				socket.resendworld()

				if item.container:
					socket.sendobject(item.container)
					if item.container.isitem():
						socket.sendcontainer(item.container)
				return True

		item = items.next

	socket.sysmessage( "A matching lock with the id '%s' was not found." % lock )
	def sort( self ):
		it = wolfpack.itemiterator()
		item = it.first
		while item:
			if not self.filter(item):
				if not item.pos.map in self.maps:
					self.maps[item.pos.map] = {}
				if not item.id in self.maps[item.pos.map]:
					self.maps[item.pos.map][item.id] = []
				self.maps[item.pos.map][item.id].append(item)
			item = it.next
Example #3
0
 def sort(self):
     it = wolfpack.itemiterator()
     item = it.first
     while item:
         if not self.filter(item):
             if not item.pos.map in self.maps:
                 self.maps[item.pos.map] = {}
             if not item.id in self.maps[item.pos.map]:
                 self.maps[item.pos.map][item.id] = []
             self.maps[item.pos.map][item.id].append(item)
         item = it.next
	def sort( self ):
		self.socket.sysmessage("In sort()")
		it = wolfpack.itemiterator()
		item = it.first
		while item:
			if not self.filter(item):
				self.socket.sysmessage("Adding item")
				if not self.maps.has_key(item.pos.map):
					self.maps[item.pos.map] = {}
				if not self.maps[item.pos.map].has_key(item.id):
					self.maps[item.pos.map][item.id] = []
				self.maps[item.pos.map][item.id].append(item)
			item = it.next
Example #5
0
def wipeAllWorld( player, accept, state ):
	if not accept:
		player.socket.sysmessage( "Wipe command have been canceled" )
		return 1

	player.socket.sysmessage( "Removing all items from world, this may take a while" )
	iterator = wolfpack.itemiterator()
	item = iterator.first
	count = 0;
	while item:
		if item.container == None:
			item.delete()
			count += 1
		item = iterator.next
	player.socket.sysmessage( "%i items have been removed from world" % count )
def goitem(socket, command, arguments):
	if len(arguments) == 0:
		socket.sysmessage('Usage: goitem <name>')
		return

	items = wolfpack.itemiterator()

	item = items.first
	name = hash(arguments.lower())

	found = []
	while item:
		if hash(item.name.lower()) == name:
			found.append( item )

		item = items.next

	if socket.hastag( "goitem" ):
		i = socket.gettag( "goitem" ) + 1
		if i >= len(found):
			# No more items with the same name, start from the beginning
			i = 0
		socket.settag( "goitem", i )
	else:
		socket.settag( "goitem", 0 )
		i = 0

	if len(found) == 0:
		socket.sysmessage('An item with the given name was not found.')
	else:
		item = found[i]
		container = item.getoutmostitem()

		if container.container:
			container = container.container

		socket.sysmessage("Going to item '%s' [Serial: 0x%x; Top: 0x%x]." % (item.name, item.serial, container.serial))
		pos = container.pos
		socket.player.removefromview()
		socket.player.moveto(pos)
		socket.player.update()
		socket.resendworld()

		if item.container:
			socket.sendobject(item.container)
			if item.container.isitem():
				socket.sendcontainer(item.container)
Example #7
0
def wipeMap( player, accept, state ):
	if not accept:
		player.socket.sysmessage( tr("Wipe command have been canceled") )
		return 1

	player.socket.sysmessage( tr("Removing all items from this map, this may take a while") )
	iterator = wolfpack.itemiterator()
	item = iterator.first
	counter = 0
	while item:
		if item.pos.map == player.pos.map:
			if item.container == None:
				item.delete()
				counter += 1
		item = iterator.next

	player.socket.sysmessage( tr("%i items have been removed from this map") % counter )
	return
Example #8
0
def wipeAllWorld(player, accept, state):
    if not accept:
        player.socket.sysmessage(tr("Wipe command have been canceled"))
        return 1

    player.socket.sysmessage(
        tr("Removing all items from world, this may take a while"))
    iterator = wolfpack.itemiterator()
    item = iterator.first
    counter = 0
    while item:
        if item.container == None:
            item.delete()
            counter += 1
        item = iterator.next

    player.socket.sysmessage(
        tr("%i items have been removed from world") % counter)
    return
Example #9
0
def wipeAllWorld( player, accept, state ):
	if not accept:
		player.socket.sysmessage( "Wipe command have been canceled" )
		return 1

	player.socket.sysmessage( "Removing all items from world, this may take a while" )
	iterator = wolfpack.itemiterator()
	item = iterator.first
	serials = []
	while item:
		if item.container == None:
			serials.append(item.serial)
		item = iterator.next
	for serial in serials:
		item = wolfpack.finditem(serial)
		if item:
			item.delete()
		
	player.socket.sysmessage( "%i items have been removed from world" % len(serials) )
	return
Example #10
0
def gobaseid(socket, command, arguments):
	if len(arguments) == 0:
		socket.sysmessage('Usage: gobaseid <baseid>')
		return

	items = wolfpack.itemiterator()

	item = items.first
	baseid = hash(arguments.lower())

	found = []
	while item:
		if hash(item.baseid.lower()) == baseid:
			found.append( item )

		item = items.next

	chars = wolfpack.chariterator()

	char = chars.first
	while char:
		if hash(char.baseid.lower()) == baseid:
			found.append( char )

		char = chars.next

	if socket.hastag( "gobaseid" ):
		i = socket.gettag( "gobaseid" ) + 1
		if i >= len(found):
			# No more items with the same baseid, start from the beginning
			i = 0
		socket.settag( "gobaseid", i )
	else:
		socket.settag( "gobaseid", 0 )
		i = 0

	if len(found) == 0:
		socket.sysmessage('An object with the given baseid was not found.')
		return False

	object = found[i]
	uid = hex2dec(object.serial)
	# Item
	if uid > 0x40000000:
		container = object.getoutmostitem()

		if container.container:
			container = container.container

		if object.name != '':
			socket.sysmessage("Going to item '%s' [Serial: 0x%x; Top: 0x%x]." % (object.name, object.serial, container.serial))
		else:
			socket.sysmessage("Going to item [Serial: 0x%x; Top: 0x%x]." % (object.serial, container.serial))

		pos = container.pos
		socket.player.removefromview()
		socket.player.moveto(pos)
		socket.player.update()
		socket.resendworld()

		if object.container:
			socket.sendobject(object.container)
			if object.container.isitem():
				socket.sendcontainer(object.container)
	# Char
	elif uid > 0:
		if object.rank > socket.player.rank:
			return False
		socket.sysmessage('Going to char 0x%x.' % (uid))
		pos = object.pos
		socket.player.removefromview()
		socket.player.moveto(pos)
		socket.player.update()
		socket.resendworld()