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

Project1

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

[已经解决] 帮修改下获得经验脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2841
在线时间
640 小时
注册时间
2012-2-13
帖子
178
跳转到指定楼层
1
发表于 2016-7-22 23:56:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
帮我修改下Scene_Battle 2 148行,和Interpreter 6 182行
我想要的效果是:队伍中角色等级达到20级就无法获得经验值,当达到20级的角色战斗后无法获得经验,事件也增加不了经验,这是我想要的效果

我不知道怎么写判断

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 增减 EXP
  3.   #--------------------------------------------------------------------------
  4.   def command_315
  5.     # 获取操作值
  6.     value = operate_value(@parameters[1], @parameters[2], @parameters[3])
  7.     # 处理重复
  8.     iterate_actor(@parameters[0]) do |actor|
  9.       # 更改角色 EXP
  10.       actor.exp += value
  11.     end
  12.     # 继续
  13.     return true
  14.   end


RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 开始结束战斗回合
  3.   #--------------------------------------------------------------------------
  4.   def start_phase5
  5.     # 转移到回合 5
  6.     @phase = 5
  7.     # 演奏战斗结束 ME
  8.     $game_system.me_play($game_system.battle_end_me)
  9.     # 还原为战斗开始前的 BGM
  10.     $game_system.bgm_play($game_temp.map_bgm)
  11.     # 初始化 EXP、金钱、宝物
  12.     exp = 0
  13.     gold = 0
  14.     treasures = []
  15.     # 循环
  16.     for enemy in $game_troop.enemies
  17.       # 敌人不是隐藏状态的情况下
  18.       unless enemy.hidden
  19.         # 获得 EXP、增加金钱
  20.         exp += enemy.exp
  21.         gold += enemy.gold
  22.         # 出现宝物判定
  23.         if rand(100) < enemy.treasure_prob
  24.           if enemy.item_id > 0
  25.             treasures.push($data_items[enemy.item_id])
  26.           end
  27.           if enemy.weapon_id > 0
  28.             treasures.push($data_weapons[enemy.weapon_id])
  29.           end
  30.           if enemy.armor_id > 0
  31.             treasures.push($data_armors[enemy.armor_id])
  32.           end
  33.         end
  34.       end
  35.     end


只要在着两段里增加判断应该就可以了,试了很多次都失败了,所以请求各位帮忙了

评分

参与人数 2星屑 +75 收起 理由
RyanBern + 35 手动认可奖励
英顺的马甲 + 40 虽然有些迷糊,但手动写脚本值得鼓励.

查看全部评分

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
来自 3楼
发表于 2016-7-23 01:44:58 | 只看该作者
本帖最后由 英顺的马甲 于 2016-7-23 02:41 编辑

一不小心就连贴了==
其实等级上线是能改的,不过不会被保存罢了,与其想着怎么限制经验倒不如把更改后的等级限制保存下来==
RUBY 代码复制
  1. $_flexible_final_lvl_actor = RPG::Actor unless $_flexible_final_lvl_actor
  2. class RPG::Actor < $_flexible_final_lvl_actor
  3.   def final_level=(lvl)
  4.     super(lvl)
  5.     if $game_actors
  6.       $game_actors.final_levels[self.id] = lvl
  7.       $game_actors[self.id].make_exp_list
  8.     end
  9.     return lvl
  10.   end
  11. end
  12. class Game_Actors
  13.   def final_levels
  14.     return (@final_levels||={})
  15.   end
  16. end
  17. trace_var :$game_actors do
  18.   if $game_actors
  19.     $game_actors.final_levels.each do |i, v|
  20.       $data_actors[i].final_level = v
  21.     end
  22.   end
  23. end

RUBY 代码复制
  1. $data_actors[角色ID].final_level = 等级上限 # 这只是普通的改等级上限的方法

点评

太谢谢你了~一直看着电影在等答案~t t  发表于 2016-7-23 02:51
好吧,是我疏忽了,Game_Actor会生成经验表==  发表于 2016-7-23 02:42
先存一个10级满级的存档,然后修改数据库20级,再读档进去再用脚本改上限还是没变....  发表于 2016-7-23 02:28
数据库等级10上限,进入游戏让角色满级,然后保存游戏,再进游戏用这个改上限,似乎还是改不了  发表于 2016-7-23 02:22
不好意思,不小心打成了缩写,应该是 $data_actors[角色编号].final_level = 等级上限  发表于 2016-7-23 02:19

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 触瞎

查看全部评分

本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv1.梦旅人

路人党员

梦石
0
星屑
51
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
2
发表于 2016-7-23 00:05:53 | 只看该作者
数据库里设置角色的最大等级不就行了么?==

点评

数据库里的等级上限是固定的,没办法游戏中途修改,所以我才用这个方法  发表于 2016-7-23 00:51
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 11:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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