本文整理汇总了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
示例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
示例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
示例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
示例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()
示例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
示例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
示例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()
示例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
示例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
示例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
示例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
示例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
示例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
示例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)