众所周知War3编辑器非常强大,这种强大不仅是因为其拥有诸如地形编辑器、开关编辑器、声音编辑器、物体编辑器、战役编辑器、AI编辑器、物体管理器、输入管理器等非常全面且易于使用的功能,更为重要的是在其基础上MOD爱好者通过很简单的操作即可实现各式各样的场景关卡,很容易的就可以把自己所策划的游戏案例在其基础上进行实现。而这有得益于其灵活多变的触发器系统。
前面我们通过4篇文章简单介绍了War3的触发器系统,我们可以简单通过编写游戏规则来实现我们策划的游戏,而不用过多关注游戏底层的实现。前文中我们提到在所有自定义场景的入口函数(main)中都需要调用InitBlizzard函数来初始化基础脚本。下面我们就对暴雪提供给我们的基础脚本进行简单的分析。
笔者当前的War3版本为1.24e(6059),从网上下载一个用于查看暴雪资源包(mpq)内容的工具,我用的是JassCraft(推荐: ))。
打开war3安装目录下的War3x.mpq(一个比较大的patch包),在Scripts目录下我们就可以看到暴雪为实现触发器脚本而提供的大量脚本资源了,脚本资源分为三种格式:
.j Jass2脚本文件
.ai 怪物AI脚本
.pld Loading...文件,就是玩战役时候看到的那些
最新版本资源包中包含4个脚本文件:
Common.j
JASS脚本接口和类型定义。
InitCheats.j
初始化调试所用到的触发器。
Cheats.j
暴雪扩展的调试脚本。通过TriggerRegisterPlayerChatEvent()函数向系统注册触发器用于侦听聊天消息识别调试指令并作出相应Action。
Blizzard.j
提供了游戏中常用的各种公用函数,下面是来自于forums.wasabistudio.ca整理的相关资料,我就不再重复造轮子了:
- 一般函數
- 中立建築函數
- 事件函數
- 任務函數
- 使用者函數
- 其他函數
- 其他雜項設定
- 動畫函數
- 可救部隊函數
- 可毀物函數
- 同盟函數
- 多重版函數
- 對話函數
- 工具建構
- 常數與變數
- 戰役函數
- 攝影機函數
- 數學函數
- 文字函數
- 文字標籤函數
- 正規模板
- 特效函數
- 環境函數
- 科技研究函數
- 群組勢力函數
- 英雄物品函數
- 計分版函數
- 計時器函數
- 部隊函數
- 除錯函數
- 電影相關函數
- 音效函數