|
发表于 2008-2-8 04:03:16
|
显示全部楼层
举个例子
[jass]
function A takes nothing returns nothing
endfunction
function B takes nothing returns nothing
call A()
endfunction
[/jass]
上面是正确的
[jass]
function A takes nothing returns nothing
call B()
endfunction
function B takes nothing returns nothing
endfunction
[/jass]
这个就是错的,在函数A里面系统还没认识函数B。
T最终会转换成Jass,并且会放在自定义脚本下面。
一个脚本文件的顺序是
[jass]
globals
//声明全局变量
trigger gg_trg_A =null//假设声明一个A触发器
endglobals
//---------------------------------------------------------------
//这里是自定义脚本代码
//---------------------------------------------------------------
function Trig_A_Action takes nothing returns nothing
//动作
endfunction
function Trig_A_CondFunctakes nothing returns boolean
//条件
return true//或者false
endfunction
function InitTrig_A takes nothing returns nothing
set gg_trg_A=CreateTrigger()
call TriggerAddCondition(gg_trg_A,Condition(function Trig_A_CondFunc)
call TriggerAddAction(gg_trg_A,function Trig_A_Action)
call TriggerRegisterAnyUnitEvent(gg_trg_A,EVENT_UNIT_ATTACK)//这里假设事件是攻击
endfunction
//main() 和config()是游戏开始的时候自动调用的两个函数
function main takes nothing returns nothing
//初始化工作
call InitTrig_A()
//其他工作
endfunction
function config takes nothing returns nothing
//初始化工作
endfunction
//注意 Trig_A_Action() 等与A相关的函数仅仅是WE生成一个函数,
//函数名并不能代表什么,仅仅是让系统记住。如果你用某些优化图的工具后
//函数名可能变成 A() B()等,同时在main()里面也会变化
//
[/jass] |
|