friend=hero.findFriends()[0]
witch=self.findByType("witch",friend.findEnemies())[0]
nb=0
loop:
friends = self.findFriends()
for friend in friends:
enemy=friend.findNearest(friend.findEnemies())
if witch and self.now()<2.7 and witch.health>0 and nb<4:
self.command(friend, "attack", witch)
enemy=friend.findNearest(friend.findEnemies())
nb+=1
if self.now()>3:
friend.say("help")
enemy=friend.findNEarestEnemy()
if enemy:
hero.command(friend,"attack",enemy)
friends=hero.findFriends()
witch=self.findByType("witch",friends[0].findEnemies())[0]
for friend in friends:
if friend.type=="paladin" or friend.type=="archer":
while witch.health>0:
hero.command(friend,"attack",witch)
elif friend.type=="soldier":
ogre=self.findByType("ogre",friend.findEnemies())[0]
hero.command(friend,"attack",ogre)
nb=0
loop:
friends = self.findFriends()
for friend in friends:
if friend.tyep=="paladin":
if friend.canCast("heal"):
self.command(friend,"cast","heal",friend)
enemy=friend.findNearestEnemy()
if enemy:
hero.command(friend,"attack",enemy)
This is my new code but nothing is working. : "Code never finsihIt’s either really slow or has an infinity loop"
Please help
Your hero must do something each cycle
if you use loop with condition
check this part cycle by cycle
it is for sure do
not what you want
if friend.type=="paladin" or friend.type=="archer":
while witch.health>0:
hero.command(friend,"attack",witch)
elif friend.type=="soldier":
ogre=self.findByType("ogre",friend.findEnemies())[0]
while True:
hero.debug("ok")
friends = self.findFriends()
for friend in friends:
witch=self.findByType("witch",friends[0].findEnemies())[0]
if friend.type=="paladin":
if friend.canCast("heal"):
n=friend.findNearest(friends)
self.command(friend,"cast","heal",n)
if witch and witch.health>0:
if friend.type=="paladin" or friend.type=="archer":
hero.command(friend,"attack",witch)
elif friend.type=="soldier":
ogre=self.findByType("ogre",friend.findEnemies())
if ogre:
self.command(friend,"attack",friend.findNearest(ogre))
else:
enemy=friend.findNearestEnemy()
if enemy:
hero.command(friend,"attack",enemy)
I have try it but I can’t win!! And when the witch dies, the heroes are attacking the dead witch and I lost!
Please help
while True:
hero.debug("ok")
friends = self.findFriends()
for friend in friends:
witch=self.findByType("witch",friends[0].findEnemies())[0]
if witch and witch.health>0:
if friend.type=="paladin" or friend.type=="archer":
hero.command(friend,"attack",witch)
elif friend.type=="soldier":
ogre=self.findByType("ogre",friend.findEnemies())
if ogre:
self.command(friend,"attack",friend.findNearest(ogre))
else:
enemy=friend.findNearestEnemy()
if enemy:
hero.command(friend,"attack",enemy)
if friend.type=="paladin":
if friend.canCast("heal") and friend.health<friend.maxHealth-150:
self.command(friend,"cast","heal",friend)
I don’t understand where I must place the healing
Please help
I don’t know what is happening, but my paladin is not healing
while True:
hero.debug("ok")
friends = self.findFriends()
for friend in friends:
witch=self.findByType("witch",friends[0].findEnemies())[0]
if witch and witch.health>0:
if friend.type=="paladin" or friend.type=="archer":
hero.command(friend,"attack",witch)
elif friend.type=="soldier":
ogre=self.findByType("ogre",friend.findEnemies())
if ogre:
self.command(friend,"attack",friend.findNearest(ogre))
if friend.type=="paladin":
if friend.canCast("heal") and friend.health<300:
self.command(friend,"cast","heal",friend)
else:
enemy=friend.findNearestEnemy()
if enemy:
hero.command(friend,"attack",enemy)
if friend.type=="paladin":
if friend.canCast("heal") and friend.health<300:
self.command(friend,"cast","heal",friend)
With this code nothing is changing. You say that it is a good code for your interpreter?
Help!!
while True:
hero.debug("ok")
friends = self.findFriends()
for friend in friends:
witch=self.findByType("witch",friends[0].findEnemies())[0]
if witch and witch.health>0:
if friend.type=="paladin" or friend.type=="archer":
hero.command(friend,"attack",witch)
elif friend.type=="soldier":
ogre=self.findByType("ogre",friend.findEnemies())
if ogre:
self.command(friend,"attack",ogre[0])
if friend.type=="paladin":
if friend.canCast("heal") and friend.health<300:
self.command(friend,"cast","heal",friend)
else:
enemy=friend.findNearestEnemy()
if enemy:
hero.command(friend,"attack",enemy)
if friend.type=="paladin":
if friend.canCast("heal") and friend.health<300:
self.command(friend,"cast","heal",friend)
enemy = self.findNearest(self.findEnemies())
if "Trogdor":
hero.cast( "chain-lightning", "Trogdor" )
else:
hero.cast( "chain-lightning", "Rusty" )
self.moveXY(69,15)
self.moveXY(37,16)
for i in range(3):
enemy = self.findNearest(self.findByType("catapult"))
if enemy:
self.attack(enemy)
self.moveXY(37,16)
self.moveXY(78,14)