War3是什么编程语言写的
1个回答
2017-02-10 · 知道合伙人互联网行家
关注
展开全部
JASS(正确地说是JASS 2)是魔兽3的程序语言,用于控制游戏和地图的进行,也是魔兽游戏和地图的基础。 地图编辑器中摆放的单位(Unit),区域(Region) ,触发(Trigger)……等,最终都会被翻译成JASS语言存在地图文件里,在游戏时被使用。JASS在语法结构上比较接近Basic,同时也引用了许多C的东西。如果读者有接触过这二种编程语言,相信一定能很快上手!如何使用JASS? 触发编辑器中的 Edit =>Convert To Custom Text 将触发转成文字型态。 在触发编辑器下面选 Actions => Custom Script 可以插入单行JASS叙述。 此外,如果要定义所有触发都能调用的函数 JASS语言的基本函数和常量都是直接调用游戏的函数,他们被存放在war3patch.mpq内的Scripts\common.j中,另外还有一些扩充函数放在war3patch.mpq内的Scripts\blizzard.j中。war3patch.mpq内的Scripts\common.ai则包含了用于设计AI的 内部函数和扩展函数,虽然AI也是用JASS码编成,但本文不探讨关于AI的设计,有兴趣者请自行研究。 地图中的触发以及物件的摆设情形等,都会被编译成JASS并储存在war3map.j文件中。读者可以到WE中的 File => Export Script 将它导出。 JASS语言以列为基本单位。每一行的代码必须有完整的意义,不能把一行的代码分两行写;也不可把两行的代码写在同一行。 JASS语言是区分大小写的,该大写就要大写;该小写就要小写。 写在//后面,直到该行结束的文字都是注解内容,这也是JASS唯一的注释语法。後面的例子会多处用到这个注释符号,这个符号和后面的注释只是用于解释代码的功能,并不会被执行到 。 在JASS中,空格的使用限制很宽松,除了某些必要的地方一定要有至少一个的空格以外,其它的地方都是可空可不空。此外,要空几格都无所谓,电脑不会因为你空了很多格就说有错。因此,使用者应多多利用空格作缩进,以使代码更易读。 和数学一样,()内的代码优先被执行。不过请注意,JASS中只有小括号()有用,中括号[]和大括号{}不可作为改变执行顺序之用。JASS错误处理 语法错误:少写一个字母,少空空格,或者把大写写成小写等,都是写JASS常犯的错误。一般来说,如果语法有问题,在存档时电脑会显示编译错误的信息,并指出是哪一行有问题,依它的指示修正即可。不过当电脑指出某行有误时,也可能是前面的几行出了问题(范围大概约1~5行),所以如果你怎么检查都看不出某行到底错在哪里的时候,检查前面的代码。此外,某些错误会导致存档时WE当掉,导致先前的辛苦付诸流水,所以请随时存档并尽量小心。 执行错误:一般会发生这种问题是指定的变量没有赋值,当电脑找不到变量的值时,由于无法继续执行,因此会无条件跳出目前的函数,如果该函数是要传回值的函数,它将不会传回值(也是无任何返回),因而可能导致调用它的函数也跳出。此外如除数为0也会造成类似的结果。 无限循环:一般这种事都是人为疏忽(忘了写exitwhen,或是触发的动作引发同一个触发,而造成无限循环等),发生机会不大。不过一旦发生可是会让War3当掉的喔。一定要学JASS吗? 当然不一定。即使是官方的战役,其程序员也只使用了GUI来完成制作。一般来说,单纯使用GUI Trigger,就可以达到大多数的功能。但是笔者还是建议对Trigger有相当了解的人学些基本的JASS写法,可以省下不少力气,且能让你的地图更不lag!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询