/orten System

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
  • Guten Tag,


    ich habe zwar den Befehl /orten aber ich möchte


    gerne das der Point den Spieler imm verfolgt und nicht


    das er nur da bleibt wenn man /orten schreibt...


    //======== ORTEN ==========//
    if(strcmp(cmd, "/orten", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(!IsACop(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /orten [Spieler ID]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(giveplayerid, X,Y,Z);
    SetPlayerCheckpoint(playerid, X,Y,Z, 6);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Falsche ID!");
    }
    }
    return 1;
    }


    Ich hoffe es kann mir jemand helfen...


    Mfg


    Moritz

  • Eine Variable und ein Timer anlegen.
    Im Timer dann durch die Variable die playerid des zu Suchenden hernehmen, seine Position auslesen und den Checkpoint aktualisieren. Ich würde dir ein 5 Sekunden Takt Timer vorschlagen.

  • Boah Leute X(
    if(strcmp(cmd, "/orten", true) == 0)
    {
    if(!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist!");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /orten [Spieler ID]");
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid)) if(giveplayerid != INVALID_PLAYER_ID) SetPlayerMarkerForPlayer(playerid,giveplayerid,0xFF0000FF);
    else return SendClientMessage(playerid, COLOR_GREY, "Falsche ID!");
    return 1;
    }

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

    Margarete Stokowski


  • Sorry das ich jetz das mal so sage aber das ist unnötig was du gepostet hast da der player rot makiert wird für jeden player und nicht für dich auf der karte :D
    netter versuch :D

    Moinsen,

    Ich Schreibe aktuell Nebenbei in ein SA:MP Script einfach wegen der Guten alten Zeiten :thumbup:

    Script Fortschritt: ||||||||||||

  • ViruZ wie meinste das jetzt?


    na weil der spieler dann ROT makiert wird für JEDEN spieler der ONLINE ist und auf die KARTE schaut :D bessere methode ist das hier:


    oben im script das
    new fpl[MAX_PLAYERS];
    new fplon[MAX_PLAYERS];
    forward UpdateFPL(playerid, giveplayerid);


    OnPlayerConnect


    fplon[playerid] = 0;


    OnPlayerCommandText
    if(strcmp(cmd, "/fpl", true) == 0)
    {
    if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pAdmin] >= 1)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /fpl [playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    //if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber suchen!"); return 1; }
    fpl[playerid] = giveplayerid;
    fplon[playerid] = 1;
    UpdateFPL(playerid, fpl[playerid]);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Falsche ID !");
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/fploff", true) == 0)
    {
    if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(fpl[playerid])
    {
    fpl[playerid] = 0;
    fplon[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    }
    }
    return 1;
    }


    Public´s
    public UpdateFPL(playerid, giveplayerid)
    {
    if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pLeader] >= 1 || PlayerInfo[playerid][pMember] >= 1 ||PlayerInfo[playerid][pLeader] >= 2 || PlayerInfo[playerid][pMember] >= 2 || PlayerInfo[playerid][pLeader] >= 3 || PlayerInfo[playerid][pMember] >= 3)
    {
    DisablePlayerCheckpoint(playerid);
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(giveplayerid, X,Y,Z);
    SetPlayerCheckpoint(playerid, X,Y,Z, 2.5);
    }
    }
    forward CheckSpeed();
    public CheckSpeed()
    {
    for(new a=0; a<MAX_PLAYERS; a++)
    {
    if(IsPlayerConnected(fpl[a]) && fplon[a] == 1)
    {
    UpdateFPL(a, fpl[a]);
    }

    }
    }


    Joah So :D

    Moinsen,

    Ich Schreibe aktuell Nebenbei in ein SA:MP Script einfach wegen der Guten alten Zeiten :thumbup:

    Script Fortschritt: ||||||||||||

  • Sorry das ich jetz das mal so sage aber das ist unnötig was du gepostet hast da der player rot makiert wird für jeden player und nicht für dich auf der karte :D


    Du scheinst nicht zu wissen wofür SetPlayerMarkerForPlayer überhaupt ist.
    Deine Checkpoints sind nicht nur unnötig sondern komplett fehl am Platz.


    Wenn meins so falsch war, warum hat es denn funktioniert?
    Denken -> Posten :P

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

    Margarete Stokowski