魔兽地图编辑器吧 关注:65,249贴子:3,839,763
  • 16回复贴,共1

我现在在改一张killzone的外国图

只看楼主收藏回复

这张图是单人游戏的rpg,我现在已经成功加了一个玩家位置
但是悲剧的东西来了,Jass里的触发都是针对player(0)的,如何改才能让针对player(0)的触发针对所有用户玩家
下面我截几段:
function CreateBuildingsForPlayer0 takes nothing returns nothing
local player p=Player(0)
local unit u
local integer unitID
local trigger t
local real life
set u=CreateUnit(p,'n000',3008.,-5440.,270.)
set u=CreateUnit(p,'ncop',4608.,-4800.,270.)
endfunction


IP属地:江西1楼2017-04-12 19:48回复
    英文玩家2是通过触发选英雄、复活英雄、传送等等一系列动作,如果我按照原来的触发再写一套玩家2的理论上是可以的,但是有没有更加的J语言写法。
    例如把玩家1和玩家2编进一个玩家组里,然后所有对玩家1的触发改为对玩家组有效。不知道行不行的通。
    附一段复活的JASS:
    function Trig_Resurrection_P1_Actions takes nothing returns nothing
    call PlaySoundBJ(gg_snd_Rescue)
    call ReviveHeroLoc(GetRevivableUnit(),GetRectCenter(gg_rct_Start_Hero),true)
    call PanCameraToTimedLocForPlayer(GetOwningPlayer(GetRevivableUnit()),GetRectCenter(gg_rct_Start_Hero),0)
    endfunction
    function InitTrig_Resurrection_P1 takes nothing returns nothing
    set gg_trg_Resurrection_P1=CreateTrigger()
    call TriggerRegisterPlayerUnitEventSimple(gg_trg_Resurrection_P1,Player(0),EVENT_PLAYER_HERO_REVIVABLE)
    call TriggerAddAction(gg_trg_Resurrection_P1,function Trig_Resurrection_P1_Actions)
    endfunction


    IP属地:江西2楼2017-04-12 19:51
    回复
      2025-06-10 16:21:56
      广告
      2楼的这段复活应该就是玩家1的复活效果吧~好愁啊~这张单人rpg想和朋友一起玩呢
      一个人打不过的说~


      IP属地:江西3楼2017-04-12 19:53
      回复
        …喵呜改图自重


        IP属地:广东来自Android客户端4楼2017-04-12 21:44
        收起回复
          你压根对地图结构不了解。比如第一个函数是在编辑器中为玩家一摆在地图上的单位。


          IP属地:湖北来自手机贴吧5楼2017-04-12 23:47
          收起回复
            先替换文本去掉p,然后查找文本Player(0)复制改成1就是两个人了


            IP属地:广东来自Android客户端7楼2017-04-13 04:15
            收起回复
              function CreateBuildingsForPlayer0 takes nothing returns nothing
              local player =Player(0)
              local player =Player(1)
              local unit u
              local integer unitID
              local trigger t
              local real life
              set u=CreateUnit(,'n000',3008.,-5440.,270.)
              set u=CreateUnit(,'ncop',4608.,-4800.,270.)
              endfunction


              IP属地:江西8楼2017-04-13 22:18
              回复
                你这是什么垃圾改法


                IP属地:上海来自Android客户端10楼2017-04-14 13:18
                回复
                  2025-06-10 16:15:56
                  广告
                  给每个函数加一个类型为玩家的参数p,局部变量赋值p调用的地方替换之


                  IP属地:上海来自Android客户端11楼2017-04-14 13:20
                  回复
                    第一步:全选jass复制到xxx.txt
                    第二步:按下Ctrl+H 将local player p=Player(0)替换为空格
                    第三步:按下Ctrl+H 将(p,替换为(Player(0), 和 将,p,替换为,Player(0), 和 将,p)替换为,Player(0))
                    第四步:在xxx.txt目录下新建一个NFTS.txt并加上
                    dim fso,f,f2,s,rs
                    set fso=createobject("scripting.filesystemobject")
                    set f1=fso.opentextfile("xxx.txt",1,false)
                    set f2=fso.createtextfile("xxx2.txt",true)
                    do while f1.atendofstream <> true
                    s=f1.readline()
                    f2.writeline(s)
                    if instr(s,"Player(0)")>0 then
                    f2.writeline(replace(s,"Player(0)","Player(1)")+"//NFTS")
                    end if
                    loop
                    f1.close()
                    f2.close()
                    第五步:修改NFTS.txt为NFTS.vbs
                    第六步:双击NFTS.vbs生成一个xxx2.txt
                    第七步:复制xxx2.txt的内容替换原来的jass
                    搞定


                    IP属地:广东12楼2017-04-14 14:36
                    回复