• Anmelden

21

Dienstag, 8. Juli 2008, 18:21

oh stimmt noch n bug


Dieser Beitrag wurde bereits so oft editiert, dass der Zähler sich in die Luft gesprengt hat.

22

Dienstag, 8. Juli 2008, 18:25

und noch ein Bug, man kann den Secretslot mit einem normalen Spielstand überschreiben.
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

23

Dienstag, 8. Juli 2008, 18:30

omg 4 bugs schon :naja:


Dieser Beitrag wurde bereits so oft editiert, dass der Zähler sich in die Luft gesprengt hat.

24

Dienstag, 8. Juli 2008, 22:15

Jungs, ihr macht mich fertig.

Zitat

wenn ich den speicher hab, des spiel beende und wieder starte is der secretspeicher weg

Das is genau das Probelm, dass ich meine. Der Geheimslot kommt wieder, wenn du den Save in dem du ihn freigespielt hast lädst.
Ich werds mir morgen nochmal ankuken und versuchen die Bugs zu fixen....

25

Dienstag, 8. Juli 2008, 22:17

ok, danke dir^^
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

26

Mittwoch, 9. Juli 2008, 15:25

und noch ein Bug, man kann den Secretslot mit einem normalen Spielstand überschreiben.

Das is gefixt. Da hatte ich vergessen das Stück code was dafür zuständig war hier zu posten. ist jetzt aber drin.

Zitat

ich habe den Typen angesprochen und das Spiel abgebrochen, also nicht den Spielstand gespeichert.
Doch jetzt, wenn ich im Lademenü bin, ist der Secretslot da, obwohl ich den anderen Save NICHT gespeichert hab.

Das is leider so. Hängt damit zusammen, dass wenn man zurück auf den Titelbildschirm geht die Schalter Einstellungen des des letzten Spiel bestehen bleiben.

Ansonsten hoff ich wars das erstmal.
Wenn wirklich Intresse besteht setz ich mich die Tage nochmal hin und Programmier was vernünftiges...

soraiuga

Rekrut

Motto: Darf ich Ihre Bestellung aufnehmen? xD

  • Nachricht senden

27

Donnerstag, 7. August 2008, 19:51

Schon n bisschen her dass hier geantwortet wurde aber das Interesse besteht ^^
Das wäre sogar ein sehr nützliches Script. Man könnte so ja eine Ganze
Menge anstellen. *Augen leuchten*

28

Donnerstag, 7. August 2008, 21:16

Ich kann mich gerne nochmal dran setzen. Aber du müsstest mir genau sagen was du haben willst. Was gefällt dir an der jetzigen Version nich? Was soll ich verbessern? Je mehr Infos du mir gibst desdo besser wird dir das Ergebniss gefallen...

soraiuga

Rekrut

Motto: Darf ich Ihre Bestellung aufnehmen? xD

  • Nachricht senden

29

Donnerstag, 14. August 2008, 19:39

Guuut... Also:
Am besten wäre es wenn Speicherslot 3 und 4 betroffen wären, also wenn es möglich wäre 2 Secrets zu speichern (Wenn das nicht zu umständlich ist).
Ich finde es gut dass man den (vllt. die?^^) Speicher bennen kann.

Keine Ahnung ob das geht, aber es wäre gut dass wenn man dem Secretspeicher spielt, man auf diesem speichern kann, aber dass man von den anderen Speichern aus nicht auf ihn speichern kann.

Es wäre zudem klasse, wenn man nach Aktivierung der Slots immer Zugriff auf diese hätte. Wenn der Speicher mit dem Event also gelöscht wird (was doch gar nicht möglich ist???) soll/en der/die Speicher immernoch vorhanden sein.

Was ich nicht gut fand, war dass die Stellen die für die Secrets bestimmt sind leer waren. Könnte man dort 'Nicht verfügbar' hinschreiben?

Also normal:
Speicherslot 1
Speicherslot 2
Nicht verfügbar
Nicht verfügbar

Mit einem Event
Slot 1
Slot 2
Secret 1/ Nicht verfügbar
Nicht verfügbar/ Secret 2

Mit beiden Events
Slot 1
Slot2
Secret 1
Secret 2

Benutzter Speicher ------------> Kann nur speichern auf
1 -------------------------------> 1,2

2-------------------------------> 1,2

Secret 1 --------------------> Secret1

Secret2 --------------------> Secret2



Ich hoffe das war verständlich und lesbar. Und natürlich dass das umsetzbar ist ^_^

MfG, Sora

30

Samstag, 13. September 2008, 17:28

Soooooooo
nach langem warten hab ich mich nochmal dran gesetzt. Es waren in mehreren Klassen änderungen nötig. Wenn folgender Code über die Main kopiert wird sollte es eigentlich laufen:
Spoiler

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   class Game_Slot_Access   def initialize     @access=[true,true,false,false]     @aktiv=-1   end       def access_to(i)     return @access[i]   end       def active?(i)     if @aktiv==i       return true     else       return false     end   end       def make_active(i)     @aktiv=i   end       def grant_access_to(i)     @access[i]=true     save   end       def save     file = File.open("ssa.rxdata", "wb")     Marshal.dump($game_slot_access, file)     file.close   end     end 
  def enable_slot(i)   if i==3     $game_slot_access.grant_access_to(2)   else       if i==4       $game_slot_access.grant_access_to(3)     else       p "Fehler! Slot Nummer zum frei schalten muss 3 oder 4 sein"     end   end end 
  class Window_SaveFile 
    #--------------------------------------------------------------------------   # * Refresh   #--------------------------------------------------------------------------   def refresh     self.contents.clear           #if not accessible     unless $game_slot_access.access_to(@file_index)       self.contents.font.color = knockout_color       name="Nicht verfügbar"       self.contents.draw_text(4, 0, 600, 32,name)       @name_width = contents.text_size(name).width       self.contents.font.color = normal_color       return     end           # Draw file number     self.contents.font.color = normal_color     if @file_index<2       name = "File#{@file_index + 1}"     else       name = "Secret#{@file_index - 1}"     end     self.contents.draw_text(4, 0, 600, 32, name)     @name_width = contents.text_size(name).width     # If save file exists     if @file_exist       # Draw character       for i in 0...@characters.size         bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])         cw = bitmap.rect.width / 4         ch = bitmap.rect.height / 4         src_rect = Rect.new(0, 0, cw, ch)         x = 300 - @characters.size * 32 + i * 64 - cw / 2         self.contents.blt(x, 68 - ch, bitmap, src_rect)       end       # Draw play time       hour = @total_sec / 60 / 60       min = @total_sec / 60 % 60       sec = @total_sec % 60       time_string = sprintf("d:d:d", hour, min, sec)       self.contents.font.color = normal_color       self.contents.draw_text(4, 8, 600, 32, time_string, 2)       # Draw timestamp       self.contents.font.color = normal_color       time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")       self.contents.draw_text(4, 40, 600, 32, time_string, 2)     end   end 
  end 
  class Scene_Title   #--------------------------------------------------------------------------   # * Main Processing   #--------------------------------------------------------------------------   def main     # If battle test     if $BTEST       battle_test       return     end     # Load database     $data_actors        = load_data("Data/Actors.rxdata")     $data_classes       = load_data("Data/Classes.rxdata")     $data_skills        = load_data("Data/Skills.rxdata")     $data_items         = load_data("Data/Items.rxdata")     $data_weapons       = load_data("Data/Weapons.rxdata")     $data_armors        = load_data("Data/Armors.rxdata")     $data_enemies       = load_data("Data/Enemies.rxdata")     $data_troops        = load_data("Data/Troops.rxdata")     $data_states        = load_data("Data/States.rxdata")     $data_animations    = load_data("Data/Animations.rxdata")     $data_tilesets      = load_data("Data/Tilesets.rxdata")     $data_common_events = load_data("Data/CommonEvents.rxdata")     $data_system        = load_data("Data/System.rxdata")     # Make system object     $game_system = Game_System.new     # Make title graphic     @sprite = Sprite.new     @sprite.bitmap = RPG::Cache.title($data_system.title_name)     # Make command window     s1 = "New Game"     s2 = "Continue"     s3 = "Shutdown"     @command_window = Window_Command.new(192, [s1, s2, s3])     @command_window.back_opacity = 160     @command_window.x = 320 - @command_window.width / 2     @command_window.y = 288           #if save slot access file exitsts, load global access object     if FileTest.exist?("ssa.rxdata")       ssa = File.open("ssa.rxdata", "rb")       $game_slot_access = Marshal.load(ssa)       ssa.close     else       # else make a new one       $game_slot_access=Game_Slot_Access.new     end             # Continue enabled determinant     # Check if at least one save file exists and is accessabile     # If enabled, make @continue_enabled true; if disabled, make it false     @continue_enabled = false     for i in 0..3       if FileTest.exist?("Save#{i+1}.rxdata") and $game_slot_access.access_to(i)         @continue_enabled = true       end     end     # If continue is enabled, move cursor to "Continue"     # If disabled, display "Continue" text in gray     if @continue_enabled       @command_window.index = 1     else       @command_window.disable_item(1)     end     # Play title BGM     $game_system.bgm_play($data_system.title_bgm)     # Stop playing ME and BGS     Audio.me_stop     Audio.bgs_stop     # Execute transition     Graphics.transition     # Main loop     loop do       # Update game screen       Graphics.update       # Update input information       Input.update       # Frame update       update       # Abort loop if screen is changed       if $scene != self         break       end     end     # Prepare for transition     Graphics.freeze     # Dispose of command window     @command_window.dispose     # Dispose of title graphic     @sprite.bitmap.dispose     @sprite.dispose   end 
  end 
  class Scene_File 
    #--------------------------------------------------------------------------   # * Frame Update   #--------------------------------------------------------------------------   def update     # Update windows     @help_window.update     for i in @savefile_windows       i.update     end     # If C button was pressed     if Input.trigger?(Input::C)       if $game_slot_access.access_to(@file_index)         # Call method: on_decision (defined by the subclasses)         on_decision(@file_index)         $game_temp.last_file_index = @file_index         return       else         $game_system.se_play($data_system.buzzer_se)       end     end     # If B button was pressed     if Input.trigger?(Input::B)       # Call method: on_cancel (defined by the subclasses)       on_cancel       return     end     # If the down directional button was pressed     if Input.repeat?(Input::DOWN)       # If the down directional button pressed down is not a repeat,       # or cursor position is more in front than 3       if Input.trigger?(Input::DOWN) or @file_index < 3         # Play cursor SE         $game_system.se_play($data_system.cursor_se)         # Move cursor down         @savefile_windows[@file_index].selected = false         @file_index = (@file_index + 1) % 4         @savefile_windows[@file_index].selected = true         return       end     end     # If the up directional button was pressed     if Input.repeat?(Input::UP)       # If the up directional button pressed down is not a repeat、       # or cursor position is more in back than 0       if Input.trigger?(Input::UP) or @file_index > 0         # Play cursor SE         $game_system.se_play($data_system.cursor_se)         # Move cursor up         @savefile_windows[@file_index].selected = false         @file_index = (@file_index + 3) % 4         @savefile_windows[@file_index].selected = true         return       end     end   end 
  end 
  class Scene_Save < Scene_File 
    #-----------------------------------------------------------------   # * Decision Processing   #--------------------------------------------------------------------------   def on_decision(fileindex)     filename=make_filename(fileindex)     # If slot is a secret and not the one currently loaded     if fileindex>1 and not $game_slot_access.active?(fileindex)       # Play buzzer SE       $game_system.se_play($data_system.buzzer_se)       return     end     # Play save SE     $game_system.se_play($data_system.save_se)     # Write save data     file = File.open(filename, "wb")     write_save_data(file)     file.close     # If called from event     if $game_temp.save_calling       # Clear save call flag       $game_temp.save_calling = false       # Switch to map screen       $scene = Scene_Map.new       return     end     # Switch to menu screen     $scene = Scene_Menu.new(4)   end 
  end 
 
  class Scene_Load < Scene_File 
    #--------------------------------------------------------------------------   # * Decision Processing   #--------------------------------------------------------------------------   def on_decision(fileindex)     filename=make_filename(fileindex)     # If file doesn't exist     unless FileTest.exist?(filename)       # Play buzzer SE       $game_system.se_play($data_system.buzzer_se)       return     end     # Play load SE     $game_system.se_play($data_system.load_se)     # Read save data     file = File.open(filename, "rb")     read_save_data(file)     file.close     #make slot the acitv one     $game_slot_access.make_active(fileindex)     # Restore BGM and BGS     $game_system.bgm_play($game_system.playing_bgm)     $game_system.bgs_play($game_system.playing_bgs)     # Update map (run parallel process event)     $game_map.update     # Switch to map screen     $scene = Scene_Map.new   end 
  end

zum Lesen den Text mit der Maus markieren


Die Secrets müssen als Save3.rxdata und Save4.rxdata im Gamordner liegen. Außerdem wrid eine ssa.rxdata vom Spiel erstellt, die den Zugriff speichert.
Der Zugriff auf einen Slot wird mit

Ruby Quellcode

1
enable_slot(i)
frei geschaltet. Dabei muss "i" 3 oder 4 sein. Je nach Slot. Wenn jemand das ganze einbaun will und Kompatibilitätsprobleme hat bin ich gerne bereit nochmal genauer zu erklären wo was geändert wurde...
Folgende Methoden werden überschrieben:
Scene_Title.main
Window_SaveFile.refresh
Scene_File.update
Scene_Load.on_decision
Scene_Save.on_decision

Ich freu mich auf Bugberichte...

Edit Keine Ahnung warum das Forum meint den Code umforamtieren zu müssen. Im Anhang das ganze nochmal als txt (beim in den maker kopieren aufpassen, das das Fenster(vom editor) breit gnug is, da man sonst falsche Umbrüche drin hat)
slot_access.txt

soraiuga

Rekrut

Motto: Darf ich Ihre Bestellung aufnehmen? xD

  • Nachricht senden

31

Donnerstag, 25. September 2008, 16:56

Sooo, dann melde ich mich mal ^____^

Also, erstmal... DANKE Lelle! Das Skript gefällt mir guuut.

Allerdings...
... ist es schade dass ich die beiden Secrets nicht bennenen darf. (Licht1 und Licht2 hört sich ja doof an xD)
... kann man von einem Secret-Speicher auf einen normalen Speicher speichern.

Könntest du dich vielleicht npch an diese 2 kleinen (dennoch wichtigen) Punkte ransetzen? Das wäre seeeehr hilfreich^^
Sonst versteht sich das Skript mit den anderen^^
Keine Bugs!!

Mit freundlichen Grüßen, Sora

Dragoon93

Gesperrter Nutzer

  • »Dragoon93« wurde gesperrt

Motto: >>>!!!Triavolution RULEZ!!!<<<

  • Nachricht senden

32

Sonntag, 28. September 2008, 23:02

Sehr Interessant,

Ich könnte es gut gebrauchen.

Ich schreibe jetzt im Namen von ChrisX930, da er ja gebannt worden ist.

Naja, er ist einer meiner besten Freunde, und genau deshalb helfe ich ihm so gut ich kann.

Hoffentlich kann jemand an diesem genialen Script arbeiten^^

33

Donnerstag, 2. Oktober 2008, 14:48


... ist es schade dass ich die beiden Secrets nicht bennenen darf. (Licht1 und Licht2 hört sich ja doof an xD)
... kann man von einem Secret-Speicher auf einen normalen Speicher speichern.


joa werd ich mich die Tage mal dran setzen... du weißt ja: wenn du zu lange nichts von mir hörst, erinner mich nochmal dran...
Edit
Es ging schneller als gedacht. Erstens hier die neue Version:
slot_access.txt
Das umbenenne ging auch vorher schon hatte ich nur vergessen zu erwähnen:
in dem neuen Window_SaveFile.refresh finden sich folgende Zeilen:

Ruby Quellcode

1
2
3
4
5
6
7
    # Draw file number
    self.contents.font.color = normal_color
    if @file_index<2
      name = "File#{@file_index + 1}"
    else
      name = "Secret#{@file_index - 1}"
    end

"Secret#{@file_index - 1}" kann durch eine beliebigen Namen ersetzt werden. Sollen die beiden sich durch merh als die Nummer unterscheiden müsste man das ganze folgdnermaßen ändern:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
    # Draw file number
    self.contents.font.color = normal_color
    if @file_index<2
      name = "File#{@file_index + 1}"
    else
      if @file_index==2
         name = "Secretname für den ersten Secretslot"
       else
          name="anderer Secretname für den zweiten Secretslot"
       end
    end


Social Bookmarks