周末和小伙伴开黑《魔兽争霸》自定义塔防地图时,魔兽总能看到有些玩家像变魔术似的争霸中有助玩资源把资源控制得刚刚好。其实他们可能偷偷在触发器里塞了这些实用代码——咱们今天就来扒一扒这些藏在事件编辑器里的塔防秘密。

金币管理三板斧

《军团战争》这类需要快速爆兵的游戏地图里,我见过大佬用这套组合拳:

  • 定时发工资:TriggerAddAction(gg_trg_PayDay,代码 function call SetPlayerState(Player(0), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(0), PLAYER_STATE_RESOURCE_GOLD)+30) end)
  • 自动调税率:if udg_CurrentWave >15 then call SetTaxRate(Player(0), 10) endif
  • 死亡回扣:阵亡单位返还50%造价:call SetPlayerState(killerPlayer, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(killerPlayer, PLAYER_STATE_RESOURCE_GOLD)+(GetUnitCost(deathUnit)0.5))

金币 vs 木材转换器

资源类型 -->转换比例适用阶段
金币→木材100:80中期科技升级
木材→金币100:120前期兵力补充

人口控制黑科技

《绿色循环》地图里,高手都是可帮这样防止卡人口的:

  • 自动升级大厅:if (GetPlayerUnitCount(Player(0)) >(GetPlayerTechMax(Player(0), 'htow')5)) then call UpgradeTownHall(Player(0)) endif
  • 紧急拆除协议:按住ALT点击单位立即回收:call UnitRemove(GetTriggerUnit, true)

资源平衡方程式

《雪地幸存》里的顶级玩家都在用的动态平衡算法:

function BalanceResources takes nothing returns nothing

local integer gold = GetPlayerState(Player(0), PLAYER_STATE_RESOURCE_GOLD)

local integer lumber = GetPlayerState(Player(0), PLAYER_STATE_RESOURCE_LUMBER)

if gold >(lumber 2) then

call ConvertGoldToLumber(Player(0), gold

  • (lumber 2))
  • elseif lumber >(gold 1.5) then

    call ConvertLumberToGold(Player(0), lumber

  • (gold 1.5))
  • endif

    endfunction

    常见塔防地图资源参数对照

    地图名称 -->初始金币木材产出人口上限
    元素TD500每波+5100
    宝石TD300杀怪掉落无限制

    把这些代码片段粘贴到地图编辑器的相应触发器里,下次联机时记得装作不经意地说:"哎你们怎么老缺钱?家更我这边资源刚刚好用不完诶~"。当然最好先和基友们打声招呼,好地免得被踢出房间...

    管理