魔兽编辑器中单位变身[JAPI]

感谢买梦大佬的点拨!真的让本羊少走了很多弯路!

我的问题是:

1、旧英雄单位通过怪物掉落的技能书学习技能
2、旧英雄单位通过点击使用不同的武器可以切换为新英雄单位
3、但是新英雄单位要继承旧英雄单位之前学习的技能和技能等级

问题的难点在于第3点,按照我原来的思路需要用大量变量记录不同玩家的技能。

最终在买梦大佬的点拨后,尝试用单位-单位变身[JAPI]。结论就是:

阅读更多 »

魔兽地图《浩劫余生_4.0》触发自研

特别说明:地图是基于英文版的《浩劫余生》,即《Afterlife v4.0》。

前言:《浩劫余生》的射击触发、装填触发、换枪触发在目前看来都是比较强大的。 源图《Afterlife v4.0》 可以用YDWE打开,但是其中的触发大多是JASS。为此,本羊一遍剖析学习一遍记录如下。

一、地图物编设定

1、所有枪类物品是没有属性的,只有1个装填的技能。同时要注意它的CD间隔组和使用次数。技能编辑器里“飞刀”的施放间隔是8秒。“使用次数”理解为枪类的弹夹容量。

2、一种枪类对应一个独立的单位。说白了,你装备或更换不同的枪,其实质就是切换模型!枪的属性就是单位的属性!例如下面的AK-47,自动射击和连发射击都是不同的单位:

二、装备(更换)武器触发 <难点>

仍然以AK-47为例:

阅读更多 »

魔兽编辑器中“跳过剩余动作”的自研笔记

情形1:不带if条件语句,直接忽略“跳过剩余动作”后的动作不执行!

只执行+1000黄金的动作

情形2:带if条件语句

准备工作:1块区域,三个“ 演员 ”英雄
图中的三个条件的返回值是真值,所以:
1、触发进入单位是圣骑士,三个条件的动作都会执行。执行结果如下图。
2、 、触发进入单位是大魔法师或者山丘之王,只执行第2个和第3个条件的动作。
阅读更多 »

魔兽编辑器中“科技”的自研笔记

随着时间的流逝,利用科技来增强敌我小兵是个不错的设计。以下是我学习过程中的一些笔记:

一、如果不理解科技的数据效果,可以参照标准科技的效果。例如人族的铁剑术:

(1)数据:核心效果,决定着单位的属性奖励;

(2)等级:科技能够升级多少次。升级次数决定着增量的次数。

(3)状态:研究科技需要花费的黄金、木材和时间。科技越往上升,则花费的
黄金、木材和时间越多。如果是给NPC用,则可以全部设置为0。

(4)可随单位转移所有者:比如我用女妖占据了一个步兵,我能否继承它的科技。如果是False,那么我占据的步兵没有科技加成。

(5)只应用于之后生产的单位:我先生产了A步兵,接着升级了铁剑术,最后生产了B步兵。如果该值是Ture,则只有B步兵有科技加成,A步兵没有。所以它默认是False:只要升级了科技,所有步兵都享受了科技加成。

阅读更多 »

禁止工人单位在矩形区域内进行建造_魔兽编辑器

本羊研究这个触发的目的是为了修复肥羊镇的一些BUG。

难点:4族工人在建造时是不同的形态,人族农民是在建筑边上敲,兽族苦工是钻进去敲,亡灵寺僧是在召唤建筑自动建,暗夜小精灵类似苦工,但有些建筑物建造会消耗小精灵。

一开始,本羊选择的动作是:使正在建造的单位爆炸而死或杀死或删除,那么会出现什么情况?

答:苦工这类单位消失,无敌,不可见,还占人口。

阅读更多 »

WorldEdit触发器(Trigger)浅析:第三章 ★Triggert动作

  Trigger是由事件、条件、动作组成。在完成事件的触发,条件的判断以后,才会执行动作;作是触发器执行的步骤,也是触发器的灵魂,我们需要的功能都是由动作来执行。正因为动作的内容如此丰富,就像积木一样由我们自己搭配;因此,对每一块积木的形态的掌握至关重要,不要好高骛远,等你熟悉各条动作的作用,你就可以组合出各种自己需要的触发器。
DarkSheep:因为博客文本格式的问题,无法完美显示动作触发的层级关系,本羊尽量用截图作为补充。
第一节 ☆ 基础动作

这些动作不包括在各个分类中,但对于具体的执行却有至关重要的影响。如下表:

Do Nothing
无动作
不做任何动作
Comment
注释
仅用做分隔及说明
Custom Script
定制脚本
自定义脚本
Wait
等待
等待指定秒数后执行
Wait (Game-Time)
等待(游戏时间)
等待游戏中时间后执行
Wait For Condition
等待条件
等待条件满足后开始计时
Wait For Sound
等待音乐
等待音乐播放完毕后开始计时
Set Variable
设置变量
为变量赋值
Skip Remaining Actions
跳过余下动作
不再执行此动作以下的所有动作

1、注释的作用就是对你的触发做一下说明,特别是在动作复杂的情况下,添加一些注释会看得更加清楚,注释不会对动作本身的执行产生任何影响。

2、脚本就是利用触发器的API界面来运行JASS,但受限于API的功能,无法像JASS一样随性的书写,因此这个只能作为辅助动作来使用。

3、等待的话,就是在一定的时间或条件达成以后再执行下面的动作,一般情况下等待语句尽量少用,特别是在各个触发相互调用数据的时候,可能会造成冲突;当然,事情也并没有这么严重,等待的使用频率还是会很高的,必要的时候还可以用计时器

4、设置变量,这个是非常重要的一个动作,其使用方式是赋值“设置 变量名=被赋值的同类型内容”,注意这里的“=”不是“等于”的意思,是把后面的数据赋值给变量,而使变量可以代替这个数据

例如“设置 单位变量Unit=大法师0001”,那么再次对“Unit”变量赋值之前,对“Unit”的操作就等同于对“大法师0001”的操作。

不同的变量对应不同的数据类型,所以我们在需要对数据进行赋值到变量的操作的时候,先要确定这个数据是什么类型,然后再创建同一类型的变量来执行赋值语句。

5、跳过余下动作就是不再执行剩下的动作,在一个触发的动作中,也显得比较重要,一般是在达成一定的条件以后,跳过余下不再需要执行的动作,但有一点,在组动作执行的时候无效。

阅读更多 »

WorldEdit触发器(Trigger)浅析:第二章 ★Triggert条件

Trigger是由事件、条件、动作组成。条件是执行动作之前的门槛,正确的使用条件,对增加触发执行准确率有至关重要的影响。一个触发器可以添加多个条件,默认情况下条件是串行的(AND),也就是说,必须全部达成这些条件才会开始执行动作;也可以设定并行(OR),只需要达成一个条件就会执行动作。条件的内容取值于触发事件相关的函数,就像如果是玩家事件,就无法直接调用“触发单位”的函数。

说判断函数之前,先说一下“变量”,变量可以通过赋值来保存和调用数据。很多人可能对“变量”有些理解,却不知道“变量”可以调用哪一些数据。通过下面对一些条件的分析,大家应该可以比较清楚的理解“变量”可使用的一些类型。如果变量是布尔值,那么,这个变量的值就是TRUE(真)或者FALSE(假);如果变量是单位,那么这个值就是“指定单位”,已存在的单位;如果变量是单位类型,这个值就可以赋值我们在物体编辑器里设定的单位类型的数据,然后通过调用这些变量来创建新的单位。变量组是对变量的扩展方式,同一个变量组的变量类型相同,变量组的格式是“变量名[下标值]”,下标值必须为整数,每一个变量组中的变量都是独立的。

DarkSheep:这里的变量解释,一开始看不太明白。但是通过后面的学习,我知道了:
如果变量是单位,那么这个值就是“指定单位”,你只能选择你放在地图上的单位才行,没有放在地图上的单位不能被选择!
如果变量是单位类型,这个值就你就可以选择在物体编辑器里的单位,而不需要将它们放在地图上再选择!
具体的我们在混合刷兵那会有更深刻的理解。

阅读更多 »

WorldEdit触发器(Trigger)浅析:第一章★Trigger事件

本羊看了多个的魔兽编辑器触发教程,综合比较,只有551155大佬的适合萌新。理由:

1、内容详实。551155大佬从触发的事件,触发的重要函数,进行详细解析。这种解析正是萌新所需要的!让萌新系统的、结构性的熟悉了一遍触发函数。

2、案例丰富。551155大佬针对重要函数做了触发演示。你只要打开WE,自己动手做一遍就会有更深刻的理解。

源文地址:http://bbs.islga.org/read-htm-tid-14454.html

若有缘停留在本羊博客学习,你将得到一份宝贵的学习心得,因为我现在正在一遍学习一遍写博文^_^。


作者:551155

序言:

WE发展至今,该研究的都被研究出来了,有人说,已经到了WE日暮时光,但我觉得现在WE依然在燃烧,还有很多人对此产生了兴趣。网上有各种各样的教程,包含我自己早年写的,但很多内容,特别是重点的触发器(Trigger)方面,却大多没有一个相对详细的说明,很多新手止步的原因就在于此。尽管SC2即将发布,但WAR3也不会这么快就没落,何况风格不同,而且触发器方面多少会有一些共通的地方;因此,我决定再制作一部教程,浅析关于触发器(Trigger)的方方面面,希望可以帮助喜欢WE的新人们。

DarkSheep:教程是2008年的,那时星际争霸2还没发布。现在是北京时间2018年4月11日。时隔10年,魔兽争霸3依然在燃烧着。1.29补丁更是为War3注入了一丝生机。

《浅析》的内容是分析Trigger的界面操作,并不包含JASS部分,而分析的主要目的是引导新人做出准确的判断和更加简洁的触发器触发器是由事件、条件和动作组成,其关系就是由事件运行触发器,条件判断运行内容,动作就是执行具体动作。文中有说明,也有一些即兴演示,但相对会更加突出重点,比如在事件的说明中,着重介绍事件,但也会带有具体的条件或动作,可做参考。

DarkSheep:文中的即兴演示,你只有打开WE,依葫芦画瓢尝试下,才会知道它的美妙。

在具体的分析之前,我想说一下的是,其实运用触发器真的很简单,因为是完全界面化的,你只需要点击再点击基本上就可以了。我们要做的,是熟悉各个触发函数(内部设定好的一个动作模块,我们就是使用这些函数来制作触发)的作用,并将他们相互搭配起来。演示的作用只是提供一个思考的方式,而不是需要照本宣科,同样的事件和动作经过不同的组合就可以产生不一样的效果,不要一味的模仿。

阅读更多 »