Ergebnis 1 bis 20 von 29

Thema: Skriptproblem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von -KD- Beitrag anzeigen
    Hast du meinen vorherigen Post denn mal ausprobiert?
    Ich habe deine Klasse als neues Skript probiert, ebenso in das Fehlerskript am Ende eingebaut. Der selbe Fehler. Anderen Einbauvorschlag?

    Zitat Zitat von -KD- Beitrag anzeigen
    *nochmal subtil darauf hinweis, dass der einfachste Weg einfach das Posten deiner Scripte wäre*
    Gut, bedenke aber:

    Zitat Zitat von P-Games Beitrag anzeigen
    Ich verwende eine große Zahl an Skripten...










    Wenn sich jemand wirklich die Arbeit macht, diese Skripte zu vergleichen und sogar den Fehler zu finden (eventuell braucht man noch mehr meiner Skripte), wird dieser natürlich mit einem Creditseintrag belohnt. Das SDK wird nicht verwendet. Und nochmal zur Erinnerung: Alle Skripte sind auch in der Demo eingebaut, dort funktioniert es einwandfrei!

  2. #2
    Das Problem kommt daher, dass in Game_Actor auf skills nicht mehr von außen zugegriffen werden kann. In der Standard-Klasse steht auch ein attr_reader :skills. Und das ursprüngliche Problem könnte damit zusammenhängen, dass find_skill_index vielleicht nur in Game_Actor, aber nicht in Game_Enemy definiert ist. Game_Battler ist ja die Superklasse der beiden.

    Geändert von Kelven (02.09.2007 um 13:13 Uhr)

  3. #3
    Klingt logisch, denn als Game_Enemy wird das Standardskript des Makers verwendet, Game_Actor hingegen stammt aus der Demo.

  4. #4
    Jetzt wird die ganze Sache doch verständlicher. Tjoar, Kelven hat eigentlich schon alles gesagt. Reader-Methode skills fehlt, find_skill_index ist nur in Game_Actor definiert, die Methode wird aber laut Fehlermeldung auch für Game_Enemy aufgerufen.

    Code:
    class Game_Enemy
      def find_skill_index(skill)
        $data_enemies[@enemy_id].actions.find {|action| 
          action.kind==1 and action.skill_id == skill.id
        } || 0
      end
    end
    Wenn du den Code einfügst dürfte es funktionieren, da dann find_skill_index auch für Game_Enemy definiert ist.

  5. #5
    Jo danke erstmal -KD-, das hat wirklich geholfen. Leider sind anscheinend noch andere Methoden undefiniert, z.B. im Game_Battler dieses mal skill_level.
    In der Demo müssen diese doch irgendwo definiert sein, ich werde mal nachsehen.

  6. #6
    Naja, skill_level, skill_exp sind für gewöhnlich auch nur für den Actor interessant, da nur er seine Skills mit der Zeit aufleveln kann. Dein Script hingegen scheint sowas auch für Enemies zu verwenden, was an sich irgendwie unlogisch scheint.

    Code:
    class Game_Battler
      attr_reader   :kills                    # enemy kills
      attr_reader   :skill_exp                # skill EXP
      attr_reader   :skill_level              # skill level
      alias skill_level_initialize initialize
      def initialize(*p)
        skill_level_initialize(*p)
        @kills, @skill_exp, @skill_level = 0, [], []
      end
    end

  7. #7
    Ja das kommt mir auch seltsam vor, da ja nur man selbst seine Skills aufleveln kann. Ich habe die beiden von dir geposteten Klassen in ein neues Skript gepackt, *seufz*, NoMethodError von: []. Hast du nicht ICQ, ich würde dir gerne mal mein Projekt zeigen, vielleicht kannst du mir dann besser helfen. Danke bis jetzt.

Berechtigungen

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