查看: 2379|回复: 1

[已经解决] 根据职业限制能力值

[复制链接]
梦石
0
星屑
9687
在线时间
3224 小时
注册时间
2011-3-24
回帖
616

开拓者

发表于 2014-5-2 15:25:47 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
想做成类似以下效果:
2号职业的力量(str)上限为30
1号职业的力量上限为20
其余的职业力量上限为15
思路:
我想给每个Actor在Game_Actor里添加max_str这项,然后根据职业判断
就像这样:
  #--------------------------------------------------------------------------
  # ● 获取力量上限
  #--------------------------------------------------------------------------
  def max_str
    #根据职业----------------------------------------------------------------
    case @class_id
    when 2
    n = 30
    when 1
    n = 20
    else
    n = 15
    end
    #------------------------------------------------------------------------
    return [[n, 1].max, 999].min
  end
但是,如何用这个max_str去限制str呢?就像maxhp和hp的关系一样...怎么做?
>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<
梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2014-5-4 04:07:52 | 显示全部楼层
  1. #==============================================================================
  2. class Game_Actor < Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   # ● 获取力量上限
  5.   #--------------------------------------------------------------------------
  6.   def max_str
  7.     case @class_id
  8.     when 2
  9.       n = 30
  10.     when 1
  11.       n = 20
  12.     else
  13.       n = 15
  14.     end
  15.     return n
  16.   end
  17. end
  18. #==============================================================================
  19. class Game_Battler
  20.   #--------------------------------------------------------------------------
  21.   # ● 获取力量
  22.   #--------------------------------------------------------------------------
  23.   def str
  24.     n = [[base_str + @str_plus, 1].max, 999].min
  25.     for i in @states
  26.       n *= $data_states[i].str_rate / 100.0
  27.     end
  28.     ms = self.is_a?(Game_Actor) ? max_str : 999  #****
  29.     n = [[Integer(n), 1].max, ms].min
  30.     return n
  31.   end
  32. end
  33. #===============================================================================
复制代码

评分

参与人数 2星屑 +12 梦石 +1 收起 理由
myownroc + 1 认可答案
Mr.Jin + 12 太感谢了

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部