Project1

标题: 莫名其妙的经验值加倍了= = [打印本页]

作者: 君迁子    时间: 2008-11-19 21:20
标题: 莫名其妙的经验值加倍了= =
打了一个EXP100的怪,战斗结果显示是正常的,结果战斗完了一看状态,增加了200经验值……于是把actor.exp += exp改成了actor.exp += exp / 2,又变成了增加150EXP= =
想问那个多出来的一倍经验值到底是哪里产生的?@_@

for i in 0...$game_party.actors.size
      actor = $game_party.actors
      if actor.cant_get_exp? == false
        last_level = actor.level
        actor.exp += exp
        if actor.level > last_level
          actor.hp = actor.maxhp;
          actor.sp = actor.maxsp
          @status_window.level_up(i)
        end
      end
    end

这是获得经验值的脚本……只增加了升级补血||||||||
作者: 天圣的马甲    时间: 2008-11-19 21:33
= =这……按照默认情况下来看这么修改不会出现加倍经验值吧,除非哪里actor.exp += exp被重复调用或者是附加的脚本里面对经验值获得部分有修正……但从你贴上的脚本看来,是不会有这样问题的口牙||| [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 姬文翔    时间: 2008-11-20 00:41
真是诡异啊……人家想做经验翻倍的还得费一番工夫呢……{/gg}敢问LZ是不是从别的游戏里直接拿来某些在那方面改动过的脚本? [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: tiandi79    时间: 2008-11-20 01:24
ctrl+shift+f 搜索"actor.exp",绝对应该是脚本问题。 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 君迁子    时间: 2008-11-20 01:53
GameActor里计算经验值的算式我从来没改过呀OTZ

def make_exp_list
    actor = $data_actors[@actor_id]
    @exp_list[1] = 0
    pow_i = 2.4 + actor.exp_inflation / 100.0
    for i in 2..100
      if i > actor.final_level
        @exp_list = 0
      else
        n = actor.exp_basis * ((i + 3) ** pow_i) / (5 ** pow_i)
        @exp_list = @exp_list[i-1] + Integer(n)
      end
    end
  end

用公共事件得到的经验没有出现加倍的现象……但是战斗结束得到经验值的脚本也没有不对啊?{/qiao}
我用了战斗总结美化和怪物图鉴,这些都没有对EXP重新定义OTZ

加了一个经验值平分效果,三人队还是打100EXP,每个人获得的经验值就变成了133,我想可能是这样的:确实有100EXP被平分了,但系统另外还有一部份经验给了每人相同的经验……是不是要在actor.exp += exp后面再减去敌人的经验?= =||||||||||||

以下引用姬文翔于2008-11-19 16:41:15的发言:

真是诡异啊……人家想做经验翻倍的还得费一番工夫呢……敢问LZ是不是从别的游戏里直接拿来某些在那方面改动过的脚本?


不是啊,是拿RTAB改的=v=b

============================================
问题解决,把Scene_Battle 2里的
# 获得 EXP、增加金钱
        exp += enemy.exp
        gold += enemy.gold
这两句都注释,就好了= =

但是RTAB里面也有Scene_Battle 2啊?为什么前面这个还要被再执行一遍?




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