当前位置: 首页>>代码示例>>Python>>正文


Python wolfpack.items函数代码示例

本文整理汇总了Python中wolfpack.items函数的典型用法代码示例。如果您正苦于以下问题:Python items函数的具体用法?Python items怎么用?Python items使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了items函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: checkanvilandforge

def checkanvilandforge(char):
	if char.gm:
		return True
	
	# Check dynamic items.
	forge = 0
	anvil = 0
	items = wolfpack.items(char.pos.x, char.pos.y, char.pos.map, 5)
	for item in items:
		if item.id == 0xFAF or item.id == 0xFB0:
			anvil = True
		elif item.id == 0xFB1 or (item.id >= 0x197A and item.id <= 0x19A9):
			forge = True

		if anvil and forge:
			return True
			
	# Check for static items
	for x in range(-2, 3):
		for y in range(-2, 3):
			statics = wolfpack.statics(char.pos.x + x, char.pos.y + y, char.pos.map, True)
			
			for tile in statics:
				dispid = tile[0]
				if dispid == 0xFAF or dispid == 0xFB0:
					anvil = True
				elif dispid == 0xFB1 or (dispid >= 0x197A and dispid <= 0x19A9):
					forge = True

				if anvil and forge:
					return True

	return False
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:33,代码来源:blacksmithing.py

示例2: onDamage

def onDamage(char, type, amount, source):
	# Find the spiderweb
	items = wolfpack.items(char.pos.x, char.pos.y, char.pos.map, 0)

	spiderweb = None

	for item in items:
		if item.hasscript( 'spiderweb' ):
			spiderweb = item
			break

	if spiderweb:
		if type == DAMAGE_MAGICAL:
			spiderweb.health = max(0, spiderweb.health - amount * 2)
		elif type == DAMAGE_PHYSICAL:
			spiderweb.health = max(0, spiderweb.health - amount * 4)

		if spiderweb.health == 0:
			spiderweb.delete()

			targets = wolfpack.chars(char.pos.x, char.pos.y, char.pos.map, 0)

			for target in targets:
				target.removescript( 'spiderweb' )

	return amount
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:26,代码来源:spiderweb.py

示例3: onWalk

def onWalk(char, dir, sequence):
	# Find the spiderweb
	items = wolfpack.items(char.pos.x, char.pos.y, char.pos.map, 0)

	spiderweb = None

	for item in items:
		if item.hasscript( 'spiderweb' ):
			spiderweb = item
			break

	if spiderweb:
		# Damage the web until it disappears
		spiderweb.health = max(0, spiderweb.health - ceil(char.strength / 2.0))

		if spiderweb.health == 0:
			spiderweb.delete()
		else:
			if char.socket:
				if random.random() <= 0.25:
					char.socket.sysmessage( tr('You damage the spiderweb.') )
				packet = wolfpack.packet(0x21, 8)
				packet.setbyte(1, sequence)
				packet.setshort(2, char.pos.x)
				packet.setshort(4, char.pos.y)
				packet.setbyte(6, char.direction)
				packet.setbyte(7, char.pos.z)
				packet.send(char.socket)
				char.socket.walksequence = 0
			return True

	char.removescript( 'spiderweb' )
	if char.socket:
		char.socket.sysmessage( tr('You manage to break free of the spiderweb.') )
	return False
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:35,代码来源:spiderweb.py

示例4: checkanvilandforge

def checkanvilandforge(char):
	if char.gm:
		return True

	# Check dynamic items.
	forge = False
	anvil = False
	items = wolfpack.items(char.pos.x, char.pos.y, char.pos.map, 5)
	for item in items:
		if item.id in ANVILS:
			anvil = True
		elif item.id in FORGES:
			forge = True

		if anvil and forge:
			return True

	# Check for static items
	for x in range(-2, 3):
		for y in range(-2, 3):
			statics = wolfpack.statics(char.pos.x + x, char.pos.y + y, char.pos.map, True)

			for tile in statics:
				dispid = tile[0]
				if dispid in ANVILS:
					anvil = True
				elif dispid in FORGES:
					forge = True

				if anvil and forge:
					return True

	return False
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:33,代码来源:blacksmithing.py

示例5: target

	def target(self, char, mode, targettype, target, args, item):
		if not self.consumerequirements(char, mode, args, target, item):
			return

		char.turnto(target)

		# Enumerate chars
		chars = wolfpack.chars(target.x, target.y, char.pos.map, 8)
		items = wolfpack.items(target.x, target.y, char.pos.map, 8)
		for target in chars:
			if char == target or not target.npc or target.summontimer == 0:
				continue

			if not mayAreaHarm(char, target):
				continue

			dispelChance = 50.0 + (100 * ((char.magery / 10.0 - (target.getintproperty('dispeldifficulty', 1) / 10)) / ((target.getintproperty('dispelfocus', 1) / 10) * 2))) / 100.0

			if dispelChance > random.random():
				target.effect(0x3779, 10, 20)
				target.fight(char)
			else:
				wolfpack.effect(0x3728, target.pos, 8, 20)
				target.soundeffect(0x201)
				target.delete()

		# Field spells
		for item in items:
			if item.hastag('dispellable_field'):
				wolfpack.effect(0x376a, item.pos, 9, 20)
				item.soundeffect(0x201)
				item.delete()
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:32,代码来源:circle7.py

示例6: openDoor

def openDoor( socket, packet ):
	if packet.size == 5 and packet.getshort(3) == int( 0x5800 ):
		if not socket.player:
			return False
		char = socket.player
		dir = char.direction
		doors = wolfpack.items(char.pos.x + dirs[dir][0], char.pos.y + dirs[dir][1], char.pos.map, 0)

		if not doors:
			return False

		opendoor = 0
		reach = 0
		for door in doors:
			if char.pos.z == door.pos.z:
				reach = 1
			elif char.pos.z < door.pos.z and char.pos.z >= ( door.pos.z - 5):
				reach = 1
			elif char.pos.z > door.pos.z and char.pos.z <= ( door.pos.z + 5):
				reach = 1
			if reach == 1:
				for event in door.scripts:
					if event == 'door':
						opendoor = 1
						break
			if opendoor == 1:
				wolfpack.callevent( event, EVENT_USE, (char, door) )
				break
		return True
	else:
		return False
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:31,代码来源:macro_opendoor.py

示例7: openDoor

def openDoor( socket ):
	char = socket.player
	dir = char.direction
	doors = wolfpack.items(char.pos.x + dirs[dir][0], char.pos.y + dirs[dir][1], char.pos.map, 0)

	if not doors:
		return False

	opendoor = 0
	reach = 0
	for door in doors:
		if char.pos.z == door.pos.z:
			reach = 1
		elif char.pos.z < door.pos.z and char.pos.z >= ( door.pos.z - 5):
			reach = 1
		elif char.pos.z > door.pos.z and char.pos.z <= ( door.pos.z + 5):
			reach = 1
		if reach == 1:
			for event in door.scripts:
				if event == 'door':
					opendoor = 1
					break

		if opendoor == 1:
			scripts = door.scripts + door.basescripts.split(',')
			args = (char, door)
			for script in scripts:
				if wolfpack.hasevent(script, EVENT_USE):
					if wolfpack.callevent(script, EVENT_USE, args):
						break
			break
	return True
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:32,代码来源:clientmacros.py

示例8: target

    def target(self, char, mode, targettype, target, args, item):
        if not self.consumerequirements(char, mode, args, target, item):
            return

        char.turnto(target)

        if char.player:
            party = char.party
            guild = char.guild
        else:
            party = None
            guild = None

            # Enumerate chars
        chars = wolfpack.chars(target.x, target.y, char.pos.map, 8)
        items = wolfpack.items(target.x, target.y, char.pos.map, 8)
        for target in chars:
            if char == target or not target.npc or target.summontimer == 0:
                continue

            if self.checkresist(char, target):
                target.effect(0x3779, 10, 20)
            else:
                wolfpack.effect(0x3728, target.pos, 8, 20)
                target.soundeffect(0x201)
                target.delete()

                # Field spells
        for item in items:
            if item.hastag("dispellable_field"):
                wolfpack.effect(0x376A, item.pos, 9, 20)
                item.soundeffect(0x201)
                item.delete()
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:33,代码来源:circle7.py

示例9: checkfire

def checkfire( pos ):
	found_fire = 0
	items = wolfpack.items( pos.x + i, pos.y + j, pos.map, FIRE_RANGE )
	for item in items:
		if item.id in fires:
			found_fire = 1
			break
	return found_fire
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:8,代码来源:cooking.py

示例10: checkmill

def checkmill( pos ):
	found = 0
	items = wolfpack.items( pos.x + i, pos.y + j, pos.map, MILL_RANGE )
	for item in items:
		if item.id in flour_mill:
			found = 1
			break
	return found
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:8,代码来源:cooking.py

示例11: getvein

def getvein( socket, pos, target ):
	#Check if we have wood_gems near ( range = 4)
	gems = wolfpack.items( pos.x, pos.y, pos.map, 0 )
	for gem in gems:
		if gem.hastag('resource') and gem.gettag('resource') == 'wood' and gem.hastag('resname') and gem.id == 0x1ea7:
			return gem
			break
	if not gems:
		gem = createwoodgem(target, pos)
		return gem
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:10,代码来源:lumberjacking.py

示例12: findResourceGem

def findResourceGem( pos ):
	xBlock = int( floor( pos.x / 8 ) ) * 8
	yBlock = int( floor( pos.y / 8 ) ) * 8

	items = wolfpack.items( xBlock, yBlock, pos.map, 1 ) # 1: Exact

	for item in items:
		if item.id == 0x1ea7 and item.hastag( 'resourcecount' ) and item.hastag( 'resource' ) and item.gettag( 'resource' ) == 'fish':
			return item

	return None
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:11,代码来源:fishing.py

示例13: check_room

def check_room( item, pos ):
	# check valid item
	if not item.hastag( 'carpentry_type' ):
		return False
	name = item.gettag( 'carpentry_type' )
	if not name in deeds:
		return False
	dir = deeds[ name ][ DIRECTION ]
	items = deeds[ name ][ DEED_ITEMS ]
	if not items:
		return False
	num_item = len( items )
	if not num_item:
		return False

	# check the spots
	ret0 = 0
	ret1 = 0
	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 )
		else:
			ret1 = check_spot( pos.x + 1, pos.y, pos.map )
		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 )
			ret2 = check_spot( pos.x, pos.y - 1, pos.map )
		else:
			ret1 = check_spot( pos.x + 1, pos.y, pos.map )
			ret2 = check_spot( pos.x -1, pos.y, pos.map )
		return ret0 & ret1 & ret2
	elif num_item == 4:
		ret0 = 1
		for x in range( pos.x, pos.x + 2 ):
			for y in range( pos.y, pos.y + 2 ):
				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 ret0:
			return False
		return True
	# no other case : error
	return False
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:53,代码来源:carpentry_deed.py

示例14: check_room

def check_room( item, pos ):
	# 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
	ret0 = 0
	ret1 = 0
	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 )
		else:
			ret1 = check_spot( pos.x + 1, pos.y, pos.map )
		return ret0 & ret1
	elif num_item == 3:
		ret0 = check_spot( pos )
		if dir == 1:
			ret1 = check_spot( pos.x, pos.y + 1, pos.map )
			ret2 = check_spot( pos.x, pos.y - 1, pos.map )
		else:
			ret1 = check_spot( pos.x + 1, pos.y, pos.map )
			ret2 = check_spot( pos.x -1, pos.y, pos.map )
		return ret0 & ret1 & ret2
	elif num_item == 4:
		ret0 = 1
		for x in range( pos.x, pos.x + 2 ):
			for y in range( pos.y, pos.y + 2 ):
				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
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:53,代码来源:carpentry_deed.py

示例15: getsandvein

def getsandvein(socket, pos):
	# 8x8 resource grid
	gem_x = (pos.x / 8) * 8
	gem_y = (pos.y / 8) * 8

	gems = wolfpack.items(gem_x, gem_y, pos.map, 0)
	for gem in gems:
		if gem.hastag('resource') and gem.gettag('resource') == 'sand':
			return gem

	pos.x = gem_x
	pos.y = gem_y
	return createsandgem(pos)
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:13,代码来源:mining.py


注:本文中的wolfpack.items函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。