怎样改变英雄的攻击状态?
本帖最后由 酸甜苦辣咸 于 2014-9-27 20:40 编辑比如说我要改变一个英雄的攻击状态,从防御状态变为攻击状态,因为英雄一开始的攻击状态就是防御,只要我军的士兵逃到一定的范围,他就不会再继续追击,然后原路返回,而在战役中我想让他追挤我军的士兵,但不知道要怎么改成攻击状态,求各位赐教. 什么意思不攻击状态变为攻击状态吗 0000`` 发表于 2014-9-27 20:44
什么意思不攻击状态变为攻击状态吗
是从防御状态变为攻击状态 https://www.hawkaoe.net/bbs/thread-117430-1-1.html 应该能解决你的问题@酸甜苦辣咸 0000`` 发表于 2014-9-27 20:46
https://www.hawkaoe.net/bbs/thread-117430-1-1.html 应该能解决你的问题@酸甜苦辣咸
那个帖子有点发杂,我看不懂,能说得清楚点吗? 用觸發是做不到的,必須使用翔鷹版的AI~~
但詳細我就不清楚了 换马甲了 要不然就三连了 他说的意思应该是用一个和主角一模一样的单位,
驻扎进入一个叫OLD那个单位要在重组资料库找到 然后让OLD持续跟着主角
当你想恢复攻击模式的时候就移除主角,并且移除OLD这样另一个主角就可以正常出现了
@酸甜苦辣咸
16281527471 发表于 2014-9-27 21:00
换马甲了 要不然就三连了 他说的意思应该是用一个和主角一模一样的单位,
驻扎进入一 ...
英雄生產出來還是英雄,狀態一樣還是防衛狀態
這個方法並不能解決LZ的問題,這只適用於一般單位,而不適用於英雄單位 本帖最后由 0000`` 于 2014-9-28 13:31 编辑
. 在up环境下可以用下面这个语句来改变电脑玩家单位的进攻状态:
up-set-attack-stance
语法
up-set-attack-stance (in)(const)单位编号 类型操作符 (in)(op)进攻状态
功能
设置给定类型的单位的进攻状态。
示例
设置所有长矛兵进攻状态为“原地坚守”。
(defrule
(true)
=>
(up-set-attack-stance spearman-line c: stance-stand-ground)
(disable-self)
)
——————————————————————————————————————————————
如果要改变英雄的进攻状态,可以对照单位编号表查找到英雄的编号:
https://www.hawkaoe.net/bbs/thread-3978-1-1.html 8楼
然后将对应电脑玩家的AI加入如下语句:
(defconst stance-aggressive 0) ;进攻状态
(defconst stance-defensive 1) ;防御状态
(defconst stance-stand-ground 2) ;坚守状态
(defconst stance-no-attack 3) ;不还击状态
(defrule
(true)
=>
(up-set-attack-stance 166 c: stance-aggressive) ;单位编号166为英雄骑士罗兰
(disable-self)
)
这样进入游戏后,电脑玩家的所有罗兰骑士都会变为进攻状态。当然这里也可以灵活的加入一些条件,比如电脑的黄金数量大于一定数值后改变进攻状态,这样可以通过进贡触发来控制电脑改变单位进攻状态的时机。
本帖最后由 影月骑士 于 2014-9-27 22:51 编辑
条顿武士 发表于 2014-9-27 22:05
在up环境下可以用下面这个语句来改变电脑玩家单位的进攻状态:
up-set-attack-stance
(defrule
(true)
=>
(up-set-attack-stance spearman-line c: stance-stand-ground)
(disable-self)
)
问一下,实际编写时,要将stance-stand-ground替换为2,对吗?不然会
那么应该这样写吗?
(defrule
(true)
=>
(up-set-attack-stance spearman-line c: 2)
(disable-self)
)
——————————————————————————
好啦,经过实验,的确要把stance-stand-ground 改成2,其他的对应修改
那么有一问:此法可不可以修改比如,id为10的单位,的攻击状态?
本帖最后由 影月骑士 于 2014-9-28 00:27 编辑
回答楼主一下,你可以搜索“userpatch1.3脚本编写参考”,里面就会有很详细的脚本编写教学:https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=112481。学会了这些,才能够看懂其他的教程,比如断幺平和的教程 影月骑士 发表于 2014-9-27 22:53
回答楼主一下,你可以搜索“userpatch1.3脚本编写参考”,里面就会有很详细的脚本编写教学。学会了这些,才 ...
语法上是不可以按照单位ID修改状态的,而且通过一个玩家的AI修改其他玩家单位的数据有点越权的意思。 本帖最后由 影月骑士 于 2014-9-28 00:00 编辑
条顿武士 发表于 2014-9-27 23:03
语法上是不可以按照单位ID修改状态的,而且通过一个玩家的AI修改其他玩家单位的数据有点越权的意思。
那么只可以按照ID读取单位数据吗?
另外,关于那个定义语句的意思是用stance-stand-ground直观地代表数字2吗?如果写成(defconst yuandi 2),那么后面也可以把stance-stand-ground替换成yuandi吧?
————————————————————————
实测,可以替换
哎马,,好麻烦 老子是妖怪 发表于 2014-9-27 23:12
哎马,,好麻烦
但是效果可以很惊人!!
比如这个:。这是我做的一个小战役,输入1可以定身敌人,输入2可以解除定身。
回复楼主,自己在AI文件夹里新建一个***.per文件,用记事本打开然后写入代码。之后建立一个同名的***.ai空文件,就可以在编辑器的玩家选项卡里看到自己设计的AI了。 的确。。。
页:
[1]