Project1

标题: 战斗AI脚本- -[1.3版] [打印本页]

作者: 小幽的马甲    时间: 2008-3-27 04:47
标题: 战斗AI脚本- -[1.3版]
这个脚本的作用是让敌人有智商,使得战斗更有趣= =
使用方法:现在“敌人设定”中设定敌人的类型。此处会把数据库里的行动表54。
然后随便新间个事件里面放入DB_Skill_Automatic_Sort.new,运行调用后关闭工程再打开(不要保存……),会发现数据库里的技能被自动分类了……
然后就ok了……
工程:
http://rpg.blue/upload_program/files/Project54_87246754.rar
吐糟:这个貌似是迄今为止制作周期最长和花费心思最多的脚本……希望不要被54……
口丁乙……实在对那个麻烦的“援护技能”无望了……干脆就给咔嚓了……留给用户自己拓展,可以加嘲讽、援护、重力转移之类的,反正我管不了这么多了- -本来也不想在一个脚本里绑定另一个脚本……

截图:这个就没必要了吧……从截图上你看不出什么的……
冲突:我自己的技能分类……预计在下一个版本里把分类放到注释里……

推荐组合:http://rpg.blue/viewthread.php?tid=81930
雪流星的敌人能力值自动设定,可以更好地设置敌人……
好吧,看到流星的那个已经跟我这个同步了,我也要加油完成了……

PS:目前只差那个冲突没解决……还有增加几个类型的设想……在完成前别发布- -

1.2版更新内容:
为了兼容雪流星的脚本把随机型改为-1(以后别问我为什么出错,多半是你没设置……)
完成BOSS型
修正牧师型的一个算法错误

1.3更新内容:
消减“援护技能”
修正“无MP逃跑”的一处错误
在小lim和流星的建议下简化脚本

修改过的类:
class Skill
class Game_Enemy < Game_Battler
class Scene_Battle < Scene_Base
class Game_BattleAction
class Game_Party < Game_Unit
class Game_Enemy < Game_Battler
class DB_Skill_Automatic_Sort


              [本贴由 风雪优游 于 2008-4-5 21:55:55 进行了编辑]
作者: 一塌糊涂    时间: 2008-3-27 05:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 风雪优游    时间: 2008-3-27 05:42
下来研究,顺便看看有没有什么BUG
作者: 雪流星    时间: 2008-3-27 09:45
刚才看了看脚本内容
这里主要是修改Game_Enemy的行动部分
我的脚本主要是修改Game_Enemy 的HP、MP之类的部分

所以应该没冲突,就算有也不会太难修改
作者: 一塌糊涂    时间: 2008-3-27 18:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小幽的马甲    时间: 2008-3-28 02:31
以下引用一塌糊涂于2008-3-27 10:19:29的发言:

组合起来岂不是相当有趣?

先自己组合来尝试下

作为伸手党来说,最好强强联手出个完美组合版啦

我要继续努力更新了……
虽然明天物理考试……但应该可以在这一周里完成- -
顺便加上一行吐糟一行友情连接- -
作者: 小幽的马甲    时间: 2008-3-28 04:37
更新了……
内容见顶楼……
作者: 小幽的马甲    时间: 2008-3-28 05:15
以下引用一塌糊涂于2008-3-26 21:27:22的发言:

去尝试一下 - -

下午看到了懒人系统,晚上看到战斗AI。。。

看来要取舍一下了啊 = =  

(貌似是不能一起用的吧。。。恩。。。)

貌似可以地说- -
作者: 雪流星    时间: 2008-3-28 14:28
想问问小幽
有些脚本代码可以换行写吧?
这样不是比较清晰吗?
向下面这段魔法技能判断:
  1.     for skill_id in $enemies_skill[@enemy_id]
  2.       if ($data_skills[skill_id].sort_db == 7 or
  3.           $data_skills[skill_id].sort_db == 8 or
  4.           $data_skills[skill_id].sort_db == 23 or
  5.           $data_skills[skill_id].sort_db == 24 or
  6.           $data_skills[skill_id].sort_db == 25 or
  7.           $data_skills[skill_id].sort_db == 26) and
  8.           skill_can_use?($data_skills[skill_id])
  9.         @can_use_skills.push(skill_id)
  10.       end
  11.     end
复制代码


也许这是你的习惯,那就54我吧
作者: 小幽的马甲    时间: 2008-3-29 00:03
也许这是你的习惯,那就54我吧

好吧……再下一版里改掉……其实现在伸手党泛滥……所以没多少人会看内容的- -
作者: enghao_lim    时间: 2008-3-29 00:57
以下引用snstar2006于2008-3-28 6:28:10的发言:
[quote]for skill_id in $enemies_skill[@enemy_id]
     if ($data_skills[skill_id].sort_db == 7 or
         $data_skills[skill_id].sort_db == 8 or
         $data_skills[skill_id].sort_db == 23 or
         $data_skills[skill_id].sort_db == 24 or
         $data_skills[skill_id].sort_db == 25 or
         $data_skills[skill_id].sort_db == 26) and
         skill_can_use?($data_skills[skill_id])
       @can_use_skills.push(skill_id)
     end
   end

也许这是你的习惯,那就54我吧
[/quote]
好像也可以在简写一点
for skill_id in $enemies_skill[@enemy_id]
  if [7,8,23,24,25,26].include?($data_skills[skill_id].sort_db) and
     skill_can_use?($data_skills[skill_id])
    @can_use_skills.push(skill.id)
  end
end

作者: 越前リョーマ    时间: 2008-3-29 01:18
恩……

可以增加战斗的难度……
作者: 雪流星    时间: 2008-3-29 04:04
以下引用enghao_lim于2008-3-28 16:57:54的发言:
好像也可以在简写一点
for skill_id in $enemies_skill[@enemy_id]
if [7,8,23,24,25,26].include?($data_skills[skill_id].sort_db) and
    skill_can_use?($data_skills[skill_id])
   @can_use_skills.push(skill.id)
end
end

其实小幽的脚本有好多地方我看了都想简化
例如在敌人能力估算的部分
在case的每个分其中都返回同一个变数enemy_parameter
写在end後面就行了吧?

还有就是行动判断部分
如果用elsif可以缩短很多行吧?

作者: 小幽的马甲    时间: 2008-3-29 04:54
看来要做的事很多呢……
感谢小lim和流星提出意见{/hx}
作者: 风雪优游    时间: 2008-3-30 01:58
那么请加油简化吧!!!战斗AI,敌人图鉴,敌人自动设置,现在就是我最关注的脚本....
作者: 小幽的马甲    时间: 2008-3-30 03:13
1.3更新内容:
消减“援护技能”
修正“无MP逃跑”的一处错误
在小lim和流星的建议下简化脚本
作者: 雪流星    时间: 2008-3-30 22:02
对了,你的脚本有没有仇恨度的计算

有的话怪物AI会增加很多
作者: 火鸡三毛老大    时间: 2008-4-4 20:06
帮你测试脚本  顺便顶{/qiang}
作者: 咖喱抄鸡蛋    时间: 2008-4-4 23:59
我新手请多关照   {/jy} 研究  研究再说
作者: 风雪优游    时间: 2008-4-6 05:54
发布完毕,VIP+5

虽然已发布,但仍然希望小幽能继续更新~~~
作者: 幻魔    时间: 2008-4-6 18:45
我怎么打开工程的时候显示“工具是旧版本,无法打开工程”呢?
作者: 小柯    时间: 2008-4-6 23:53
以下引用幻魔于2008-4-6 10:45:30的发言:

我怎么打开工程的时候显示“工具是旧版本,无法打开工程”呢?

你的VX版本太低了。
作者: blmd85    时间: 2008-4-10 08:38
想问个问题,这个脚本敌人选择要攻击的目标是怎么选择的?随机的吗?
如果想改成玩家队伍哪个血少打哪个,要怎么改?
多谢解答~
作者: 小幽的马甲    时间: 2008-4-11 02:09
以下引用blmd85于2008-4-10 0:38:32的发言:

想问个问题,这个脚本敌人选择要攻击的目标是怎么选择的?随机的吗?
如果想改成玩家队伍哪个血少打哪个,要怎么改?
多谢解答~

非也,是跟据能力值综合算出来的...
作者: blmd85    时间: 2008-4-11 20:25
多谢解答,我再问下哦:
#武技使用判断
    if enemies_class_1_attack_skill_can_use?
      simulate_damage_attack
      select_skill
      return
    end
    #魔法使用判断
    if enemies_class_magic_skill_can_use?
      simulate_damage_attack
      select_skill
      return
    end
究竟什么算武技,什么算魔法?不是都消耗SP的吗?如果自己新键了个技能,怎么把它划分到其中一类里?
作者: 雪流星    时间: 2008-4-13 11:43
武技是物理攻击
魔法是「精神相关度」大於0的技能

作者: 友情变爱情    时间: 2008-9-19 03:56
我才开始解除脚本的学习#24
看了半天#83终于搞清楚这个战斗AI怎么用了#3 [LINE]1,#dddddd[/LINE]版主对此帖的评论:『挖坟是不好的行为』,积分『-5』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: 支持66    时间: 2008-10-1 07:02
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1