Ergebnis 1 bis 8 von 8

Thema: [VX-Ace] Variable über Itemnutzung ändern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ne, so meinte ich das nicht. Auf dem XP könnte man direkt im Script, in dem der Gegenstand benutzt wird

    $game_variables[beliebige Zahl] = @item.id

    schreiben. Dann hätte die Variable [beliebige Zahl] die ID des Items. Ich weiß aber nicht, wie die Scripte im Ace aussehen.

  2. #2
    Ich habe dir kurz dafür ein Script geschrieben. Allerdings muss ich jetzt los zum Joggen. Ich werde es heute Abend dann Posten, wahrscheinlich gegen 21 - 22 Uhr, falls du es dann noch benötigst.

  3. #3
    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.

  4. #4
    Wow danke, werde es demnächst ausprobieren :3

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •