var myTower = hero.build("cannon", "B");
// 让加农炮优先攻击生命值最低的怪物,快速收割残血
hero.setTargeting(myTower, "weak");
auto myTower = hero.build("cannon", "B");
// 让加农炮优先攻击生命值最低的怪物,快速收割残血
hero.setTargeting(myTower, "weak");
四、🗼 防御塔查询
hero.findTowers()
返回一个列表,包含地图上所有防御塔(包括你的和对手的)。你可以用它来总览全局塔的分布情况。
allTowers = hero.findTowers()
for t in allTowers:
pass# t.type, t.level, t.x, t.y
var allTowers = hero.findTowers();
for (var i = 0; i < allTowers.length; i++) {
var t = allTowers[i];
// t.type, t.level, t.x, t.y
}
auto allTowers = hero.findTowers();
for (int i = 0; i < allTowers.size(); i++) {
auto t = allTowers[i];
// t.type, t.level, t.x, t.y
}
hero.findMyTowers()
返回一个列表,包含地图上你自己的所有防御塔。你可以用它来检查自己的防御布局,决定哪些塔需要升级。
myTowers = hero.findMyTowers()
for t in myTowers:
if t.type == "archer"and t.level < 3:
# 把低等级弓箭塔升级
hero.build("archer", t.x, t.y)
var myTowers = hero.findMyTowers();
for (var i = 0; i < myTowers.length; i++) {
var t = myTowers[i];
if (t.type === "archer" && t.level < 3) {
// 把低等级弓箭塔升级
hero.build("archer", t.x, t.y);
}
}
auto myTowers = hero.findMyTowers();
for (int i = 0; i < myTowers.size(); i++) {
auto t = myTowers[i];
if (t.type == "archer" && t.level < 3) {
// 把低等级弓箭塔升级
hero.build("archer", t.x, t.y);
}
}
var myTowers = hero.findMyTowers();
var firstTower = myTowers[0];
var towerY = firstTower.y;
auto myTowers = hero.findMyTowers();
auto firstTower = myTowers[0];
auto towerY = firstTower.y;
tower.attackDamage
该防御塔的攻击伤害值。这个值会随塔的等级提升而增长。
myTowers = hero.findMyTowers()
for t in myTowers:
dmg = t.attackDamage
var myTowers = hero.findMyTowers();
for (var i = 0; i < myTowers.length; i++) {
var dmg = myTowers[i].attackDamage;
}
auto myTowers = hero.findMyTowers();
for (int i = 0; i < myTowers.size(); i++) {
auto dmg = myTowers[i].attackDamage;
}
tower.attackCooldown
该防御塔两次攻击之间的冷却间隔,单位为秒。数值越小,攻击越频繁。
myTowers = hero.findMyTowers()
cd = myTowers[0].attackCooldown
var myTowers = hero.findMyTowers();
var cd = myTowers[0].attackCooldown;
auto myTowers = hero.findMyTowers();
auto cd = myTowers[0].attackCooldown;
tower.attackRange
该防御塔的最大攻击范围。只有进入这个范围内的怪物才会被该塔攻击。
myTowers = hero.findMyTowers()
range = myTowers[0].attackRange
var myTowers = hero.findMyTowers();
var range = myTowers[0].attackRange;
auto myTowers = hero.findMyTowers();
auto range = myTowers[0].attackRange;
tower.level
该防御塔的当前等级。每次在同一位置建造同类型塔,等级加 1。等级越高,伤害和部分属性越强。
myTowers = hero.findMyTowers()
for t in myTowers:
if t.level < 5:
hero.build(t.type, t.x, t.y)
var myTowers = hero.findMyTowers();
for (var i = 0; i < myTowers.length; i++) {
if (myTowers[i].level < 5) {
hero.build(myTowers[i].type, myTowers[i].x, myTowers[i].y);
}
}
auto myTowers = hero.findMyTowers();
for (int i = 0; i < myTowers.size(); i++) {
if (myTowers[i].level < 5) {
hero.build(myTowers[i].type, myTowers[i].x, myTowers[i].y);
}
}
tower.type
该防御塔的类型名称,例如 "archer"、"mage"、"cannon"、"frost"。
myTowers = hero.findMyTowers()
for t in myTowers:
if t.type == "frost":
pass# 找到了寒霜塔
var myTowers = hero.findMyTowers();
for (var i = 0; i < myTowers.length; i++) {
if (myTowers[i].type === "frost") {
// 找到了寒霜塔
}
}
auto myTowers = hero.findMyTowers();
for (int i = 0; i < myTowers.size(); i++) {
if (myTowers[i].type == "frost") {
// 找到了寒霜塔
}
}
currentWave = hero.getCurrentWave()
# 检查当前波次是否有飞行怪物for monsterType in currentWave:
info = hero.getMonsterParameters(monsterType)
if info.flying:
# 当前波次有飞行怪物,确保有法师塔
hero.build("mage", "C")
break
var currentWave = hero.getCurrentWave();
// 检查当前波次是否有飞行怪物for (var i = 0; i < currentWave.length; i++) {
var info = hero.getMonsterParameters(currentWave[i]);
if (info.flying) {
// 当前波次有飞行怪物,确保有法师塔
hero.build("mage", "C");
break;
}
}
auto currentWave = hero.getCurrentWave();
// 检查当前波次是否有飞行怪物for (int i = 0; i < currentWave.size(); i++) {
auto info = hero.getMonsterParameters(currentWave[i]);
if (info.flying) {
// 当前波次有飞行怪物,确保有法师塔
hero.build("mage", "C");
break;
}
}
nextWave = hero.getNextWave()
for monsterType in nextWave:
info = hero.getMonsterParameters(monsterType)
if info.flying:
# 下一波有飞行怪物,提前建造法师塔
hero.build("mage", "E")
break
var nextWave = hero.getNextWave();
for (var i = 0; i < nextWave.length; i++) {
var info = hero.getMonsterParameters(nextWave[i]);
if (info.flying) {
// 下一波有飞行怪物,提前建造法师塔
hero.build("mage", "E");
break;
}
}
auto nextWave = hero.getNextWave();
for (int i = 0; i < nextWave.size(); i++) {
auto info = hero.getMonsterParameters(nextWave[i]);
if (info.flying) {
// 下一波有飞行怪物,提前建造法师塔
hero.build("mage", "E");
break;
}
}
hero.getBosses()
返回一个二维数组,包含所有 Boss 的信息。每个元素是一个数组,其中第 0 项是 Boss 的名称(字符串),第 1 项是该 Boss 出现的时间(秒数)。你可以用它提前规划 Boss 战策略。
bosses = hero.getBosses()
for boss in bosses:
bossName = boss[0] # Boss 名称
spawnTime = boss[1] # 出现时间(秒)
var bosses = hero.getBosses();
for (var i = 0; i < bosses.length; i++) {
var bossName = bosses[i][0]; // Boss 名称var spawnTime = bosses[i][1]; // 出现时间(秒)
}
auto bosses = hero.getBosses();
for (int i = 0; i < bosses.size(); i++) {
auto bossName = bosses[i][0]; // Boss 名称auto spawnTime = bosses[i][1]; // 出现时间(秒)
}