Project1

标题: 用脚本给怪物加的技能的condition_type该如何指定呢 [打印本页]

作者: tai_tan    时间: 2014-3-29 12:52
标题: 用脚本给怪物加的技能的condition_type该如何指定呢
本帖最后由 tai_tan 于 2014-4-17 12:06 编辑

好吧,我又来问问题了=。=

怪物也产生了,技能也指定了,运行也能进战斗,但是一开打就弹错误

condition_type   错误

这个要用怎样解决呢。。。。

我用的用这段代码给怪物指定的技能,能成功进入战斗了
  1. $data_enemies[8].actions.push [10]
复制代码
是不是把技能加给怪物的同时也要指定condition_type 的类型,要如何指定呢?

定义在这里
  1. class RPG::Enemy < RPG::BaseItem
  2.   def initialize
  3.     super
  4.     @battler_name = ''
  5.     @battler_hue = 0
  6.     @params = [100,0,10,10,10,10,10,10]
  7.     [url=home.php?mod=space&uid=13302]@exp[/url] = 0
  8.     [url=home.php?mod=space&uid=236945]@gold[/url] = 0
  9.     @drop_items = Array.new(3) { RPG::Enemy::DropItem.new }
  10.     @actions = [RPG::Enemy::Action.new]
  11.     @features.push(RPG::BaseItem::Feature.new(22, 0, 0.95))
  12.     @features.push(RPG::BaseItem::Feature.new(22, 1, 0.05))
  13.     @features.push(RPG::BaseItem::Feature.new(31, 1, 0))
  14.   end
  15.   attr_accessor :battler_name
  16.   attr_accessor :battler_hue
  17.   attr_accessor :params
  18.   attr_accessor :exp
  19.   attr_accessor :gold
  20.   attr_accessor :drop_items
  21.   attr_accessor :actions
  22. end

复制代码
和这里
  1. class RPG::Enemy::Action
  2.   def initialize
  3.     @skill_id = 1
  4.     @condition_type = 0
  5.     @condition_param1 = 0
  6.     @condition_param2 = 0
  7.     @rating = 5
  8.   end
  9.   attr_accessor :skill_id
  10.   attr_accessor :condition_type
  11.   attr_accessor :condition_param1
  12.   attr_accessor :condition_param2
  13.   attr_accessor :rating
  14. end

复制代码

作者: tai_tan    时间: 2014-3-29 13:00
本帖最后由 tai_tan 于 2014-3-29 13:47 编辑

已编辑到顶楼
作者: tai_tan    时间: 2014-3-29 13:01
本帖最后由 tai_tan 于 2014-3-29 13:48 编辑

已编辑到顶楼
作者: Sion    时间: 2014-3-29 13:35
你把 actions p 出来看看都是些什么东西。
  1. p $data_enemies[8].action
复制代码
记得开控制台。
作者: tai_tan    时间: 2014-3-29 13:37
恩,我试试,原来用这种方法来看结构的。。。。。。受教了
作者: taroxd    时间: 2014-3-29 14:17
本帖最后由 taroxd 于 2014-3-29 14:22 编辑

First of all,最好不要直接动数据库,建议通过修改敌人行动时的脚本来实现(比如Game_Enemy#make_actions)。数据库不是让你随便改的!!!当然为内置的数据结构定义方法没有问题。

然后如果非要改数据库的话……你push进去的是一个数组,不知道有什么用意…… 要push进去也应该push一个 RPG::Enemy::Action 的实例才对啊
作者: tai_tan    时间: 2014-3-29 14:22
运行以后是这个东西,应该是一个数组吧

QQ图片20140329141008.jpg (35.54 KB, 下载次数: 29)

QQ图片20140329141008.jpg

作者: taroxd    时间: 2014-3-29 14:41
tai_tan 发表于 2014-3-29 14:22
运行以后是这个东西,应该是一个数组吧

所以说 Game_Enemy#make_actions 这个方法放着就是来给你改的(误)

比如当遇到这种随机技能的坑爹怪的时候(可以用备注),就随便拉个技能扔到每个@actions的元素就好了。(对@actions的每个元素调用set_skill方法)
然后正常的怪调用原方法





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