Project1

标题: 角色特性那些条款能不能做成到指定等级才生效? [打印本页]

作者: Luciffer    时间: 2013-9-10 22:34
标题: 角色特性那些条款能不能做成到指定等级才生效?
本帖最后由 Luciffer 于 2013-9-11 11:27 编辑


就像这种,能不能做成比如10级起第一条生效,然后20级第二条生效这样?
主要是可以配合学习技能学会不可使用的技能和这个配合一起当做被动技能来用=-=
作者: 黑化の鼠标    时间: 2013-9-10 23:32
最偷工减料的方法是例如把【拉尔夫】做成【拉尔夫1级】【拉尔夫10级】【拉尔夫20级】................之后公共事件判定等级进行队员增减操作....之后身上的装备用变量记录好一并更换........
作者: 345912390    时间: 2013-9-11 06:14
本帖最后由 345912390 于 2013-9-11 08:18 编辑

做限制的脚本不知道, 不过可以做添加,当角色升级后加入某一特性
脚本原理结构如下,可能有错,自己修改吧!
  1. class Game_Actor < Game_Battler
  2.         alias old_level_up level_up
  3.         def level_up
  4.     old_level_up#这个地方可以用原来的 level_up的内容,但其测试结果的有细微差别,原因我就不清楚了!
  5.                 case @actor_id#判断升级角色
  6.                 when 1
  7.                         case @level#判断等级
  8.                         when 10
  9.         self.actor.features.push(RPG::BaseItem::Feature.new(21,0, 10))
  10.                         when 20
  11.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22,1, 0.95))
  12.                         when 30
  13.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 1, 0.05))
  14.                         when 40
  15.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 2, 0.04))
  16.       else
  17.         
  18.                         end
  19.                 when 2                       
  20.                         case @level#判断等级
  21.                         when 10
  22.                                 self.actor.features.push(RPG::BaseItem::Feature.new(23, 0, 1))
  23.                         when 20
  24.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 0, 0.95))
  25.                         when 30
  26.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 1, 0.05))
  27.                         when 40
  28.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 2, 0.04))
  29.                         end
  30.                 when 3                       
  31.                         case @level#判断等级
  32.                         when 10
  33.                                 self.actor.features.push(RPG::BaseItem::Feature.new(23, 0, 1))
  34.                         when 20
  35.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 0, 0.95))
  36.                         when 30
  37.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 1, 0.05))
  38.                         when 40
  39.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 2, 0.04))
  40.                         end
  41.                 when 4                       
  42.                         case @level#判断等级
  43.                         when 10
  44.                                 self.actor.features.push(RPG::BaseItem::Feature.new(23, 0, 1))
  45.                         when 20
  46.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 0, 0.95))
  47.                         when 30
  48.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 1, 0.05))
  49.                         when 40
  50.                                 self.actor.features.push(RPG::BaseItem::Feature.new(22, 2, 0.04))
  51.                         end
  52.                 end
  53.         end
  54. end
复制代码

作者: LBQ    时间: 2013-9-11 10:02
比如说你给埃里克设了两个特效,一个是习得魔法,一个是习得技能

那么第一个就是编号为0
第二个就是编号为1

在设置里面就是:
0 => 2 #需要2级才能习得魔法
1 => 3 #需要3级才能习得技能


RUBY 代码复制
  1. #特效等级生效 by LBQ
  2.  
  3. module LBQ_Feature_Config
  4.   SET  = {
  5.     # 设置
  6.  
  7.  
  8.     #人物编号
  9.     1 => {
  10.       # 特效编号 => 需要等级
  11.       0 => 2,
  12.       1 => 3,
  13.       10=> 10,
  14.     },
  15.   }
  16. end
  17.  
  18.  
  19. class Game_Actor < Game_Battler
  20.   #--------------------------------------------------------------------------
  21.   # =-=
  22.   #--------------------------------------------------------------------------
  23.   def features(code)
  24.  
  25.     result = []
  26.     all_features.each_with_index do |ft,i|
  27.       if ft.code == code && can_have_feature?(i)
  28.         result.push ft
  29.       end
  30.     end
  31.  
  32.     if result
  33.       return result
  34.     end
  35.  
  36.   end # def
  37.  
  38.  
  39.  
  40.  
  41.   def can_have_feature?(x)
  42.     set = LBQ_Feature_Config::SET
  43.  
  44.  
  45.     result = false
  46.     result = true unless set[@actor_id]
  47.     result = true unless set[@actor_id][x]
  48.     if set[@actor_id][x]
  49.       result = true if self.level >= set[@actor_id][x]
  50.     end
  51.     return result
  52.   end
  53.  
  54.  
  55. end # Game Battlers

作者: Luciffer    时间: 2013-9-11 16:45
LBQ 发表于 2013-9-11 10:02
比如说你给埃里克设了两个特效,一个是习得魔法,一个是习得技能

那么第一个就是编号为0



未定义错误,但是作为脚本废的我也不会改啊=-=
作者: LBQ    时间: 2013-9-11 21:35
Luciffer 发表于 2013-9-11 16:45
未定义错误,但是作为脚本废的我也不会改啊=-=

还是出错了呢_(:з」∠)_
于是没有猜错的话是用了好几个角色吧。。。
于是新版出来了。。
  1. module LBQ_Feature_Config
  2.   SET  = {
  3.     1 => {
  4.       0 => 2,
  5.       1 => 3,
  6.       10=> 10,
  7.     },
  8.    
  9.    
  10.     2 => {
  11.       0 => 2
  12.     }
  13.   }
  14. end


  15. class Game_Actor < Game_Battler
  16.   #--------------------------------------------------------------------------
  17.   # =-=
  18.   #--------------------------------------------------------------------------
  19.   def features(code)
  20.    
  21.     result = []
  22.     all_features.each_with_index do |ft,i|
  23.       if ft.code == code && can_have_feature?(i)
  24.         result.push ft
  25.       end
  26.     end
  27.    
  28.     if result
  29.       return result
  30.     end
  31.    
  32.   end # def
  33.   

  34.   
  35.   
  36.   def can_have_feature?(x)
  37.     set = LBQ_Feature_Config::SET
  38.    

  39.     result = false
  40.     result = true unless set[@actor_id]
  41.     if set[@actor_id]
  42.       result = true unless set[@actor_id][x]
  43.     end
  44.    

  45.    
  46.     if set[@actor_id]
  47.       if set[@actor_id][x]
  48.         result = true if self.level >= set[@actor_id][x]
  49.       end
  50.     end
  51.     return result
  52.   end
  53.   
  54.   
  55. end # Game Battlers
复制代码





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