Ergebnis 1 bis 14 von 14

Thema: Switch spielstandübergreifend AN/AUS

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Sry, die späte Uhrzeit ^^
    Es muss
    Code:
    filename = "Save#{i + 1}.rvdata"
    heißen.

    @Cornix: Hm, ja, es kann zu Fehlern kommen wenn man diesen globalen Switch über ein normales control switches verändert, ohne diese Methode aufzurufen, und danach das Spiel abspeichert. Man könnte in Game_Switches einen Code einfügen, der den Cache leert, sobald ein Switch gesetzt wird.

    Das würde dann so aussehen:
    Code:
    class Game_Switches
      alias set_global_switch []=
      def []=(switch_id, value)
        GlobalSwitches.remove_from_cache(switch_id, value)
        set_global_switch(switch_id, value)
      end
    end
    module GlobalSwitches
      @switch_state = {} # caches switch values
      def self.remove_from_cache index, value
        @switch_state.delete(index) if @switch_state[index] != value
      end
      def self.set(index, value)
        return if @switch_state[index] == value
        $game_switches.set_global_switch(index, value)
        @switch_state[index] = value
        (0..3).each do |i| 
          filename = "Save#{i + 1}.rvdata"
          next unless FileTest.exist?(filename)
          data = []
          File.open(filename, "rb") do |io|
            until io.eof?
              data << Marshal.load(io)
            end
          end
          sw = data.find {|s| s.kind_of?(Game_Switches)}
          if sw[index] != value then
            sw[index] = value
            File.open(filename, "wb") do |io|
              data.each do |d| 
                Marshal.dump(d, io)
              end
            end
          end
        end
      end
    end

  2. #2
    Vielen Dank, -KD- (und auch an dich cornix).
    Bei meinem Test gerade lief es vorzüglich.
    Ich schreib euch in die Credits von SSM:SF Akte1 rein. ^^
    (Release ist vermutlich nächste Woche, dies war, neben dem Betatest das einzige, was noch fehlte)

Berechtigungen

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