******************************************************
******** Power Patch Standard-Befehlsreferenz ********
******************************************************


--------------------------------------------------
-=-=-=-=- Automatisch gesetzte Variablen -=-=-=-=-
--------------------------------------------------

TestPlay:boolean
================

Wenn "true", dann ist das Spiel ein Test Play, wenn "false" ein normales.


GamePath:string
===============

Pfad des Spielordners.



--------------------------------------
-=-=-=-=- Interne Funktionen -=-=-=-=-
--------------------------------------

value1:number, value2:number, ... = GetVar(var1:number, var2:number, ...)
=========================================================================

Gibt den Wert einer oder mehrerer RPG Maker-Variablen zurck.

varXXXX = Nummer der Variable 
valueXXXX = Wert der Variable

z.B.:

meinevariable = GetVar(25)

oder

erstevari, zweitevari, drittevari = GetVar(51, 52, 58)


SetVar(var:number, value:number)
================================

Setzt eine RPG Maker-Variable auf einen Wert.

var = Nummer der Variable
value = Wert der Variable

z.B.:

x = GetVar(24)
SetVar(25, x / 2) -- Die Hlfte von Variable 24 in Variable 25 speichern


ExitGame()
==========

Beendet das gesamte Spiel sofort.


result:number = MsgBox(text:string, title:string, kind:number)
==============================================================

Zeigt eine MessageBox an und gibt einen Wert zurck, der kennzeichnet, welchen Button der Benutzer gewhlt hat.

text = Nachrichtentext
title = Titel der Messagebox
kind = Typ der Messagebox. Hier werden Icon und Buttons festgelegt. Dieser Wert ist eine Kombination aus Werten, mit "or" verknpft.  Genaueres siehe Skript "msgboxc.lua".
result = Button, den der Benutzer gedrckt hat. Genaueres siehe Skript "msgboxc.lua".

Title und kind knnen weggelassen werden, in diesem Fall wird "Power Patch" bzw. kein Icon und nur "OK" verwendet.

z.B.:

weitermachen = MsgBox("Fortfahren?", "Frage", MB_YESNO or MB_ICONQUESTION)


UpdateTime()
============

Aktualisiert die Variablen CurrentHour, CurrentMinute, CurrentSecond, CurrentYear, CurrentMonth, CurrentDay und CurrentWeekday, in denen die aktuelle Uhrzeit und das aktuelle Datum gespeichert werden.

z.B.:

UpdateTime()
if CurrentMonth == 12 and CurrentDay == 24 then
 MsgBox("Frohe Weihnachten!", "Glckwunsch")
end


SwitchFullscreen()
==================

Wechselt zwischen Fenster- und Vollbildmodus.


width:number, height:number = ScreenResolution()
================================================

Gibt die Bildschirmauflsung zurck.


SimulateKeyDown(key:number)
===========================

Simuliert das Drcken einer Taste. Das virtuelle Drcken hlt an, bis ein SimulateKeyUp erfolgt oder die Taste in Wirklichkeit gedrckt und wieder losgelassen wird.

key = Virtual Key Code der zu simulierenden Taste. Die mglichen Werte sind im Skript "keys.lua" ersichtlich.


SimulateKeyUp(key:number)
=========================

Simuliert das Loslassen einer Taste.

key = Virtual Key Code der zu simulierenden Taste. Die mglichen Werte sind im Skript "keys.lua" ersichtlich.

z.B.:

-- Debugbildschirm ffnen
SimulateKeyDown(VK_F9)
SimulateKeyUp(VK_F9)


Wait(duration:number)
=====================

Wartet die angegebene Zeit lang.

duration = Zu wartende Zeit in Millisekunden


RunScript(script:string)
========================

Fhrt ein Skript aus. Kann auch als Ersatz fr eine "#include"-Anweisung verwendet werden (wie es z.B. in "init.lua" der Fall ist).

script = Der Dateiname des Skripts. Das Skript muss sich in "<Spielordner>\Script" befinden


pressed:boolean = KeyPressed(key:number)
========================================

Stellt fest, ob eine Taste gedrckt wurde.

key = Virutal Key der zu berprfenden Taste. Die mglichen Werte sind im Skript "keys.lua" ersichtlich.
pressed = Ist "true", wenn die Taste gedrckt wurde, sonst "false".

z.B.:

if KeyPressed(VK_Q) == true then
 MsgBox("Du hast Q gedrckt!")
end


WaitUntilActive()
=================

Wartet, bis das Spielfenster den Fokus erhlt-


MoveGameWindow(x:number, y:number)
==================================

Bewegt das Spielfenster an die angegebene Position. Funktioniert nur im Vollbildmodus.

x = Horizontale Position
y = Vertikale Position


ResizeGameWindow(width:number, height:number)
=============================================

ndert die Gre des Spielfensters auf die angegebenen Werte. Funktioniert nur im Vollbildmodus.

width = Breite
height = Hhe


MinimizeGameWindow()
====================

Minimiert das Spiel.


exitcode:number = ExecProgram(filename:string, parameters:string)
=================================================================

Fhrt ein Programm aus wartet bis es fertig ist.

file = Dateiname des Programms (es knnen auch Programme, die eine andere Endung haben als .exe, ausgefhrt werden)
parameters = Dem Programm zu bergebende Parameter (kann weggelassen werden)
exitcode = Der Rckgabewert des Programms

z.B.:

ExecProgram(GamePath .. "\coolesprog.exe")


ShellCommand(command:string)
============================

Leitet ein Kommando an die Shell weiter.

command = Kommando

z.B.:

ShellCommand("copy c:\a.txt d:\")


result:number = FileExisting(filename:string)
=============================================

Prft, ob eine Datei existiert, und gibt in diesem Fall "true" zurck, sonst "false".


CopyFile(source:string, destination:string)
===========================================

Kopiert eine Datei.

source = Quelle
destination = Ziel

z.B.:

CopyFile("c:\a.txt", "d:\")


RenameFile(file:string, newname:string)
=======================================

Benennt eine Datei um.

file = Alter Dateiname
newname = Neuer Dateiname+


EraseFile(file:string)
======================

Lscht eine Datei.

file = Zu lschende Datei


FileDateTime(file:string)
=========================

Schreibt Datum/Zeit einer Datei in die Variablen FileHour, FileMinute, FileSecond, FileYear, FileMonth, FileDay, FileWeekday.

file = Datei

z.B.:

FileDateTime("test.txt")
UpdateTime()
if CurrentYear == FileYear then
 MsgBox("Die Datei wurde in diesem Jahr das letzte Mal bearbeitet.")
end


SaveVars(file:string, first:number, last:number)
================================================

Speichert einen Variablenblock in einer Datei.

file = Datei, in der die Variablen gespeichert werden sollen
first = Erste zu speichernde Variable
last = Letzte zu speichernde Variable

Die Dateigre betrgt (last - first + 1) * 4 Bytes.


LoadVars(file:string, first:number, last:number)
================================================

Ldt einen Variablenblock aus einer Datei.

file = Datei, aus der die Variablen geladen werden sollen
first = Erste zu ladende Variable
last = Letzte zu ladende Variable

Versucht man, mehr zu laden, als in der Datei vorhanden ist, werden die restlichen Variablen auf 0 gesetzt.

z.B.:

SetVar(50, 1) -- Die Variablen 50 bis 55 auf 1, 3, 5, 7, 9 und 11 setzen
SetVar(51, 3)
SetVar(52, 5)
SetVar(53, 7)
SetVar(54, 9)
SetVar(55, 11)
SaveVars("test.sav", 50, 55) -- Die Variablen 50 bis 55 in eine Datei speichern
LoadVars("test.sav", 60, 62) -- Die ersten drei gespeichtern Variablen in die Variablen 60 bis 62 laden
-- Jetzt steht in Var. 60 die Zahl 1, in Var. 61 die Zahl 3 und in Var. 62 die Zahl 5.


x:number, y:number = GetMouse()
===============================

Fragt die Mausposition ab. Die Maustasten knnen mit KeyPressed(VK_LBUTTON), KeyPressed(VK_MBUTTON) und KeyPressed(VK_RBUTTON) abgefragt werden.

x = Die horizontale Position der Maus
y = Die vertikale Position der Maus


loaded:boolean = PlugInLoaded(name:string)
==========================================

Stellt fest, ob das angegebene Plug-In geladen ist.

name = Dateiname des Plug-Ins
loaded = "true", wenn das Plug-In geladen ist, sonst "false"

z.B.:

if PlugInLoaded("FooBarPlugIn.dll") == true then
 FooBar()
end



--------------------------------------------------
-=-=-=-=- In Lua geschriebene Funktionen -=-=-=-=-
--------------------------------------------------

Ready()
=======

Setzt die Variable 11 auf den Wert 1, um dem Maker mitzuteilen, dass der Patch bereit ist.


Busy()
======

Setzt die Variable 11 auf den Wert 0, um dem Maker mitzuteilen, dass der Patch nicht bereit ist.


msg:number = GetMsg()
=====================

Liest den Befehl aus der Variable 10 und setzt sie anschlieend auf 0.


SimulateStrokeKey(key:number)
=============================

Vereint SimulateKeyDown und SimulateKeyUp mit einem Wait dazwischen. Nachdem dabei aber, damit der Maker die Eingabe annehmen kann, der Patch kurz auf Ready gesetzt wird, knnen sofort folgende Befehle vom Maker verloren gehen!

