找回密码
 点一下
查看: 1838|回复: 6

求助:如何设置RPG地图BOSS  AI

[复制链接]
发表于 2011-4-24 14:30:16 | 显示全部楼层 |阅读模式
我在弄一张RPG的地图
设定了一个小BOSS,蜘蛛怪,他会对近距离(300)以内的敌人施放喷毒(就是冲击波),会对300码以外的敌人施放毒液弹(就是酸液炸弹,有AE范围需要远程散开)
请问我应该如何设定
另外我目前的做法是:
任意单位收到伤害
触发单位是蜘蛛 BOSS,判定范围IF距离BOSS300以内施放喷毒,THEN施放毒液弹
理论上是没什么问题,但是实际上如果不是收到肉搏伤害(就是非技能伤害)的话他是不会触发任意单位收到伤害的。。。也就说如果有治疗不打BOSS ,BOSS永远不会对他放技能,这个要怎么解决

还有,如果有多个技能的话,用这么简单的判断 可能触发BOSS同时需要施放喷毒和毒液弹,这时候BOSS就会原地抽风(由于有施法时间这个概念,BOSS刚准备对近战施放喷毒,就被远程触发要施放毒液弹)然后就来回转头一个技能都放不出,平砍也不会了。。。

求方法
PS,最好别J,不懂。。。也最好有地图教程。。。 谢谢啦!
发表于 2011-4-24 18:31:31 | 显示全部楼层
谁告诉你受到伤害只是魔法的?只要是伤害它都捉得到!
判断技能使用的时候用同一个触发,if/else/then判断即可。
回复

使用道具 举报

 楼主| 发表于 2011-4-25 10:50:55 | 显示全部楼层
可是实际就是不行啊
[trigger]
未命名触发器 002 复制 3 复制 复制
    事件
        单位 - 任意单位 被攻击
    条件
        所有条件成立
            条件
                ((被攻击单位) 的类型) 等于 堕落的瓦拉斯塔兹
                (随机实数,最小值: 1.00 最大值: 10.00) 大于或等于 5.00
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                ((攻击单位) 在距离 ((被攻击单位) 的位置) 300.00 范围内) 等于 TRUE
            Then - 动作
                单位 - 对 (被攻击单位) 发布 中立 - 霜冻吐息 命令到目标点: ((攻击单位) 的位置)
            Else - 动作
                单位 - 对 (被攻击单位) 发布 不死族恐惧魔王 - 地狱火 命令到目标点: ((攻击单位) 的位置)
[/trigger]

这个是我用的其中一个触发,大部分的触发基本都是这么写的,请问有什么问题么 ,另外如果只是进入BOSS范围内不打BOSS的话如何让BOSS捕捉这个目标,我不希望所有的BOSS都是要被打了才知道疼,让他也会对不打他的治疗也放技能

还有一个问题,就是上面说过的,如果有多个技能同时触发了,他会原地打转不知道放那个。。。所以我这里加了一个随机数判断,但是貌似还是不能完全解决这个问题。
回复

使用道具 举报

发表于 2011-4-25 20:41:05 | 显示全部楼层
被攻击当然只响应普攻事件了,这和接受伤害完全是两码事,做地图是很严谨的楼主。
另外顺带一提,被攻击事件响应是在作出攻击动作时,而不是接受普攻伤害时。
如果你的BOSS是预设单位,那么用指定单位接受伤害和伤害来源来做不就好了?创建的单位就添加事件注册。
做这种BOSS AI比做对抗地图AI简单太多了。有很好的规律可循。
回复

使用道具 举报

 楼主| 发表于 2011-4-26 14:05:18 | 显示全部楼层
[trigger]

boss001
    事件
        地图初始化
    条件
    动作
        设置 BOSS001 = 堕落的瓦拉斯塔兹
[/trigger]
-------------------------
[trigger]
ChufaShanghai01
    事件
        单位 - 单位进入 (可用地图区域)
    条件
    动作
        触发器 - 为 boss001 <预设> 添加事件: (单位 - (触发单位) 接受伤害)
[/trigger]
-------------------------
[trigger]
Chufashanghai 02
    事件
        地图初始化
    条件
    动作
        单位组 - 选取 ((可用地图区域) 内的所有单位) 内所有单位做动作
            Loop - 动作
                触发器 - 为 boss001 <预设> 添加事件: (单位 - (选取单位) 接受伤害)
[/trigger]

楼上说的是只这样触发伤害么,这样的话法术伤害也会有反应!

这个算是解决了,那么接下来,能帮我解决另一个问题么,就是选取单位,我想让一个技能只对300以外 600以内的敌人施放的话,需要怎么解决?确切的说我在T里面不知道怎么去组织这个语言,太绕了。
还有就是依旧没人回答我的,BOSS被多个人攻击同时触发触发,一个让他丢技能1,又被触发让他丢技能2,他就开始原地打转了。。。
这个要怎么解决。
回复

使用道具 举报

发表于 2011-4-27 16:35:28 | 显示全部楼层
选取P1为圆心600范围内单位做动作,然后set P2为选取单位的位置,然后设置DIS=P1到P2的距离,然后IF-THEN-ELSE,DIS大于300的 才在THEN里做动作。然后排泄掉点。
第二,你得重新思考BOSS施放技能的依据,你这么写太不严谨了。
当然,简单的解决方法就是触发的时候关掉触发器,隔一段时间再打开,就不会重复打断命令了。
回复

使用道具 举报

 楼主| 发表于 2011-4-27 20:05:00 | 显示全部楼层
楼上说的那个简单的办法貌似不错,反正也只是和朋友玩的地图,不需要哪么严谨,只要不出BUG就行了。
回去后尝试下
另外突然想到BOSS掉落问题
是否可以这样
任意单位死亡
死亡单位是=堕落的瓦拉斯塔兹
设置随机数1-10
IF随机数=1,Then 掉落物品1
ELSE  IF随机数=2,Then 掉落物品2
ELSE  IF随机数=3,Then 掉落物品3
......
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 13:40 , Processed in 0.105625 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表