魔兽争霸编辑器专用脚本代码详解——深入理解jass
一、引言
魔兽争霸作为一款经典的即时战略游戏,深受玩家喜爱。在游戏中,玩家可以通过魔兽争霸地图编辑器(以下简称WE)创建自定义地图,实现独到的游戏体验。而编辑器作为WE的必不可少组成部分,能够帮助玩家编写出强大的程序,提升游戏的趣味性和挑战性。本文将详细介绍魔兽争霸编辑器中的脚本代码,揭开jass的神秘面纱。
二、什么是jass?
jass是用纯jass编写的程序。jass是一种类似于C 的脚本语言,用于编写魔兽争霸地图的脚本。jass的出现,使得玩家能够更方便地编写出功能强大的程序,为游戏增添更多乐趣。
三、魔兽争霸编辑器基础
1. 编辑器界面
打开WE,选择“编辑器”选项即可进入编辑器界面。界面中包含以下几个部分:
- 脚本编辑区:用于编写和修改脚本。
- 函数列表:显示当前脚本中定义的所有函数。
- 全局变量列表:显示当前脚本中定义的所有全局变量。
- 单位列表:显示当前脚本中定义的所有单位。
- 物品列表:显示当前脚本中定义的所有物品。
2. 脚本结构
一个完整的脚本涵盖以下几个部分:
- 脚本入口:`function Init takes nothing returns nothing`用于初始化。
- 主函数:`function MnLoop takes nothing returns nothing`,用于循环实施逻辑。
- 辅助函数:依照需要编写,用于实现特定功能。
四、jass脚本代码详解
1. 脚本入口
```jass
function Init takes nothing returns nothing
// 初始化
call SetComputation(Agressive)
call SetScore(0, 0)
call SetScore(0, 1)
endfunction
```
`SetComputation`函数用于设置的计算方法例如:Agressive表示攻击型。
`SetScore`函数用于设置的得分,之一个参数为玩家编号,第二个参数为得分类型(0为金钱,1为资源)。
2. 主函数
```jass
function MnLoop takes nothing returns nothing
local integer frameCount = 0
loop
// 每隔一段时间施行一次逻辑
call YDWEIntervalAction(100)
// 逻辑
call Action()
// 更新帧数
set frameCount = frameCount 1
endloop
endfunction
```
`YDWEIntervalAction`函数用于设置施行逻辑的时间间隔单位为毫秒。
`Action`函数为逻辑函数玩家可在此函数中编写的战斗策略。
3. 辅助函数
以下是一个简单的辅助函数示例,用于创建一个单位:
```jass
function CreateUnit takes nothing returns nothing
local unit u = CreateUnitByName('hfoo', GetPlayerUnitSelection(Player(0), 0), 0)
call SetUnitPosition(u, GetRandomReal(0, 10000), GetRandomReal(0, 10000))
call SelectUnit(u, true)
call UnitAddAbility(u, 'Ahil')
call UnitMakeAbility(u, 'Ahil')
endfunction
```
`CreateUnitByName`函数用于创建单位,之一个参数为单位名称,第二个参数为玩家单位,第三个参数为位置索引。
`SetUnitPosition`函数用于设置单位位置。
`SelectUnit`函数用于选择单位。
`UnitAddAbility`函数用于给单位添加技能。
`UnitMakeAbility`函数用于使单位利用技能。
五、总结
本文详细介绍了魔兽争霸编辑器中的jass脚本代码,涵盖脚本入口、主函数和辅助函数。通过理解这些代码,玩家能够更好地编写出功能强大的程序提升游戏的趣味性和挑战性。在接下来的文章中,咱们将进一步探讨jass的高级技巧帮助玩家打造出更优秀的。