Project1

标题: 我有个修改经验和获得多少的想法,求大神帮忙 [打印本页]

作者: a123669520    时间: 2012-8-24 17:14
标题: 我有个修改经验和获得多少的想法,求大神帮忙
就是 从1级开始 每级升级的经验增长500   
1级    500
2级    1000
3级    1500
10级  5000
50级  25000
99级  49500

打怪获得经验这样算   怪的等级如果跟角色等级相同杀死怪加(100+角色等级*5)的经验
1级打1级的怪      105经验/只
2级打2级的怪      110经验/只
3级打3级的怪      115经验/只
10级打10级的怪  150经验/只
50级打50级的怪  350经验/只
99级打99级的怪  595经验/只

如果怪等级比角色低就按(100+角色等级*5-怪等级差*10)
10级打3级的怪    100+10*5-7*10= 80 经验
20级打10级的怪  100+20*5-10*10= 100 经验
50级打5级的怪    100+50*5-45*10= -100 经验  负数判断为+0经验就是不获得经验

如果怪等级比角色等级高(100+角色等级*5-怪等级差*5)
10级打13级的怪    100+10*5-3*5= 135 经验
20级打90级的怪  100+20*5-70*5= -150 经验    负数判断为+0经验就是不获得经验
1级打3级的怪    100+1*5-2*5= 95 经验

怪的等级可以在名字里设置比如   哥布林LV50  魔神LV120         
最后获得的经验在加上数据库里设定的经验 比如设定为50         1级杀1级怪获得105+50=155经验
2个角色等级不同打一只怪获得的经验不同
1级杀同等级的怪5只升级
2级杀9只
50级杀71只
99级杀83只.额没有100级不用杀.


我只有这么多悬赏分VIP都送也行
作者: Mic_洛洛    时间: 2012-8-24 22:04
本帖最后由 Mic_洛洛 于 2012-8-24 22:07 编辑

其实人物成长需要的经验在数据库的职业里不就可以设置么?(如图)
至于几级打几级的怪有多少经验的话——
在敌人敌群设置时就把计算好的经验加进去。。。
然后在遇敌事件里利用变量或分歧设定:
10级时可以遇到10级与10级以下的怪
20级时可以遇到20级与20级以下的怪
当然,如果是高级角色打低级怪,
可以在战斗前先扣点经验,
然后战斗结束后获得了应有经验时,玩家就会有打低级怪经验变少的感觉
(当然遇到会算数的玩家就会发现这是个BUG,如果你改脚本把获得经验多少的自动显示去掉除外= =||)
不同角色的话,也是用分歧事件来判断角色等级来增减经验。。。
其实,我觉得给我做的话,我会用事件(因为某人只会事件~)
不过是事件与数据库的工作量确实是了大点~

当然LZ也可选择请人或者自己写个练级相关的脚本的说。。。


作者: a123669520    时间: 2012-8-25 09:30
Mic_洛洛 发表于 2012-8-24 22:04
其实人物成长需要的经验在数据库的职业里不就可以设置么?(如图)
至于几级打几级的怪有多少经验的话——
...

这种算法很难设置啊.经验多了不好少了也不好不够平衡啊,30级跟31级差722经验 98跟99差250经验 不是等级越高越多.数据库的经验算法感觉50级开始就越来越少经验增长率了.

那个怎么判断10级只能遇到10级以下怪呢,我地图上放1~99级怪
暗雷怎么在战斗前先扣经验
(然后战斗结束后获得了应有经验时,玩家就会有打低级怪经验变少的感觉)这个会给玩家错觉的,明明升级要300经验,战斗结束了获得350经验还没升级不就坑爹了啊      显示经验那个脚本我也改不来



作者: Mic_洛洛    时间: 2012-8-25 13:43
a123669520 发表于 2012-8-25 09:30
这种算法很难设置啊.经验多了不好少了也不好不够平衡啊,30级跟31级差722经验 98跟99差250经验 不是等级越 ...

你这设置真心坑爹~
那就没办法了。
果断去贵宾区订做脚本吧!
PS:感觉如果要做出你心目中完善的脚本,估计3VIP不够= =||
    因为算法应该比较坑爹,经验函数都是股市般的曲线
30级跟31级差722经验 98跟99差250经验
= =||
希望有大大能帮你解决问题吧!
我只是刚路过的菜鸟,脚本不懂的说~
作者: 风雪优游    时间: 2012-8-25 17:09
恕我直言,这样修改经验值的获得方式有什么意义?根本不会有玩家去关注,这就是力气用到了完全没有用处的地方?


而且这个计算公式在实用性上还不一定合理。
作者: 包子丶    时间: 2012-8-26 11:14
这么多要求3V哪够啊...多充点V去贵宾区定吧..而且 你设置这么多有什么用呢....又没人回去关注这些。。
作者: a123669520    时间: 2012-8-30 06:10
风雪优游 发表于 2012-8-25 17:09
恕我直言,这样修改经验值的获得方式有什么意义?根本不会有玩家去关注,这就是力气用到了完全没有用处的地 ...

这种算法比原数据库算法好用多拉.就不用去设置怪的经验只要设置等级就行拉.


‘‘──a123669520于2012-8-30 06:11补充以下内容:

SOGA- -.真的很有用的.为不爱写怪物获得经验的人写的.就是我- -..
’’
作者: 风雪优游    时间: 2012-8-30 15:47
a123669520 发表于 2012-8-30 06:10
这种算法比原数据库算法好用多拉.就不用去设置怪的经验只要设置等级就行拉.

修改算法所需要的精力已经足够你从1设置到999只怪的经验了。
作者: harinlen    时间: 2012-8-30 18:25
好吧……看看怎么写- -
作者: harinlen    时间: 2012-8-30 18:28
本帖最后由 harinlen 于 2012-8-30 18:30 编辑

关键是LZ的怪的经验是怎么获得的未知,怪的等级存在哪里未知,所以,给不出来代码- -
作者: harinlen    时间: 2012-8-30 18:35
另外:在Game_Interpreter的第1201行有这些代码:

  1.   #--------------------------------------------------------------------------
  2.   # ● 增减经验值
  3.   #--------------------------------------------------------------------------
  4.   def command_315
  5.     value = operate_value(@params[2], @params[3], @params[4])
  6.     iterate_actor_var(@params[0], @params[1]) do |actor|
  7.       actor.change_exp(actor.exp + value, @params[5])
  8.     end
  9.   end
复制代码
正是加经验的代码,这里只需要对actor的level进行判定然后根据公式计算即可。

作者: a123669520    时间: 2012-9-1 16:00
harinlen 发表于 2012-8-30 18:28
关键是LZ的怪的经验是怎么获得的未知,怪的等级存在哪里未知,所以,给不出来代码- - ...

怪的等级可以写在数据库名字里或者备注里,战斗结束了再跟每个角色算最终获得的经验


‘‘──a123669520于2012-9-1 16:00补充以下内容:

额不懂啊
’’
作者: 好ID都喂狗了    时间: 2012-9-1 16:07
a123669520 发表于 2012-9-1 16:00
怪的等级可以写在数据库名字里或者备注里,战斗结束了再跟每个角色算最终获得的经验

首先确认阁下懂不懂脚本
如果不懂脚本的话那么除了花大量V定做脚本之外就只有参照之前@Mic_洛洛的方法了。
或者我的方法是去除怪物本身获得经验,而是在敌群里用事件设置,那样的话复制黏贴就可以了。
作者: harinlen    时间: 2012-9-1 17:11
本帖最后由 harinlen 于 2012-9-1 17:35 编辑
a123669520 发表于 2012-9-1 16:00
怪的等级可以写在数据库名字里或者备注里,战斗结束了再跟每个角色算最终获得的经验


这么说吧:要是把怪的等级存放在一个变量可以这么更改Game_Interpreter的第1201行处这些代码:
把"怪物.等级"换成自己设定的怪物等级即可。
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 增减经验值
  3.   #--------------------------------------------------------------------------
  4.   def command_315
  5.     value = operate_value(@params[2], @params[3], @params[4])
  6.     iterate_actor_var(@params[0], @params[1]) do |actor|
  7.       if 怪物.等级 > actor.level
  8.         #比人物等级高
  9.         NewExp = 100 + actor.level * 5 - (actor.level - 怪物.等级) * 10
  10.         if NewExp > 0
  11.           actor.change_exp(actor.exp + NewExp, @params[5])
  12.         end
  13.       else
  14.         #与人物同级或者不如人物等级高
  15.         NewExp = 100 + actor.level * 5 - (怪物.等级 - actor.level) * 5
  16.         if NewExp > 0
  17.           actor.change_exp(actor.exp + NewExp, @params[5])
  18.         end
  19.       end
  20.     end
  21.   end


P.S.:额,吐槽下,为什么20级的怪物打了90级的怪物是负数?要是真赢了不是出事了麼……所以强烈建议更正算法!!!
作者: 熊喵酱    时间: 2013-3-1 04:12
http://www.tycoon812.com/rgss/material/ace/001.html
{:2_265:}我這樣算挖玟嗎?]

這個應該可以設每級經驗值的樣子...





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