那么我再盖一层楼,用来写如果快速找到需要编写的触发的相对应的jass函数。
首先新建一个触发,然后把想要查找的触发语句加上去,然后复制该触发,粘贴,转换成自定义格式,然后找到该触发的语句。
1,随便写一个创建单位的触发。
2,转成jass,找到创建单位的语句.。
[jass]call CreateNUnitsAtLoc( 1, 'hfoo', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING )[/jass]
3,在bj函数表中查询该函数的定义.
[jass]function CreateUnitAtLocSaveLast takes player id, integer unitid, location loc, real face returns unit
if (unitid == 'ugol') then
set bj_lastCreatedUnit = CreateBlightedGoldmine(id, GetLocationX(loc), GetLocationY(loc), face)
else
set bj_lastCreatedUnit = CreateUnitAtLoc(id, unitid, loc, face)
endif
return bj_lastCreatedUnit
endfunction
//===========================================================================
function GetLastCreatedUnit takes nothing returns unit
return bj_lastCreatedUnit
endfunction
//===========================================================================
function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
call GroupClear(bj_lastCreatedGroup)
loop
set count = count - 1
exitwhen count < 0
call CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
call GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
endloop
return bj_lastCreatedGroup
endfunction[/jass]
4,我们可以看到,bj函数里面的定义其实就是循环调用了CreateUnitAtLocSaveLast函数,而CreateUnitAtLocSaveLast函数则是使用了cj函数中的CreateUnitAtLoc.
5,同理.我们将一个暂停单位的触发转成jass,那么就会找到PauseUnitBJ.
[jass]function PauseUnitBJ takes boolean pause, unit whichUnit returns nothing
call PauseUnit(whichUnit, pause)
endfunction[/jass]
而函数定义里面的PauseUnit则就是cj里面的函数.