我现在在改一张killzone的外国图
魔兽地图编辑器吧
全部回复
仅看楼主
level 6
冰蓝幻影 楼主
这张图是单人游戏的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
2017年04月12日 11点04分 1
level 6
冰蓝幻影 楼主
英文玩家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
2017年04月12日 11点04分 2
level 6
冰蓝幻影 楼主
2楼的这段复活应该就是玩家1的复活效果吧~[不高兴]好愁啊~这张单人rpg想和朋友一起玩呢
一个人打不过的说~
2017年04月12日 11点04分 3
level 14
…喵呜改图自重
2017年04月12日 13点04分 4
别这样~外国图自娱自乐
2017年04月12日 13点04分
level 13
你压根对地图结构不了解。比如第一个函数是在编辑器中为玩家一摆在地图上的单位。
2017年04月12日 15点04分 5
我查看过了,这个单位是用来买英雄的~所以按道理玩家2也应该有个这样的单位
2017年04月13日 12点04分
level 14
先替换文本去掉p,然后查找文本Player(0)复制改成1就是两个人了
2017年04月12日 20点04分 7
真TM机智[滑稽]
2017年04月12日 20点04分
额,你这样的话,那玩家1就不能玩了,变成只能玩家2玩了
2017年04月13日 12点04分
@冰蓝幻影 你认真看了吗?分得清替换的是什么复制的是什么吗?
2017年04月13日 12点04分
回复
淡定9527吧
:楼下这样吗,把P替换掉了,然后把有Player(0)的复制了一遍后把0改成1
2017年04月13日 14点04分
level 6
冰蓝幻影 楼主
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
2017年04月13日 14点04分 8
level 10
你这是什么垃圾改法
2017年04月14日 05点04分 10
level 10
给每个函数加一个类型为玩家的参数p,局部变量赋值p调用的地方替换之
2017年04月14日 05点04分 11
level 14
第一步:全选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
搞定
2017年04月14日 06点04分 12
1