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

Austausch | 
 

 Teams per Script positionieren

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Gamer
Staatsrat
Staatsrat
avatar

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

BeitragThema: Teams per Script positionieren   Fr 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.

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Simsi
Staatssekretär
Staatssekretär
avatar

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

BeitragThema: Re: Teams per Script positionieren   Fr 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

_________________
Copy this into your signature to have it in your signature.
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

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

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

Ups, naja... Danke Wink

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Gesponserte Inhalte




BeitragThema: Re: Teams per Script positionieren   

Nach oben Nach unten
 
Teams per Script positionieren
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Translator script problem
» Suche News Script (mit Befugnissen)
» Let it snow - Schnee Script
» wo füge ich einen Countdown-Script ein
» Wo muss man das Script einfügen?

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