Hey Leute,
Ich habe heute ein weiteres kleines Tutorial für Euch... | Thema: einen Spieler finden
Sicherlich haben Sich schon oft einige von Euch gefragt, wie ich einen Mitspieler
finden kann, ohne mich zu Ihm zu teleportieren. Hier ist die Lösung...
Schritt 1 - Einen Befehl erstellen (z.B. /findplayer)
if(strcmp(cmd, "/findplayer", true) == 0)
{
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "BENUTZE: /findplayer [SpielerID/SpielerName]");
return 1;
}
}
Schritt 2 - Position ermittel
if(strcmp(cmd, "/findplayer", true) == 0)
{
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "BENUTZE: /findplayer [SpielerID/SpielerName]");
return 1;
}
new Float:pPosX,Float:pPosY,Float:pPosZ;
GetPlayerPos(giveplayerid, pPosX, pPosY, pPosZ);
}
Am besten wäre es, wenn Ihr das 'New Float:...' am besten vor dem Befehl definieren
könntet... warum, werde ich später noch erwähnen! Also es sollte dann so aussehen:
new Float:pPosX,Float:pPosY,Float:pPosZ;
if(strcmp(cmd, "/findplayer", true) == 0)
{ ...
Schritt 3 - Position des Spielers rot makieren lassen
new Float:pPosX,Float:pPosY,Float:pPosZ;
if(strcmp(cmd, "/findplayer", true) == 0)
{
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "BENUTZE: /findplayer [SpielerID/SpielerName]");
return 1;
}
GetPlayerPos(giveplayerid, pPosX, pPosY, pPosZ);
SetPlayerCheckpoint(playerid, pPosX, pPosY, pPosZ, 5.0);
}
Theoretisch werd ich an dieser Stelle fertig, doch was haben wir vergessen?
...natürlich wir müssen den Checkpoint entfernen, sobald wir bei dem Spieler angekommen sind.
Bei der Funktion 'OnPlayerEnterCheckpoint' fügt Ihr folgendes hinzu:
public OnPlayerEnterCheckpoint(playerid)
{
if(PlayerToPoint(15.0, playerid, pPosX, pPosY, pPosZ); { DisablePlayerCheckpoint(playerid); }
}
Sollte die Funktion bei Euch noch nicht vorhanden sein, macht Ihr einfach bitte unter
das 'if(PlayerToPoint...' ein 'return 1;' und ihr habt keine Probleme damit!
So und das wars dann auch schon! Nun könnt Ihr andere Spieler auf Euer Karten
finden, ohne Euch direkt hinzutelepotieren...