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

Project1

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

[RMVX发布] 升级时随即增加属性脚本

[复制链接]

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

跳转到指定楼层
1
发表于 2011-8-26 15:34:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 feizhaodan 于 2011-8-28 17:59 编辑

先上脚本
  1. #==============================================================================
  2. # ■ FE_Param
  3. #------------------------------------------------------------------------------
  4. # 设置各职业用的各数据
  5. # 制作者:feizhaodan
  6. # 版本: 1.1.0
  7. # 更新: 1.1.0 : 更改了随机式,从原来的非即下一项改为范围随机。
  8. #==============================================================================
  9. module FE_Param
  10.   
  11.     CLASSPER = {}   # 不要改
  12.    
  13.    
  14.     # 在这里设置各职业的提升几率
  15.     # 格式:
  16.     # CLASSPER[id] = {
  17.     # :para => n%,
  18.     #}
  19.     # id 输入职业ID
  20.     # para 代入属性标识(hp, mp, atk, def, spi, agi)
  21.     # n 代入属性提升几率
  22.     CLASSPER[1] ={
  23.     :hp         =>  60, # 血
  24.     :mp         =>  40, # 魔
  25.     :atk        =>  70, # 攻
  26.     :def        =>  60, # 防
  27.     :spi        =>  20, # 精神
  28.     :agi        =>  50, # 敏
  29.     }
  30.    
  31.     CLASSUP = {}    # 不要改
  32.    
  33.    
  34.     # 在这里设置各职业的提升量
  35.     # 格式:
  36.     # CLASSUP[id] = [mi, ma]
  37.     # id 输入职业ID
  38.     # mi 代入提升量最小值
  39.     # ma 代入提升量最大值
  40.     CLASSUP[1] = [5, 9]
  41. end



  42. #==============================================================================
  43. # ■ Game_Actor
  44. #------------------------------------------------------------------------------
  45. #  处理角色的类。本类在 Game_Actors 类 ($game_actors) 的内部使用、
  46. # Game_Party 类请参考 ($game_party) 。
  47. #==============================================================================

  48. class Game_Actor < Game_Battler
  49.   #--------------------------------------------------------------------------
  50.   # ● 初始化对像
  51.   #     actor_id : 角色 ID
  52.   #--------------------------------------------------------------------------
  53.   alias fe_param_initialize initialize
  54.   def initialize(actor_id)
  55.     @class_id = $data_actors[actor_id].class_id
  56.    
  57.     fe_param_initialize(actor_id)
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 获取提升量
  61.   #--------------------------------------------------------------------------
  62.   def param_up
  63.     param_up = FE_Param::CLASSUP[@class_id]
  64.     up = param_up[0] + rand(param_up[1] - param_up[0] + 1)
  65.     return up
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 获取提升率
  69.   #    param : 属性
  70.   #--------------------------------------------------------------------------
  71.   def param_per
  72.     @param_per = FE_Param::CLASSPER[@class_id] if @param_per == nil
  73.     return @param_per
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 获取已提升量
  77.   #    param : 属性
  78.   #--------------------------------------------------------------------------
  79.   def param_gained(param)
  80.     return 0 if @param_gained == nil
  81.     return 0 if @param_gained[param] == nil
  82.     return @param_gained[param]
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 获取基本体力最大值
  86.   #--------------------------------------------------------------------------
  87.   alias fe_base_maxhp base_maxhp
  88.   def base_maxhp
  89.     n = fe_base_maxhp + param_gained(:hp)
  90.     return n
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 获取基本体力最大值
  94.   #--------------------------------------------------------------------------
  95.   alias fe_base_maxmp base_maxmp
  96.   def base_maxmp
  97.     n = fe_base_maxmp + param_gained(:mp)
  98.     return n
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 获取基本攻击力
  102.   #--------------------------------------------------------------------------
  103.   alias fe_base_atk base_atk
  104.   def base_atk
  105.     n = fe_base_atk + param_gained(:atk)
  106.     return n
  107.   end
  108.   #--------------------------------------------------------------------------
  109.   # ● 获取基本防御力
  110.   #--------------------------------------------------------------------------
  111.   alias fe_base_def base_def
  112.   def base_def
  113.     n = fe_base_def + param_gained(:def)
  114.     return n
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 获取基本精神力
  118.   #--------------------------------------------------------------------------
  119.   alias fe_base_spi base_spi
  120.   def base_spi
  121.     n = fe_base_spi + param_gained(:spi)
  122.     return n
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取基本敏捷
  126.   #--------------------------------------------------------------------------
  127.   alias fe_base_agi base_agi
  128.   def base_agi
  129.     n = fe_base_agi + param_gained(:agi)
  130.     return n
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 升级
  134.   #--------------------------------------------------------------------------
  135.   alias fe_level_up level_up
  136.   def level_up
  137.     fe_level_up
  138.     gain_param
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # ● 提升属性
  142.   #--------------------------------------------------------------------------
  143.   def gain_param
  144.     @param_gained = {} if @param_gained == nil
  145.     param_per if @param_per == nil
  146.     percentage = 0
  147.     @param_per.each_value{|v|
  148.     percentage += v
  149.     }
  150.     point = param_up
  151.     hpper = @param_per[:hp]
  152.     mpper = @param_per[:mp] + @param_per[:hp]
  153.     atkper = @param_per[:mp] + @param_per[:hp] + @param_per[:atk]
  154.     defper = @param_per[:mp] + @param_per[:hp] + @param_per[:atk] + @param_per[:def]
  155.     spiper = defper + @param_per[:spi]
  156.     agiper = spiper + @param_per[:agi]
  157.     loop do
  158.     if point == 0
  159.       break
  160.     end
  161.     per = rand(percentage) + 1
  162.     case per
  163.     when 1...hpper
  164.       @param_gained[:hp] = 0 if @param_gained[:hp] == nil
  165.       @param_gained[:hp] += 1
  166.       point -= 1
  167.     when (hpper + 1)...mpper
  168.       @param_gained[:mp] = 0 if @param_gained[:mp] == nil
  169.       @param_gained[:mp] += 1
  170.       point -= 1
  171.     when (mpper + 1)...atkper
  172.       @param_gained[:atk] = 0 if @param_gained[:atk] == nil
  173.       @param_gained[:atk] += 1
  174.       point -= 1
  175.     when (atkper + 1)...defper
  176.       @param_gained[:def] = 0 if @param_gained[:def] == nil
  177.       @param_gained[:def] += 1
  178.       point -= 1
  179.     when (defper + 1)...spiper
  180.       @param_gained[:spi] = 0 if @param_gained[:spi] == nil
  181.       @param_gained[:spi] += 1
  182.       point -= 1
  183.     when (spiper + 1)...agiper
  184.       @param_gained[:agi] = 0 if @param_gained[:agi] == nil
  185.       @param_gained[:agi] += 1
  186.       point -= 1
  187.     end
  188.     end
  189.   end
  190. end
  191.    
复制代码
在刚开始的CLASSPER里按照格式设置所有的职业提升属性的几率。
再在CLASSUP里按照格式设置职业提升的属性量的最大值和最小值。
就ok啦。

简单的设置,
同时表示着简陋的功能

完了。

Lv3.寻梦者

梦石
0
星屑
4082
在线时间
1081 小时
注册时间
2008-5-17
帖子
218

开拓者

2
发表于 2011-8-26 18:49:01 | 只看该作者
本帖最后由 无名小兵 于 2011-8-26 19:37 编辑

好东西。。。顶了。。。。不过我的工程好像一直冲突 =。=
回复 支持 反对

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

3
 楼主| 发表于 2011-8-26 21:05:46 | 只看该作者
你找一下有没有定义Game_Actor里的level_up项
有得话,就是那个。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 22:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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