Project1

标题: 特殊装备(复活戒指\护身戒指\复制戒指)的制作 [打印本页]

作者: derdfyga    时间: 2011-10-7 20:02
标题: 特殊装备(复活戒指\护身戒指\复制戒指)的制作
本帖最后由 derdfyga 于 2011-10-8 00:16 编辑

过程比较简单,改动的地方不大.
1:在数据库添加三个戒指,名字分别为复活戒指\护身戒指\复制戒指,也可以随便取名.
2:在class Game_Actor、class Game_Enemy和class Game_Battler里各添加一个  def mofa_s?(type=0,itemid=1) 。
在class Game_Actor257行处插入:特殊装备ID必须与数据库的戒指ID对上号,不然效果会混淆。
  1.   #--------------------------------------------------------------------------
  2.   # ● 特殊装备特效
  3.   #type:       装备类型0为道具,1为防具,2为武器,
  4.   #itemid:     装备ID
  5.   #--------------------------------------------------------------------------
  6.   def mofa_s?(type=0,itemid=1) ##
  7. #    @m=type
  8. #    @n=itemid
  9.     case itemid
  10.     when 33 #特殊装备ID
  11.       if type==1 #0为道具,1为防具,2为武器,
  12.         for armor in armors.compact
  13.           return true if armor.name=="复制戒指"
  14.         end
  15.       end
  16.     when 31
  17.       if type==1 #0为道具,1为防具,2为武器,
  18.         for armor in armors.compact
  19.           return true if armor.name=="护身戒指"
  20.         end
  21.       end
  22.     when 32
  23.       if type==1 #0为道具,1为防具,2为武器,
  24.         for armor in armors.compact
  25.           return true if armor.name=="复活戒指"
  26.         end
  27.       end
  28.     end
  29.     return false
  30.   end
复制代码
在class Game_Enemy96行插入
  1.   #--------------------------------------------------------------------------
  2.   # ● 特殊装备特效
  3.   #type:       装备类型0为道具,1为防具,2为武器,
  4.   #itemid:     装备ID
  5.   #--------------------------------------------------------------------------
  6.   def mofa_s?(type=0,itemid=1) ##
  7.     return false
  8.   end
复制代码
在class Game_Battler196左右行插入(一定要插入在前一个方法完成之后。)
  1.   #--------------------------------------------------------------------------
  2.   # ● 特殊装备特效
  3.   #type:       装备类型0为道具,1为防具,2为武器,
  4.   #itemid:     装备ID
  5.   #--------------------------------------------------------------------------
  6.   def mofa_s?(type=0,itemid=1) ##
  7.     return mofa_s?(type,itemid)
  8.   end
  9. 3:上面弄好了,则开始弄它的效果。
  10. 首先是复制戒指效果,在class Game_Battler 的  def make_obj_damage_value(user, obj)当中damage = obj.base_damage                        之后插入。
  11. [/co[code]    ###########复制戒指偷学敌人的特技.
  12.     if self.mofa_s?(1,33)  #参数1为防具,33为复制戒指的ID
  13.       self.learn_skill(obj.id) and p"偷学到怪物特技:#{obj.name}" unless rand(100)>=30 and self.skill_learn?(obj.id)
  14.     end      
  15.      ##########
复制代码
de]
注:p 为复制怪物魔法成功后提示,此提示很直接,若是不想用这个方法,则需要加一个标志,然后在战斗函数中显示出来。复活戒指就是用的这种显示方法,可以参照。
若是只定义一个复制戒指,就算完成了。OK了。

4:护身戒指和复活戒指效果,在def execute_damage(user)函数中找到self.hp -= @hp_damage,然后将下面的代码替换它就行了。
  1.     ###########护身戒指效果
  2.     if self.mofa_s?(1,31)
  3.       if @hp_damage>self.mp
  4.         @hp_damage-=self.mp
  5.         self.mp=0
  6.         self.hp -= @hp_damage
  7.       else
  8.         self.mp -= @hp_damage
  9.       end
  10.     else
  11.       self.hp -= @hp_damage
  12.     end
  13.     self.mp -= @mp_damage
  14.    
  15.     ###########复活戒指效果
  16.     if self.mofa_s?(1,32) and rand(100)>=70
  17.       self.hp = self.maxhp if self.hp <= 0
  18.       @huhuo_x=true
  19.     end

  20. 注:所有戒指效果完成。

  21. 若是复活戒指要有提示的话,则在class Game_Battler中第31行添加 attr_reader   :huhuo_x
  22. 然后在80行左右添加@huhuo_x=false。
  23. 最后在class Scene_Battle中  def display_hp_damage(target, obj = nil)的最末尾,也就是wait(30)之后添加:
复制代码
  1.     #########复活戒指
  2.     if target.huhuo_x
  3.       text = "复活戒指发挥奇效!"
  4.       $game_message.texts.push(text)
  5.       wait_for_message
  6.     end
复制代码
工程 下载: 特殊戒指的制作.rar (239.66 KB, 下载次数: 621)

作者: fangqing9    时间: 2011-10-8 18:57
东西是好东西 但是这太麻烦了。。。。。本人很懒的说
作者: niji    时间: 2011-10-19 19:48
很有意思 要研究一下
作者: 御宅酱    时间: 2011-10-22 23:21
好东西啊
作者: xuzhengchi    时间: 2011-10-26 21:36
顶,拿来研究下
作者: 344143370    时间: 2013-1-16 13:46
不知道为什么我把 防具换个ID后就实现不了效果不知道是哪里出错了




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