加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 duchen5779 于 2015-3-26 20:20 编辑
用了一个技能熟练度升级的脚本。其中自己加了一些东西,见27行-29行:当目前使用的技能的属性为30号属性时,150号变量数组里的当前使用技能的这个队员的ID号变量加10。
具体意思就是,150号变量是我设置的一个数组,数组里的每一个变量是和相应的队友的ID是绑定的,比如02号队友,用的就是[150][2]号来储存一个系数。这样在战斗中当技能升级时,可以方便的增加这个系数的值。
但测试的时候出现 ‘no implicit conversion from nil to integer“的错误,第28行的,我估计是和变量没有转换有关系。可是到底应该怎么写?$game_party.members[@actor_index]?还是$game_party.members[@actor_index].id?虽然查了好多地方,但是对于这些还是一知半解,求解答。
=begin
在可以升级的技能的备注栏里写上
下等级技能编号
升级经验
每次增加经验
例
下等级技能编号2
升级经验10
每次增加经验2
=end
class Game_Actor
MULTISKILLS = false #true时可以同时学会高等级技能和低等级技能,
#false时候学会高等级技能后会遗忘低等级技能
alias supersetup setup
def setup( *args)
supersetup( *args)
@skillexp = { }
end
def addskillexp
return unless @action .skill .updatable ?
@skillexp [ @action.skill .id ] = 0 if @skillexp [ @action.skill .id ] .nil ?
@skillexp [ @action.skill .id ] += @action .skill .eachexp
if @skillexp [ @action.skill .id ] >= @action .skill .maxexp
return if @skills .include ?( @action.skill .nextskillid )
learn_skill( @action.skill .nextskillid )
if @action .skill .element_set .include ?( 30 )
$game_variables [ 150 ] [ $game_party.members [ @actor_index] ] += 10
end
forget_skill( @action.skill .id ) unless MULTISKILLS
$game_message .new_page
text = "技能" + @action .skill .name + "升级"
$game_message .texts .push ( text)
text = "学会" + $data_skills [ @action.skill .nextskillid ] .name
$game_message .texts .push ( text)
end
end
end
class Game_Enemy
def addskillexp
end
end
module RPG
class Skill
def updatable?
@note =~ /下等级技能编号( \d+) /
return !$1 .nil ?
end
def nextskillid
@note =~ /下等级技能编号( \d+) /
return $1 .to_i
end
def maxexp
@note =~ /升级经验( \d+) /
return $1 .to_i
end
def eachexp
@note =~ /每次增加经验( \d+) /
return $1 .to_i
end
end
end
class Scene_Battle
alias superexecute_action_skill execute_action_skill
def execute_action_skill
superexecute_action_skill
@active_battler .addskillexp
end
end
=begin
在可以升级的技能的备注栏里写上
下等级技能编号
升级经验
每次增加经验
例
下等级技能编号2
升级经验10
每次增加经验2
=end
class Game_Actor
MULTISKILLS = false #true时可以同时学会高等级技能和低等级技能,
#false时候学会高等级技能后会遗忘低等级技能
alias supersetup setup
def setup( *args)
supersetup( *args)
@skillexp = { }
end
def addskillexp
return unless @action .skill .updatable ?
@skillexp [ @action.skill .id ] = 0 if @skillexp [ @action.skill .id ] .nil ?
@skillexp [ @action.skill .id ] += @action .skill .eachexp
if @skillexp [ @action.skill .id ] >= @action .skill .maxexp
return if @skills .include ?( @action.skill .nextskillid )
learn_skill( @action.skill .nextskillid )
if @action .skill .element_set .include ?( 30 )
$game_variables [ 150 ] [ $game_party.members [ @actor_index] ] += 10
end
forget_skill( @action.skill .id ) unless MULTISKILLS
$game_message .new_page
text = "技能" + @action .skill .name + "升级"
$game_message .texts .push ( text)
text = "学会" + $data_skills [ @action.skill .nextskillid ] .name
$game_message .texts .push ( text)
end
end
end
class Game_Enemy
def addskillexp
end
end
module RPG
class Skill
def updatable?
@note =~ /下等级技能编号( \d+) /
return !$1 .nil ?
end
def nextskillid
@note =~ /下等级技能编号( \d+) /
return $1 .to_i
end
def maxexp
@note =~ /升级经验( \d+) /
return $1 .to_i
end
def eachexp
@note =~ /每次增加经验( \d+) /
return $1 .to_i
end
end
end
class Scene_Battle
alias superexecute_action_skill execute_action_skill
def execute_action_skill
superexecute_action_skill
@active_battler .addskillexp
end
end
上传了一个范例……战斗的时候用“炎”这个技能之后报错,求助!谢谢!感激不尽!!
@正太君
@怪蜀黍