本文整理汇总了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;未经允许,请勿转载。 |
请发表评论