Aufgrund einer akuten Spamwelle ist das Editieren für nicht angemeldete Benutzer zur Zeit deaktiviert. Wir bitten um Verständnis.

Scripte:Startposition

Aus Clonk Wiki

Wechseln zu: Navigation, Suche

Allgemein

Hier wird beschrieben, wie man die Startpositionen von Spieler in einem Szenarioscript festlegt.

  Startposition
Kategorie: Szenario
Autor: Scripte-Projekt
Behandelt: {{{Behandelt}}}
Empfohlenes Vorwissen: {{{Vorwissen}}}
Benötigt Objektpacks: {{{Packs}}}
Stufe: Fortgeschrittene Fortgeschrittene






Code

C4Script
global
 
func
 
ReplaceCrew(int
 
iCrew,int
 
iX,int
 
iY)
 
{
  
var
 
iIndex
 
=
 
0;
  
while(GetCrew(iCrew,iIndex))
 
{
    
GetCrew(iCrew,iIndex)->SetPosition(iX,iY);
    
iIndex++;
  
}
}

func
 
OnClonkRecruitment(object
 
pClonk,
 
int
 
iPlr)
 
{
 

  
if(iPlr
 
==
 
0)
 
pClonk->SetPosition(100,100);
  
if(iPlr
 
==
 
1)
 
pClonk->SetPosition(200,100);
}
C4Script
//Wichtig: OnClonkRecruitment wird auch aufgerufen, wenn ein Clonk gekauft wird.
//Möchte man wirklich nur die Position zu Beginn sollte folgendes verwendet werden:
protected
 
func
 
InitializePlayer(int
 
iPlayer)
 
{
  
if(iPlayer==0)
 
ReplaceCrew(iPlayer,100,100);
  
if(iPlayer==1)
 
ReplaceCrew(iPlayer,200,100);
}

Erweitert

C4Script
func
 
OnClonkRecruitment(object
 
pClonk,
 
int
 
iPlr)
 
{
 


Diese Zeile ist ein so genannter "GameCall". Er wird nicht von der Engine aufgerufen, sondern vom Clonk selbst. Die Funktion wird aufgerufen, wenn der Clonk einer Crew zugewiesen wird.

C4Script
if(iPlr
 
==
 
n)
 
pClonk->SetPosition(x,y);

In einem ersten Schritt checken wir unseren Spieler. Ist es der Spieler den wir wollen, geht es weiter. (Der erste Spieler hat die Nummer 0!) Anschliessend folgt ein "ObjectCall". Damit rufen wir eine Funktion in einem Objekt auf. In unserem Falle SetPosition, dass die Position setzt. Da geben wir nun unsere Position an.

Die Funktion "ReplaceCrew" habe ich nur additiv gepostet. Mit ihr kann man die ganze Crew eines Spielers an eine bestimmte Position verschieben. Bsp:

C4Script
ReplaceCrew(0,100,100);
 
//Setzt alle Clonks von Spieler 0 an die Position 100,100.

Position (auch Koordinaten) werden in X- und Y-Achse angegeben. Zuerst kommt immer X, dann Y. Anders als in der Mathematik, ist der Nullpunkt (0,0) oben in der linken Ecke.

Scripte des Scripte-Projekts
AnfängerBonbon · Context-Eintrag · EliminateTeam · Flint:Partikelschleuder · Hüpfbonbon · TeamMessage
Fortgeschrittene FortgeschritteneFlint: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
Profi Profi ProfiClantag · Gift-Effekt · Unverwundbarkeit · Scoreboard · Zufallsgespräch
Experte Experte Experte ExperteLebensbalken · Nachrichten bei Sichtkontakt · Object2Overlay · SHA1


Wipfhunt.png Dieser Artikel wurde gemäß der Scriptrichtlinien veröffentlicht.
extern