Project1
标题:
主角升级公式
[打印本页]
作者:
玛尔斯
时间:
2010-6-19 22:04
标题:
主角升级公式
我想把所有的角色有这样一个设定:
初始等级0级,
等级上限200级。
死亡可复活。
10级以前处于新手保护期:
升级所需经验=新等级*100
新手保护期内 死亡扣除经验 =等级*10
10级以后保护期过了:
升级所需经验=新等级的4次方除10,
死亡时扣除的经验为上一次升级所需的经验。
请各位高手给个工程或脚本什么的! 我谢啦!
作者:
白萌奈奈
时间:
2010-6-20 01:36
:dizzy:我不会
作者:
后知后觉
时间:
2010-6-20 10:00
对于单机游戏来说
角色死亡后扣除经验不太实用
除非弄成网络游戏那样随时随地的保存数据
更改等级上限还涉及到角色在100级以上的属性空白问题
需要手动设置.在数据库里是无法设置的
作者:
玛尔斯
时间:
2010-6-20 10:07
只是为了加游戏难度……
作者:
后知后觉
时间:
2010-6-20 22:18
本帖最后由 后知后觉 于 2010-6-21 14:59 编辑
module Hzhj
New_Final_Level = 200
module_function
def make_new_actor_rxdata
actors = load_data("Data/Actors.rxdata")
for actor in actors
next if actor.nil?
actor.final_level = New_Final_Level
actor.initial_level = 0
parameters = actor.parameters
parameters.resize(6, New_Final_Level + 1)
parameters[0, 0] = parameters[0, 1]
parameters[1, 0] = parameters[1, 1]
parameters[2, 0] = parameters[2, 1]
parameters[3, 0] = parameters[3, 1]
parameters[4, 0] = parameters[4, 1]
parameters[5, 0] = parameters[5, 1]
for i in 100..New_Final_Level
parameters[0, i] = parameters[0, i - 1] * 2 - parameters[0, i - 2]
parameters[1, i] = parameters[1, i - 1] * 2 - parameters[1, i - 2]
parameters[2, i] = parameters[2, i - 1] * 2 - parameters[2, i - 2]
parameters[3, i] = parameters[3, i - 1] * 2 - parameters[3, i - 2]
parameters[4, i] = parameters[4, i - 1] * 2 - parameters[4, i - 2]
parameters[5, i] = parameters[5, i - 1] * 2 - parameters[5, i - 2]
end
end
save_data(actors, "Data/Hzhj_Actors.rxdata")
end
end
#Hzhj.make_new_actor_rxdata;exit
复制代码
上面这段脚本放在脚本编辑器的【最顶部】
脚本开头的
New_Final_Level = 200
那个 200 就是我设置的新的最高等级.
然后把 Scene_Title 脚本内的这一行
$data_actors = load_data("Data/Actors.rxdata")
改成这样
$data_actors = load_data("Data/Hzhj_Actors.rxdata")
最后看上面脚本里的最后一行
#Hzhj.make_new_actor_rxdata;exit
这一行最前面有一个 # 号
运行的时候要把这个 # 号删除
运行之后程序会自动退出.然后就把这个 # 号加回去
这一行是用来生成新的角色数据文件的.不需要每次运行都去执行一次
只是要在你 更改了 数据库->角色 部分的内容后才要运行一次
更改一次角色数据库就要运行一次这一行
第12-17行是在设置 0 级时候的6个属性
我这里直接设置的和第 1 级是一样的.自己修正成自己需要的值
100级以后属性的算法是 根据 99级和98级的差值来计算
比如 一个角色 99 级的时候 力量是415. 他 98 级的时候 力量 是 400
那么他 100 级的力量就是 415 + 415 - 400 = 430
当他 101 级的时候 力量 就是 430 + 15 = 445
……
也就是说.这以后每一集的增加量等于 98 到 99 的增加量.
不想要这样的效果就自己改.
上面是属性曲线
经验值曲线在 Game_Actor 里的
def make_exp_list 里面
改成这样
#--------------------------------------------------------------------------
# ● 计算 EXP
#--------------------------------------------------------------------------
def make_exp_list
@exp_list[0] = 0
for i in 1..10
@exp_list[i] = @exp_list[i - 1] + i * 100
end
for i in 11..200
@exp_list[i] = @exp_list[i - 1] + i ** 4 / 10
end
@exp_list[201] = 0
end
复制代码
经验值曲线做好了
还有个地方要改.就是经验值的上限
找到 def exp=(exp)
这一行下面的这一行
@exp = [[exp, 9999999].min, 0].max
把里面的 9999999 改得足够大就可以了
帮你算了一下.就现在的算法.经验值上限要这个数:6480269570
上面内容从这个帖子弄来的
http://www.diyrpg.net/bbs/redire ... =5183&pid=42435
挂了扣经验就自己去搞吧.
作者:
玛尔斯
时间:
2010-6-21 12:16
回复
后知后觉
的帖子
无效。。。。。。。。
作者:
后知后觉
时间:
2010-6-21 15:13
应该是你自己的脚本冲突了吧...
新工程里是有效果的...全局搜索关键字 #### 可以找到修改的地方
Project1.rar
(189.59 KB, 下载次数: 109)
2010-6-21 15:11 上传
点击文件名下载附件
还有就是 def make_exp_list 算法修正了一下.
作者:
行雲流水
时间:
2010-6-21 20:27
提示:
作者被禁止或删除 内容自动屏蔽
作者:
红毛丹
时间:
2010-6-24 11:02
学习了
作者:
MVx
时间:
2010-6-25 20:56
我看都晕啦...4次方...*100...
作者:
无心孤云
时间:
2010-6-26 00:10
我对后知后觉前辈的敬仰已经不能用江水来形容了。。。。。
作者:
GM.01
时间:
2010-6-28 19:02
我在声明下。你说的这个需要商业类的游戏软件!如果用RPGXP需要大量的脚本
或制作团队
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1