[ADMIN-TOOL] Gewünschten Spieler finden und rot makieren...

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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...

  • das mit dem pPosX ahn ich nicht, ich glaube, das solltest du dir selber nochmal angucken...

  • Zitat

    if(PlayerToPoint

    ist schon komisch, wie kann man einfach so davon ausgehen, dass das jeder hat? außerdem gibt es für das, was dies hier bewirken soll, eine neue native in 0.3a...

  • Ich finde es erstmal Klasse , dass du dir überhaupt die Mühe gemacht hast , ein kleines Tutorial zu schreiben ;)
    Zu dem Inhalt , kann ich den anderen leider ein bisschen zustimmen...
    Aber sonst ganz nett ;)