以下引用霜冻之狼于2009-6-6 15:29:52的发言:
第一在main前面插入:
module RPG
class Skill
def name
return @name.split(/,/)[0]
end
def timemax
return @name.split(/,/)[1]
end
end
end
class Game_Actor < Game_Battler
attr_reader :skillstime # 特技已用次数
@skillstime=[]
def skillstime
return @skillstime
end
end
其次在Scene_Battle 4第339行和第440行之间插入:
actor = @active_battler.id
if @active_battler.is_a?(Game_Actor) and skill.timemax != nil
if actor.skilltime[skill.id] == skill.timemax+1
actor.learn_skill(skill.id+1)
else
actor.skilltime[skill.id]=0 if actor.skilltime[skill.id] == nil
actor.skilltime[skill.id]+=1
end
end
使用范例:把技能名称改成"名称,次数"的形式,就会自动学习该技能下一个id的技能
比如把10号技能的技能名称改上"十字斩,2".此技能用两次后主角就会学到11号技能
比如把23号技能的技能名称改成"旋风斩,6".此技能用两次后主角就会学到24号技能
如果像取消这个功能,就把"十字斩,2"改成"十字斩"就行了
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
[本贴由作者于 2009-6-6 15:39:51 最后编辑]
以下引用66rpg学习于2009-6-7 18:50:20的发言:
你把def skillstime
return @skillstime
end 删了试试
以下引用ichijouziken于2009-6-7 18:42:18的发言:
也就是说,我需要加s吗……
module RPG
class Skill
def name
return @name.split(/,/)[0]
end
def timemax
timemax = @name.split(/,/)[1]
timemax != nil ? timemax : 0
timemax.to_i
return timemax
end
end
end
class Game_Actor < Game_Battler
attr_accessor :skillstime # 特技已用次数
@skillstime=[]
end
actor = @active_battler
if @active_battler.is_a?(Game_Actor) and @skill.timemax != 0
actor.skillstime[@skill.id] = 0 if actor.skillstime[@skill.id]==nil
if actor.skillstime[@skill.id] == @skill.timemax+1
actor.learn_skill(@skill.id+1)
else
actor.skillstime[@skill.id]= @skill.timemax+1
end
end
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |