工具准备:MPQMaster
第一步:首先用MPQMaster打开我们想要修改的地图
打开方式选Warcraft III(大部分都选这个方式)
我们可以看到很多文件,先不要管它们,我们可以这样理解,其实魔兽地图后缀名如 123.w3x abc.w3m等都是一种暴雪的专用压缩格式就像XXX.rar一样里面包含了很多文件
打开最上面的Scripts文件夹,右键点击war3map.j 把这个文件解压出来。
第二步,用记事本打开war3map.j文件
如果对JASS掌握得很熟练的话基本上魔兽的任何一个地图你想怎么改都可以了,它用的脚本语言就是JASS,不过还是得自己研究咯
看到这么多的代码或许你就有点望茫然了,没关系,我们可以用CTRL+F来查找一些关键地方
我们不要管这些,往下看CTRL+F找到以trigger 开头的这行trigger就是触发器的意思
triggergg_trg_Debug=null
trigger gg_trg_Start=null
triggergg_trg_Start_food=null
triggergg_trg_Barn_Garrison=null
triggergg_trg_Word=null
trigger gg_trg_Redoubt=null
我们在第一句的上面加一句
triggerliuxiaofei=null(意思就是添加一个属于自己的触发器,当然名字随便啦,注意不要写错了当然liuxiaofei可以改啦,千万要改,我可不想被图的原创人员口水骂)
找着了第一个触发器,我们就不要放过它了,学着它写。学习是新手最重要的。
然后我们再查找它下面的那个trigger CTRL+F查找Debug(第一个触发器)
然后我们再在上面加入如下代码
function Trig_liuxiaofei_Func006A takes nothing returnsnothing
callUnitResetCooldown(GetEnumUnit())//技能去CD
callSetUnitLifePercentBJ(GetEnumUnit(),100)//满血
callSetUnitManaPercentBJ(GetEnumUnit(),100)//满蓝
endfunction
function liuxiaofei_Actions takes nothing returns nothing
callSetPlayerStateBJ(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_FOOD_CAP,100)//100人口
callSetPlayerStateBJ(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_FOOD_USED,0)//当前人口使用为0
callSetPlayerStateBJ(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_LUMBER,10000)//设置当前玩家木头为10000
callSetPlayerStateBJ(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD,1000000)//设置当前玩家木头为1000000
callSetPlayerHandicapXPBJ(Player(0),125.00)//125%的经验
call ForGroupBJ(GetUnitsSelectedAll(GetTriggerPlayer()),functionTrig_liuxiaofei_Func006A)
endfunction
继续向下查找Debug找到设置触发器动作的那段
找完这一段来到setgg_trg_Debug=CreateTrigger()这一段,意思就是为触发器设置动作
同样在他的上面添加这一段代码
set liuxiaofei=CreateTrigger()
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(1),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(2),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(3),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(4),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(5),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(7),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(8),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(9),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(10),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(11),"XXXXX",true)
callTriggerRegisterPlayerChatEvent(liuxiaofei,Player(12),"XXXXX",true)
call TriggerAddAction(liuxiaofei,function liuxiaofei_Actions)
意思就是当玩家1,2,3,4,5.7,8,9,10,11,12输入XXXXX时就对输入玩家开放作弊
这样我们的修改就算完成一大部分了
保存并关闭war3map.j文件。
第三步,回到MPQMaster,右键删除Scripts文件夹下的war3map.j文件,并在Scripts下添加我们刚才完成修改的war3map.j文件(注意不要改文件的名字)
点击MPQ的 操作 菜单重新压缩一下(非常重要),关闭,退出MPQ