/Orten soll Spieler Verfolgen!

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
  • Hier mein Command:


    //======== 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;
    }
    Bitte um Hilfe :)

  • [pwn='Ungetestet']
    // Zu deinen New's
    new Orten[MAX_PLAYERS],ortentimer;


    // Zu Gamemodeinit
    SetTimer("Orte",2000,1); // das wären alle 2 sekunden ( optional umstellen )


    //======== 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(Orten[playerid] == 1) {
    KillTimer(ortentimer);
    SendClientMessage(playerid,COLOR_GREY,"Du hast das Orten beendet.");
    return 1;
    }
    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);
    Orten[playerid] = giveplayerid;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Falsche ID!");
    }
    }
    return 1;
    }

    forward Orte();
    public Orte()
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(Orten[i] == 1) {
    #define giveplayerid Orten[i]
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(giveplayerid, X,Y,Z);
    SetPlayerCheckpoint(i, X,Y,Z, 6);
    #undef giveplayerid
    }
    }
    return 1;
    }
    [/pwn]
    Alles ungetestet


    Ich hoffe es funktioniert dennoch.


    Mfg


  • Profil Profi


    ich glaub ich kotzt glei was soll den das erste sein !?
    muss playerid 1 sein WTF



    @ TE


    ganz easy


    mit /orte <playerid> als befehl
    schreibst du wenn alles stimmt bei dir im code
    Orten[denplayerdenduwillst] = 1;


    einen Timer bei ongamemodeint den du nennen kannst wie du willst
    zb SetTimer("ortedenplayer",200,true)


    die dazugehörige Public dazu


    in dieser du dann einfach sagst


    for (new i=0;i<MAX_PLAYERS;i++)
    {
    if (IsPlayerConnected(i) &&Orten[i]==1)
    {
    //set hier den Marker immer wieder neu bzw die pos
    }
    }

  • 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);
    SetPVarInt(playerid,"SearchedPlayer",giveplayerid);

    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Falsche ID!");
    }
    }
    return 1;
    }


    Unter OnGameModeInit:
    SetTimer("CheckOrtenFunktion",1000,true);


    forward CheckOrtenFunktion();
    public CheckOrtenFunktion()
    {
    for (new i=0;i<GetMaxPlayers();i++)
    {
    if (IsPlayerConnected(i)
    {
    if(GetPVarInt(i,"SearchedPlayer") !=-1)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(GetPVarInt(i,"SearchedPlayer"),x,y,z);
    SetPlayerCheckpoint(playerid, x,y,z, 6.0);
    }
    }
    }
    }


    So sollte es funktionieren.

    Let the party begin - turn all the lights on!