「网易官方」极客战记(codecombat)攻略-沙漠-炼金术-alchemic-power

(点击图片进入关卡)

熟练的炼金术士可以改变战斗的流程

简介

炼金药水是我们的秘密优势。 当你的英雄正在战斗时, 你的宠物应该等着炼金术士的命令 "Fetch" 并且在听到它时向主人公传出一剂药水。

使用事件处理参数 event 来获取所说的消息。 它包含在 event.message 属性中。 当信息不是 "Fetch"时,你的宠物应该回到红色标记。 使用 pet.fetch(item) 来带上一件物品给英雄。

默认代码

# 等着炼金师的命令去拿药水。
# 宠物事件的事件处理程序 "hear"。
def onHear(event):
    # 找到最近的药水。
    potion = pet.findNearestByType("potion")
    message = event.message
    # 如果事件的消息是 "Fetch"

 

        # 让宠物拿取药水。

 

    # 其他(对于任何其他消息):

 

        # 将宠物归还红色标记。

 

pet.on("hear", onHear)
# 您不必更改下面的代码。
while True:
    enemy = hero.findNearest(hero.findEnemies())
    if enemy:
        hero.attack(enemy)
    else:
        hero.moveXY(40, 34)

概览

事件包括有关导致事件处理程序触发的事件的数据。

对于 "hear" 事件,第一个参数(通常命名为 event )包含有关 speaker 是谁以及他们说了什么message 的有价值的信息。

例如:

def onHear(event):
    who = event.speaker   # This will be Omarn
    what = event.message   # This will be "Drink this!"
    pet.say(who + " said " + what)   # Omarn said Drink this!
    pet.say("Squawk!")   # Squawk!
pet.on("hear", onHear)
# Then Omarn says: "Drink this!"

炼金术解法

# 等着炼金师的命令去拿药水。
# 宠物事件的事件处理程序 "hear"。
def onHear(event):
    # 找到最近的药水。
    potion = pet.findNearestByType("potion")
    message = event.message
    # 如果事件的消息是 "Fetch"
    if message == "Fetch":
        # 让宠物拿取药水。
        pet.fetch(potion)
    # 其他(对于任何其他消息):
    else:
        # 将宠物归还红色标记。
        pet.moveXY(54, 34)
pet.on("hear", onHear)
# 您不必更改下面的代码。
while True:
    enemy = hero.findNearest(hero.findEnemies())
    if enemy:
        hero.attack(enemy)
    else:
        hero.moveXY(40, 34)
 
本攻略发于极客战记官方教学栏目,原文地址为:
原文地址:https://www.cnblogs.com/codecombat/p/13444341.html