【天啸推荐】魔兽地图编辑器(World Editor)使用技巧

社区服务
高级搜索
猴岛论坛综合游戏交流【天啸推荐】魔兽地图编辑器(World Editor)使用技巧
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
4个回复

【天啸推荐】魔兽地图编辑器(World Editor)使用技巧

楼层直达
   天啸°

ZxID:13942419

等级: 元老
不忘初心,方得始终!

举报 只看楼主 使用道具 楼主   发表于: 2011-07-27 0
做3C地图那要先了解下编辑器.物品,技能,单位,触发器,地形,装饰物,游戏平行性.等等. 
玩这么久的3C中看来先有识那个触发器.物品与技能其他人性化就行了. 
最好的方法打开一张没有经过加密过的地图来学习下,看人点样设脚本与技能,物品等. 
不过现在的3C基本上是加密过的,触发器看不了,除了你识jass语言. 

下面是本人收藏回来的步骤,希望对你有用 
(那些相关软件你去百度找下.) 

************************ 
了解地图修改地图基本步骤 
什么是地图加密 
地图加密就是通过特殊方法破坏地图文件,使它可以在魔兽中运行,却不能被World Editor读取。 

目前有哪些加密方法 
现在已有很多种加密War3地图的方法。 
1: 破坏 MPQ 文件头大小信息 
魔兽争霸III的地图就像一个Zip文件。 首先是一个 512 字节大小的地图文件头,它记录了一些信息。然后附带一个MPQ 档案, 
这个MPQ 档案中包含了一个地图所需的全部文件。 MPQ 文件的前4个字节是一个标识符。它可以被识别为 ’MPQ’。接下来的4个字节 
是文件头大小,通常是16进制 hex 0x20 00 00 00的形式。 有些加密者将 0x20 00 00 00 改成一个随机数值,例如hex 0xF6 6E BA 76这个 
样子。 目前多数 MPQ 程序因为大小错误而无法打开这样的 MPQ 档案。而 Warcraft3 似乎忽略了这种错误的文件头大小,所以这些地图 
仍可以在魔兽中运行。 
这种加密只要把数值改回 0x20 00 00 00就可以轻易破解掉。 
为了能够正常打开地图并提取文件信息,本网站(wc3sear.ch)将自动修复这类加密文件。 

(:这一段的术语翻译可能并不正确,因为我对文件结构本就知之甚少。望谅解) 
2: 删除地图内的 war3map.wtg文件 
war3map.wtg 文件中包含了地图中所用到的变量,触发,数组等必需信息。但这个文件只对World-Editor有用。 
war3map.wtg 文件丢失或者被改动都将导致 World-Editor 无法读取地图。 
当然,这种加密也可以完美地解除。 通过一个小程序你就可以利用war3map.j 文件中存储的信息来重建 war3map.wtg 文件。 
本网站忽略掉war3map.wtg 文件,而是直接从war3map.j 文件中提取诸如触发数目,变量数目等信息。 
你可能注意到,既然一个简单的 PHP 脚本就可以提取出 war3map.j,那么使用其它脚本就有可能重建war3map.wtg 文件。 

2b: 删除 war3map.w3c, war3map.w3s, war3map.w3r 文件 
war3map.w3c 存储了world editor的镜头设置。 war3map.w3s 存储了world editor在地图中所设置的声音。 war3map.w3r 存储了world editor中的区域设定。 
这几个文件同样只对World Editor有用,而且同样可以通过 war3map.j 文件进行重建。参见上面的 “删除地图内的 war3map.wtg 文件“ 。 

3: 隐藏 war3map.j 文件 
有些耍小聪明的加密者找到了隐藏 war3map.j 的办法,这样我们就无法用一个网页脚本来轻易将它解出了。 
正规的地图中 war3map.j 是直接保存在根目录里的。而这些加密者发现把它移动到 “Scripts\“下面也可以正常运行。 
只要知道了这一点,就很容易破解这种加密 ;-) 非常感谢 BahamutZERO 和Quantam 帮我解决这种方法。 

4: 打乱war3map.j 文件 
有些加密者认为自己很聪明,他们用随机数字重命名了所有的变量和函数。这使常人很难读懂 war3map.j 文件。但这对脚本是不起作用的。 
我为这个网站所写的脚本根本不在乎关键字,它只搜索模式,所以我仍然可以从地图中提取我所需要的信息 ;-) 
只要借助能够重建 war3map.wtg 的脚本,这种加密方法同样可以破解。恐怕你唯一没法改变的就是已经重命名的变量和函数。 
但这并不重要,因为你仍然可以用world editor打开它。 ;-) 

加密的安全性如何 
正如你所读到的,地图加密也许可以避免菜鸟们用world editor打开你的地图。 
但事实是只要魔兽可以运行你的地图,就有办法修复它,从而可以用 World Editor打开它。 

地图加密的利弊 
有利面: 
- 让菜鸟们不能打开你的地图并篡改它。 
- 让你显得很聪明 
- 因为删除了某些文件而使地图变小。 
不利面: 
- 它实际上是没用的 
- 大家不能研究你的地图 
- 自己丢失原版后将无法对地图进行修改 

地图的破译 
大家拿到文件包以后可以看到里边有很多文件, 
这个都是用mpqediten解开地图以后的文件 
只不过我根据这些文件的文件头整理了一下,重新命了一次名。 
这些文件都是地图的原始数据我们可以*直接修改它们来达到修改地图的内容。 
下边是一些有用的文件的列表 

war3map.w3u 单位 
war3map.w3t 物品 
war3map.w3b 可破坏的 
war3map.w3d 地形装饰物 
war3map.w3a 技能 
war3map.w3h 魔法特效 
war3map.w3q 升级 
等等,这些都是地图的基本设置文件, 

我们可以用WE中的物品编辑器直接导入进行编辑。 
war3map.wtg 触发事件 
这个是保存各种触发事件的地方。我们在地图里搞装备合成,刷怪,作任务 
等,都是依*触发指令来完成的。但是一般的加密地图都把war3map.wtg和war3map.wts删除了。 

war3map.j jass数据库 
这个是地图的核心,所有跟地图设置有关的资料如地图摆放的建筑物、角色、技能、触发事件的指令等等,只可惜是用jass语言保存的。如果你懂jass的话可以在这个文件里任意改动任何数据。包括触发指令。 
war3map.shd 地层数据 
war3map.wpm mp3,wav等媒体文件的设置 
war3mapPreview.tga 地图缩略图 
war3mapmap.blp 图形文件的设置 
war3mapmisc.txt 游戏平衡常数 
下边是最重要的,因为很多人把文件修改完以后都不知道该怎么还原。 

我们现在就要用到mpqediten或MPQWorkshop了 
新建一个MPQ文件,然后把那些文件全部添加进去再保存。 
现在你们得到一个MPQ文件了。下一步是添加w3x地图文件的文件头 
你们用UltraEdit-32随便打开一个w3x魔兽地图文件和自己的mpq文件。 
对比一下,你们就会发现w3x文件比MPQ文件多了一个16字节的文件头 
后边的事我不用说了吧,w3x文件中复制,然后在MPQ中粘贴这个 
16字节的文件头,然后把后缀名MPQ改成w3x就可以了。 
修改地图就是这么简单,欢迎大家修改地图,尤其是好地图 

-======= 基本常规问题类 =======- [G-1] 
-=怎么手动加密地图啊??=- 
1) 首先 FILE -> EXPORT SCRIPTS ~~导出一个脚本文件命名为 WAR3MAP.J ~~ 
2) 建立两个空文件~~命名为 WAR3MAP.WTG 、WAR3MAP.WCT ~~ 
3) 建立一个空文件命名为 (listfile) ~~ 
4) 把上面四个文件都用 IMPORT MANAGER 导入~~ 
5) 全部自己定义路径~~具体如下: 
SCRIPTS\WAR3MAP.J 
WAR3MAP.WTG 
WAR3MAP.WCT 
(listfile) 

-=怎么才能让英雄可以超过10级啊?=- 
Menu(菜单) -> Advenced(高阶) -> Gameplay Constant(游戏<平衡>常数) -> Hero - Max Level(英雄 - 最大等级) 

-=怎麼让五级以上英雄打野生动物也能得到经验?=- 
Menu -> Advenced -> Gameplay Constant -> Hero Xp Gained - Creep Reduction Table(英雄经验获取 - 野生单位经验表) 
表中每一项表示每一等级可以获得的经验百分比~~如: 
第一个数值为等级 1 的英雄杀掉野生动物可得到的经验的百分比~~ 
第二个数值为等级 2 的英雄~~如此类推~~ 

-=怎么修改游戏读取时显示的小地图图片啊?=- 
1] 先做好你希望显示的小地图图片,格式要求是 24/32bit 的 TGA 格式,尺寸为 256x256。 
2] 然后使用 TGA<->BLP工具 转换成 BLP 格式。>>点击下载转换工具<< 
3] 用 WE 开启地图,打开 IMPORT MANAGER(F12) ~~将图片导入。 
4] 如果希望图片仅在读取事有效,则重命名为 WAR3MAPPREVIEW.BLP 。 
5] 如果希望覆盖掉游戏中的小地图,则重命名为 WAR3MAPMAP.BLP 。 

-=关于 Angle Attack 究竟是什么呢?=- 
Angle Attack 就是视角~~ 
很多人不明白具体的角度代表什么位置的视角~~这个图片可以很清楚的表示出来`~ 
今天翻以前的教程找到的~~:)~~ 
来点掌声哦! 

啊?我用WE感觉好慢!=- 
Menu(菜单) -> Window(窗口) -> Brush List(图刷列表) 
把这个列表关闭后速度就会得到很大程度的提升了~~ 

-=我想把地图A的触发复制到地图B,但是为什么总是缺少变量而出错啊?=- 
因为在复制TRIGGER的时候不会复制TRIGGER用到的变量,所以就会出错了,解决方法是打开复制未知变量的功能: 
Menu -> File -> Preferences -> General -> Automatically create unknown variables while pasting triggers 

-=怎么才能给字加上颜色啊?=- 
在WAR3中~~经常可以看到带颜色的字~~无论是地图名称~~还是技能道具说明~~或者对话什么什么地方~~都可以用 显色标签 来为特定的字加颜色~~ 
标签的格式是 |CTTRRGGBBTEXT|R 
‘|C’ 是显色标签的开始部分~~ 
‘|R’ 是显色标签的结束部分~~ 
‘TTRRGGBB’ 是色彩代码~~采用4组2位16进制来确定颜色~~ 
第一组 ‘TT’ 表示透明度~~ 
第二组 ‘RR’ 表示红色~~ 
第二组 ‘GG’ 表示绿色~~ 
第二组 ‘BB’ 表示蓝色~~ 
‘TEXT’ 位置就是你需要显色的文字了~~ 
[例]:|cff004444DANEXX是猪|r -> DANEXX是猪 
[注]:16进制为 0123456789ABCDEF ~~ 
Set Player_colors[1] = |cffff0303 
Set Player_colors[2] = |cff0042ff 
Set Player_colors[3] = |cff1ce6b9 
Set Player_colors[4] = |cff540081 
Set Player_colors[5] = |cfffffc00 
Set Player_colors[6] = |cfffe8a0e 
Set Player_colors[7] = |cff20c000 
Set Player_colors[8] = |cffe55bb0 
Set Player_colors[9] = |cff959697 
Set Player_colors[10] = |cff7ebff1 
Set Player_colors[11] = |cff106246 
Set Player_colors[12] = |cff492a04 

-=为啥我在这里下的有些地图电脑说太大了玩不了啊?为什么我要开始游戏的时候总是说我缺少一个对手不能开始游戏呢?=- 
这种地图需要在 SINGLE PLAYER(单一玩家) -> CUSTOM GAME(自定义游戏) 中进入~~ 

-=扩展名为 .W3N 的战役要放在哪里~~怎么才能玩啊?=- 
W3N 文件需要放在游戏目录下的 CAMPAIGNS 文件夹下面~~ 在 SINGLE PLAYER(单一玩家) -> CUSTOM CAMPAIGNS(自定义战役) 中进入~
 

                       第一章 ★ Trigger事件     第一节
 Trigger是由事件、条件、动作组成。事件是Trigger的开端,所有事件都是并行的,也就是说,在多个事件的情况下,只要触发一个事件就会执行触发器。大部分事件可以直接指定,但有部分事件却需要后期添加或者必须要有指定类型的变量才可以添加,后期添加也比较方便,后面会介绍到“动态注册事件”,这里我们先说一下具体的事件内容。
  还有需要注意到触发的关联性,比如“玩家事件”产生的触发是不可能会有“触发单位”这样的单位函数的,对应的只是“触发玩家”之类的玩家函数,但可以通过一些特殊情况转换,比如可以通过单位组动作的条件来选取玩家的单位,而且“触发单位所属玩家”就是一个很典型的单位事件调用玩家的函数。

                              第一节 ☆ 单位事件 
Unit - Specific Unit Event 
指定单位事件
Unit - Player-Owned Unit Event 
玩家单位事件 
Unit - Generic Unit Event 
一般单位事件 
Unit - Unit Enters Region 
单位进入区域 

Unit - Unit Leaves Region 
单位离开区域 
Unit - Unit Within Range 
接近指定单位 
Unit - Life 
单位生命变化 
Unit - Mana 
单位法力变化 

  这里先说明一下“指定单位”的定义,顾名思义,这个需要针对已经存在的可以直接选取的具体的单位;不单单是事件,还包括一些条件和动作;不过不同事件可以用“动态注册”来达到添加事件的目的,而条件和动作可以通过“单位类型”的变量来读取。 
三种单位事件所对应的事件稍有不同,如下表: 

Dies 
单位死亡 
共有 

Decas 
单位腐烂 
共有 

Changes owner 
改变单位所属 
共有 

Damaged 
单位接受伤害 
指定单位事件 

Gains a level 
单位提升一个等级 
共有 

Learns a Skill 
单位学习一个技能 
共有 

Becomes revivable 
单位变为可重生的 
共有 

Uses an item 
单位使用一个物品 
共有 

Acquires an item 
单位获得一个物品 
共有 

Loses an item 
单位掉落一个物品 
共有 

Sells a unit 
出售一个单位 
共有 

Sells an item (from shop) 
购买物品(从商店) 
共有 

Pawns an item (to shop) 
出售物品(到商店) 
共有 

Is attacked 
单位被攻击 
共有 

Is rescued 
单位被营救 
共有 

Selected 
单位被选择 
指定单位事件 

Deselected 
单位被取消选择 
指定单位事件 

Spawns a summoned unit 
召唤一个单位 
共有 

Begins channeling an alility 
准备施放技能 
共有 

Begins casting an ability 
开始施放技能 
共有 

Stops casting an ability 
停止施放技能 
共有 

Starts the effect of an ability 
发动技能效果 
共有 

Finishes casting an ability 
技能施放结束 
共有 

Is loaded into a transport 
被运输机装载的单位 
共有 

Acquired target 
获得一个目标 
指定单位事件 

Target in range 
获得攻击范围内目标 
指定单位事件 

Begins training a unit 
开始训练的单位 
共有 

Cancels training a unit 
取消训练的单位 
共有 

Finishes training a unit 
完成训练的单位 
共有 

Begins construction 
开始建造的单位 
玩家/一般单位事件 

Cancels construction 
取消建造的单位 
玩家/一般单位事件 

Finishes construction 
完成建筑的单位 
玩家/一般单位事件 

Begins reviving 
正在复活的单位 
共有 

Cancels reviving 
取消复活的单位 
共有 

Finishes reviving 
完成复活的单位 
共有 

Begins an upgrade 
正在升级的单位 
共有 

Cancels an upgrade 
取消升级的单位 
共有 

Finishes an upgrade 
完成升级的单位 
共有 

Begins research 
正在研究的单位 
共有 

Cancels research 
取消研究的单位 
共有 

Finishes research 
完成研究的单位 
共有 

Is issued an order targeting an object 
单位目标是物品的命令 
共有 

Is issued an order targeting a point 
单位目标是点的命令 
共有 

Is issued an order with no target 
发布没有目标的命令 
共有 


  在制作触发的时候,我们先要考虑到,自己需要在什么样的情况下运行这个触发器,然后再有选择的添加事件。 
例题1:如何让敌对的某某玩家(玩家6)某某单位(圣骑士0000)死亡后执行游戏胜利 
这里分别对应三种事件来说明各自的用法: 
1、指定单位事件: 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
(圣骑士 0000) 死亡

条件:
(死亡单位)所属是(玩家6)

动作:
游戏-设置 (凶手单位)所属玩家 胜利


2、玩家单位事件 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
(玩家6)的单位死亡

条件:
(死亡单位)是(圣骑士0000)

动作:
游戏-设置 (凶手单位)所属玩家 胜利


3、一般单位事件 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
任意单位死亡

条件:
(死亡单位)是(圣骑士 0000)
(死亡单位)所属是(玩家6 )

动作:
游戏-设置 (凶手单位)所属玩家 胜利


“单位进入区域”和“单位离开区域”这个就很好理解了,以练功房为例简单说明。 
例题2:当(大法师0001)进入(区域0000)的时候开始刷兵,单位离开(区域0000)的时候停止刷兵-练功房区域。 
1、 单位进入区域 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
单位进入(区域0000)

条件:
触发单位 等于 (大法师0001)

动作:
运行触发器 <刷兵>


2、 单位离开区域 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
单位离开(区域0000)

条件:
触发单位 等于 (大法师0001)

动作:
关闭触发器 <刷兵>


3、 刷兵<暂时只简单的调用一下,后面会细说> 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
每2秒触发事件

条件:

动作:
创建1个 步兵 在 区域0000 的中心点,面向 默认的建筑角度


PS:这里的刷兵事件触发器默认是初始关闭的。 
“接近指定单位事件”就像前面所说,需要用到具体的可指定的单位才可以使用。 
例题3:(大法师0001)靠近(圣骑士0000)500码内会召唤水元素。 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
单位进入500 范围距离 (圣骑士0000)

条件:
触发单位 等于 (大法师0001)

动作:
单位 - 对 (触发单位) 发布 人族大法师 - 召唤水元素 命令


“单位生命值变化”和“单位法力值变量”这个同样属于“指定单位”事件。 
例题4:当(大法师0001)生命值少于100的时候使物品“生命药水”。 
');//-->Trigger Tree    Present: Zoxc @ wc3campaigns  |  Migration: Greedwind    |    展开 | 收缩 | 复制
事件:
单位 - (大法师0001)的生命值变为小于 100.00

条件:

动作:
英雄 - 命令 (大法师0001) 使用 (大法师0001) 所持有的 生命药水


                                第一节 完

                            第二节 ☆ 玩家事件 

Player - Chat Message
聊天信息


Player - Cinematic Skipped
按下ESC

Player - Selection Event
选择事件

Player - Keyboard Event
键盘事件

Player - Properties
属性变化

Player - Alliance Change(Any)
同盟改变 (任何)
Player - Alliance Change(Specific)
同盟改变 (指定)
Player - Victory
胜利

Player - Defeat
失败

Player - Leaves Game
离开游戏


  玩家事件就是和玩家相关的事件(废话—。—),这个在制作事件的时候需要判断事件事件发生源是哪一个,这样才可以正确使用事件;另外玩家事件是针对单一玩家设置的,所以如果你想有几个玩家都可以触发就必须对应每一个需要触发的玩家添加事件。 
  聊天信息事件,是指捕获的玩家输入的信息,一般像输入密技之类都属于聊天信息;但这里需要说明的是,官方默认的密技是无法通过聊天信息捕获的,因此无法防止,也就是像现在大家为了防作弊而制作的各种各样的演示的原因。 
  聊天信息捕获有两种方式,一是完全匹配,二是部分匹配,以实例说明: 
  例5:让玩家输入GO来执行增加1000金币。 
1、完全匹配 
');//-->Trigger Tree    Present: |    展开 | 收缩 | 复制
事件:
玩家 - 玩家1(红色) 输入的聊天信息包含 GO ,匹配方式: 完全匹配

条件:
动作:
玩家 - 增加 1000 (触发玩家) 的 现有黄金

2、 部分匹配 
');//-->Trigger Tree    Present: |    展开 | 收缩 | 复制
事件:
玩家 - 玩家1(红色) 输入的聊天信息包含 GO ,匹配方式: 包含字符串

条件
动作:
玩家 - 增加 1000 (触发玩家) 的 现有黄金


  PS:这两个触发器运行会有什么不同呢?完全匹配的需要你输入的就是GO,而不能附带其它任何多余的字符,而包含字符串的话,类似于GOO或者GGO之类的,都会执行。 
  按下ESC键和键盘事件同属于按键事件,默认的键盘事件可以按方向键上下左右来触发,键盘事件和按下ESC事件的区别还在于,可以分别捕获按下和放开按键事件。 
  例6:按下ESC键来显示玩家当前的金币数 
');//-->Trigger Tree    Present:|    展开 | 收缩 | 复制
事件:
玩家 - 玩家1(红色) 按下Esc键

条件:
动作:
游戏 - 对 (所有玩家) 发送文本信息: (转换 ((触发玩家) 现有黄金) 为字符串)


  PS:因为显示出来的文本必须是字符串,所以需要把属于整数的黄金数转换成字符串(后面详解) 
  选择事件,就是玩家选择了一个单位后执行的事件,选择事件包括选择和取消选择两个类型。 
  例7:使玩家锁定选择(血魔法师0003),无法选择其它单位<默认设置已选择该单位> 
');//-->Trigger Tree    Present: 
事件:
玩家 - 玩家1(红色) 取消选择 一个单位

条件:
(触发单位) 等于 血魔法师 0003 <预设>

动作:
选择 - 选择 (触发单位) 对 (触发玩家)


  属性变化事件,是指玩家的某个属性发生改变,来执行触发,属性类型有如下: 
现有黄金 

现有木材 
剩余可用英雄 
金钱维持费率 
木材维修费率 
总黄金采集量 
总木材采集量 
已使用人口数 
可使用人口数 
最大人口数 
游戏得分 

例8:当立敌对的(兵步)只有2个以后,再次刷新10个兵步,步兵占用人口数2。 
');//-->Trigger Tree    Present:    |    展开 | 收缩 | 复制
事件:
玩家 - 玩家1(红色) 的 已使用人口数 变为 小于或等于 4.00

条件:
动作:
单位 - 创建 10 个 步兵 给 (触发玩家) 在 ((可用地图区域) 的中心点) ,面向角度为 默认建筑朝向 度


  PS:这里需要说明一下,属性必须是发生变化的时候才会触发的;一般情况下,我们做地图会先选择英雄,然后就会占用5个人口(默认情况下),这个时候属性就已经发生变化了,不过进行比较的话,就需要改成小于或等于5才会触发。 
  同盟改变(任何)/ 同盟改变(指定),是基于同盟关系发生变化而触发事件,前者只需要任何一项关系发生改变就会执行,后者需要在特定的情况下才会执行,同盟关系如下: 
结盟(不侵犯) 
共享视野 
共享单位 
共享完全控制权 
共享经验 
盟友魔法锁定 
救援请求 
救援回应 

  例9:当玩家1(红色)对玩家2(蓝色)设置结盟(不侵犯)后奖励玩家1(红色)1000金币。 
');//-->Trigger Tree    Present:|    展开 | 收缩 | 复制
事件:
玩家 - 玩家1(红色) 更改 结盟(不侵犯) 设置

条件:
((触发玩家) 对 玩家2(蓝色) 开启 结盟(不侵犯)) 等于 TRUE

动作:
玩家 - 增加 1000 玩家1(红色) 的 现有黄金


  PS:这里需要说明的是,同盟改变是单向设置,也就是说,如果玩家1(红色)对玩家2(蓝色)设置结盟,而玩家2(蓝色)没有设置结盟;那结果就是玩家1(红色)的单位不会主动攻击玩家2(蓝色)的单位,而玩家2(蓝色)还会主动攻击玩家1(红色)的单位,因此在设置结盟的时候必须要双方都进行操作。 
游戏胜利 / 游戏失败 / 离开游戏 
这三个都是玩家的游戏状态,都是单独执行的,很容易进行判断。 
例10:当玩家2(蓝色)离开游戏后,把所有金币给玩家1(红色) 
');//-->Trigger Tree    Present: |    展开 | 收缩 | 复制
事件:
玩家 - 玩家2(蓝色) 离开游戏

条件:
动作:
玩家 - 增加 (玩家2(蓝色) 现有黄金) 玩家1(红色) 的 现有黄金

PS:在一些地图的设置中,当其中一个玩家离开就把金钱分给其它在线的玩家,就个只需要把离开玩家的金币除以在线的玩家数量,再把这个值给所有在线玩家(利用玩家组动作,后详)。 
                                  第二节 完 

                三节 ☆ 游戏事件&普通事件&时间事件&可破坏物事件
Game - Time Of Day
游戏中时间变化

Game - Value Of Real Variable
实数变量Real数值变化

Game - Game Load
游戏读取

Game - Game Save
游戏保存

Game - Hero Abilities Button Clicked
按下英雄升级技能按钮

Game - Build Structure Button Clicked
按下建造按钮

  游戏中的时间事件通过游戏时间流逝来进行判断,可利用不同时间做不同事。而实数变量,操作方式和时间事件是一样的,区别在于,必须创建一个实数变量才可以使用这个事件,而且必须要在游戏中制造改变这个变量的事件,就像游戏时间改变会触发游戏时间变化事件一样。 
  例11:当每天6点和18点的时候,给玩家1发放500金币的工钱。 
');//-->Trigger Tree    Present:   展开 | 收缩 | 复制
事件:
游戏 - 游戏时间变为 等于 6.00
游戏 - 游戏时间变为 等于 18.00

条件:
动作:
玩家 - 增加 500 玩家1(红色) 的 现有黄金


  PS:这里用到了两个事件,前面已经提过,事件是并行的,所以这两个事件是会分别触发增加玩家黄金的事件。 
  游戏读取&游戏保存&按下英雄升级技能&按钮按下建造按钮 
  这几个事件基本上和现在的主流事件无关,适用于单机游戏时候;前两者就不用介绍了,看字面意思应该就能了解。而后两者,分别是英雄学习技能的那个红色十字被按下和农民建造按钮被按下,这两个都无法捕获触发单位,因此这几个事件可以忽略掉了。 


Map Initialization
地图初始化

  普通事件只有地图初始化事件,就是在读取地图的最后阶段执行的事件,一般作用于对变量进行赋值等并不涉及改变游戏数据的动作(比如创建多面版之类的不会被执行)。 

Time - Time Elapsed
时间流逝经过

Time - Periodic Event
周期性事件

Time - Timer Expires
计时器过期

  时间流逝事件,在正式进入地图以后开始计时,在一定程度上可以当成对游戏事件的补充,比如将时间经过设为0.01的话,就可以执行一些初始化操作而不受地图初始化的一些限制。周期性事件和时间流逝事件的区别在于,当周期性事件定义的时间到达的时候,会执行触发并重新计时,而时间流逝事件只会执行一次。 
  例12:每隔10秒创建3个骑士在(区域000),并命令他们攻击移动到(区域001) 
');//-->Trigger Tree    Present: |    展开 | 收缩 | 复制
事件:
时间 - 每 10.00 秒触发事件

条件:
动作:
For循环整数A从 1 到 3, 做动作
Loop - 动作
单位 - 创建 1 个 骑士 给 玩家1(红色) 在 (矩形区域 000 <预设> 的中心点) ,面向角度为 默认建筑朝向 度
单位 - 对 (最后创建的单位) 发布 攻击移动 命令到目标点: (矩形区域 001 <预设> 的中心点) 


  PS:这里用到了FOR循环语句,执行3次同样的动作,这样可以针对每一个创建的单位发布命令而不需要担心因为数量过多而有些单位没有获得命令(超过12只时)。 

Destructible - Destructible Dies
可破坏物体被摧毁

Destructible - Destructible Within Region Dies
在区域中被摧毁

  可破坏物,就像树、门之类的装饰物,有一定生命值,会被破坏。 
  例13:当区域001内的夏树墙被摧毁后(区域判断上限为64),5秒后复活。 
');//-->Trigger Tree    Present: |    展开 | 收缩 | 复制
事件:
可破坏物 - 可破坏物在 矩形区域 001 <预设> 内死亡

条件:
((死亡的可破坏物) 的类型) 等于 夏季树木

动作:
等待 5.00 秒
可破坏物 - 复活 (死亡的可破坏物) 并设置生命值为 ((死亡的可破坏物) 的最大生命值) , 显示 复活动画


  PS:这里利用了等待语句,但如果死亡的可破坏物过多可能会造成无法复活或无法判断的情况,还有个方式就是利用周期性事件来执行刷新动作,利用选区范围内的可破坏物来复活。 

                 第三节 完


                       就先这些吧有什么如遇到什么问题反映上来大家一起讨论!希望对各位有所帮助.谢谢! 
本帖de评分: 2 条评分 DB +115
DB+100 2011-10-05

精品文章

DB+15

精品文章

下壹沾㊣待續

ZxID:11554145

等级: 上将
等级:努力热会

举报 只看该作者 沙发   发表于: 2011-07-29 0
我不为楼主这样的标题所吸引,也不是被帖子的内容所迷惑。
我不是来抢沙发的,也不是来打酱油的。我不是为楼主呐喊加油的,也不是对楼主进行围堵攻击的。
我只是为了每天发帖默默奋斗。
你是个美女,我毫不关心,你是个怪兽,我决不在意;
你是个帅哥,我不会妒忌,你是个畜男,我也不会BS。
你的情操再怎么高尚,我也不会赞美,你的道德如何沦丧,我也不为所动。
在这个处处都要银币的时代,不得不弄个牛B的数字来显眼,
于是我抄下了这段话,专门用来回帖,好让我每天有固定的DB收入
去你大爷!

ZxID:5469089

等级: 元老

举报 只看该作者 板凳   发表于: 2011-07-29 0
这个我下载过 可是不会用- -
heyunjing

ZxID:2181554

等级: 列兵
举报 只看该作者 地板   发表于: 2011-07-29 0
good ,it is useful
heyunjing

ZxID:2181554

等级: 列兵
举报 只看该作者 4楼  发表于: 2011-07-29 0
但是 貌似太长了。。。
« 返回列表
发帖 回复