Project1

标题: 如何在战斗中让装备的宠物暂时停止行为? [打印本页]

作者: 飞各大大    时间: 2008-5-19 22:57
标题: 如何在战斗中让装备的宠物暂时停止行为?
那个柳柳的宠物系统,在宠物脚本的最后一段:class Sprite_Battler < RPG::Sprite 以下部分脚本写的是主人死掉的时候宠物会逃跑,如果我想改成:当装备宠物的主人阵亡后,该宠物也不逃跑,只是不再有任何行动了,除非阵亡角色复活之后该宠物才可以正常行动,行不行啊?



宠物系统ver1.2
http://rpg.blue/web/htm/news169.htm [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 飞各大大    时间: 2008-5-20 18:33
顶啊~
作者: link006007    时间: 2008-5-20 18:44
class Game_Pet < Game_Battler
  def make_action
    ... ...
    # 无法行动的情况
    unless self.movable?
      # 过程结束
      return
    end
    ... ...
  end
end

也就是  让宠物的moveable属性等于角色的生死
作者: 飞各大大    时间: 2008-5-20 19:03
以下引用link006007于2008-5-20 10:44:35的发言:

class Game_Pet < Game_Battler
def make_action
   ... ...
   # 无法行动的情况
   unless self.movable?
     # 过程结束
     return
   end
   ... ...
end
end

也就是  让宠物的moveable属性等于角色的生死




怎么让宠物的moveable属性等于角色的生死?? ... ...里改?
作者: 飞各大大    时间: 2008-5-25 00:00
4日了顶~!~
作者: 飞各大大    时间: 2008-5-26 16:47
怎么让宠物的moveable属性等于装备着该宠物角色的生死??
作者: 飞各大大    时间: 2008-5-27 19:20
继续问
作者: 飞各大大    时间: 2008-5-28 20:00
unless self.movable?是
以下引用link006007于2008-5-20 10:44:35的发言:

class Game_Pet < Game_Battler
def make_action
   ... ...
   # 无法行动的情况
   unless self.movable?
     # 过程结束
     return
   end
   ... ...
end
end

也就是  让宠物的moveable属性等于角色的生死




如何让宠物的moveable属性等于装备该宠物角色的生死??脚本怎么写
作者: 八云紫    时间: 2008-5-28 20:10
self.movable?

可以行动判定


作者: 飞各大大    时间: 2008-5-28 20:16
如果装备该宠物角色死掉,该宠物就不行动,除非主人复活...请问这个脚本具体怎么写呢?不大懂...
作者: 飞各大大    时间: 2008-5-29 17:41
此帖十天未能解答纪念日{/pz}
作者: 柳之一    时间: 2008-5-29 18:40
以下引用飞各大大于2008-5-29 9:41:00的发言:

此帖十天未能解答纪念日

当没有人解决的时候不是问题没有办法解决。请楼主提高悬赏,以求更快更好的解决。
作者: 飞各大大    时间: 2008-5-29 18:46
楼上觉得这问题难么?需要多少VIP?
作者: 柳之一    时间: 2008-5-29 19:01
以下引用飞各大大于2008-5-29 10:46:15的发言:

楼上觉得这问题难么?需要多少VIP?

不难,不过答题区世风日下,不是一个链接就能回答的问题,基本上就搁浅了。
这个区也是令我伤心地地方。
作者: 禾西    时间: 2008-5-29 19:10
接下link的回答
unless self.movable?
  return
end
就是行動判斷。
改為
if ×××.dead?
  return
end

禾西最怕改腳本> <"
所以那個×××(主人的資料變量)要怎麼填寫就要自己摸索了
順便嚮樓上的柳之一問好,爬走。 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 飞各大大    时间: 2008-5-29 19:12
我以为只要修改 def make_action 以下那一段就可以了
楼上能解答的话,我换一个ID来结算吧
作者: 飞各大大    时间: 2008-5-29 19:16
以下引用禾西于2008-5-29 11:10:28的发言:

接下link的回答
unless self.movable?
return
end
就是行動判斷。
改為
if ×××.dead?
return
end

禾西最怕改腳本> <"
所以那個×××(主人的資料變量)要怎麼填寫就要自己摸索了
順便嚮樓上的柳之一問好,爬走。



如果队伍中只有1号角色可以装备宠物的话,if ×××.dead?能不能写成if $game_actors[1].dead?
作者: 禾西    时间: 2008-5-29 19:18
試試吧...禾西也不肯定 Orz
電腦太爛,一半情况下只能提供思路而不能直接回答
作者: 飞各大大    时间: 2008-5-29 20:27
那么能不能提供个思路如何判断主人的資料變量啊?因为队伍里如果有多个人可以装备宠物的话,按照 if $game_actors[1].dead? 的设置,只要1号角色死了,其它角色的宠物就都不战斗了
作者: 飞各大大    时间: 2008-6-2 17:27
......十四天啦
作者: zlink    时间: 2008-6-2 21:06
actor死的函数中 检索@pet_id, 将 对应的宠物直接设置死亡
或者在初始化宠物的时候传入一个actor的id参数, 然后每次update都判断对应ID的actor是否死亡
作者: 飞各大大    时间: 2008-6-5 18:18
以下引用zlink于2008-6-2 13:06:20的发言:

actor死的函数中 检索@pet_id, 将 对应的宠物直接设置死亡
或者在初始化宠物的时候传入一个actor的id参数, 然后每次update都判断对应ID的actor是否死亡



怎么检索...传入?每次update又在哪儿
作者: 飞各大大    时间: 2008-6-9 02:26
请教 3535 吧...{/ll}
作者: 飞各大大    时间: 2008-6-10 18:46
此帖二十二天未能解答纪念日
作者: link006007    时间: 2008-6-10 20:00
恭喜lz了{/bz}
记得我以前提过一个水面倒影的问题  至今都未结帖呢
作者: 飞各大大    时间: 2008-6-11 17:21
同喜同喜
作者: 飞各大大    时间: 2008-6-12 21:28
再顶
作者: 飞各大大    时间: 2008-6-13 16:44
天天向上
作者: dbshy    时间: 2008-6-16 02:25
先在Game_Pet中加attr_accessor :maseter_id

def make_action中if $game_party.actors[self.maseter_id].dead? then
                      return
                  end

class Sprite_Pet中def initialize(viewport, father_id = 0)
    super(viewport)
    @father_id = father_id
    if $game_party.actors[father_id] != nil
      if $game_party.actors[father_id].pet_id != 0
        @battler = Game_Pet.new($game_party.actors[father_id].pet_id)
        @battler.maseter_id = father_id
      else
        @battler = nil
      end
    end
  end

class Sprite_Battler中注释掉@battler.pet_id = 0

应该达到LZ所需效果
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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