Speichern/Laden per Call Script
Hallo
Ich wollte ein Call script machen was z.B in einen show choise event benutzt wird wo steht Spielstand1 und spialstand 2 wenn man dan im Show choise spielstand 1 auswählt und dan bestätigt startet das call script für spielstand 1 und das gleiche bei spiealstand 2.
Das gleiche wollte ich auch zum Laden eines Spiels machen.
Hoffe ihr könnt mir helfen.
MfG
Ich wollte ein Call script machen was z.B in einen show choise event benutzt wird wo steht Spielstand1 und spialstand 2 wenn man dan im Show choise spielstand 1 auswählt und dan bestätigt startet das call script für spielstand 1 und das gleiche bei spiealstand 2.
Das gleiche wollte ich auch zum Laden eines Spiels machen.
Hoffe ihr könnt mir helfen.
MfG
Benutzerinformationen überspringen
Motto: Der RPG-Maker ist antiproportional, für Anfänger leicht - für Erfahrene schwer xD
Ich bin jetzt zwar nicht so der RGSS-Crack , aber was ich ganz sicher weiß ist, dass das Lademenü NICHT mit Events aufgebaut ist sondern in einem Skript. Warum willst du denn bitte ein CallSkript in ein Skript einbauen???
Ich hab grad mal die Funktionen aus den Menüskripten zusammen geschnitten:
Über de main einfügen und dann mit:
speichern und laden.
Für den zweiten slot natürlich beim Aufruf die 1 durch eine 2 ersetzen.
Habs nich getestet ich hoffe es funktioniert trotzdem...
|
|
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 |
def call_save(index) file = File.open("Save#{index}.rxdata", "wb") # Make character data for drawing save file characters = [] for i in 0...$game_party.actors.size actor = $game_party.actors[i] characters.push([actor.character_name, actor.character_hue]) end # Write character data for drawing save file Marshal.dump(characters, file) # Wrire frame count for measuring play time Marshal.dump(Graphics.frame_count, file) # Increase save count by 1 $game_system.save_count += 1 # Save magic number # (A random value will be written each time saving with editor) $game_system.magic_number = $data_system.magic_number # Write each type of game object 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) file.close end def call_load(index) unless FileTest.exist?("Save#{index}.rxdata") return end file = File.open("Save#{index}.rxdata", "rb") # Read character data for drawing save file characters = Marshal.load(file) # Read frame count for measuring play time Graphics.frame_count = Marshal.load(file) # Read each type of game object $game_system = Marshal.load(file) $game_switches = Marshal.load(file) $game_variables = Marshal.load(file) $game_self_switches = Marshal.load(file) $game_screen = Marshal.load(file) $game_actors = Marshal.load(file) $game_party = Marshal.load(file) $game_troop = Marshal.load(file) $game_map = Marshal.load(file) $game_player = Marshal.load(file) # If magic number is different from when saving # (if editing was added with editor) if $game_system.magic_number != $data_system.magic_number # Load map $game_map.setup($game_map.map_id) $game_player.center($game_player.x, $game_player.y) end # Refresh party members $game_party.refresh file.close end |
zum Lesen den Text mit der Maus markieren
Über de main einfügen und dann mit:
|
|
Ruby Quellcode |
1 2 |
call_save(1) call_load(1) |
speichern und laden.
Für den zweiten slot natürlich beim Aufruf die 1 durch eine 2 ersetzen.
Habs nich getestet ich hoffe es funktioniert trotzdem...
Hallo
@Archelaus bitt lies erstmal richtig dem Text es war die frage wie ich per call script mache das das spiel sofort auf Speicherstand 1 speichert also wie ein eigenes Lade speicher menü in Show Choise!
Lelle ich danke dir sehr für deine Mühe die speichern funktion funktioniert lade habe ich nicht getestet.Ich habe nur ein problem bei mir stürtzt der RGSS Player ab beim speichern(liegt nicht bei dir)aber das ist schon seit dem ich win7 ahbe so.......
Du bekommst auf jedenfall Credits in meinen "Minigame".
MfG
@Archelaus bitt lies erstmal richtig dem Text es war die frage wie ich per call script mache das das spiel sofort auf Speicherstand 1 speichert also wie ein eigenes Lade speicher menü in Show Choise!
Lelle ich danke dir sehr für deine Mühe die speichern funktion funktioniert lade habe ich nicht getestet.Ich habe nur ein problem bei mir stürtzt der RGSS Player ab beim speichern(liegt nicht bei dir)aber das ist schon seit dem ich win7 ahbe so.......
Du bekommst auf jedenfall Credits in meinen "Minigame".
MfG
So ist schöner und besser... :D Lelle hat alles doppelt gemoppelt.
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 |
module Quick def self.save(index) file = File.open("Save#{index}.rxdata", 'wb') Scene_Save.new.write_save_data(file) end def self.load(index) file = File.open("Save#{index}.rxdata", 'r') Scene_Load.new.read_save_data(file) end end |
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
Wozu das blöde Modul??? o__O"
Danach das in die Callscripts:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Interpreter def save(i) File.open("Save#{i}.rxdata",'wb') \ {|f| Scene_Save.new.write_save_data(f) } end def load(i) File.open("Save#{i}.rxdata",'rb') \ {|f| Scene_Save.new.read_save_data(f) } end end |
Danach das in die Callscripts:
|
|
Ruby Quellcode |
1 2 3 |
save(id_des_savefiles) # bzw. load(id_des_savefiles) |
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.
Warnung!
Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:- Compiler - Das Drachenbuch [978-3-8273-7097-6]
Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.
- Computerarchitektur [3-8273-7016-7]
Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.
Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
Oh ja klar, stimmt und außerdem hab ich bei mir das scheiß file.close vergessen und ich habs nich im Block gemacht o.O... Nimm das von Evrey :D
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
Ohne Objekt?^^" Ich glaube, du verstehst die tatsächliche Arbeitsweise nicht.
Hinzu kommt, dass in Game_Map oder so bereits eine Instanz vom Interpreter erstellt ist. Aus diesem Grund können wir unsere Callscript-Methoden direkt in diese Klasse schreiben, da der Callscript-Code im Kontext der Instanz vom Interpreter ausgeführt wird. Um's deutlicher zu zeigen:
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
MyClass #=> MyClass # Ein einzelnes Objekt liefert sich selbst, und sei's eine Klasse. MyClass.new() #=> <MyClass:0xAAAAAAAAAAAAAA> # bzw unter x86 MyClass.new() #=> <MyClass:0xAAAAAAA> # BasicObject#new() liefert das Objekt der Klasse zurück. Die Hexa-Zahl stellt die Objekt-ID dar. # Wir können also direkt von BasicObject#new() aus das erstellte Objekt mit all' seinen Methoden verwenden. MyClass.new.inspect() #=> "<MyClass:0xAAAAAAAAAAAAAA>" (String) # Diese Methode liefert wieder ein Objekt, welches wir theoretisch gesehen weiter verwenden könnten. MyClass.new.inspect.downcase.gsub(/\<(\w+)\:\dx\d+\>/,$1).[](2,5).to_sym() #=> :class # Aber seien wir ehrlich, solch' eine Methodenkette nutzt keine Sau...^^" # Daher klappt allerdings: Scene_Save.new.write_save_data(f) |
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 |
# Klassen-/Variablennamen könnten fehlerhaft sein $game_map.instance_variable_get(:@map_interpreter).class() #=> Interpreter # Ausführen von Callscripts läuft theoretisch so ab: Kernel.eval(code,$game_map.instance_variable_get(:@map_interpreter).send(:binding)) # Wobei das "Binding" dem eval sagt "Hey, führe den Code in meinem Kontext aus!" # In der Praxis ist das Binding unnötig, da der Aufruf von Kernel.eval(s) direkt in der Instanz vom # Interpreter statt findet. |
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.
Warnung!
Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:- Compiler - Das Drachenbuch [978-3-8273-7097-6]
Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.
- Computerarchitektur [3-8273-7016-7]
Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.
Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
hm. Hab das "new" übersehen.
Und dann muss ich sagen, dass ich das unschön finde extra das Objekt zu erzeugen nur um eine Methode davon zu verwenden. Obwohl es natülich ne sehr elegante Lösung des Problems ohne viel Code ist.
Ich würde halt befürchten, dass im Konstruktor jede Menge zeug initalisiert wird, was ich gar nicht brauche. Was allerdings nicht der Fall ist, weil die Initialiseirungen in den Scenes ja hauptsächlich in der "main" methode gemacht werden. Das find ich dann persönlich auch wieder unschön *grummel* *murmel*
Ignoriert mich einfach...
Und dann muss ich sagen, dass ich das unschön finde extra das Objekt zu erzeugen nur um eine Methode davon zu verwenden. Obwohl es natülich ne sehr elegante Lösung des Problems ohne viel Code ist.
Ich würde halt befürchten, dass im Konstruktor jede Menge zeug initalisiert wird, was ich gar nicht brauche. Was allerdings nicht der Fall ist, weil die Initialiseirungen in den Scenes ja hauptsächlich in der "main" methode gemacht werden. Das find ich dann persönlich auch wieder unschön *grummel* *murmel*
Ignoriert mich einfach...
Ähnliche Themen
-
RGSS 1 Probleme & Talk »-
Save´s Auslesen
(9. März 2010, 12:25)
-
RGSS 1 Probleme & Talk »-
mir fehlen script befehle und ne frage zum game over!^^
(6. März 2008, 20:54)
-
RGSS 1 Probleme & Talk »-
Werte in Variablen
(18. Juni 2006, 10:28)
-
RGSS Archiv »-
Einfache DLL Nutzung
(1. Januar 2005, 23:54)



