魔兽改图实战:杀敌获得属性

概述

有时候敌人太强大,强大到即使自己获得了终极装备,仍然无法打败。这下该怎么办?我们的目标就是一定要获得胜利。此时,我们就希望英雄的三围——力量、敏捷、智力——能大一些,这样才有把握打败敌人。

实战

以“卢沟桥抗击战 4.1”为例,进行改图。按照《魔兽改图实战:P闪》的操作步骤,获得war3map.j后,在globals以下添加以下代码:

trigger gg_trg_my_cheat_S = CreateTrigger()

接下来,使用查找功能,查找“function main”。找到后,在它上面添加以下代码:

// 获得属性的条件
function Trig_my_cheat_S_Condition takes nothing returns boolean
    // 死亡单位所属的玩家,和凶手单位所属的玩家,是否属于敌对关系
    return IsUnitEnemy(GetDyingUnit(), GetOwningPlayer(GetKillingUnit()))
endfunction

// 获得属性
function Trig_my_cheat_S_Action takes nothing returns nothing
    local integer delta = 1
    // 增加力量
    call ModifyHeroStat(bj_HEROSTAT_STR, GetKillingUnit(), bj_MODIFYMETHOD_ADD, delta)
    // 增加敏捷
    call ModifyHeroStat(bj_HEROSTAT_AGI, GetKillingUnit(), bj_MODIFYMETHOD_ADD, delta)
    // 增加智力
    call ModifyHeroStat(bj_HEROSTAT_INT, GetKillingUnit(), bj_MODIFYMETHOD_ADD, delta)
endfunction

function MyCheat takes nothing returns nothing
    // 事件:单位死亡时,调用指定的触发器
    call TriggerRegisterAnyUnitEventBJ(gg_trg_my_cheat_S, EVENT_PLAYER_UNIT_DEATH)
    call TriggerAddCondition(gg_trg_my_cheat_S, Condition(function Trig_my_cheat_S_Condition))
    call TriggerAddAction(gg_trg_my_cheat_S, function Trig_my_cheat_S_Action)
    call EnableTrigger(gg_trg_my_cheat_S)
endfunction

添加完后,从“function main”开始查找“endfunction”,在它上面添加以下代码:

call MyCheat()

到此,war3map.j改完了。此时,你要用HkeW3mModifier 2.0把修改好的war3map.j替换进w3x里。

为什么要这样修改?

因为我已经在以上代码的注释中写得很清楚了,所以在这里我就简单赘述下吧。

当任一单位死亡时,也就是发生了死亡事件,就调用指定的触发器。调用触发器时,会判断死亡单位和凶手单位,各自的玩家是不是敌对关系,如果是的话,就调用回调函数,使凶手的三围属性都加一。

灵活应用

  1. 你可以修改Trig_my_cheat_S_Action的代码,比如增加值都是随机值。
  2. 你可以修改Trig_my_cheat_S_Condition的代码,使对手任何凶手单位的三围值都不能增加。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是P闪? 游戏中,玩家单位有一个功能——巡逻(Patrol)。也许正是因为没怎么被使用,显得很鸡肋,所以被人改...
    马克约瑟阅读 1,238评论 2 2
  • 概述 魔兽争霸中任何英雄的主动技能都需要魔法——以蓝色条显示,释放技能后需要冷却时间。对此,有的玩家——像我——就...
    马克约瑟阅读 1,447评论 0 1
  • 为什么写 先唠嗑一下。 我记得我是在大学期间(2011–2015)接触了魔兽争霸。当时我看到好多人玩得很过瘾,于是...
    马克约瑟阅读 159评论 0 1
  • 上一节,我们讲了输出信息功能,这节我们把这个功能,转化为文本,看一下具体实现,下面是这个输出函数转过来的JASS代...
    微岩阅读 671评论 0 2
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,736评论 1 180