Benutzerinformationen überspringen
Motto: Wer nur in die Fußstapfen anderer tritt, hinterlässt keine bleibenden Eindrücke.
Kleines Pause-Skript-Problem
Hallo,
ich würde gerne per Event mit diesem Skript arbeiten, sprich es ausführen und stoppen wie ich will. Das Problem meinerseits ist, dass wenn ich es mit
stoppe, mein Common-Event nicht mehr weiterläuft und ich somit das Skript nicht mehr stoppen kann.
Wenn ich es richtig verstanden habe, müsste ich also hier:
hinzufügen, dass Commonevents weiterlaufen oder besser, dass mein Commonevent (ID 005) weiterläuft. Wie kann ich das umsetzen, bzw welchen Befehl kann ich da nutzen?
Hier ist das Skript
Ich hoffe auf baldige Hilfe,
LG Gmork
ich würde gerne per Event mit diesem Skript arbeiten, sprich es ausführen und stoppen wie ich will. Das Problem meinerseits ist, dass wenn ich es mit
|
|
Quellcode |
1 |
$forced_pause = true |
Wenn ich es richtig verstanden habe, müsste ich also hier:
|
|
Quellcode |
1 2 3 4 |
when 1
Graphics.update # Update game screen
Input.update # Update input information
end |
hinzufügen, dass Commonevents weiterlaufen oder besser, dass mein Commonevent (ID 005) weiterläuft. Wie kann ich das umsetzen, bzw welchen Befehl kann ich da nutzen?
Hier ist das Skript
|
|
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 85 86 87 88 |
# Pause Script By IceDragon
# I know its a bit sloppy.
$pause_button = Input::C # Accept Button (Z, Space, Enter)
$pause_image = nil # Change this later, to use an image, the image must
# be in the Picture Folder
$pause_mode = 1 # 0 - Spriteset will also update, 1 - No Spriteset Update
$pause_text = "Paused!"
$dimming_opac = 128
# Do not edit beyond this point
$forced_pause = false
class Scene_Map < Scene_Base
alias iex_pause_start start unless $@
def start
iex_pause_start
create_pause_sprite
end
alias iex_pause_terminate terminate unless $@
def terminate
iex_pause_terminate
@pause_sprite.dispose unless @pause_sprite.nil?
@dimming_sprite.dispose unless @dimming_sprite.nil?
end
def create_pause_sprite
@pause_sprite = Sprite.new
@dimming_sprite = Sprite.new
@dimming_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
rect = Rect.new(0, 0, Graphics.width, Graphics.height)
color = Color.new(0, 0, 0, 255)
@dimming_sprite.bitmap.fill_rect(rect, color)
@dimming_sprite.opacity = 0
if $pause_image == nil
@pause_sprite.bitmap = Bitmap.new(320, 56)
@pause_sprite.bitmap.font.size = 48
@pause_sprite.bitmap.draw_text(0, 0, 320, 56, $pause_text, 1)
else
@pause_sprite.bitmap = Cache.picture($pause_image)
end
@dimming_sprite.x = 0
@dimming_sprite.y = 0
@dimming_sprite.z = 9998
@dimming_sprite.visible = false
@pause_sprite.x = (Graphics.width - @pause_sprite.src_rect.width) / 2
@pause_sprite.y = (Graphics.height - @pause_sprite.src_rect.height) / 2
@pause_sprite.z = 9999
@pause_sprite.visible = false
end
alias iex_pause_update update unless $@
def update
create_pause_sprite if @pause_sprite.nil?
$forced_pause = !$forced_pause if Input.trigger?($pause_button)
if $forced_pause
@dimming_sprite.visible = true
@pause_sprite.visible = true
loop do
@dimming_sprite.opacity = [@dimming_sprite.opacity + 5, $dimming_opac].min
case $pause_mode
when 0
Graphics.update # Update game screen
Input.update # Update input information
#$game_map.update # Update map
@spriteset.update # Update sprite set
when 1
Graphics.update # Update game screen
Input.update # Update input information
end
$forced_pause = !$forced_pause if Input.trigger?($pause_button)
break unless $forced_pause
end
else
@dimming_sprite.opacity = 0
@dimming_sprite.visible = false
@pause_sprite.visible = false
iex_pause_update
end
end
end |
zum Lesen den Text mit der Maus markieren
Ich hoffe auf baldige Hilfe,
LG Gmork
-
Aktuelles aus anderen Foren -
Mein Projekt(1.Demo)
Ich arbeite zur Zeit an der Demo meines Projektes "Mosferia".
Geplant als Erscheinungstermin ist der November 2013.
Bisher könnt ihr nur einen nicht mehr aktuellen Screen zum Projekt in
meinem Profil bewundern, aber demnächst werde ich weiteres präsentieren. -
Meine Ressourcen
-
Mein Avatar
Du musst die Common Events updaten. Normalerweise werden die Map Events und Common Events im Update der Game_Map mitgeupdatet, aber da Du ja willst, dass die Map Events pausieren und sich nicht weiter bewegen, musst Du selber etwas schreiben.
Die richtige Codestelle hast Du schon gefunden, dort fügst Du nun ein:
Musst Du entscheiden, ob Du alle CEs updaten möchtest, oder nur gezielt bestimmte. Vermutlich ist letzteres das, was Du brauchst.
Allerdings, da das der Talkbereich ist, möchte ich anmerken, dass dein Skript (hauptsächlich auf Grund der globalen Variablen) nicht besonders schön geschrieben ist.
Die richtige Codestelle hast Du schon gefunden, dort fügst Du nun ein:
|
|
Ruby Quellcode |
1 2 3 4 5 6 |
common_events = $game_map.instance_variable_get(:@common_events) # update every common event common_events.values.each{|ce| ce.update} # or update only common event #005 common_events[5].update |
Allerdings, da das der Talkbereich ist, möchte ich anmerken, dass dein Skript (hauptsächlich auf Grund der globalen Variablen) nicht besonders schön geschrieben ist.
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.Benutzerinformationen überspringen
Motto: Wer nur in die Fußstapfen anderer tritt, hinterlässt keine bleibenden Eindrücke.
Zitat
Allerdings, da das der Talkbereich ist, möchte ich anmerken, dass dein Skript (hauptsächlich auf Grund der globalen Variablen) nicht besonders schön geschrieben ist.
Naja, ich habe das Skript nicht selbst geschrieben und es war das Einzige, was ich gefunden habe.
Danke erst einmal für deine Antwort,
aber jetzt habe ich folgendes Problem: Die Befehle werden eventuell ausgeführt, aber da der Inhalt der Befehle ja nicht geupdatet wird, passiert trotzdem nichts.Wie kann ich jetzt Auswahlboxen und Bilder updaten? Denn diese Befehle werden ja wieder gestoppt...
MfG Gmork
-
Aktuelles aus anderen Foren -
Mein Projekt(1.Demo)
Ich arbeite zur Zeit an der Demo meines Projektes "Mosferia".
Geplant als Erscheinungstermin ist der November 2013.
Bisher könnt ihr nur einen nicht mehr aktuellen Screen zum Projekt in
meinem Profil bewundern, aber demnächst werde ich weiteres präsentieren. -
Meine Ressourcen
-
Mein Avatar
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Gmork« (31. Dezember 2012, 13:04)
Ich habe für dich ein Simples Pausen-Script erstellt.
Es lässt sich sehr leicht bedienen.Ich stelle dir einmal das Script ein und eine Demo dazu.
Pause-Script :
Aufrufen kannst du das Script mit : $scene = Scene_Pause.new
Demo :
Pause-Script.rar
MFG Asandril
Es lässt sich sehr leicht bedienen.Ich stelle dir einmal das Script ein und eine Demo dazu.
Pause-Script :
|
|
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 |
#################### Pause Script #################### class Scene_Pause def main @spriteset = Spriteset_Map.new @sprite = Sprite.new @sprite.bitmap = Cache.picture("Pause") # Hier fügst du dein Picture Name ein. @sprite.opacity = 255 # Hier stellst du die Transparenz ein. @sprite.x = 220 # Hier stellst du die Position des Bildes von Links nach Rechts ein. @sprite.y = 150 # Hier stellst du die Position des Bildes von Oben nach Unten ein. @sprite.z = 100 # Hier stellst du die Priorität des Bildes ein. Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end end end def update if Input.trigger?(Input::X) # Unterbrechung mit der A Taste $data_system.sounds[2].play $scene = Scene_Map.new Graphics.freeze @sprite.dispose @spriteset.dispose $game_map.need_refresh = true end end |
zum Lesen den Text mit der Maus markieren
Aufrufen kannst du das Script mit : $scene = Scene_Pause.new
Demo :
Pause-Script.rar
MFG Asandril
Realität ist auch nur eine Art von Rollenspiel.
Benutzerinformationen überspringen
Motto: Wer nur in die Fußstapfen anderer tritt, hinterlässt keine bleibenden Eindrücke.
Hi Asandril,
sry für die späte Antwort. Ich wollte es erst noch weiter mit dem ersteren Skript versuchen. Leider erfüllt dein Skript genausowenig
die Anforderungen wie das gepostete. Ich möchte gerne 3 Bilder anzeigen lassen (druch ein Common-Event bestimmt), das Commonevent 5
trotz der Pause weiterlaufen lassen und im Commonevent eine Auswahl aufrufen, die ich weiter nutzen kann...
Kannst du das Skript irgendwie abändern, dass das geht? Ich wäre dir sehr verbunden, Credits sind natürlich selbstverständlich,
LG Gmork
PS: Wer auch immer das Thema als erledigt gesetzt hat, es ist eigentlich noch nicht erledigt...
sry für die späte Antwort. Ich wollte es erst noch weiter mit dem ersteren Skript versuchen. Leider erfüllt dein Skript genausowenig
die Anforderungen wie das gepostete. Ich möchte gerne 3 Bilder anzeigen lassen (druch ein Common-Event bestimmt), das Commonevent 5
trotz der Pause weiterlaufen lassen und im Commonevent eine Auswahl aufrufen, die ich weiter nutzen kann...
Kannst du das Skript irgendwie abändern, dass das geht? Ich wäre dir sehr verbunden, Credits sind natürlich selbstverständlich,
LG Gmork
PS: Wer auch immer das Thema als erledigt gesetzt hat, es ist eigentlich noch nicht erledigt...
-
Aktuelles aus anderen Foren -
Mein Projekt(1.Demo)
Ich arbeite zur Zeit an der Demo meines Projektes "Mosferia".
Geplant als Erscheinungstermin ist der November 2013.
Bisher könnt ihr nur einen nicht mehr aktuellen Screen zum Projekt in
meinem Profil bewundern, aber demnächst werde ich weiteres präsentieren. -
Meine Ressourcen
-
Mein Avatar
Benutzerinformationen überspringen
Motto: Wer nur in die Fußstapfen anderer tritt, hinterlässt keine bleibenden Eindrücke.
*Push*
-
Aktuelles aus anderen Foren -
Mein Projekt(1.Demo)
Ich arbeite zur Zeit an der Demo meines Projektes "Mosferia".
Geplant als Erscheinungstermin ist der November 2013.
Bisher könnt ihr nur einen nicht mehr aktuellen Screen zum Projekt in
meinem Profil bewundern, aber demnächst werde ich weiteres präsentieren. -
Meine Ressourcen
-
Mein Avatar
Benutzerinformationen überspringen
Ankömmling
Motto: Ein Kluger Mann findet immer Zeit für Dummheiten
OK, also kurze Verständnisfrage:
Du willst ein Pause-Script, das alles andere anhält, bis auf das Common Event 005 und dessen Inhalte?
Spriteset sollte stoppen, game_map updated aber weiter die Events und Message Boxen (müsstest noch den z-index anpassen, damit die Window Boxen über dem Sprite-Layer angezeigt werden.
Auf deiner Map läuft dann ein Event als parallel process und ner abfrage: true == $forced_pause -> dann nen switch deiner wahl auf on setzen, welcher dein common event (ebenfalls parallel process) benötigt.
Jetzt laufen wohl aber alle Events weiter auf der Map. Da müsstest du evtl. ne Abfrage einbauen, ob Pause ist oder nicht - und nur, wenn nicht, diese laufen lassen.
Ich weiß, ist doof, aber ich wüsst aus dem Kopf gerade keinen anderen Weg, wie man solch einen Fall abdecken könnte
Du willst ein Pause-Script, das alles andere anhält, bis auf das Common Event 005 und dessen Inhalte?
|
|
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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# Pause Script By IceDragon # I know its a bit sloppy. $pause_button = Input::C # Accept Button (Z, Space, Enter) $pause_image = nil # Change this later, to use an image, the image must # be in the Picture Folder $pause_mode = 1 # 0 - Spriteset will also update, 1 - No Spriteset Update $pause_text = "Paused!" $dimming_opac = 128 # Do not edit beyond this point $forced_pause = false class Scene_Map < Scene_Base alias iex_pause_start start unless $@ def start iex_pause_start create_pause_sprite end alias iex_pause_terminate terminate unless $@ def terminate iex_pause_terminate @pause_sprite.dispose unless @pause_sprite.nil? @dimming_sprite.dispose unless @dimming_sprite.nil? end def create_pause_sprite @pause_sprite = Sprite.new @dimming_sprite = Sprite.new @dimming_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height) rect = Rect.new(0, 0, Graphics.width, Graphics.height) color = Color.new(0, 0, 0, 255) @dimming_sprite.bitmap.fill_rect(rect, color) @dimming_sprite.opacity = 0 if $pause_image == nil @pause_sprite.bitmap = Bitmap.new(320, 56) @pause_sprite.bitmap.font.size = 48 @pause_sprite.bitmap.draw_text(0, 0, 320, 56, $pause_text, 1) else @pause_sprite.bitmap = Cache.picture($pause_image) end @dimming_sprite.x = 0 @dimming_sprite.y = 0 @dimming_sprite.z = 9998 @dimming_sprite.visible = false @pause_sprite.x = (Graphics.width - @pause_sprite.src_rect.width) / 2 @pause_sprite.y = (Graphics.height - @pause_sprite.src_rect.height) / 2 @pause_sprite.z = 9999 @pause_sprite.visible = false end alias iex_pause_update update unless $@ def update create_pause_sprite if @pause_sprite.nil? $forced_pause = !$forced_pause if Input.trigger?($pause_button) if $forced_pause @dimming_sprite.visible = true @pause_sprite.visible = true loop do @dimming_sprite.opacity = [@dimming_sprite.opacity + 5, $dimming_opac].min case $pause_mode when 0 Graphics.update # Update game screen Input.update # Update input information #$game_map.update # Update map @spriteset.update # Update sprite set when 1 Graphics.update # Update game screen Input.update # Update input information $game_map.update_events $game_map.interpreter.update # Update interpreter @message_window.update # Update message window unless $game_message.visible # Unless displaying a message update_transfer_player update_encounter update_call_menu update_call_debug update_scene_change end end $forced_pause = !$forced_pause if Input.trigger?($pause_button) break unless $forced_pause end else @dimming_sprite.opacity = 0 @dimming_sprite.visible = false @pause_sprite.visible = false iex_pause_update end end end |
Spriteset sollte stoppen, game_map updated aber weiter die Events und Message Boxen (müsstest noch den z-index anpassen, damit die Window Boxen über dem Sprite-Layer angezeigt werden.
Auf deiner Map läuft dann ein Event als parallel process und ner abfrage: true == $forced_pause -> dann nen switch deiner wahl auf on setzen, welcher dein common event (ebenfalls parallel process) benötigt.
Jetzt laufen wohl aber alle Events weiter auf der Map. Da müsstest du evtl. ne Abfrage einbauen, ob Pause ist oder nicht - und nur, wenn nicht, diese laufen lassen.
Ich weiß, ist doof, aber ich wüsst aus dem Kopf gerade keinen anderen Weg, wie man solch einen Fall abdecken könnte
Ähnliche Themen
-
Skript-Anfragen »-
RPGXP - Bilder vor dem Spiel/Intro vor dem Spiel
(23. Dezember 2012, 17:41)
-
Skript-Anfragen »-
Loading Skript oder so
(17. Dezember 2012, 13:17)
-
Maker-Talk »-
Spiel während einer Messagebox anhalten
(16. Januar 2012, 12:01)
-
Maker-Talk »-
Mein Game lagt-.-
(2. Dezember 2010, 22:29)
-
Events & Technik »-
Sehr große Lightmaps
(28. Dezember 2008, 22:06)


