设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1405|回复: 1
打印 上一主题 下一主题

[已经过期] 升级提高属性如何调整

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3591
在线时间
1890 小时
注册时间
2010-6-19
帖子
1211
跳转到指定楼层
1
发表于 2015-1-13 06:45:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
下面这个等级突破上限的脚本,升级的时候,属性貌似加的太变态了,
导致把敌人数据库的力量和攻击都调整到999,打角色都打不出血来。。。
有没办法改成像默认的那样附加属性。
  1.   # 突破等级、能力上限

  2.   # 等级可无限提升

  3.   BASE_FINAL_LEVEL = 150    # 等级最高值
  4.   MAXHP_LIMIT = 9999999     # 气血最高值
  5.   MAXSP_LIMIT = 9999999     # 魔法最高值
  6.   STR_LIMIT   = 999999      # 力量最高值
  7.   DEX_LIMIT   = 999999      # 灵巧最高值
  8.   AGI_LIMIT   = 999999      # 速度最高值
  9.   INT_LIMIT   = 999999      # 魔力最高值

  10. class Game_Actor < Game_Battler
  11.   def new_final_level
  12.     lv = BASE_FINAL_LEVEL
  13.     #以下上限LV個別指定用
  14.     #case self.id
  15.     #when 1
  16.     #  lv = 255
  17.     #when 2
  18.     #  lv = 999
  19.     #when 8
  20.     #  lv = 15600
  21.     #end
  22.     return lv
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 计算 EXP
  26.   #--------------------------------------------------------------------------
  27.   def make_exp_list
  28.     actor = $data_actors[@actor_id]
  29.     @exp_list = Array.new(new_final_level + 2)
  30.     @exp_list[1] = 0
  31.     pow_i = 2.4 + actor.exp_inflation / 100.0
  32.     for i in 2..new_final_level + 1
  33.       if i > new_final_level
  34.         @exp_list[i] = 0
  35.       else
  36.         n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
  37.         @exp_list[i] = @exp_list[i-1] + Integer(n)
  38.       end
  39.     end
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 获取 MaxHP
  43.   #--------------------------------------------------------------------------
  44.   def maxhp
  45.     n = [[base_maxhp + @maxhp_plus, 1].max, MAXHP_LIMIT].min
  46.     for i in @states
  47.       n *= $data_states[i].maxhp_rate / 100.0
  48.     end
  49.     n = [[Integer(n), 1].max, MAXHP_LIMIT].min
  50.     return n
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 获取基本 MaxHP
  54.   #--------------------------------------------------------------------------
  55.   def base_maxhp
  56.     n = $data_actors[@actor_id].parameters[0, 1]
  57.     n += $data_actors[@actor_id].parameters[0, 2] * @level
  58.     return n
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 获取基本 MaxSP
  62.   #--------------------------------------------------------------------------
  63.   def base_maxsp
  64.     n = $data_actors[@actor_id].parameters[1, 1]
  65.     n += $data_actors[@actor_id].parameters[1, 2] * @level
  66.     return n
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 获取基本力量
  70.   #--------------------------------------------------------------------------
  71.   def base_str
  72.     n = $data_actors[@actor_id].parameters[2, 1]
  73.     n += $data_actors[@actor_id].parameters[2, 2] * @level
  74.     weapon = $data_weapons[@weapon_id]
  75.     armor1 = $data_armors[@armor1_id]
  76.     armor2 = $data_armors[@armor2_id]
  77.     armor3 = $data_armors[@armor3_id]
  78.     armor4 = $data_armors[@armor4_id]
  79.     n += weapon != nil ? weapon.str_plus : 0
  80.     n += armor1 != nil ? armor1.str_plus : 0
  81.     n += armor2 != nil ? armor2.str_plus : 0
  82.     n += armor3 != nil ? armor3.str_plus : 0
  83.     n += armor4 != nil ? armor4.str_plus : 0
  84.     return [[n, 1].max, STR_LIMIT].min
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 获取基本灵巧
  88.   #--------------------------------------------------------------------------
  89.   def base_dex
  90.     n = $data_actors[@actor_id].parameters[3, 1]
  91.     n += $data_actors[@actor_id].parameters[3, 2] * @level
  92.     weapon = $data_weapons[@weapon_id]
  93.     armor1 = $data_armors[@armor1_id]
  94.     armor2 = $data_armors[@armor2_id]
  95.     armor3 = $data_armors[@armor3_id]
  96.     armor4 = $data_armors[@armor4_id]
  97.     n += weapon != nil ? weapon.dex_plus : 0
  98.     n += armor1 != nil ? armor1.dex_plus : 0
  99.     n += armor2 != nil ? armor2.dex_plus : 0
  100.     n += armor3 != nil ? armor3.dex_plus : 0
  101.     n += armor4 != nil ? armor4.dex_plus : 0
  102.     return [[n, 1].max, DEX_LIMIT].min
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 获取基本速度
  106.   #--------------------------------------------------------------------------
  107.   def base_agi
  108.     n = $data_actors[@actor_id].parameters[4, 1]
  109.     n += $data_actors[@actor_id].parameters[4, 2] * @level
  110.     weapon = $data_weapons[@weapon_id]
  111.     armor1 = $data_armors[@armor1_id]
  112.     armor2 = $data_armors[@armor2_id]
  113.     armor3 = $data_armors[@armor3_id]
  114.     armor4 = $data_armors[@armor4_id]
  115.     n += weapon != nil ? weapon.agi_plus : 0
  116.     n += armor1 != nil ? armor1.agi_plus : 0
  117.     n += armor2 != nil ? armor2.agi_plus : 0
  118.     n += armor3 != nil ? armor3.agi_plus : 0
  119.     n += armor4 != nil ? armor4.agi_plus : 0
  120.     return [[n, 1].max, AGI_LIMIT].min
  121.   end
  122.   #--------------------------------------------------------------------------
  123.   # ● 获取基本魔力
  124.   #--------------------------------------------------------------------------
  125.   def base_int
  126.     n = $data_actors[@actor_id].parameters[5, 1]
  127.     n += $data_actors[@actor_id].parameters[5, 2] * @level
  128.     weapon = $data_weapons[@weapon_id]
  129.     armor1 = $data_armors[@armor1_id]
  130.     armor2 = $data_armors[@armor2_id]
  131.     armor3 = $data_armors[@armor3_id]
  132.     armor4 = $data_armors[@armor4_id]
  133.     n += weapon != nil ? weapon.int_plus : 0
  134.     n += armor1 != nil ? armor1.int_plus : 0
  135.     n += armor2 != nil ? armor2.int_plus : 0
  136.     n += armor3 != nil ? armor3.int_plus : 0
  137.     n += armor4 != nil ? armor4.int_plus : 0
  138.     return [[n, 1].max, INT_LIMIT].min
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # ● 更改 EXP
  142.   #     exp : 新的 EXP
  143.   #--------------------------------------------------------------------------
  144.   def exp=(exp)
  145.     # ★EXPの上限チェックを解除
  146.     @exp = [exp, 0].max
  147.     # 升级
  148.     while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
  149.       @hp = maxhp
  150.       @sp = maxsp
  151.       @level += 1
  152.       # 学会特技
  153.       for j in $data_classes[@class_id].learnings
  154.         if j.level == @level
  155.           learn_skill(j.skill_id)
  156.         end
  157.       end
  158.     end
  159.     # 降级
  160.     while @exp < @exp_list[@level]
  161.       @level -= 1
  162.     end
  163.     # 修正当前的 HP 与 SP 超过最大值
  164.     @hp = [@hp, self.maxhp].min
  165.     @sp = [@sp, self.maxsp].min
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ● 更改水品
  169.   #     level : 新的等级
  170.   #--------------------------------------------------------------------------
  171.   def level=(level)
  172.     # 检查上下限
  173.     # ★LV上限をnew_final_levelでチェックするように変更
  174.     level = [[level, new_final_level].min, 1].max
  175.     # 更改 EXP
  176.     self.exp = @exp_list[level]
  177.   end
  178. end
  179.   
  180.   
  181. class Game_Battler
  182.   #--------------------------------------------------------------------------
  183.   # ● 获取 MaxSP
  184.   #--------------------------------------------------------------------------
  185.   def maxsp
  186.     n = [[base_maxsp + @maxsp_plus, 0].max, MAXSP_LIMIT].min
  187.     for i in @states
  188.       n *= $data_states[i].maxsp_rate / 100.0
  189.     end
  190.     n = [[Integer(n), 0].max, MAXSP_LIMIT].min
  191.     return n
  192.   end
  193.   #--------------------------------------------------------------------------
  194.   # ● 获取力量
  195.   #--------------------------------------------------------------------------
  196.   def str
  197.     n = [[base_str + @str_plus, 1].max, STR_LIMIT].min
  198.     for i in @states
  199.       n *= $data_states[i].str_rate / 100.0
  200.     end
  201.     n = [[Integer(n), 1].max, STR_LIMIT].min
  202.     return n
  203.   end
  204.   #--------------------------------------------------------------------------
  205.   # ● 获取灵巧
  206.   #--------------------------------------------------------------------------
  207.   def dex
  208.     n = [[base_dex + @dex_plus, 1].max, DEX_LIMIT].min
  209.     for i in @states
  210.       n *= $data_states[i].dex_rate / 100.0
  211.     end
  212.     n = [[Integer(n), 1].max, DEX_LIMIT].min
  213.     return n
  214.   end
  215.   #--------------------------------------------------------------------------
  216.   # ● 获取速度
  217.   #--------------------------------------------------------------------------
  218.   def agi
  219.     n = [[base_agi + @agi_plus, 1].max, AGI_LIMIT].min
  220.     for i in @states
  221.       n *= $data_states[i].agi_rate / 100.0
  222.     end
  223.     n = [[Integer(n), 1].max, AGI_LIMIT].min
  224.     return n
  225.   end
  226.   #--------------------------------------------------------------------------
  227.   # ● 获取魔力
  228.   #--------------------------------------------------------------------------
  229.   def int
  230.     n = [[base_int + @int_plus, 1].max, INT_LIMIT].min
  231.     for i in @states
  232.       n *= $data_states[i].int_rate / 100.0
  233.     end
  234.     n = [[Integer(n), 1].max, INT_LIMIT].min
  235.     return n
  236.   end
  237.   #--------------------------------------------------------------------------
  238.   # ● 设置 MaxHP
  239.   #     maxhp : 新的 MaxHP
  240.   #--------------------------------------------------------------------------
  241.   def maxhp=(maxhp)
  242.     @maxhp_plus += maxhp - self.maxhp
  243.     @maxhp_plus = [[@maxhp_plus, -MAXHP_LIMIT].max, MAXHP_LIMIT].min
  244.     @hp = [@hp, self.maxhp].min
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ● 设置 MaxSP
  248.   #     maxsp : 新的 MaxSP
  249.   #--------------------------------------------------------------------------
  250.   def maxsp=(maxsp)
  251.     @maxsp_plus += maxsp - self.maxsp
  252.     @maxsp_plus = [[@maxsp_plus, -MAXSP_LIMIT].max, MAXSP_LIMIT].min
  253.     @sp = [@sp, self.maxsp].min
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● 设置力量
  257.   #     str : 新的力量
  258.   #--------------------------------------------------------------------------
  259.   def str=(str)
  260.     @str_plus += str - self.str
  261.     @str_plus = [[@str_plus, -STR_LIMIT].max, STR_LIMIT].min
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # ● 设置灵巧
  265.   #     dex : 新的灵巧
  266.   #--------------------------------------------------------------------------
  267.   def dex=(dex)
  268.     @dex_plus += dex - self.dex
  269.     @dex_plus = [[@dex_plus, -DEX_LIMIT].max, DEX_LIMIT].min
  270.   end
  271.   #--------------------------------------------------------------------------
  272.   # ● 设置速度
  273.   #     agi : 新的速度
  274.   #--------------------------------------------------------------------------
  275.   def agi=(agi)
  276.     @agi_plus += agi - self.agi
  277.     @agi_plus = [[@agi_plus, -AGI_LIMIT].max, AGI_LIMIT].min
  278.   end
  279.   #--------------------------------------------------------------------------
  280.   # ● 设置魔力
  281.   #     int : 新的魔力
  282.   #--------------------------------------------------------------------------
  283.   def int=(int)
  284.     @int_plus += int - self.int
  285.     @int_plus = [[@int_plus, -INT_LIMIT].max, INT_LIMIT].min
  286.   end
  287. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2014-8-7
帖子
67
2
发表于 2015-3-8 02:23:32 | 只看该作者
饿饿,这个问题小弟也很想知道,求各位高手的解答
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 20:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表