jass代码看得云里雾里……
求高手给个东西,或者教教我……
jass代码看得云里雾里……
求高手给个东西,或者教教我……
第二天(jass与触发器的关系与运行原理) 1.先按F4打开一个触发器 2.然后新建一个触发器(CTRL+T) 3.如图,菜单栏->编辑->转换为自定义文本(CTRL+E+X) 下载 (43.18 KB) 2009-9-19 15:03 4.如图,这就将这个触发转换为自定义文本了,现在可以自由输入任何信息,这就是编写jass的界面了- - 下载 (57.71 KB) 2009-9-19 15:03 + Shingo Jass Highlighter 0.41 function Trig_Display_Actions takes nothing returns nothing endfunction //=========================================================================== function InitTrig_Display takes nothing returns nothing set gg_trg_Display = CreateTrigger( ) call TriggerAddAction( gg_trg_Display, function Trig_Display_Actions ) endfunction 当一个触发器被转换为jass文本后,会出现以上的代码. 我们新建的触发器只更改了触发器的名字,事件,环境,动作都没有写的情况下,就是以上的代码了 触发器的运行顺序与关系(缩略图被截取了一部分,请大家放大) 下载 (48.95 KB) 2009-9-19 21:48 上图中我已经标示出了这些代码的运行先后顺序.对应的1,2,3,4,5,6. 框中的内容都可以修改的,但是必须对应,名字必须一样. 首先我们可以看出这行代码不是我们平常所认识的由上至下,而是顺序混乱.那么为什么会按照这个顺序运行呢,下面我来讲解一下. 首先大家可以看到我标示的红色矩形边框. InitTrig_Display 与 触发器上的 Display 其实InitTrig_Display 就是 Display 也就是这个触发器.在触发器界面中不会为大家显示InitTrig_前缀,是因为让大家阅读方便.再转换成jass后,其实触发器也是由一个变量所保存的.至于这个变量在何处进行声明的,为什么我们直接转换成为jass后看不见这个声明部分,明天我会带大家进一步的了解. 首先. function:运行,也就是运行InitTrig_Display.也就是运行Display触发器.所以他会第一个执行. 因为有两个function.没有任何经验的朋友可能会混淆,为什么上面的function不先运行呢? 因为InitTrig_Display才代表这个触发器,上面的Trig_Display_Actions只是InitTrig_Dsiplay要调用的一个处理信息用的东西(函数).大家只要牢记这样一个规则就可以很容易的识别第一个会运行的是哪行. InitTrig_(名字,与触发器名字一样,也不会再有后缀) 比如你的触发器名字叫Display.那么代码就一定会从function InitTrig_Display .... 这样开始运行,大家只要看function 和 InitTrig_ 就可以分辨了. 从function开始到endfunction为一部分,我们称它为"块".为了方便认识. 然后第二行,也是第二个运行的,set gg_trg_display = CreateTrigger() set:设置变量 gg_trg_display:变量的名称 =:给gg_trg_display赋值,也就是让gg_trg_display 是上面的东西. CreateTrigger():一个函数,意思是调用一个函数,这个函数我们就可以从字面上的意思了解,Create(创造),Trigger(触发器).也就是创造触发器了. set gg_trg_display = CreateTrigger()的意思就是新建一个触发器,用gg_trg_display保存. 第三行,也是第三步运行的:call TriggerAddAction(gg_trg_display,function Trig_Display_Actions) call:调用函数 TriggerAddAction:函数名称 TriggerAddAction后面的():是TriggerAddAction函数运行所需要的参数. gg_trg_display:刚才的触发器名称 function:运行 Trig_Display_Actions:函数名称 我们先不深究这段代码的具体意义. 粗略的解释一下.这行代码会做什么事情 这个函数是默认会添加给所有触发器的,从字面上的意思理解就是Trigger(触发器)Add(添加)Action(动作) 所以这行的代码就是触发器的动作了. 然后后面的括号部分则具体指明了,为哪个触发器运行哪个函数(具体处理流程) 所以我们看出实际上,这段代码是为gg_trg_display这个触发器添加并运行了动作. 然后很容易理解的,function Trig_Display_Actions 就 进入了 第四步,因为我们可以看到两个同样的名称. 下载 (45.73 KB) 2009-9-19 22:34 第四步我就不重复解释一遍了,就是运行Trig_Dsiplay_Actions 这个函数. 第五步:endfunction,因为这个函数里没有内容,也因为我们没有给触发器加上任何东西,所以这个触发器什么也没干,动作当然是什么处理语句都没有.到endfunction就退出了函数. 也就是[jass]call TriggerAddAction(gg_trg_display,Trig_Display_Actions)这一行才真正的运行完毕了. 下载 (48.59 KB) 2009-9-19 22:34 第六步:endfunction,到这里才算真正结束了整个触发器的运行,也就是这个触发器运行完毕了. |
别说是超人来了 就是神仙来了 也是狒狒
根本就没这样的工具