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

Project1

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

[已经过期] 如何在角色更换职业之后改变角色的能力成长曲线

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2014-9-30
帖子
18
跳转到指定楼层
1
发表于 2015-2-7 18:09:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
更换前成长慢 更换后成长的很快

Lv4.逐梦者

梦石
0
星屑
13647
在线时间
3853 小时
注册时间
2013-7-18
帖子
2314
2
发表于 2015-2-7 20:38:04 | 只看该作者
思路:设置两个一样的人物,一个成长低.一个成长高,高的那个职业变成你想要的,并且转职直接换人

问题是,装备必须全部卸下转职,否则装备不一样会穿帮..........

评分

参与人数 2星屑 +76 收起 理由
hys111111 + 66 认可答案
邪月长啸 + 10 我很赞同

查看全部评分

山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
853 小时
注册时间
2014-5-5
帖子
948
3
发表于 2015-2-10 21:10:51 | 只看该作者
本帖最后由 邪月长啸 于 2015-2-10 21:17 编辑

先新建两个公共事件
先储存要转职的角色1(阿尔西斯)装备
为了节约时间,只用武器为例子


然后再设置一个提取装备的事件


然后把角色1(阿尔西斯)的属性复制一下
然后稍作提高属性


转职事件设置如下


要注意,事件里加入的阿尔西斯是数据库里ID2的阿尔西斯
转职后的职业要把武器装备关联打勾
不然转职后可能会出现武器装备不上的问题
如果要设置转职技能,也可以
这样如果在25级前转职,那转职后的2号就会多增加转职前的3个技能
跟口袋妖怪有点像

注意,变量操作的是1号阿尔西斯
增加技能的是2号阿尔西斯

评分

参与人数 1星屑 +200 收起 理由
hys111111 + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33469
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 2015-2-11 10:13:13 | 只看该作者
本帖最后由 芯☆淡茹水 于 2015-2-11 10:29 编辑

如果觉得麻烦的话,可以试试直接改变, 顺便附一个EXP的改变:

RUBY 代码复制
  1. #==============================================================================
  2. # ● 使用方法:事件—>脚本:$game_actors[角色ID].change_parameters(type, base, rise)
  3. #              括号里面:type: 类型(0:MaxHP,1:MaxSP,2:力量,3:灵巧,4:速度,5:魔力)。
  4. #                        base: 基本值。
  5. #                        rise: 每升一级的增长值。
  6.  
  7.  
  8. #             改变EXP曲线:$game_actors[角色ID].change_exp_list(base, rise)
  9. #                括号里面:base: 基本值。
  10. #                          rise: 增加度。
  11. #
  12. #==============================================================================
  13. class Game_Actor < Game_Battler
  14.   #--------------------------------------------------------------------------
  15.   # ● 改变成长曲线。
  16.   #--------------------------------------------------------------------------
  17.   def change_parameters(type, base, rise)
  18.     for i in 1..99
  19.       $data_actors[@actor_id].parameters[type, i] = base + i * rise
  20.     end
  21.     save_data($data_actors, "Data/Actors.rxdata")
  22.     @hp = maxhp if type == 0
  23.     @sp = maxsp if type == 1
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 改变EXP曲线。
  27.   #--------------------------------------------------------------------------
  28.   def change_exp_list(base, rise)
  29.     actor = $data_actors[@actor_id]
  30.     actor.exp_basis = base
  31.     actor.exp_inflation = rise
  32.     make_exp_list
  33.     @exp = @exp_list[@level]
  34.     save_data($data_actors, "Data/Actors.rxdata")
  35.   end
  36. end
  37. #==============================================================================


就是不知道游戏封装后,还能不能储存数据库。

点评

能储存数据库,但是会影响所有的存档  发表于 2015-2-11 20:35
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2014-9-30
帖子
18
5
 楼主| 发表于 2015-2-13 14:20:50 | 只看该作者
芯☆淡茹水 发表于 2015-2-11 10:13
如果觉得麻烦的话,可以试试直接改变, 顺便附一个EXP的改变:

#======================================== ...

谢谢大神,不过这的确会影响所有存档,因为它改变了整个游戏中角色的数据库
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33469
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

6
发表于 2015-2-13 16:11:53 | 只看该作者
下面这个是不会改变存档的:
  1. #==============================================================================
  2. # ● 使用方法:事件—>脚本:$game_actors[角色ID].change_parameters(type, base, rise)
  3. #              括号里面:type: 类型(0:MaxHP,1:MaxSP,2:力量,3:灵巧,4:速度,5:魔力)。
  4. #                        base: 基本值。
  5. #                        rise: 每升一级的增长值。


  6. #             改变EXP曲线:$game_actors[角色ID].change_exp_list(base, rise)
  7. #                括号里面:base: 基本值。
  8. #                          rise: 增加度。
  9. #
  10. #==============================================================================
  11. class Game_Actor < Game_Battler
  12.   #--------------------------------------------------------------------------
  13.   alias add_setup_xdrs setup
  14.   def setup(actor_id)
  15.     @parameters = $data_actors[actor_id].parameters.clone
  16.     @exp_basis = $data_actors[actor_id].exp_basis
  17.     @exp_inflation = $data_actors[actor_id].exp_inflation
  18.     add_setup_xdrs(actor_id)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 改变成长曲线。
  22.   #--------------------------------------------------------------------------
  23.   def change_parameters(type, base, rise)
  24.     for i in 1..99
  25.       @parameters[type, i] = base + i * rise
  26.     end
  27.     @hp = maxhp if type == 0
  28.     @sp = maxsp if type == 1
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 改变EXP曲线。
  32.   #--------------------------------------------------------------------------
  33.   def change_exp_list(base, rise)
  34.     @exp_basis = base
  35.     @exp_inflation = rise
  36.     make_exp_list
  37.     @exp = @exp_list[@level]
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● 计算 EXP
  41.   #--------------------------------------------------------------------------
  42.   def make_exp_list
  43.     actor = $data_actors[@actor_id]
  44.     @exp_list[1] = 0
  45.     pow_i = 2.4 + @exp_inflation / 100.0
  46.     for i in 2..100
  47.       if i > actor.final_level
  48.         @exp_list[i] = 0
  49.       else
  50.         n = @exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
  51.         @exp_list[i] = @exp_list[i-1] + Integer(n)
  52.       end
  53.     end
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 获取基本 MaxHP
  57.   #--------------------------------------------------------------------------
  58.   def base_maxhp
  59.     return @parameters[0, @level]
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 获取基本 MaxSP
  63.   #--------------------------------------------------------------------------
  64.   def base_maxsp
  65.     return @parameters[1, @level]
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 获取基本力量
  69.   #--------------------------------------------------------------------------
  70.   def base_str
  71.     n = @parameters[2, @level]
  72.     weapon = $data_weapons[@weapon_id]
  73.     armor1 = $data_armors[@armor1_id]
  74.     armor2 = $data_armors[@armor2_id]
  75.     armor3 = $data_armors[@armor3_id]
  76.     armor4 = $data_armors[@armor4_id]
  77.     n += weapon != nil ? weapon.str_plus : 0
  78.     n += armor1 != nil ? armor1.str_plus : 0
  79.     n += armor2 != nil ? armor2.str_plus : 0
  80.     n += armor3 != nil ? armor3.str_plus : 0
  81.     n += armor4 != nil ? armor4.str_plus : 0
  82.     return [[n, 1].max, 999].min
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● 获取基本灵巧
  86.   #--------------------------------------------------------------------------
  87.   def base_dex
  88.     n = @parameters[3, @level]
  89.     weapon = $data_weapons[@weapon_id]
  90.     armor1 = $data_armors[@armor1_id]
  91.     armor2 = $data_armors[@armor2_id]
  92.     armor3 = $data_armors[@armor3_id]
  93.     armor4 = $data_armors[@armor4_id]
  94.     n += weapon != nil ? weapon.dex_plus : 0
  95.     n += armor1 != nil ? armor1.dex_plus : 0
  96.     n += armor2 != nil ? armor2.dex_plus : 0
  97.     n += armor3 != nil ? armor3.dex_plus : 0
  98.     n += armor4 != nil ? armor4.dex_plus : 0
  99.     return [[n, 1].max, 999].min
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 获取基本速度
  103.   #--------------------------------------------------------------------------
  104.   def base_agi
  105.     n = @parameters[4, @level]
  106.     weapon = $data_weapons[@weapon_id]
  107.     armor1 = $data_armors[@armor1_id]
  108.     armor2 = $data_armors[@armor2_id]
  109.     armor3 = $data_armors[@armor3_id]
  110.     armor4 = $data_armors[@armor4_id]
  111.     n += weapon != nil ? weapon.agi_plus : 0
  112.     n += armor1 != nil ? armor1.agi_plus : 0
  113.     n += armor2 != nil ? armor2.agi_plus : 0
  114.     n += armor3 != nil ? armor3.agi_plus : 0
  115.     n += armor4 != nil ? armor4.agi_plus : 0
  116.     return [[n, 1].max, 999].min
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 获取基本魔力
  120.   #--------------------------------------------------------------------------
  121.   def base_int
  122.     n = @parameters[5, @level]
  123.     weapon = $data_weapons[@weapon_id]
  124.     armor1 = $data_armors[@armor1_id]
  125.     armor2 = $data_armors[@armor2_id]
  126.     armor3 = $data_armors[@armor3_id]
  127.     armor4 = $data_armors[@armor4_id]
  128.     n += weapon != nil ? weapon.int_plus : 0
  129.     n += armor1 != nil ? armor1.int_plus : 0
  130.     n += armor2 != nil ? armor2.int_plus : 0
  131.     n += armor3 != nil ? armor3.int_plus : 0
  132.     n += armor4 != nil ? armor4.int_plus : 0
  133.     return [[n, 1].max, 999].min
  134.   end
  135. end
  136. #==============================================================================
复制代码

评分

参与人数 1星屑 +100 收起 理由
hys111111 + 100 认可答案

查看全部评分

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 12:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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