周末和小伙伴开黑《魔兽争霸》自定义塔防地图时,魔兽总能看到有些玩家像变魔术似的争霸中有助玩资源把资源控制得刚刚好。其实他们可能偷偷在触发器里塞了这些实用代码——咱们今天就来扒一扒这些藏在事件编辑器里的塔防秘密。
金币管理三板斧
在《军团战争》这类需要快速爆兵的游戏地图里,我见过大佬用这套组合拳:
- 定时发工资:
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
elseif lumber >(gold 1.5) then
call ConvertLumberToGold(Player(0), lumber
endif
endfunction
常见塔防地图资源参数对照
地图名称 --> | 初始金币 | 木材产出 | 人口上限 |
元素TD | 500 | 每波+5 | 100 |
宝石TD | 300 | 杀怪掉落 | 无限制 |
把这些代码片段粘贴到地图编辑器的相应触发器里,下次联机时记得装作不经意地说:"哎你们怎么老缺钱?家更我这边资源刚刚好用不完诶~"。当然最好先和基友们打声招呼,好地免得被踢出房间...
管理