• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python wolfpack.items函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: getvein

def getvein(socket, pos):
    # 4x4 resource grid
    gem_x = (pos.x / 4) * 4
    gem_y = (pos.y / 4) * 4

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

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


示例17: effect

def effect(char, args):
	# Delete the spiritspeaking flag and set the
	# skill delay for this client.
	socket = char.socket
	socket.deltag('spiritspeaking')
	socket.settag('skill_delay', int( wolfpack.time.currenttime() + SPSPEAK_DELAY ) )

	# Check for skill usage success
	if not char.checkskill( SPIRITSPEAK, 0, 1000 ):
		char.socket.clilocmessage(502443) # You fail your attempt at contacting the netherworld.
		return

	# Find corpses around the user of this skill
	# 3 tiles range.
	pos = char.pos
	items = wolfpack.items(pos.x, pos.y, pos.map, 3)
	corpses = []
	for item in items:
		if item.baseid == '2006' and not item.hastag('drained') and item.id == 0x2006:
			corpses.append(item)

	# There was an undrained corpse near the player using
	# the skill.
	if len(corpses) > 0:
		# Select a random corpse.
		corpse = random.choice(corpses)

		# Change the color of the corpse and set the "drained" flag for it.
		corpse.color = 0x835
		corpse.settag('drained', 1)
		corpse.update()

		char.socket.clilocmessage(1061287) # You channel energy from a nearby corpse to heal your wounds.
	else:
		if char.mana < 10:
			char.socket.clilocmessage(1061285) # You lack the mana required to use this skill.
			return

		char.mana -= 10
		char.updatemana()

		char.socket.clilocmessage(1061286) # You channel your own spiritual energy to heal your wounds.

	# Show a nice effect.
	char.effect(0x375a, 1, 15)

	# The amount of damage healed is based on the spirit speaking value.
	minval = 1 + floor(char.skill[SPIRITSPEAK] * 0.025)
	maxval = minval + 4
	char.health = min(char.maxhitpoints, char.health + random.randint(minval, maxval))
	char.updatehealth()
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:51,代码来源:spiritspeak.py


示例18: effect

def effect(char, args):
    # Delete the spiritspeaking flag and set the
    # skill delay for this client.
    socket = char.socket
    socket.deltag("spiritspeaking")
    socket.settag("skill_delay", int(wolfpack.time.currenttime() + SPSPEAK_DELAY))

    # Check for skill usage success
    if not char.checkskill(SPIRITSPEAK, 0, 1000):
        char.socket.clilocmessage(502443)
        return

        # Find corpses around the user of this skill
        # 3 tiles range.
    pos = char.pos
    items = wolfpack.items(pos.x, pos.y, pos.map, 3)
    corpses = []
    for item in items:
        if item.baseid == "2006" and not item.hastag("drained"):
            corpses.append(item)

            # There was an undrained corpse near the player using
            # the skill.
    if len(corpses) > 0:
        # Select a random corpse.
        corpse = random.choice(corpses)

        # Change the color of the corpse and set the "drained" flag for it.
        corpse.color = 0x835
        corpse.settag("drained", 1)
        corpse.update()

        char.socket.clilocmessage(1061287)
    else:
        if char.mana < 10:
            char.socket.clilocmessage(1061285)
            return

        char.mana -= 10
        char.updatemana()

        char.socket.clilocmessage(1061286)

        # Show a nice effect.
    char.effect(0x375A, 1, 15)

    # The amount of damage healed is based on the spirit speaking value.
    minval = 1 + floor(char.skill[SPIRITSPEAK] * 0.025)
    maxval = minval + 4
    char.health = min(char.maxhitpoints, char.health + random.randint(minval, maxval))
    char.updatehealth()
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:51,代码来源:spiritspeak.py


示例19: getvein

def getvein( socket, pos, target ):
	#Check if we have wood_gems on this spot
	gems = wolfpack.items( pos.x, pos.y, pos.map )
	for gem in gems:
		if gem.hastag('resource') and gem.gettag('resource') == 'wood' and gem.hastag('resname') and gem.baseid == 'wood_gem':
			if gem.gettag('resname') in LOGS:		
				return gem
				break
			else:
				# delete invalid gems
				gem.delete()

	gem = createwoodgem(target, pos)
	return gem
开发者ID:BackupTheBerlios,项目名称:wolfpack-svn,代码行数:14,代码来源:lumberjacking.py


示例20: 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,代码行数:16,代码来源:fishing.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python wolfpack.packet函数代码示例发布时间:2022-05-26
下一篇:
Python wolfpack.getdefinition函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap