用mpqmaster--如何修改魔兽rpg地图的触发器?

2025-02-27 03:40:20
推荐回答(3个)
回答1:

mpqmaster这个不推荐使用

下载个魔兽改图一条龙(里面有我们需要的火龙hke和编辑jass的JassCraft)或者直接下载个火龙hke JassCraft用记事本也行

用火龙hke解压你要的文件

打开里面的war3map.j 记事本可以JassCraft也可以

然后搜索function InitCustomTriggers takes nothing returns nothing这句鸟语

比如我们搜到这句

function InitTrig_Melee_Initialization takes nothing returns nothing

    set gg_trg_Melee_Initialization = CreateTrigger(  )

    call TriggerAddAction( gg_trg_Melee_Initialization, function Trig_Melee_Initialization_Actions )

endfunction

//===========================================================================

function InitCustomTriggers takes nothing returns nothing

    call InitTrig_Melee_Initialization(  )

endfunction

接下来

复制call CheatGold()到call InitTrig_Melee_Initialization(  )的下边

复制

function CheatGoldActions takes nothing returns nothing

    call SetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)+1000)

endfunction

function CheatGold takes nothing returns nothing

    local trigger CheatGoldTrigger=CreateTrigger()

    local triggeraction CheatGoldTriggerAction

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(0),"-gold",true)

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(1),"-gold",true)

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(2),"-gold",true)

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(3),"-gold",true)

    set CheatGoldTriggerAction=TriggerAddAction(CheatGoldTrigger,function CheatGoldActions)

    set CheatGoldTrigger=null

    set CheatGoldTriggerAction=null

endfunction

到function InitCustomTriggers takes nothing returns nothing

这句的上边

比如复制好就是

function InitTrig_Melee_Initialization takes nothing returns nothing

    set gg_trg_Melee_Initialization = CreateTrigger(  )

    call TriggerAddAction( gg_trg_Melee_Initialization, function Trig_Melee_Initialization_Actions )

endfunction

function CheatGoldActions takes nothing returns nothing

    call SetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD)+1000)

endfunction

function CheatGold takes nothing returns nothing

    local trigger CheatGoldTrigger=CreateTrigger()

    local triggeraction CheatGoldTriggerAction

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(0),"-gold",true)

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(1),"-gold",true)

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(2),"-gold",true)

    call TriggerRegisterPlayerChatEvent(CheatGoldTrigger,Player(3),"-gold",true)

    set CheatGoldTriggerAction=TriggerAddAction(CheatGoldTrigger,function CheatGoldActions)

    set CheatGoldTrigger=null

    set CheatGoldTriggerAction=null

endfunction

//===========================================================================

function InitCustomTriggers takes nothing returns nothing

    call InitTrig_Melee_Initialization(  )

    call CheatGold()

endfunction

然后保存注意别动其他的 用火龙打开地图 把war3map.j替换掉

然后重压缩就行了

进入游戏输入-gold就加1000的钱 只限玩家1234

球采纳 谢谢 

有不懂继续问

回答2:

做法很简单,
事件
玩家 玩家1(红色)输入<空白符串>,信息过滤方法,完全匹配
(玩家1~你设置的玩家数量动作一直复制粘贴出来)
条件
输入的字符串等于XXX(可以设置为,给我金钱)
动作
玩家-增加XX (数量)事件响应触发玩家的XX(黄金或者木头也可以在复制一次设置为2个)

我这方法用于很多地方,并不需要J语,可以在增加一个设置,来控制打字增加金钱CD

回答3:

你懂JASS吗?
JASS写触发
没加密的地图可以写入
用触发器写
设置一个函数 组=包含所有玩家 玩家输入字符 字符等于“给我钱”且玩家属于组 为真 则触发 给玩家=触发玩家 XX钱和木头
基本就是这样的
也可以写简单点的
直接就是红色玩家 输入一句话
我也不是高手 应该排泄的 把输入的字符删掉 我就知道这么多 写我可以写出来 但是现在没装WAR3 所以没法截图 大致思路是这样的 很简单的 照着设置就好了