当前位置:文档之家› war3map.j文件

war3map.j文件

下面贴出一张空地图文件的war3map.j文件(我所谓的空地图就是什么都不写直接保存的地图),请大家仔细的对照阅读.
==========================================================
一个标准的脚本文件由几个关键的部分组成

----------------------------
第一个部分,变量声明部分

声明了脚本文件中使用的全局变量.
globals
endglobals

------------------------
第二个部分,触发器部分.

声明了地图中使用的触发器
一个标准的触发器被WE转变成脚本文件后成为2个函数
一般名字为Trig___*_Actions
InitTrig___* *为你的触发器的名字
Trig___*_Actions为实际的功能实现函数
InitTrig___*为触发器的初始化函数
这是整个脚本文件最关键的部分

---------------------------
第三个部分,用户自定义触发器的注册

这个是在下面的函数中实现的
function InitCustomTriggers takes nothing returns nothing
call InitTrig___*( )
endfunction
在函数体中call InitTrig___*()就完成了注册

----------------------------
第四个部分,运行初始触发器 //就是事件为"地图初始化"的触发器


function RunInitializationTriggers takes nothing returns nothing
call ConditionalTriggerExecute( gg_trg___* )
endfunction
注册完成后就可以开始运行触发器监视游戏的运行了

----------------------------
第五个部分,主函数main

这个是脚本文件真正的入口,游戏是从这里开始运行的
function main takes nothing returns nothing
endfunction


----------------------------
第六部分,地图设置

function config takes nothing returns nothing
endfunction


----------------------------


其实函数名都不是固定的,都是可以改的,但是初学做图的人而且不熟悉编程的人还是按照系统原始的命名规则哦
这个是系列第一篇,以后会循序渐进的对整个JASS系统进行讲解,请大家期待以后的哦~~~大家多多支持多多顶啊
其实最重要的还是要敢于阅读,不要怕长哦,特别是WE自动生成的脚本文件都非常规范,很容易阅读的
本来准备把空白地图的war3map.j传上来的,但是因为不知道怎么传附件,所以就没办法了.
但是建议大家解一个war3map.j文件出来对照着看,任何脚本文件都是这个框架.


----------------------------
第二讲


准备讲的是第一讲中提到的war3map.j的第一部分变量声明部分
也就是写在
globals
endglobals
之间的部分

----------------------------
JASS的变量类型很多,基本都是代表的地图中的某一个对象
随便打开一个RPG地图的war3map.j文件 就可以看到密密麻麻的全局变量定义
----------------------------
声明一个变量的格式是


对于指针型变量
变量声明符 
变量名=null
----------------------------


对于一般变量

变量声明符 变量名
其实我也不知道到底哪些是指针变量哪些是一般变量...
但是可以确定的是最常改的触发器是指针性变量 也就是说必须 trigger 变量名=null
和其他大部分编程语言一样,变量必须先声明后使用

eg.
trigger gg_trg_orbfinish=null //声明一个触发器变量gg_trg_orbfinish

在加入自己的触发器前要在
globals
endglobals
中声明自己的触发器变量哦

常用的有 unit(单位变量),integer(整数变量),real(实型变量),player(玩家变量),rect(区域变量)

----------------------------
第三讲

整个war3map.j的中枢,触发器部分
在endglobals后面就是函数的定义部分
一般来说,在WE中写好的触发器会被WE自动转换成2个函数
Trig___*_Actions
InitTrig___*
有点英语基础的朋友应该可以看懂哦,Trig___*_Actions为触发器实际的动作,InitTrig___*为触发器的初始化部分
function Trig___*_Actions takes nothing returns nothing
endfunction
这个函数基本没什么好讲的,想实现什么功能就写什么上去
但是
function InitTrig___* takes nothing returns nothing
endfunction
----------------------------

必须要注意一点
下面贴一部分代码
function InitTrig___* takes nothing returns nothing
set gg_trg___* = CreateTrigger()
call TriggerAddAction( gg_trg___* , function Trig___*_Actions)
endfunction
大家注意到没有,
call TriggerAddAction(gg_trg___* , function Trig___*_Actions)
gg_trg___*就是第一部分在globals endglobals中声明的trigger类型的变量
而Trig___*_Actions就是该触发器的实际动作
这里有一个暴雪官方的函数TriggerAddAction,它的作用是告诉系统函数Trig___*_Actions是触发器gg_trg___*的实际执行部分
让系统在触发器gg_trg___*条件满足是执行Trig___*_Actions
一般来说在触发器初始化部分还有一个函数设置触发器的出发条件,但是因为资料不全,请大家自己找RPG地图的脚本看哦
这个地方一定不可以弄错哦,不然的话。。。。你试试~~~呵呵。。。。。。。。。

----------------------------
第四讲

触发器的注册和运行触发器监视
这2个部分是很形式化的东西,WE生成的规范的war3map.j所有的触发器的注册都是在
function InitCustomTriggers takes nothing returns nothing
call InitTrig___*( )
endfunction
进行的
监视全部都是在
function RunInitializationTriggers takes nothing returns nothing
call ConditionalTriggerExecute( gg_trg___* )
endfunction
进行的
在WE自动生成的war3map.j里面所有的触发器都会来这里留名
自己手工加触发器的化记得在这两处加上
call InitTrig___*( )
call ConditionalTriggerExecute( gg_trg___* )哦

如果想读懂WE自动生成的war3map.j文件的化就基本是这个结构了

----------------------------



wa

r3map.j的结构大体就是这个样子了,请大家注意,我在讲述的时候一直使用的一个词
WE自动生成的
这个是我讲解的基础,因为不可能真正有哪一门语言这么死板,规定了必须初始化在什么函数中进行
执行在什么地方进行
----------------------------


我做这篇文章的目的是为了大家在打开war3map.j的时候看着几千行代码的时候能够不眼晕
能够找到你真正需要的东西

相关主题
文本预览
相关文档 最新文档