Auto Save
Suche einen Script den ich benutzen kann um während des Spiels ohne Beeinflussung durch Spielers abspeichern zu können, ich hab in meinem Spiel Pakete und Truhen eingeführt die entweder immer einen bestimmten Inhalt an Gegenständen haben oder einen zufälligen. Bei den zufälligen könnte der Spieler sich einfach an einem Speicherpunkt stellen abspeichern und durch Neustart so lange dieses Paket öffnen bis er das gewünschte Items erhält. Dies möchte ich verhindern.
Ich habe bereits was dazu gefunden wurde aber etwas durch die Diskussion verwirrt
Autosave Skript - Skript-Anfragen - RPG Studio - Make your World real
Was ich genau suche ist ein Script der automatisch auf den zuletzt geladeten Spielstand speichert und dies nur auf meinen Befehl also durch das Aufrufen des Scripts, sollte keine Datei geladen worden sein, soll das Spiel nicht abstürzen sondern auf Slot 4 speichern.
hoffe mir kann geholfen werden^^
im Event sollte das dann so aussehen Zufalls Varibale >>> Schnellspeichern >>> Ergebnis
Ich habe bereits was dazu gefunden wurde aber etwas durch die Diskussion verwirrt
Autosave Skript - Skript-Anfragen - RPG Studio - Make your World real
Was ich genau suche ist ein Script der automatisch auf den zuletzt geladeten Spielstand speichert und dies nur auf meinen Befehl also durch das Aufrufen des Scripts, sollte keine Datei geladen worden sein, soll das Spiel nicht abstürzen sondern auf Slot 4 speichern.
hoffe mir kann geholfen werden^^
im Event sollte das dann so aussehen Zufalls Varibale >>> Schnellspeichern >>> Ergebnis
Tätä! Das bringt die Suche in der Script-Datenbank, wenn man fix "Autosave" eingibt:
Autosave-Erweiterung
Das einzige, was du tun musst, ist, den name "autosave.rxdata" in "File1/2/3/4.rxdata" zu ändern.
Autosave-Erweiterung
Das einzige, was du tun musst, ist, den name "autosave.rxdata" in "File1/2/3/4.rxdata" zu ändern.
module Autosave
ID = 15 # das ist der Swicht in dem du Autosave an/abschalten kannst :3
def Autosave.enabled?
return $game_switches[ID] == true
end
def Autosave.saved?
return File.exist?('File1/2/3/4.rxdata') and Autosave.enabled?
end
def Autosave.get
file = File.open('File1/2/3/4.rxdata', "r")
# Read each type of game object
Scene_Load.new.read_save_data(file)
file.close
end
def Autosave.save
file = File.open('File1/2/3/4.rxdata', "w")
# Write each type of game object
Scene_Save.new.write_save_data(file)
file.close
end
end
also anscheinend stimmt das was mit dem script nicht oder ich hab es falsch eingefügt.
Jedenfalls funktioniert File1/2/3/4.rxdata nicht, File1.rxdata auch nicht, Save1.rxdata auch nicht und das Original autosave.rxdata geht auch nicht. Hab auch schon versucht eine Save Datei so zu nennen aber das war auch ein Reinfall. Als Amateur weiß ich zwar was mir die Fehlermeldung sagt und kann meistens auch einfache Fehler schnell finden aber hier bin ich echt überfragt.
Und falls ich das ding zu laufen bekomme, kann ich dann auch eifnach so speichern? und wird immer die zuletzt geladenen Datei überschrieben?
ID = 15 # das ist der Swicht in dem du Autosave an/abschalten kannst :3
def Autosave.enabled?
return $game_switches[ID] == true
end
def Autosave.saved?
return File.exist?('File1/2/3/4.rxdata') and Autosave.enabled?
end
def Autosave.get
file = File.open('File1/2/3/4.rxdata', "r")
# Read each type of game object
Scene_Load.new.read_save_data(file)
file.close
end
def Autosave.save
file = File.open('File1/2/3/4.rxdata', "w")
# Write each type of game object
Scene_Save.new.write_save_data(file)
file.close
end
end
also anscheinend stimmt das was mit dem script nicht oder ich hab es falsch eingefügt.
Jedenfalls funktioniert File1/2/3/4.rxdata nicht, File1.rxdata auch nicht, Save1.rxdata auch nicht und das Original autosave.rxdata geht auch nicht. Hab auch schon versucht eine Save Datei so zu nennen aber das war auch ein Reinfall. Als Amateur weiß ich zwar was mir die Fehlermeldung sagt und kann meistens auch einfache Fehler schnell finden aber hier bin ich echt überfragt.
Und falls ich das ding zu laufen bekomme, kann ich dann auch eifnach so speichern? und wird immer die zuletzt geladenen Datei überschrieben?
Gleich auch noch verbessert:
Woran es bei deinem Script lag weis ich ehrlich gesagt nicht^^
EDIT:
Oh, and reagiert wohl anderst als && oder &, wenn du die Zeile mit dem and nach return in Klammern setzt geht es auch, oder du ersetzt es auch gleich mit einem & oder &&.
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
module Autosave def self.enabled? return $game_switches[ID] end def self.saved? return File.exist?("File5rxdata") & self.enabled? end def self.get() File.open("File5.rxdata", 'r') {|file| Scene_Load.new.read_save_data(file)} end def self.save() File.open("File5.rxdata", 'w') {|file| Scene_Save.new.write_save_data(file)} end end |
Woran es bei deinem Script lag weis ich ehrlich gesagt nicht^^
EDIT:
Oh, and reagiert wohl anderst als && oder &, wenn du die Zeile mit dem and nach return in Klammern setzt geht es auch, oder du ersetzt es auch gleich mit einem & oder &&.
Mehr als a Allgäuer ka a Mensch it wera.
Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Reborn« (8. Februar 2011, 17:37)
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
#============================================================================== # ■ Scene_Save #------------------------------------------------------------------------------ # セーブ画面の処理を行うクラスです。 #============================================================================== class Scene_Save < Scene_File #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super("Spielstand speichern?") end #-------------------------------------------------------------------------- # ● 決定時の処理 #-------------------------------------------------------------------------- def on_decision(filename) # セーブ SE を演奏 $game_system.se_play($data_system.save_se) # セーブデータの書き込み file = File.open(filename, "wb") write_save_data(file) file.close # イベントから呼び出されている場合 if $game_temp.save_calling # セーブ呼び出しフラグをクリア $game_temp.save_calling = false # マップ画面に切り替え $scene = Scene_Map.new return end # メニュー画面に切り替え $scene = Scene_Menu.new(4) end #-------------------------------------------------------------------------- # ● キャンセル時の処理 #-------------------------------------------------------------------------- def on_cancel # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # イベントから呼び出されている場合 if $game_temp.save_calling # セーブ呼び出しフラグをクリア $game_temp.save_calling = false # マップ画面に切り替え $scene = Scene_Map.new return end # メニュー画面に切り替え $scene = Scene_Menu.new(4) end #-------------------------------------------------------------------------- # ● セーブデータの書き込み # file : 書き込み用ファイルオブジェクト (オープン済み) #-------------------------------------------------------------------------- def write_save_data(file) # セーブファイル描画用のキャラクターデータを作成 characters = [] for i in 0...$game_party.actors.size actor = $game_party.actors[i] characters.push([actor.character_name, actor.character_hue]) end # セーブファイル描画用のキャラクターデータを書き込む Marshal.dump(characters, file) # プレイ時間計測用のフレームカウントを書き込む Marshal.dump(Graphics.frame_count, file) # セーブ回数を 1 増やす $game_system.save_count += 1 # マジックナンバーを保存する # (エディタで保存するたびにランダムな値に書き換えられる) $game_system.magic_number = $data_system.magic_number # 各種ゲームオブジェクトを書き込む Marshal.dump($game_system, file) Marshal.dump($game_switches, file) Marshal.dump($game_variables, file) Marshal.dump($game_self_switches, file) Marshal.dump($game_screen, file) Marshal.dump($game_actors, file) Marshal.dump($game_party, file) Marshal.dump($game_troop, file) Marshal.dump($game_map, file) Marshal.dump($game_player, file) end end |
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
module Autosave def self.enabled? return $game_switches[ID] end def self.saved? return File.exist?("Save1.rxdata") & self.enabled? end def self.get() File.open("Save1", 'r') {|file| Scene_Load.new.read_save_data(file)} end def self.save() File.open("Save1.rxdata", 'r') {|file| Scene_Save.new.write_save_data(file)} end end |
Also ich kann schonmal mein Spiel starten das ist Klasse
So bleibt nur noch die Frage wie abspeichern, wenn ich den von der Beschreibung genannten Befehl: "Autosave.save" nutze kommt der Troll hier:
[img]http://www.bilder-space.de/show_img.php?img=2bea46-1297030941.png&size=thumb[/img]
Ein Dateiname darf keine ' / ' enthalten, das war auch nur ein Beispiel von Alexis, damit du dir eine Zahl aussuchst.
Die Datei sollte dann heißen "Save1.rxdata" oder "Save2.rxdata" etc.
Meine Version: Du kannst bei Autosave.save() und Autosave.load() in Klammern eine ID angeben, auf die wird dann gespeichert, ansonsten wird die zuletzt verwendete Savedatei benutzt. Beispiel Autosave.save(3)
@Hindi:
Da Fehlt einmal der Punkt zu der Extension, und ich glaub du solltest die Dateien lieber auch binär öffnen. Konstantendefinition nicht vergessen ;)
[ +and+ hat eine niedriegere Priorität als +&+ ]
Die Datei sollte dann heißen "Save1.rxdata" oder "Save2.rxdata" etc.
Meine Version: Du kannst bei Autosave.save() und Autosave.load() in Klammern eine ID angeben, auf die wird dann gespeichert, ansonsten wird die zuletzt verwendete Savedatei benutzt. Beispiel Autosave.save(3)
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
module Autosave ID = 15 # das ist der Swicht in dem du Autosave an/abschalten kannst :3 def Autosave.enabled?() return $game_switches[ID] end def Autosave.saved?( id=($game_temp.last_file_index+1) ) return( File.exist?("Save#{id}.rxdata") and Autosave.enabled? ) end def Autosave.get( id=($game_temp.last_file_index+1) ) File.open("Save#{id}.rxdata", "rb"){ |io| Scene_Load.new.read_save_data(io) } end def Autosave.save( id=($game_temp.last_file_index+1) ) File.open("Save#{id}.rxdata", "wb"){ |io| Scene_Save.new.write_save_data(io) } end end |
@Hindi:
Da Fehlt einmal der Punkt zu der Extension, und ich glaub du solltest die Dateien lieber auch binär öffnen. Konstantendefinition nicht vergessen ;)
[ +and+ hat eine niedriegere Priorität als +&+ ]
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.[...] Ziat enfernt. Bitte keine Vollziatet.
- Playm
- Playm
Perfekt es funktioniert jetzt läuft es ohne Fehlermeldungen und speichern tut es auch

Das mit den "/" ist gut zu wissen.
Aber ich bekomme es nicht hin das die zuletzt verwendete Datei überschrieben wird.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Playm« (7. Februar 2011, 00:01)
@palym
Das lag nicht daran, dass ich es nicht binär geöffnet habe, sondern daran dass ich einen Tippfehler drin hatte. Ich habe es zum Lesen geöffnet :3
Das lag nicht daran, dass ich es nicht binär geöffnet habe, sondern daran dass ich einen Tippfehler drin hatte. Ich habe es zum Lesen geöffnet :3
Mehr als a Allgäuer ka a Mensch it wera.
Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren
Aber so weit ich weis kannst du ein '/' auch durch ein '\' ersetzen, so kannst du dann auf selbererstellteoder vorhandene Unterordner zugreifen und dort speichern.

-
Hallo
Tabs klicken unso, ne? -
Lyric
Meine schwarze Liste, beginnt mit einem Satz:
"Wer zuletzt lacht, lacht am besten!", und am Ende ist noch Platz.
Auf der Liste meiner Feinde, ist auch für euch noch Platz
Wer zuletzt lacht, lacht am besten!
Merkt euch diesen Satz!
Ode an die Feindschaft von Saltatio Mortis
-
Outtakes
-
Nummer 3
20.09.2012 - 19:46
"Yah, ich bin ihre Motivazin." "Motivazin - gibts das jetzt in der Apotheke rezeptflichtig?" -
Ich mag Kekse
-
Nummer 2
08.09.2012 - 01:29 Uhr
"Die Erlebnismacher zu Hannovre - Exlibre - ääääh... Excalibur"
*Lachflash* -
Nummer 1
07.09.2012 - 22:58 Uhr
*Bööarps* - Die Erlebnismacher zu Hannovre - Excalibur... "Mahlzeit... also... doch nicht Mahlzeit... war nur die Website"
"Ich hab gerülpst -.-" "Du hast was?" *LACHFLASH*
"Nicht dein Ernst, oder?" "DOCH!" *LACHFLASH second tour*
-
-
Profile

-
Ich
Dass bin ich:
Maker: RPG-XP, RPG-VX
Story:
Für andere mehr als für mich: 60%
Grafik:
Ich werde besser: 35%
Pixeln:
Ich stehe an den Anfängen: 7%
Mapping:
Es fehlen nur noch (alle) Feinheiten: 67%
Scripting:
Informatiker, mittlerweile auch andere Sachen am skripten: 93% -
Neues aus der SB
Neues aus der SB:
(03:41:36) Kagurame: n8 du
(03:41:37) Irrlicht: Nacht Mozilla
(03:41:47) MozillaBabybird: Kagu: der witz war flach
(03:42:01) Kagurame: welcher witz?
(03:42:14) Heatra: geh nicht benji
(03:42:21) Heatra: spiel lieber ats2
(03:42:25) MozillaBabybird: nacht leute ^^ ijemand sollte diesen verlauf im studio bash posten, damit die mal wissen wer die echten camper hier sind
(03:42:35) Kagurame: ich bin scripten
(03:42:3
MozillaBabybird: Heat: tut mir sorry xD
(03:42:40) Kagurame: ich mach das...^^
(03:42:4
MozillaBabybird: bis .... mittag ?
(03:42:49) Heatra: ^^
(03:42:55) MozillaBabybird: ja mittag dürfte passen
(03:42:56) MozillaBabybird:
(03:42:57) Kagurame: ^^
(03:43:02) Heatra: ich steh morgen eh erst um 5 uhr mittags auf
(03:43:07) Kagurame: bis heute
(03:43:11) Steve: MozillaBabybird verlässt den Chat.
(03:43:15) Kagurame: ich so um 3zum Lesen den Text mit der Maus markieren
(03:05:32) Ankou: bist du dir SICHER, dass es die Performance an der Stelle kritisch ist und c.a. 30% sind KEIN großer Unterschied?
(03:05:41) Ankou: oh
(03:05:45) Ankou: okay
(03:06:21) Asandril: Oh Ha was habt Ihr gerade für ein Thema?
(03:06:41) Ankou: das ist in der Tat eine performancekritische angelegenheit, aber ich denke dennoch nicht, dass das die Dinge sind auf die du dein Hauptaugenmerk richten solltest.
(03:07:01) Heatra: maschine
(03:07:01) Ankou: derartige Mikrooptimierungen werden Performanceprobleme sogut wie niemals beseitigen können
(03:07:01) Irrlicht: anhand der Tatsache dass es 20 000 000 Durchläufe waren nicht wirklich :-/
(03:07:0
Ankou: änder was konzeptionelles oder lass es bleiben.
(03:07:31) Ankou: evtl. kannst du mehr der Interpretation nach vorne verlagern
(03:08:06) Ankou: aber solche Dinge zu versuchen wie die case Abfragen durch send zu ersetzen in der Hoffnung ein paar Prozent einzusparen bringens dir nicht
(03:08:26) Asandril: Bin ich gerade hier in einem Kurs gelandet ..
(03:08:36) Irrlicht: hatte mal in Erwägung gezogen die Befehle evtl. schonmal etwas "vorzuinterpretieren", aber das dürfte dann mehr Speicher verbrauchen als es Geschwindigkeit bringt...
(03:09:11) Ankou: Asandril: ja, erstaunlich, angetrunken an Silvester über so etwas zu reden
(03:09:2
Heatra: -> lampenfieber
(03:09:40) Asandril: Kann ich nur beipflichten.
(03:09:46) Irrlicht: atm bin ich mir nicht sicher was genau den doch vergleichsweise erheblichen Lag von Parallel-Process-Events verursacht (oder ob es einfach an der gesammten Masse liegt) wenn ich bei 2 000 000 solcher Durchläufe unter einer Sek. bleibe...
(03:09:57) Ankou: Irrlicht: das ist durchaus üblich. Speicher gegen Geschwindigkeit einzustauschen ist sehr populär und bringt oft viel
(03:11:23) Irrlicht: mal schaun
zum Lesen den Text mit der Maus markieren
(03:32:35) (Kagurame_AnkündigungImForumMach): es da ne methode wie beim xp?
(03:32:4
Irrlicht: Cache.system("Iconset")
bekommst das Iconset
(03:32:50) (Kagurame_AnkündigungImForumMach): brauche es dringend, aber nix gefunden bisher
(03:33:01) (Kagurame_AnkündigungImForumMach): und dann per id?
(03:33:06) (Kagurame_AnkündigungImForumMach): drauf zugreifen?
(03:33:07) Irrlicht: Index berechnet sich einfach aus
x = index % 16
y = index / 16
(03:33:17) Irrlicht: afaik warens 16 nebeneinander^^
(03:33:2
(Kagurame_AnkündigungImForumMach): ok, danke.
(03:33:51) (Kagurame_AnkündigungImForumMach): ich glaub ich scripte dann noch ein bissl
(03:34:01) Steve: (Kagurame_AnkündigungImForumMach) heißt jetzt Kagurame.
(03:34:04) Irrlicht: im XP hast die einzelnen Icons anhand des Namens aus dem Icon-Ordner aufgerufen
(03:34:09) Steve: Kagurame ist nun Scripten!
(03:34:17) Irrlicht: (geht natürlich im VX auch, aber wozu gibts das Iconset)
(03:34:23) Kagurame: ja ich weis, daher war ich heut mittag verwirrtzum Lesen den Text mit der Maus markieren
Ähnliche Themen
-
Skript-Anfragen »-
Neues Save Menü
(5. November 2010, 16:27)
-
Einsteigerhilfe »-
Fragen zu Tilesets und Einstellung des Rpg Makers (Die Zweite ;9 )
(5. September 2008, 17:51)
-
Skript-Anfragen »-
Auto Potion oder Auto Phönix?Ist das möglich?
(13. März 2008, 19:23)
-
RGSS Archiv »-
Fehler beim Laden
(14. Mai 2005, 16:20)
-
RGSS Archiv »-
"Echte" Uhrzeitabfrage im RMXP?
(24. November 2004, 15:25)
