| 
 
| 赞 | 3 |  
| VIP | 0 |  
| 好人卡 | 24 |  
| 积分 | 0 |  
| 经验 | 15951 |  
| 最后登录 | 2016-1-17 |  
| 在线时间 | 276 小时 |  
 Lv1.梦旅人 
	梦石0 星屑49 在线时间276 小时注册时间2011-6-5帖子133 | 
| 本帖最后由 救世小树 于 2013-6-6 22:28 编辑 
 偷技能啊。。很有意思的东西呢~
 恩,经过我不是很仔细的测试初步可行,新鲜出炉~刚写的脚本,配合范例观看效果更佳,
 范例利用状态避开了“对xxx没有效果”的提示,不过没有做出提示到底偷了什么技能的效果,
 
  steal_skill.rar
(300.85 KB, 下载次数: 80) 注意事项:偷技能者要有所有的技能类型,不然有些技能偷学来找不到~
 偷学者第一次偷技能就会多出一个技能,之后再偷将覆盖那个技能,
 不再偷技能覆盖则技能在战斗结束之前存在,战斗结束后技能将被遗忘。
 恩,水平有限只能做成这样了,希望有真·大神可以完善一下,比如自动附加上那个技能类型之类的。。
 
 复制代码
class Game_Battler < Game_BattlerBase
  
  Steal_Skill_Skill_id = 130 #偷技能的技能的skill_id
  
  attr_accessor :steal_skill_id
  attr_accessor :recent_skill_id
  
  alias initialize_tre initialize
  def initialize
    @steal_skill_id = 0
    @recent_skill_id = 0
    initialize_tre
  end
  
  alias item_apply_tre item_apply
  def item_apply(user, item)
    item_apply_tre(user, item)
    if item.is_a?(RPG::Skill)
      case item.id
      when Steal_Skill_Skill_id
        return if user.skills.include?(self.recent_skill_id)
        user.steal_skill(self.recent_skill_id)
      when 1,2,  76,77,78#可以在这里添加无法被偷的技能
        return
      else
        user.recent_skill_id = item.id
      end
    end
  end
  
  def steal_skill(skill_id)
    if self.is_a?(Game_Actor) and skill_id != 0 and skill_id != 1 and skill_id != 2
      self.forget_skill(self.steal_skill_id)
      self.steal_skill_id = skill_id
      self.learn_skill(skill_id)
    end
  end
  
  alias steal_skill_on_battle_end on_battle_end
  def on_battle_end
    steal_skill_on_battle_end
    if self.is_a?(Game_Actor) and [0,1,2].include?(self.steal_skill_id)
      self.forget_skill(self.steal_skill_id) 
    end
  end
  
end
 | 
 评分
查看全部评分
 |