Ergebnis 1 bis 8 von 8

Thema: Items ausgrauen

  1. #1

    Items ausgrauen

    Hey ho

    Gibts eigentlich eine Möglichkeit (im KS, Vx Ace) den Itembefehl komplett auszugrauen für den Fall, daß keine Items im Inventar sind bzw für den Fall, daß sie im Kampf ausgehen? Weiß nicht ob der Maker das kann und online scheint noch keiner danach gefragt zu haben, deswegen mach ich das mal hier so.

    Ken der ausgegraute Itemkot

  2. #2
    Bearbeite in "Window_ActorCommand" die Methode "add_item_command"
    Code:
    def add_item_command
      add_command(Vocab::item, :item)
    end
    Die ruft wie alle anderen Befehle, die ein Charakter im Kampf wählen kann, "add_command" auf. "add_command" hat ein optionales drittes Argument, das wahr oder falsch sein kann und darüber entscheidet ob der Befehl genutzt werden darf oder nicht (sieht man in dem Script beispielsweise ein paar Zeilen weiter oben bei "add_guard_command"). Die Liste mit den Items der Party ist während des Spiels durch Abfragen von "$game_party.items" verfügbar, wenn keine Items im Inventar sind ist die Größe der Liste 0.

    Wenn wir also wissen wollen, ob die Party Items besitzt (Größe der Liste ist > 0) brauchen wir folgende Bedingung:
    Code:
    add_command(Vocab::item, :item, $game_party.items.size > 0)
    Ungetestet, sollte aber funktionieren :enton:

  3. #3
    Funktioniert einwandfrei, danke sehr (Y)

  4. #4
    Hallo, Leute. Ich habe dasselbe nun auch für Skills versucht. Also die Skill-Option im Kampf soll vollständig ausgegraut werden, wenn keine Skills vorhanden sind. Eine Idee wie das genau zu machen ist?

    Viele Grüße

    Ken der Kot

  5. #5
    Code:
    class Window_ActorCommand < Window_Command
      def add_skill_commands
        @actor.added_skill_types.sort.each do |stype_id|
          name = $data_system.skill_types[stype_id]
          add_command(name, :skill, (@actor.skills.size > 0), stype_id)
        end
      end
    end
    Nicht getestet, sollte aber funktionieren.

  6. #6
    Zitat Zitat von Linkey Beitrag anzeigen
    Nicht getestet, sollte aber funktionieren.
    Ja, es funktioniert wunderbar, vielen Dank!

    Allerdings nimmt das Snippet den Command Name aus der Database und ich verwende ja dein Sprachenskript. Kannst du es so machen, daß er den Namen für Skills und Magie aus deinem Skript nimmt?

  7. #7
    Das hättest du jetzt wirklich selbst lösen können
    Im Sprachenscript hast du folgenden Code (nur das "true" muss durch das rot markierte ersetzt werden):
    Code:
    class Window_ActorCommand < Window_Command
      def add_skill_commands
        @actor.added_skill_types.sort.each do |stype_id|
          name = Vocab.get_skilltype(stype_id)
          add_command(name, :skill, (@actor.skills.size > 0), stype_id)
        end
      end
    end

  8. #8
    Zitat Zitat von Linkey Beitrag anzeigen
    Das hättest du jetzt wirklich selbst lösen können
    Überschätz mich mal nicht. Ich hab das Snippet unter das Language-Script kopiert und nicht im Script selbst diese Stelle geändert. Kann ja nicht funktionieren. Nun ist alles bestens, danke.

Berechtigungen

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