ocmd search

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
  • hi,


    hier mein befehl fürs searchen einer person
    der checkpoint sollte immer aktualisiert werden zum standpunkt des pID´s


    hier


    ocmd:search(playerid,params[])
    {
    if(!isPlayerBehoerde(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Cop !");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,GRAU,"Benutze: /search [ID / Username]");
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(pID,X,Y,Z);
    SetPlayerCheckpoint(playerid,X,Y,Z,3);
    SetTimer("searchtimer", 1000, true);
    SetPlayerCheckpoint(playerid,X,Y,Z,3);
    return 1;
    }
    public searchtimer()
    {
    new pID;
    GetPlayerPos(pID,X,Y,Z);
    }


    /edit geht aber net ganz

  • nein danke,
    ich möchte gerne aus meinen fehler hier in diesem befehl lernen


    MfG

  • ihc möchte aber einen checkpoint haben dort wo der spieler is


    /edit:


    Sprich einen Checkpoint, der immer wieder aktualisiert wird,
    hat jmd. ne ahnung davon=

    Einmal editiert, zuletzt von _SKY_ ()

  • Hi


    Versuch es mal so (ungetestet jedenfalls). Ich benutze PVars, um die ID des Timer zu speichern, dmait man ihn dann auch mal wieder stoppen kann


    ocmd:search(playerid,params[])
    {
    if(!isPlayerBehoerde(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Cop !");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,GRAU,"Benutze: /search [ID / Username]");
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(pID,X,Y,Z);
    SetPlayerCheckpoint(playerid,X,Y,Z,3);
    SetPVarInt(playerid,"pCheckpointTimerID",SetTimerEx("searchtimer",1000,1,"dd",playerid,pID));
    return 1;
    }


    ocmd:stoptimer(playerid,params[])
    {
    KillTimer(GetPVarInt(playerid,"pCheckpointTimerID"));
    SendClientMessage(playerid,ROT,"Der Spieler wird jetzt nicht mehr jede Sekunde geortet");
    return 1;
    }


    public searchtimer(playerid,id)
    {
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(pID,X,Y,Z);
    SetPlayerCheckpoint(playerid,X,Y,Z,3);
    }


    MfG Simon


    Edit Fehler 8)

  • Da ist noch ein kleiner Fehler drin,dürfte nicht möglich sein das zu kompilieren.
    public searchtimer(playerid,id)
    {
    new Float:X,Float:Y,Float:Z;
    //GetPlayerPos(pID,X,Y,Z); <- pID ist hier falsch
    GetPlayerPos(id,X,Y,Z);
    SetPlayerCheckpoint(playerid,X,Y,Z,3);
    }

  • warum is pID falsch :O


    versteh ich net :/


    kompilieren gehts, aber wenn ich /search 2 mach sucht er immer id 0 in meinem falle ein BOT

  • pID ist da falsch weil du in der Funktion nirgendwo die Variable pID definiert hast.


    In einer Funktion mit Paramtern kannst du nur die definierten Variaben/Parameter verwenden. Die Parameter sind in diesem Fall die Variablen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski