Project1

标题: 如何为角色属性添加经验 [打印本页]

作者: 紫英晓狼1130    时间: 2022-12-30 19:55
标题: 如何为角色属性添加经验
本帖最后由 紫英晓狼1130 于 2022-12-30 19:58 编辑

想将角色属性做成梯度增长 而不是增加点数
例如力量从1-10的难度和90-100的难度一定是不一样的
此处附上武林群侠传属性的成长经验表
[line]1[/line]自己在尝试的过程中使用了数组记录EXP表 但是无法与增减能力值同步刷新
以下是范例代码
RUBY 代码复制
  1. #numexp
  2.     numexp = [0,1,4,9,18,32,50,75,106,144,190,245,308,382,466,562,668,786,917,
  3.               1061,1217,1387,1570,1768,1980,2206,2447,2702,2972,3257,3557,3872,
  4.               4202,4547,4907,5281,5670,6074,6492,6924,7371,7831,8305,8793,9294,
  5.               9808,10335,10874,11426,11989,12565,13152,13750,14359,14979,15609,
  6.               16249,16899,17558,18227,18905,19591,20286,20989,21699,22418,23144,
  7.               23877,24617,25363,26116,26874,27639,28409,29185,29966,30752,31543,
  8.               32338,33138,33941,34749,35561,36377,37195,38018,38843,39671,40503,
  9.               41336,42173,43012,43853,44697,45542,46390,47239,48090,48943,50000,0]
  10.     if @actor_id == 1
  11.       while n < 100 and $game_variables[6] > numexp[n+1] and numexp[n+1] > 0
  12.         n += 1
  13.       end
  14.     end
[line]1[/line] [line]1[/line]
目前的做法是根据角色属性值得到基础经验 之后再根据循环与EXP表比较显示出能力值
实际上二者并无关联 有没有方法能直接将能力值和EXP(也就是自定义的$game_variables)相关联
而能力值更像是一个等级 具体数值由变量计算
作者: enghao_lim    时间: 2023-1-1 03:55
看你这要求也不难,你把你修改的整个函数放出来看看,只有一段看不出为什么无法与增减能力值同步刷新,又或者我理解错了。单从脚本来看并没有任何返回值。
如果你的问题是经验值找不到对应的能力值可以参考如下,不过以下代码是当作你的总经验值为50000而不是需要叠加的产物,如果是需要叠加请无视。
  1. v = 0
  2. (0..100).each{|i| v = i; break if ($game_variables[6] < numexp[i]) }
  3. p v
复制代码

作者: qq634488405    时间: 2023-1-4 15:12
不知道我的理解有没有错误
给每个属性增加一个经验值,经验满了提升一点属性,提升属性的经验要求与当前提升量有关,变量6记录的是某属性获得的总经验值,然后要根据这个经验值去得到提升的属性值,是这个意思吗?
可以再使用一个变量记录提升的数值,比如变量7,根据变量7的值计算或查表得到当前档次下提升属性需要的经验,变量6超过该经验就扣除该经验,然后变量7+1,如果需要显示总经验值,可以计算得到,偷懒的可以再用一个变量记录总数。。。
作者: 纯属小虫    时间: 2023-1-5 10:48
猫大曾经发过一个自更新开关和变量的脚本,非常黑科技
如果你需要根据能力值来评定角色经验需求的话,这里应该可以用到她的脚本

自更新开关和变量(你用了会知道有多好用)
https://rpg.blue/forum.php?mod=v ... amp;fromuid=2717817
(出处: Project1)

具体做法就是先将变量跟表达式挂钩,如

将$game_variables[1] 的名字命名为 : "= $game_actors[x].***"   
即:将变量1的值与角色X的某项属性挂钩,之后访问 $game_variables[1] 的时候就会自动输出 "="之后表达式的值

然后你可以直接把EXP表用变量的方式来写,于是EXP就与角色的能力值挂钩了!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1