偶久网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索

网站魔兽热门地图

查看: 13167|回复: 9

魔兽争霸TD地图手把手教你怎样改成只有一个出口(掉线玩家方不再出怪)

  [复制链接]
281357376
发表于 2011-7-17 11:22:35
本帖最后由 281357376 于 2011-7-17 11:49 编辑

首先了去网站下个改图一条龙
安装好后 打开SE 选择你需要的图 鼠标右键把J文件 解压出来,SE打不开可以用HWM解压J文件
然后打开改图一条龙上的J语编辑并打开刚解压的J文件
再分别在globals下面一行添加

location udg_danji3=null
location udg_danji4=null
real array udg_danji1
real udg_danji2=0
integer udg_danji0=0
trigger gg_trg_danji1=null
trigger gg_trg_danji2=null

未命名.jpg



然后搜索endglobals
在endglobals下面一行添加
function danji_1 takes nothing returns nothing
local integer i=0
set i=0
loop
exitwhen(i>1)
set udg_danji1=0
set i=i+1
endloop
set udg_danji2=0
set udg_danji0=0
endfunction
function Trig_danji1_Conditions takes nothing returns boolean
if(not(IsUnitEnemy(GetTriggerUnit(),Player(0))==true))then
return false
endif
return true
endfunction
function Trig_danji1_Func005Func001C takes nothing returns boolean
if(not(udg_danji1[udg_danji0]<=udg_danji2))then
return false
endif
return true
endfunction
function Trig_danji1_Func006Func001C takes nothing returns boolean
if(not(GetPlayerSlotState(ConvertedPlayer(udg_danji0))!=PLAYER_SLOT_STATE_PLAYING))then
return false
endif
if(not(udg_danji2==udg_danji1[udg_danji0]))then
return false
endif
return true
endfunction
function Trig_danji1_Actions takes nothing returns nothing
set udg_danji3=GetUnitLoc(GetTriggerUnit())
call SetUnitScalePercent(GetTriggerUnit(),70.00,70.00,70.00)
set udg_danji0=1
loop
exitwhen udg_danji0>10
set udg_danji4=GetPlayerStartLocationLoc(ConvertedPlayer(udg_danji0))
set udg_danji1[udg_danji0]=DistanceBetweenPoints(udg_danji3,udg_danji4)
set udg_danji2=udg_danji1[udg_danji0]
call RemoveLocation(udg_danji4)
set udg_danji0=udg_danji0+1
endloop
call RemoveLocation(udg_danji3)
set udg_danji0=1
loop
exitwhen udg_danji0>10
if(Trig_danji1_Func005Func001C())then
set udg_danji2=udg_danji1[udg_danji0]
call SetUnitUserData(GetTriggerUnit(),udg_danji0)
else
endif
set udg_danji0=udg_danji0+1
endloop
set udg_danji0=1
loop
exitwhen udg_danji0>10
if(Trig_danji1_Func006Func001C())then
call KillUnit(GetTriggerUnit())
call RemoveUnit(GetTriggerUnit())
else
endif
set udg_danji0=udg_danji0+1
endloop
endfunction
function InitTrig_danji1 takes nothing returns nothing
set gg_trg_danji1=CreateTrigger()
call TriggerRegisterEnterRectSimple(gg_trg_danji1,GetPlayableMapRect())
call TriggerAddCondition(gg_trg_danji1,Condition(function Trig_danji1_Conditions))
call TriggerAddAction(gg_trg_danji1,function Trig_danji1_Actions)
endfunction
function Trig_danji2_Func002A takes nothing returns nothing
call RemoveUnit(GetEnumUnit())
endfunction
function Trig_danji2_Func003001002 takes nothing returns boolean
return(IsUnitEnemy(GetFilterUnit(),Player(0))==true)
endfunction
function Trig_danji2_Func003Func001C takes nothing returns boolean
if(not(GetUnitUserData(GetEnumUnit())==GetConvertedPlayerId(GetTriggerPlayer())))then
return false
endif
return true
endfunction
function Trig_danji2_Func003A takes nothing returns nothing
if(Trig_danji2_Func003Func001C())then
call ExplodeUnitBJ(GetEnumUnit())
else
endif
endfunction
function Trig_danji2_Actions takes nothing returns nothing
call DisplayTimedTextToForce(GetPlayersAll(),10.00,(GetPlayerName(GetTriggerPlayer())+"  绂诲紑浜嗘父鎴忥紒宸插垹闄ゅ尯鍩熷唴鍗曚綅鍜屾晫浜恒 ?))
call ForGroupBJ(GetUnitsOfPlayerAll(GetTriggerPlayer()),function Trig_danji2_Func002A)
call ForGroupBJ(GetUnitsInRectMatching(GetPlayableMapRect(),Condition(function Trig_danji2_Func003001002)),function Trig_danji2_Func003A)
endfunction
function InitTrig_danji2 takes nothing returns nothing
set gg_trg_danji2=CreateTrigger()
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(0))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(1))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(2))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(3))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(4))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(5))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(6))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(7))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(8))
call TriggerRegisterPlayerEventLeave(gg_trg_danji2,Player(9))
call TriggerAddAction(gg_trg_danji2,function Trig_danji2_Actions)
endfunction
function danji_2 takes nothing returns nothing
call InitTrig_danji1()
call InitTrig_danji2()
endfunction

未命名2.jpg
然后搜索InitBlizzard
然后在call  InitBlizzard的下面一行添加
call danji_1()
call danji_2()
未命名3.jpg
然后保存J文件,用SE 打开地图,替换J文件,重压缩就可以了

发表于 2011-7-21 08:22:15
你写J语谁看的懂啊,发下触发吧
DevilBaby.
发表于 2011-8-18 14:47:32
12323123123213
mc4696
发表于 2012-1-21 13:35:30
看看
发表于 2012-3-9 17:08:17
想知道到底是改什么啊,怎么也不说清楚
l123c3
发表于 2012-3-17 02:23:54
ddddd
wang96999888
发表于 2012-10-29 22:07:18
看看先。
发表于 2012-11-18 00:54:55
zxfsdgfsgsg
本站网友  发表于 2014-12-12 13:53:45
楼主写错了一处(打※号处):
在endglobals下面一行添加
function danji_1 takes nothing returns nothing
local integer i=0
set i=0
loop
exitwhen(i>1)
set udg_danji1=0 ※
set i=i+1
endloop
set udg_danji2=0
set udg_danji0=0
endfunction
应改为:
在endglobals下面一行添加
function danji_1 takes nothing returns nothing
local integer i=0
set i=0
loop
exitwhen(i>1)
set udg_danji1[i]=0 ※
set i=i+1
endloop
set udg_danji2=0
set udg_danji0=0
endfunction
快速回复 返回顶部 返回列表