PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cheating Sperre (LUA-Script für Cherry's Power Patch)



MagicMaker
18.11.2007, 14:00
Ich hab vorhin aus langer weile ein Script für den Power Patch geschrieben, das dem Spieler bei Benutzung der Debug-Tasten "die rote Karte zeigt". Ihr könnts gern frei benutzen, damit eure Spieler nicht schummeln können.

1. Öffnet mainloop.lua

2. Sucht:

elseif msg == 13 then

if FileExisting("test.sav") == false then -- Dasselbe wie oben
SetVar(36, 0)
else
SetVar(36, 1)
EraseFile("test.sav") -- Datei löschen
end

3. Fügt drunter ein:

elseif msg == 14 then

function CheatAlarm()
MsgBox(the_cheat, "Taste")
MsgBox("Du darfst weder F9, F10, STRG oder Umschalt drücken", "Du alter Cheater!") -- Gibt dem Spieler die rote Karte
ExitGame()
end

if TestPlay then -- Überprüft jetzt nach TestPlay und den 4 Debug-Tasten
if KeyPressed(VK_F9) then -- Debugmenü
the_cheat = "F9 gedrückt"
CheatAlarm()
elseif KeyPressed(VK_F10) then -- Parallelprozess-Brecher
the_cheat = "F10 gedrückt"
CheatAlarm()
elseif KeyPressed(VK_CONTROL) then -- Geistmodus
the_cheat = "STRG gedrückt"
CheatAlarm()
elseif KeyPressed(VK_SHIFT) then -- Messagebeschleuniger
the_cheat = "Umschalt gedrückt"
CheatAlarm()
end
end

end

4. Speichert

5. Erstellt im Maker ein neues Event mit "Parallel Process".

6. Inhalt des Events:


Variable ändern: [0009:Power Patch Msg 1] = 14
Event rufen: Power Patch Msg

7. Speichert das Event mit OK, speichert die Map, dann startet und versucht mal zu cheaten^^.

Ab jetzt wird bei STRG, SHIFT, F9 und F10 immer zuerst gemeldet, welche gedrückt wurde und dann die rote Karte gezeigt. -> Spiel schliessen.

Getestet: Ja
Ergebnis: 100% funktionsfähig
Bugs: 0 gefundene
Einzige Macke auf schwachen PCs: verlangsamt leicht das Spiel

Geplante Erweiterung:
Verwarnungssystem mit gelber Karte, damit der Cheater beim ersten mal noch nicht rausfliegt.

Nathrael
18.11.2007, 15:03
Naja, ganz nett, aber meiner Meinung nach ein wenig sinnlos. Wenn ein Spieler cheaten will und somit eventuell sich selbst den Spaß verdirbt, ist das sein Problem, und nicht das des Entwicklers. Außerdem kann man die Spiele im Maker sowieso umeditieren und die Anti-Debug-Komponente entfernen, wenn man wirklich cheaten will.

treeghost
18.11.2007, 15:35
Ich kenn etwas einfacheres:
Molebox.Finde ich persöhnlich am besten :A

Davy Jones
18.11.2007, 17:17
Wobei Molebox meines Wissens nach Probleme mit dem Screentone macht.

Cherry
18.11.2007, 17:31
man braucht die exe von Molebox nur mit "RPG_RT.EXE TestPlay ShowTitle Window" starten und man ist im Testmodus... :rolleyes:
wie schon im Quartier gesagt:
Dieses Skript ist vollkommener Schwachsinn. Bitte NICHT benutzen! Ich werde dann mal genauere Gründe für diese Behauptung so wie eine ordentliche Version reineditieren. ich meine, alleine eine Funktion andauernd neu zu definieren ist schonmal riesiger Murks.
mfG Cherry

Kelven
18.11.2007, 18:38
Das Script ist schon alleine deswegen doof, weil ein Entwickler den Spieler nicht vom Cheaten abhalten sollte. Man cheatet nur, wenn man cheaten will und wenn das Spiel es dann nicht erlaubt, wird's eben gelöscht.

Isgar
18.11.2007, 19:11
Und was wäre wenn man ausversehen eine der Tasten drückt?

Cherry
18.11.2007, 21:40
so, hier mal eine vernünftige Version:

in die "functions.lua":

function CheatAlarm(cheat)
MsgBox("Du hast " .. cheat .. " gedrückt! Das ist nicht erlaubt!", "Anti-Cheat-Skript", MB_OK or MB_ICONWARNING)
ExitGame()
end

in die "mainloop.lua", direkt über dem "Ready()":

if KeyPressed(VK_F9) then
CheatAlarm("F9")
elseif KeyPressed(VK_F10) then
CheatAlarm("F10")
elseif KeyPressed(VK_CTRL) then
CheatAlarm("STRG")
elseif KeyPressed(VK_SHIFT) then
CheatAlarm("UMSCHALT")
end

mfG Cherry

Pantoffelninja
18.11.2007, 23:52
Es ist fragwürdig, inwieweit das Sinn macht, wenn man direkt im Maker selbst Veränderungen vornimmt oder man per Hyper-Patcher die Anti-Cheat-Sperre einfach löscht (zumal der Code hier genau dokumentiert worden ist).

Zumal die Sperre mit dem RM2k3 nicht 100% kompatibel ist, wenn man im Spiel SHIFT einer Funktion zugeweist hat. (Man kann in Lua natürlich die SHIFT-Sparte löschen, dadurch wird SHIFT als "Cheattaste" allerdings wieder verfügbar)

Zudem kann ein Cheat-Modus bei der Spieleveröffentlichung den Release beschleunigen. Allerdings ist dies eher ein schwaches Argument (aber immer noch ein Argument, was man nicht übersehen sollte). Man kann ja bestimmt auch sagen, dass der Hinweis auf den Cheat in der Release-Version gelöscht werden sollte, dann erfährt man es höchstens, wenn man im Maker selbst genauer guckt.

Abgesehen davon dito zu Nathrael, Kelven und Isgar. Cheaten soll ein Spieler-Problem bleiben.

Cherry
19.11.2007, 06:29
das ist auch meine Meinung. ich wollte nur den Code korrigieren. Btw kann der Hyper Patcher den Debugcode doch gar nicht löschen...
mfG Cherry

Maliko
19.11.2007, 09:24
Ich halte von dem Ding auch nicht all zu viel, weil wenn der Spieler unbedingt Cheaten will, soll er es doch tun. Er verdirbt sich da ja selber den Spielspaß. Deshalb finde ich den Patch auch schwachsinnig, besonders da man ihn wie oben auch schon geschrieben ohne Probleme wieder rauslöschen kann, da der sog. Cheatmode eh nur funktioniert, wenn man das Spiel im Maker öffnet. Wenn man schon nen Cheatblocker haben will, dann sollte man einen so schreiben das man im Maker keinen Zugriff auf den Code hat und damit auch keine Möglichkeit die Sperre wieder rauszulöschen.

Cherry
19.11.2007, 13:25
um hier gleich mal was richtigzustellen: man braucht den Maker NICHT, um ein TestPlay zu machen. Man muss die RPG_RT.exe nur mit den Parametern TestPlay, ShowTitle oder HideTitle und Window oder FullScreen zu starten.
mfG Cherry