Scripte:Spawn
Aus Clonk Wiki
| | Dieser Artikel bedarf einer Überarbeitung: Objekt-Spawn kann eleganter gelöst werden, diese Methode ist veraltet. --Nachtschatten 13:45, 28. Apr. 2010 (UTC) Eventuell findest du weitere Argumente auf der Diskussionsseite. |
Inhaltsverzeichnis |
Allgemein
Spawnt Objekte irgendwo auf der Landschaft.
| Spawn | |
|---|---|
| Kategorie: | Hintergrundobjekt |
| Autor: | N4ppeL |
| Behandelt: | {{{Behandelt}}} |
| Empfohlenes Vorwissen: | {{{Vorwissen}}} |
| Benötigt Objektpacks: | {{{Packs}}} |
| Stufe: | |
Script
Zunächst erstellen wir ein neues Objekt. Die Grafik ist egal, um Speicher zu sparen verkleinern wir sie einfach auf 1x1 pixel.
In der DefCore ändern wir den Wert "Category" auf 65, damit das Objekt auch schön im Hintergrund bleibt und einfach nur spawnt, und schreiben zusätzlich:
Timer=500
TimerCall=Check
Damit alle 500 Frames die Funktion "Check" aufgerufen wird.
protected
func
Check()
//Wird alle 500 Frames aufgerufen
{
var
obj
=
RandomID();
var
pWipf
=
PlaceAnimal(WIPF);
//Platziert einen Wipf irgendwo in der Landschaft
CreateObject(obj,
GetX(pWipf),
GetY(pWipf)+10);
RemoveObject(pWipf);
//löscht den Wipf wieder
return(1);
//Gibt 1, bzw "true" zurück
}
protected
func
RandomID()
{
var
rID
=
[CRYS,FLNT,SFLN,PFIR,PWIP,PHEA,PMAN];
return
(rID[Random(7)]);
}
Erläuterung
var
obj
=
RandomID();
Deklariert eine Variable namens "obj", die innerhalb des Funktionsaufrufes gültig ist, und weist dieser den Wert zu, den RandomID() zurück gibt. RandomID() sehen wir uns weiter unten genauer an.
CreateObject(obj,
GetX(pWipf),
GetY(pWipf)+10);
Erstellt den Objekttyp, der bei RandomID() ausgewählt wurde an der Position, an der der Wipf steht.
protected
func
RandomID()
Wird aufgerufen, wenn obj einen Wert zugewiesen wird.
var
rID
=
[CRYS,FLNT,SFLN,PFIR,PWIP,PHEA,PMAN];
Erstellt ein array mit einigen IDs. Ich habe hier einige gewählt, die man in einem Magus-melee brauchen kann. rID[0] hat hier den Wert bzw. die ID "CRYS", rID[1] den Wert "FLNT" und rID[5] den Wert "PHEA" gespeichert.
return(rID[Random(7)]);
Gibt eine der im Array gespeicherten IDs zurück.
Random(7)
wählt eine Zahl von 0 bis 6 aus. Der Zahl entsprechend wird eben dieser Arrayeintrag zurückgegeben und oben in obj gespeichert.
Ergebnis
Magie! Es werden aus dem Nichts Objekte hergezaubert! Und dies auch noch mitten in der Landschaft :O!
PS: Damits funktioniert einfach das Objekt im Szenarioscript erstellen.
| Scripte des Scripte-Projekts | |
| Bonbon · Context-Eintrag · EliminateTeam · Flint:Partikelschleuder · Hüpfbonbon · TeamMessage | |
| Flint:HitCounter · Flint:Partikelkreis · Flint:Partikelschleuder2 · Is-Funktionen · Menü:Beim Start der Runde · Normaler Flint · Partikel-Linie in den Himmel · Rakete · Random · Relaunch · Return · Sichtweite · Spawn · Startposition | |
| Clantag · Gift-Effekt · Unverwundbarkeit · Scoreboard · Zufallsgespräch | |
| Lebensbalken · Nachrichten bei Sichtkontakt · Object2Overlay · SHA1 | |
| Dieser Artikel wurde gemäß der Scriptrichtlinien veröffentlicht. |
