Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : XP Skripte



Mr. Becknacktoman
04.09.2006, 23:38
Ja ich brauch ein paar Skripte zB eins, wo man im Spiel die Speciherstände laden kann.
Ja und ich wollte noch eins, aber das fällt mir jetzt nicht ein.

Housemaster
05.09.2006, 01:07
www.dubealex.com
oder
www.rpgxp.org
da gibts nen Haufen
Obs da auch das gibt dass du brauchst weiß ich jetzt nich...

Paladin
05.09.2006, 14:57
Also zumindest im Spiel an die Speicherstände heranzukommen ist nicht allzu schwierig zu machen. Habe mich mal daran gesetzt und keine 10 Minuten dafür gebraucht :D

Follow this:

Script Editor öffnen und "Scene_Menu" aufmachen.

Suche dort:


s5 = "Save"
s6 = "Exit"

Und ersetze gegen:


s5 = "Save"
s6 = "Load"
s7 = "Exit"

Anstatt Save, Load und Exit kannst du natürlich eingeben was du willst. Das beeinflusst nur, was im Menü angezeigt wird.

Untendrunter befindet sich die Zeile:


@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])

Hier fügst du am Ende noch ein s7 ein. Das sieht dann so aus:


@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])


Anschließend suchst du hiernach:


if $game_system.save_disabled
# セーブを無効にする
@command_window.disable_item(4)
end

Darunter fügst du ein:

if $game_switches[x] == "true"
@command_window.disable_item(5)
end

Anstatt x gibst du hier die Nummer eines Switches ein mit welchem du steuern willst ob man Speicherstände laden kann oder nicht. Wenn der Switch auf ON steht, kann man NICHT laden, ist er auf OFF geht es.

Wenn du es lieber andersherum hättest musst du "true" gegen "false" austauschen.

Danach suchst du dieses:


when 4 # セーブ
# セーブ禁止の場合
if $game_system.save_disabled
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# セーブ画面に切り替え
$scene = Scene_Save.new

und fügst darunter ein:


when 5 # ゲーム終了
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ゲーム終了画面に切り替え
if $game_switches[x] == "true"
$game_system.se_play($data_system.buzzer_se)
return
else
$ingame = "true"
$scene = Scene_Load.new
end

Hier ersetzt du wieder x gegen die Nummer deines Switches. Falls du entschieden hast, dass laden nur möglich sein soll, wenn der Switch an ist musst du natürlich auch hier "true" gegen "false" ersetzen.

Unter dem zuletzt eingefügten befindet sich dieses:


when 5 # ゲーム終了
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ゲーム終了画面に切り替え
$scene = Scene_End.new
end

Die 5 hinter dem "when" gilt es gegen eine 6 zu ersetzen:


when 6 # ゲーム終了
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ゲーム終了画面に切り替え
$scene = Scene_End.new
end


Damit wären die Änderungen in "Scene_Menu" abgeschlossen.


Wechsle zu "Scene_File"

Hier suchst du nach:


if Input.trigger?(Input::B)
on_cancel
return
end
end

welches du ersetzt gegen:


if Input.trigger?(Input::B)
if $ingame == "true"
$ingame = "false"
$scene = Scene_Menu.new
else
# メソッド on_cancel (継承先で定義) を呼ぶ
on_cancel
return
end
end

Habe es ausprobiert und klappt bisher fehlerlos. Da ich allerdings ein Beispielgame dafür erstellt habe (mein eigenes Projekt hat mittlerweile einen ziemlich kranken Code ;) ) kann ich nicht dafür garantieren, dass es keine Probleme mit sonstigen Hacks gibt.


Ach ja, da wir im Menü einen zusätzlichen Menüpunkt eingefügt haben ändert sich natürlich auch die Optik ein wenig. So befindet sich der Punkt "Exit" beispielsweise im Fenster welches die Gesamtspielzeit anzeigt :)

Die Position der Fenster kannst du in "Scene_Menu" leicht verändern, indem du die entsprechenden Werte unter window.x bzw. window.y für jedes Fenster so änderst wie du es haben willst.



Solltest du Credits setzen wollen (ich bestehe nicht darauf, würde es aber begrüßen) reicht mein Nick im übrigen völlig aus ;)


(Wetten dieses Script gibt es schon tausendemal?)

Ascare
05.09.2006, 18:41
Oder einfach bei Script... folgendes eingeben:

$scene = Scene_Load.new
kommt aber drauf an was du genau machen möchtest. Der Befehl ruft einfach nur das Lademenü auf, während die Modifikation von Paladin sich in das gesamte Menü usw. integriert.

Paladin
06.09.2006, 13:39
Oder einfach bei Script... folgendes eingeben:

$scene = Scene_Load.new


Das reicht so nicht ganz.

Wenn man nur dieses eingibt kommt man zwar tatsächlich zum Ladebildschirm, wenn man dort jedoch Esc drückt kommt man zum Titelbildschirm und nicht zurück zum Spiel.

Man müsste zumindest einen Switch setzen und diesen dann im Ladebildschirm überprüfen lassen, was bei meinem obigen Script ja auch passiert, damit man eben wieder ins Spiel zurückkommt ;)