CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Teams per Script positionieren

Nach unten 
2 verfasser
AutorNachricht
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Teams per Script positionieren Empty
BeitragThema: Teams per Script positionieren   Teams per Script positionieren EmptyFr März 13, 2009 4:44 pm

Vorwissen: Englischkentnisse wären hilfreich, if Tutorial , while Tutorial

Hallo!

Heute werde ich euch ein script erstellen, das alle Clonks die zur Manschaft XY gehören auf eine gewünschte Startposition zu setzen.
Und was brauchen wir zu aller erst wenn wir Teams positionieren wollen? Richtig, die Teams selbst!
Das wird über die "Teams.txt" geregelt. Hier ein Beispiel eines solchen Dokumentes:
Teams.txt schrieb:

[Teams]
AutoGenerateTeams=0

[Team]
id=1
Name=Team Dorf
PlrStartIndex=1
Color=15990784

[Team]
id=2
Name=Team Stadt
PlrStartIndex=2
Color=51200

Das einzige was uns hier interresiert, ist der Parameter "id", den das brauchen wir um zu überprüfen, welchem Team der Spieler angehört. Hat ein Spieler die Team-ID 2, so wissen wir das er zum Team Stadt gehört und können im script darauf reagieren. Ersteinmal wichtige Befehle die wir dazu brauchen:

GetPlayerTeam(Spielernummer) Gibt die ID des Teams zurück (als Zahl). Hat ein Spieler kein Team, wird 0 zurückgegeben. Hier der Link zur Doku.

SetPosition( x, y, objekt) Wird benutzt um ein Objekt zur angegebenen X-Y Koordinate zu vesetzen. Hier der Link zur Doku.

GetCrewCount(Spielernummer) Gibt zurück, wie viele Clonks ein Spieler besitzt. Der erste Spieler hat die Spielernummer 0.Hier der Link zur Doku.

GetCrew(Spielernummer, Clonknummer) Gibt den jeweiligen Clonk des jeweiligen Spielers als Objekt zurück.Hier der Link zur Doku.

Mit diesen Befehlen, einer Bedingung und eine while Schleife können wir solangsam unseren script zusammenbauen.
Fangen wir doch mal mit der Bedingung an. Das machen wir mit "if". (Oben ist der Link zu dem Tut)
Vorweg: Wenn ein Spieler ins Spiel eintritt, wird dabei die Funktion "InitializePlayer() aufgerufen, dabei wird auch die Spielernummer übergeben. Das macht man so:

func InitializePlayer(int iPlr)

Bei dieser Funktion kann man dann mit der Spielernummer arbeiten, was wir hier auch unbedingt brauchen.
In Befehlen könnten wir dann z.B schreiben "GetCrewCount(iPlr);" <-- Würde die Anzahl der Clonks ausgeben, die der begetretene Spieler hat.

Jetzt bauen wir uns erstmal mit den Befehlen "GetPlayerTeam()" eine schöne Bedingung mit if.

func InitializePlayer(int iPlr) {

if(GetPlayerTeam(iPlr) == 1) { dann mach das und das.... }
}
Das "mach das und das" müssen wir natürlich ersetzten. Schreibt doch einfach mal folgendes hin:

func InitializePlayer(int iPlr) {

if(GetPlayerTeam(iPlr) == 1) { SetPosition(100,100,GetCrew(iPlr)); }
}
Wenn ihr das mal testet, werded ihr feststellen, das nur der 1.te Clonk eurer ganzen Clonks auf die Position 100,100 gesetzt wurde. Wir müssen es i-wie schaffen, das es alle Clonks auf diese Position setzt. Das machen wir jetzt mit "while"...


func InitializePlayer(int iPlr) {
if(GetPlayerTeam(iPlr) == 1) {var i=GetCrewCount(iPlr); while (i--) GetCrew(iPlr,i)->SetPosition(100,100);}
return 1; // hier verwende ich mal das neue strict 2 Syntax!
}

Durch die Schleife haben wir es nun geschafft, das alle Clonks an die jeweilige Position verfrachtet werden.
Das ist jetzt nur ein beispiel für das Team 1. Man könnte auch das ganze kopieren & einfügen, die Zahl bei GetPlayerTeam ändern und natürlich die Position. Wenn man nur 2 Teams hat, kann man auch mit "else" arbeiten. (Also wenn die Team ID des Spielers nicht 1 entspricht, dann...)

Tja, das wars auch schon wieder von mir!
Ich hoffe das ich euch damit ein bisschen helfen konnte und ihr es auch verstanden habt. Extra mit den Originalfarben aus dem C4scripter. Wink

MFG, Gamer.
Nach oben Nach unten
http://www.gamer95.npage.de/
Simsi
Staatssekretär
Staatssekretär
Simsi


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 30.03.08

Teams per Script positionieren Empty
BeitragThema: Re: Teams per Script positionieren   Teams per Script positionieren EmptyFr März 13, 2009 6:10 pm

sehr schön und hilfreich, aber ich verschiebs mal in tutorials, weil für ein script ist das zu gut ausdokumentiert Very Happy
Nach oben Nach unten
Gamer
Staatsrat
Staatsrat
Gamer


Männlich Alter : 28
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

Teams per Script positionieren Empty
BeitragThema: Re: Teams per Script positionieren   Teams per Script positionieren EmptyFr März 13, 2009 6:33 pm

Ups, naja... Danke Wink
Nach oben Nach unten
http://www.gamer95.npage.de/
Gesponserte Inhalte





Teams per Script positionieren Empty
BeitragThema: Re: Teams per Script positionieren   Teams per Script positionieren Empty

Nach oben Nach unten
 
Teams per Script positionieren
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Frage zu teams.txt
» Teams machen
» Problem mit Teams
» 2 teams mit verschiedenen zaubern
» Teams.txt wird nicht angenommen

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Anfänger :: Tutorials-
Gehe zu: