Kleine Scripting Beispiele

Von Zeit zu Zeit werde ich versuchen ein paar kleine scripting Beispiele zu präsentieren. Da ich ein Beginner mit dem REDkit scripting bin, werden alle Beispiele von den existierenden REDkit scripts abgeleitet sein.
Jedes Beispiel wird getestet/debugged mit dem Script Studio.
(Bedenke das, wenn ein Beispiel bei dir nicht funktioniert.



Wie sich ein Beispiel testen lässt


Zum Testen kannst du die folgende Methode wählen ( wenn nichts anderes in der Beschreibung des Beispiels steht):
Kopiere den Beispiel Code BEVOR class CGuiFastMenu nach guifastmenu.ws.
Kopiere die Funktion call von dem Beispiel in event OnOpenPanel().
Es ist MySpawn() für das erste Beispiel.

Drücke das Symbol "Connect to running game" und drücke F7 (Scripts neu laden).
Dann in REDkit (selbstverständlich mit einem geladenen Level) drücke links CTRL im Spiel.
Das Script sollte durchgeführt werden.

Wenn es nicht funktioniert setze einen Haltepunkt (breakpoint) (BP) on MySpawn(). Nach dem drücken von links CTRL im Spiel, das Spiel sollte einfriere; gemeint ist: es ist am Haltepunkt angekommen.
Fahre mit F5 im Script Studio vor.

Einen Nekker an einer gegeben Position x,y,z Spawnen


Der Nekker wird in der Nähe von Einar Gausel's Bett Spawnen.
Um deine eigene Position zu erhalten schreibe die Linie
pos = thePlayer.GetWorldPosition();
after MySpawn() ;

(Du brauchst auch var pos : Vector; um zum Event OnOpenPanel() kopiert zu werden.)
Nach dem der oben erwähnte BP getroffen ist überprüfe die x,y,z Werte der Positionen in dem Locals Tab und copiere sie zu
entry function SpawnNekker()

Spawning a nekker
// modified by shak from temp.ws
class NekkerSpawner extends CStateMachine
{
}
state Spawning in NekkerSpawner
{
var tmpl1 : CEntityTemplate;
var pos : Vector;
var rot : EulerAngles;

entry function SpawnNekker()
// Du kannst spawnNekker() nicht direkt aufrufen weil die latente Funktion 'LoadResource'
// Nur vom inneren des Zustandseintages oder der latenten Funktion
{
//pos.X = 236.0f; pos.Y = 204.0f; pos.Z = 2.5f;//cellar pub Flotsam
pos.X = 253.0f; pos.Y = 247.0f; pos.Z = 9.0f;// near Einar Gausel's bed
rot.Yaw = 0.0f; rot.Pitch = 0.0; rot.Roll = 0.0;
tmpl1 = (CEntityTemplate)LoadResource("nekker_strong");
theGame.CreateEntity(tmpl1, pos, rot);
}
}
exec function MySpawn()
{
var spawner : NekkerSpawner;
spawner = new NekkerSpawner in theGame;

spawner.SpawnNekker();
}


Beispiel 2

...

Beispiel 3

...