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

Project1

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

[已经解决] 如何制作随人物等级成长的装备

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
27 小时
注册时间
2010-12-11
帖子
15
跳转到指定楼层
1
发表于 2014-8-10 22:01:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何制作随人物等级成长的装备

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6543
在线时间
1275 小时
注册时间
2013-8-21
帖子
3657

开拓者

2
发表于 2014-8-10 22:07:10 | 只看该作者
可能装备养成技能会是你想要的
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22713
在线时间
8623 小时
注册时间
2011-12-31
帖子
3367
3
发表于 2014-8-14 17:15:07 | 只看该作者
本帖最后由 tseyik 于 2014-8-14 17:18 编辑

在武器/防具的備注欄依規則填下以下記号
  1. =begin #-----------------------------------------------------------------------

  2. ●アクター成長装備【RGSS3 by Declare War】

  3. 装備した状態でレベルアップすると特定のパラメータが上昇する装備を作成

  4. 武器/防具のメモ欄に下記のどれかを書く
  5. <成長:xxx,n>      # LVUP時に xxx が n 上昇する
  6. <固定成長:xxx,n>  # LVUP時に xxx が n 上昇する( <成長:xxx,n> と同じ)
  7. <成長:xxx,n,m>    # LVUP時に xxx が n + (0 ~ m) 上昇する
  8. <ランダム成長:n>  # LVUP時に全ステが 0 ~ n 上昇する

  9. xxx は パラメータの略称で mhp,mmp,atk,def,mat,mdf,agi,luk のどれか

  10. 【仕様】
  11. 成長装備で上昇したステは職業を変更してもそのまま

  12. 【イベントコマンド】
  13. $game_actors[n].force_grow_equip_param_ini # 成長装備の成長分を初期化

  14. 【利用規約】
  15. 著作権明記と利用報告は不要、加工自由、転載と配布は禁止

  16. 【バージョン情報】
  17. v1.2 - 個別パラメータのランダム成長に対応
  18. v1.1 - ランダム成長に対応
  19. v1.0 - 公開

  20. =end #-------------------------------------------------------------------------
  21. class RPG::EquipItem < RPG::BaseItem
  22.   #--------------------------------------------------------------------------
  23.   # ● 定数 / 設定 / ランダム成長で成長するパラメータ
  24.   # HPMPを除くなら ["atk","def","mat","mdf","agi","luk"]
  25.   #--------------------------------------------------------------------------
  26.   GROW_RANDOM_EFF = ["mhp","mmp","atk","def","mat","mdf","agi","luk"]
  27.   #--------------------------------------------------------------------------
  28.   # ● 定数
  29.   #--------------------------------------------------------------------------
  30.   GROW_PARAM_REG  = /<(?:固定)?成長:([a-z]{3}),(\d+)(?:,(\d+))?>/
  31.   GROW_RANDOM_REG = /<ランダム成長:(\d+)>/
  32.   GROW_PARAM = { "mhp" => 0, "mmp" => 1, "atk" => 2, "def" => 3,
  33.                  "mat" => 4, "mdf" => 5, "agi" => 6, "luk" => 7 }
  34.   #--------------------------------------------------------------------------
  35.   # ● 成長パラメータの取得
  36.   #--------------------------------------------------------------------------
  37.   def grow_param
  38.     make_grow_param if @grow_param == nil || !@grow_random
  39.     @grow_param
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● ランダム成長パラメータを取得
  43.   #--------------------------------------------------------------------------
  44.   def calc_grow_param
  45.     array = []
  46.     8.times{|i| array[i] = @grow_param[i] + rand(@grow_random[i] + 1)}
  47.     array
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 成長パラメータの作成
  51.   #--------------------------------------------------------------------------
  52.   def make_grow_param
  53.     @grow_param = Array.new(8,0)
  54.     @grow_per_rand = Array.new(8,0)
  55.     note.each_line{|line| set_grow_param($~) if GROW_PARAM_REG =~ line}
  56.     make_grow_random
  57.     if @grow_param.count(0) == @grow_param.count &&
  58.                                @grow_random.count(0) == @grow_random.count
  59.       @grow_param = false
  60.     end
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● ランダム成長パラメータの作成
  64.   #--------------------------------------------------------------------------
  65.   def make_grow_random
  66.     @grow_random = Array.new(8,0)
  67.     num = GROW_RANDOM_REG =~ note ? $1.to_i : 0
  68.     GROW_RANDOM_EFF.each{|i| @grow_random[GROW_PARAM[i]] = num}
  69.     8.times{|i|  @grow_random[i] += @grow_per_rand[i]}
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 成長パラメータのセット
  73.   #--------------------------------------------------------------------------
  74.   def set_grow_param(data)
  75.     return if !GROW_PARAM[data[1]]
  76.     @grow_param[GROW_PARAM[data[1]]] += data[2].to_i
  77.     @grow_per_rand[GROW_PARAM[data[1]]] += data[3].to_i
  78.   end
  79. end

  80. class Game_BattlerBase
  81.   #--------------------------------------------------------------------------
  82.   # ● 成長装備による能力の加算値を初期化
  83.   #--------------------------------------------------------------------------
  84.   def grow_equip_param_ini
  85.     @grow_param_plus = Array.new(8, 0) if !@grow_param_plus
  86.   end
  87.   #--------------------------------------------------------------------------
  88.   # ● 通常能力値の加算値取得(エイリアス)
  89.   #--------------------------------------------------------------------------
  90.   alias grow_equip_param_plus param_plus
  91.   def param_plus(param_id)
  92.     grow_equip_param_plus(param_id) + grow_equip_param(param_id)
  93.   end
  94.   #--------------------------------------------------------------------------
  95.   # ● 成長装備による能力の加算値を取得
  96.   #--------------------------------------------------------------------------
  97.   def grow_equip_param(param_id)
  98.     grow_equip_param_ini
  99.     @grow_param_plus[param_id]
  100.   end
  101. end

  102. class Game_Actor < Game_Battler
  103.   #--------------------------------------------------------------------------
  104.   # ● オブジェクト初期化(エイリアス)
  105.   #--------------------------------------------------------------------------
  106.   alias grow_equip_initialize initialize
  107.   def initialize(actor_id)
  108.     grow_equip_initialize(actor_id)
  109.     force_grow_equip_param_ini
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 成長装備による能力の加算値を強制的に初期化
  113.   #--------------------------------------------------------------------------
  114.   def force_grow_equip_param_ini
  115.     @grow_param_plus = Array.new(8, 0)
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● レベルアップ(エイリアス)
  119.   #--------------------------------------------------------------------------
  120.   alias grow_equip_level_up level_up
  121.   def level_up
  122.     grow_equip_level_up
  123.     get_grow_equip_bonus
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● 成長装備のボーナスを入手
  127.   #--------------------------------------------------------------------------
  128.   def get_grow_equip_bonus
  129.     grow_equip_param_ini
  130.     grow_equips.each{|item| add_grow_equip_bonus(item.calc_grow_param)}
  131.     refresh
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 成長装備を取得
  135.   #--------------------------------------------------------------------------
  136.   def grow_equips
  137.     equips.compact.select{|item| item.grow_param}
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 成長装備のボーナスを付加
  141.   #--------------------------------------------------------------------------
  142.   def add_grow_equip_bonus(grow_param)
  143.     grow_param.each_with_index{|value,index| grow_equip_add_param(index, value)}
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● 能力値の加算
  147.   #--------------------------------------------------------------------------
  148.   def grow_equip_add_param(param_id, value)
  149.     @grow_param_plus[param_id] += value
  150.   end
  151. end
复制代码

点评

简直就是机器猫,什么脚本都有啊.............  发表于 2014-8-16 00:33

评分

参与人数 2星屑 +15 梦石 +1 收起 理由
taroxd + 1 认可答案
漫漫人生路 + 15 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 23:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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