Sorry, leider etwas später als geplant.

Füge folgende Zeilen über Main ein:
Code:
class Game_Battler < Game_BattlerBase
  def item_effect_test(user, item, effect)
    case effect.code
    when EFFECT_RECOVER_HP
      hp < mhp || effect.value1 < 0 || effect.value2 < 0
    when EFFECT_RECOVER_MP
      mp < mmp || effect.value1 < 0 || effect.value2 < 0
    when EFFECT_ADD_STATE
      !state?(effect.data_id)
    when EFFECT_REMOVE_STATE
      state?(effect.data_id)
    when EFFECT_ADD_BUFF
      !buff_max?(effect.data_id)
    when EFFECT_ADD_DEBUFF
      !debuff_max?(effect.data_id)
    when EFFECT_REMOVE_BUFF
      buff?(effect.data_id)
    when EFFECT_REMOVE_DEBUFF
      debuff?(effect.data_id)
    when EFFECT_LEARN_SKILL      
      return false unless(valid_class?(item.note))
      actor? && !skills.include?($data_skills[effect.data_id])
    else
      true
    end
  end
  
  def valid_class?(note)
    reg = /<class:\s*(.+)\s*>/i
    res = note.match(reg)
    return true unless(res)
    if(res[1].include?(","))
      res[1].split(",").each do |cid|
        return true if(cid.to_i == @class_id)
      end
    else
      return res[1].to_i == @class_id
    end
    return false
  end
end
Anschließend kannst du in der Datenbank über folgenden Eintrag in den Notes des Items festlegen, ob ein Item, welches einen Skill erlernen lässt, an eine Klasse gebunden ist:
Code:
<class: ID>
Sollte ein Item also für die Klasse 0001 (bspw. Soldat) verfügbar sein, trägst du hier ein:
Code:
<class: 1>
Du kannst auch, getrennt durch Komma, mehrere IDs eintragen:
Code:
<class: 1,5,8>
Hier würde das Item für Klasse 1, 5 und 8 gültig sein.