本帖最后由 七重 于 2016-12-22 09:21 编辑  
 
不知道你的游戏是不是有很多角色。。 
 
如果有这种效果的角色不多的话。 
或者你的游戏只有有限个角色的话。 
 
其实可以简单一点就实现: 
class Window_ActorCommand < Window_Command   alias krst_161222_add_skill_commands add_skill_commands   def add_skill_commands     @actor.added_skill_types.sort.each do |stype_id|       if $data_system.skill_types[stype_id] == "魔法"  #给战士职业原本就设置魔法的技能类型,这个脚本只会在开关打开的时候才添加魔法技能给特定角色ID的战士         if @actor.id == 1 #角色的ID           if $game_switches[1] == true #当开关一号打开的时候,(也就是当你学会这个技能之后就打开对应的开关。)             name = $data_system.skill_types[stype_id]             add_command(name, :skill, true, stype_id)           end         end       else         name = $data_system.skill_types[stype_id]         add_command(name, :skill, true, stype_id)       end     end   end end 
 
 class Window_ActorCommand < Window_Command  
  alias krst_161222_add_skill_commands add_skill_commands  
  def add_skill_commands  
    @actor.added_skill_types.sort.each do |stype_id|  
      if $data_system.skill_types[stype_id] == "魔法"  #给战士职业原本就设置魔法的技能类型,这个脚本只会在开关打开的时候才添加魔法技能给特定角色ID的战士  
        if @actor.id == 1 #角色的ID  
          if $game_switches[1] == true #当开关一号打开的时候,(也就是当你学会这个技能之后就打开对应的开关。)  
            name = $data_system.skill_types[stype_id]  
            add_command(name, :skill, true, stype_id)  
          end  
        end  
      else  
        name = $data_system.skill_types[stype_id]  
        add_command(name, :skill, true, stype_id)  
      end  
    end  
  end  
end  
 
  
 
缺点是只针对有限的角色。 
 
用法: 
因为楼主的要求是用事件添加技能类型。 
使用的时候,在事件中打开对应开关就好了,记得要同时设置这个角色的ID. |