Project1
标题: 帮修改下获得经验脚本 [打印本页]
作者: 大放异彩 时间: 2016-7-22 23:56
标题: 帮修改下获得经验脚本
帮我修改下Scene_Battle 2 148行,和Interpreter 6 182行
我想要的效果是:队伍中角色等级达到20级就无法获得经验值,当达到20级的角色战斗后无法获得经验,事件也增加不了经验,这是我想要的效果
我不知道怎么写判断
#--------------------------------------------------------------------------
# ● 增减 EXP
#--------------------------------------------------------------------------
def command_315
# 获取操作值
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 更改角色 EXP
actor.exp += value
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 增减 EXP
#--------------------------------------------------------------------------
def command_315
# 获取操作值
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 更改角色 EXP
actor.exp += value
end
# 继续
return true
end
#--------------------------------------------------------------------------
# ● 开始结束战斗回合
#--------------------------------------------------------------------------
def start_phase5
# 转移到回合 5
@phase = 5
# 演奏战斗结束 ME
$game_system.me_play($game_system.battle_end_me)
# 还原为战斗开始前的 BGM
$game_system.bgm_play($game_temp.map_bgm)
# 初始化 EXP、金钱、宝物
exp = 0
gold = 0
treasures = []
# 循环
for enemy in $game_troop.enemies
# 敌人不是隐藏状态的情况下
unless enemy.hidden
# 获得 EXP、增加金钱
exp += enemy.exp
gold += enemy.gold
# 出现宝物判定
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end
#--------------------------------------------------------------------------
# ● 开始结束战斗回合
#--------------------------------------------------------------------------
def start_phase5
# 转移到回合 5
@phase = 5
# 演奏战斗结束 ME
$game_system.me_play($game_system.battle_end_me)
# 还原为战斗开始前的 BGM
$game_system.bgm_play($game_temp.map_bgm)
# 初始化 EXP、金钱、宝物
exp = 0
gold = 0
treasures = []
# 循环
for enemy in $game_troop.enemies
# 敌人不是隐藏状态的情况下
unless enemy.hidden
# 获得 EXP、增加金钱
exp += enemy.exp
gold += enemy.gold
# 出现宝物判定
if rand(100) < enemy.treasure_prob
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
end
end
end
只要在着两段里增加判断应该就可以了,试了很多次都失败了,所以请求各位帮忙了
作者: 英顺的马甲 时间: 2016-7-23 00:05
数据库里设置角色的最大等级不就行了么?==
作者: 英顺的马甲 时间: 2016-7-23 01:44
本帖最后由 英顺的马甲 于 2016-7-23 02:41 编辑
一不小心就连贴了==
其实等级上线是能改的,不过不会被保存罢了,与其想着怎么限制经验倒不如把更改后的等级限制保存下来==
$_flexible_final_lvl_actor = RPG::Actor unless $_flexible_final_lvl_actor
class RPG::Actor < $_flexible_final_lvl_actor
def final_level=(lvl)
super(lvl)
if $game_actors
$game_actors.final_levels[self.id] = lvl
$game_actors[self.id].make_exp_list
end
return lvl
end
end
class Game_Actors
def final_levels
return (@final_levels||={})
end
end
trace_var :$game_actors do
if $game_actors
$game_actors.final_levels.each do |i, v|
$data_actors[i].final_level = v
end
end
end
$_flexible_final_lvl_actor = RPG::Actor unless $_flexible_final_lvl_actor
class RPG::Actor < $_flexible_final_lvl_actor
def final_level=(lvl)
super(lvl)
if $game_actors
$game_actors.final_levels[self.id] = lvl
$game_actors[self.id].make_exp_list
end
return lvl
end
end
class Game_Actors
def final_levels
return (@final_levels||={})
end
end
trace_var :$game_actors do
if $game_actors
$game_actors.final_levels.each do |i, v|
$data_actors[i].final_level = v
end
end
end
$data_actors[角色ID].final_level = 等级上限 # 这只是普通的改等级上限的方法
$data_actors[角色ID].final_level = 等级上限 # 这只是普通的改等级上限的方法
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |