Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nützliche XP Verbesserungen



chrisblue
05.12.2008, 17:24
Ich melde mich hiermit offiziell zurück und hoffe mit Freuden empfangen zu werden.:p

Natürlich gleich mit jeder Menger Tipps für den RPG Maker XP.
4, Sehr nützliche kleine Scripts die einige XP Schwächen effektiv ausmerzen.




"Kein Debug Modus mehr"



Info: Entfernt den Debug Modus, so das keiner mit einer gehackten .exe die Variablen ändern kann (Viele Leute haben solche)

Anleitung:

1. Öffne den Script Editor suche nach "Scene_Debug". Lösche das Script.

2. Gehe zu "Scene_Map" und such Zeile 133 (In der ofiziellen englischen Version mit RGSS102E.dll). Lösche folgenden Code:



# If debug mode is ON and F9 key was pressed
if $DEBUG and Input.press?(Input::F9)
# Set debug calling flag
$game_temp.debug_calling = true
end3. Speichere das Projekt ab und mache einen Test, du solltest nun den Debug Modus nicht mehr öffnen können.



"Automatischer Vollbildmodus"



Info: Beim Spielstart wird nun automatisch in den Vollbildmodus gegangen (Sonst müsstest du ALT + ENTER drücken).

Anleitung:

1. Gehe in den Script Editor und öffne das Script "Main".

2. Füge folgenden Code unter "Begin" und über "# Prepare for transition" ein:



$showm = Win32API.new 'user32',
'keybd_event', %w(l l l l), ''
$showm.call(18,0,0,0)
$showm.call(13,0,0,0)
$showm.call(13,0,2,0)
$showm.call(18,0,2,0)
$full = 13. Speichere das Projekt, nun sollte das Spiel automatisch in den Vollbildmodus übergehen.




"Hohe Priorität"


Info: Setzt die Priorität des Spiels auf Hoch (Macht dafür während man spielt andere Programme langsamer. Im Test waren Spiele die ohne Script nur 10fps hatten, mit Script lagen die fps immer (!) bei 40.)



Anleitung:

1. Gehe in den Script Editor und öffne das Script "Main".

2. Füge folgenden Code unter "Begin" und
über "# Prepare for transition" ein:


@SetPriorityClass = Win32API.new('kernel32', 'SetPriorityClass',
['p', 'i'], 'i')
@SetPriorityClass.call(-1, 0x00000080)3. Speichere das Projekt ab, nun sollte das Spiel deutlich rasanter laufen.



"Sieges ME nach Kampf stoppen"



Info: Sollte eigentlich klar sein.^^


Anleitung:

1. Gehe in den Script Editor und öffne das Script "Scene_Map".

2. Suche "def main" (Zeile 12) und füge folgendes Script ein:



# Stopt die Sieges ME
Audio.me_stop3. Speichere nun das Script ab.

Kelven
05.12.2008, 17:40
Ehrlich gesagt sind das keine großartigen Verbesserungen, manchmal sogar das Gegenteil.

1. Muss der Spieler selber entscheiden ob er cheatet oder nicht. Außerdem habe ich als Entwickler nicht ständig Lust die Zeile wieder einzufügen, wenn ich doch noch mal testen muss.

2. Altbekannt und nervig, auch diese Entscheidung obliegt dem Spieler.

3. Siehe 1 und 2. Es ist schon ziemlich anmaßend ohne Wissen des Spielers an den Prozessen herumzuspielen.

4. Werden MEs nicht sowieso automatisch beendet? Und was ist, wenn auf der Map selber ein ME läuft? Wenn dann müsste man den ME in Scene_Battle beenden.

chrisblue
05.12.2008, 17:56
1. Stimmt, aber es gibt auch viele illegale Versionen womit die Game.exe automatisch gehackt wird, bzw von der RGSS.dll auf den Debug zugegriffen wird.

2. Klar, aber das obliegt auch den Entwickler, ich habe ja nicht nur irgendeinen Code gepostet sondern schließlich auch Beschreibungen.

3. Kommernzielle Spiele haben alle hohe Priorität, warum dann nicht auch Makerspiele? Es haben schließlich auch viele Leute das Problem das der RPG Maker XP trotz gutem System langsam läuft.

4. Beschäftige dich lieber mal mehr mit der def main, in dem Fall kann man ME´s noch immer Problemlos auf der Map abspielen, nur wenn die Map gewechselt wird oder ein Screen geschlossen wird der nicht mit Spriteset_map zusammenhängt wird die ME beendet.

Zum Schluss noch:

Es obliegt immer noch dem Entwickler, ich denke für den ein oder anderen ist sicher etwas nützliches dabei.;)

Ascare
05.12.2008, 20:18
Zum Vollbild:
Das gepostete ist nicht richtig, führt zum Absturz wegen dem "

Richtig wäre auch eine Bedingung für das $full einzubauen, sonst hat es ja keinen Sinn:


unless $full
$showm = Win32API.new 'user32', 'keybd_event', %w(l l l l), ''
$showm.call(18,0,0,0)
$showm.call(13,0,0,0)
$showm.call(13,0,2,0)
$showm.call(18,0,2,0)
$full = 1
end


und das am Besten über begin, sonst wird das ja unnötig nochmal aufgerufen wenn man F12 drückt.

und btw: viel einfacher wäre doch den Debug Modus einfach abzuschalten mit
$DEBUG = false anstatt da irgendwas rumzulöschen.

schmoggi
05.12.2008, 20:45
Bzgl. Hohe Priorität:

Das kann ich so nicht ganz bestätigen. Das setzen der Priorität der Game.exe von Normal auf Hoch hat nicht immer, oder gar nur selten den Effekt, dass das Game flotter läuft. Das ist von User zu User immer unterschiedlich. Bei dem bezweckt es nix, bei dem läuft es gar schlechter oder eben bei nem anderen besser.

Soweit ich das mitbekommen habe, hat es nur bei den wenigsten Verbesserungen gebracht. Jedoch baue ich immer diese Möglichkeit in mein Projekt ein ... eben für die Leute mit schwächeren Rechnern, die Probleme haben könnten und denen dadurch ein wenig geholfen werden kann. Wo wir jetzt bei der Realisierung wären.

Das gänze über die Skripts laufen zu lassen ist doof. Man erstellt einfach eine Verknüpfung im Projektordner und fügt als pfad bzw. ziel das hier ein:

C:\WINDOWS\system32\cmd.exe /c start /high Game.exe

Startet man das Spiel durch diese Verknüpfung, ist die Priorität auf hoch gesetzt.


Es haben schließlich auch viele Leute das Problem das der RPG Maker XP trotz gutem System langsam läuft.

Dann machen eben diese Leute was falsch (zuviele Hintergrundprogramme, zugemüllt) oder eben der Ersteller selber durch nicht effektives Makern.

greetz

MagicMaker
05.12.2008, 23:04
1. Schwachsinn und nur was für extreme Spielverderber, dito dem Spieler
überlassen ob er cheatet. Debug ist auch nützlich um Bugs zu umgehen, mal
nebenbei erwähnt.

2. Nicht gern gesehen, auch nicht für jeden Bildschirm verträglich. Auf
Nervskala sehr weit oben. Wer das in sein Game einbaut und ich spiel das,
dem hau ich eine rein.

3. Das verträgt nicht jeder PC, ein doppelkerniger oder mehr kann gut damit
arbeiten aber sonst... nein totaler Unsinn. Bin mir auch nicht sicher, aber
könnte passieren dass dann Firewalls Alarm schlagen wenn ein unbekanntes
Programm (Game.exe mit Vertrauensstufe "?") an den Prozessprioritäten
rumfummeln will. Da kann ja gleich einer mit seinem Spiel kommen und die
Priorität auf Echtzeit stellen, üblicherweise killt das den PC ganz bis man ihn
ausmacht / kalt-/warm-neustartet.

4. Der einzige Pluspunkt in diesem Thread. Denn das ist manchmal echt
nervig, besonders wenn die ME etwas lange dauert.

schmoggi
06.12.2008, 17:56
2. Nicht gern gesehen, auch nicht für jeden Bildschirm verträglich. Auf
Nervskala sehr weit oben. Wer das in sein Game einbaut und ich spiel das,
dem hau ich eine rein.


:confused:

Komisch, so weit ich weiß haben 2k/2k3 Games automatisch einen Full Screen .. wieso soll das beim XP jetzt nervig sein? Ohnehin kommt die ganze Atmosphäre in Full Screen besser zur Geltung.

Wirst mir wohl eine auf die Fresse hauen müssen .... ;).

greetz

Skorp
08.12.2008, 19:43
:confused:

Komisch, so weit ich weiß haben 2k/2k3 Games automatisch einen Full Screen .. wieso soll das beim XP jetzt nervig sein? Ohnehin kommt die ganze Atmosphäre in Full Screen besser zur Geltung.

Wirst mir wohl eine auf die Fresse hauen müssen .... ;).

greetz

Großes DITO !
Man kann das Game ja selbst in Fenstermodus zurückstellen... Da ist es doch egal ob das Spiel im Vollbild startet?

Aldinsys
11.12.2008, 17:02
Komisch, dass niemand das SDK erwähnt. Das war ja damals eine gute Idee gewesen, um die Skripte zueinander kompatibel zu halten. Ich frage mich, was daraus geworden ist.

sorata08
11.12.2008, 17:43
Is in der englischen Comm mehr verwendet.
Problem hierbei is eben, dass nicht alle Scripter es als Grundlage verwendet haben (besonders in der deutschsprachigen Comm). Das führte trotz cooler Scripts dann oft zu Kompatiblitätsproblemen.
An sich ist es aber eine gute Sache. Nur is eben wumpe, wenn sich nicht alle Scripter an diese "Grundlage" halten...

Ascare
12.12.2008, 16:44
Das SDK benutze ich z.B. auch nicht weil es mir glaube ich zu vollgestopft war mit Kram den ich nicht brauch und zweitens eher die wenigsten Scripter nutzen. Also die Meisten Scripte die ich finde sind SDK-inkompatibel.