Spieler auf Map anzeigen

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
  • Hallo Leute


    Ich möchte gerne wissen wie lasse ich Spieler auf der Karte anzeigen das sie Makiert sind


    Sprich Wenn ich /aduty gehe will ich das man auf der Karte angezeigt wird wo man gerade ist wie mache ich das was muß ich einfügen hier mal mein /aduty befehl if (strcmp(cmd, "/adminduty", true) == 0 || strcmp(cmd, "/aduty", true) == 0)
    {
    if(AdminDuty[playerid] == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] == 3|| PlayerInfo[playerid][pAdmin] == 4)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Moderator im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    Mod[playerid] = Create3DTextLabel("Moderator on Duty",0xFF0A00FF,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(Mod[playerid], playerid, 0.0, 0.0, 0.4);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* Moderator %s[ID:%d] ist nun im Dienst*",sendername,playerid);
    SendClientMessageToAll(0x932200FF, string);
    SetPlayerArmour(playerid, 100);
    return 1;
    }

  • Habe immer noch probleme damit das nur die Admins bei /aduty auf der Map angezeigt werden sollen.


    Ich habe es bis jetzt so gemacht . if (strcmp(cmd, "/adminduty", true) == 0 || strcmp(cmd, "/aduty", true) == 0)
    {
    if(AdminDuty[playerid] == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] == 3|| PlayerInfo[playerid][pAdmin] == 4)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Moderator im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    ShowPlayerMarkers(2);
    Mod[playerid] = Create3DTextLabel("Moderator on Duty",0xFF0A00FF,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(Mod[playerid], playerid, 0.0, 0.0, 0.4);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* Moderator %s[ID:%d] ist nun im Dienst*",sendername,playerid);
    SendClientMessageToAll(0x932200FF, string);
    SetPlayerArmour(playerid, 100);
    return 1;
    }



    Und im Script unter OnGameModeInit() habe ich ShowPlayerMarkers auf 0 stehen weil es sollen ja nicht alle angezeigt werden sondern nur die Admins. Aber es geht nicht was muß ich noch machen was ist falsch???.

  • Mach mal so:



    if (strcmp(cmd, "/adminduty", true) == 0 || strcmp(cmd, "/aduty", true) == 0)
    {
    if(AdminDuty[playerid] == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] == 3|| PlayerInfo[playerid][pAdmin] == 4)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Moderator im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    ShowPlayerMarkers(1);
    Mod[playerid] = Create3DTextLabel("Moderator on Duty",0xFF0A00FF,30.0,40.0,50.0,40.0,0);
    Attach3DTextLabelToPlayer(Mod[playerid], playerid, 0.0, 0.0, 0.4);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* Moderator %s[ID:%d] ist nun im Dienst*",sendername,playerid);
    SendClientMessageToAll(0x932200FF, string);
    SetPlayerArmour(playerid, 100);
    return 1;
    }

  • Sobald ein Admin /aduty macht musst du für jeden Spieler den Spieler in diesem Fall setzten (http://wiki.sa-mp.com/wiki/SetPlayerMarkerForPlayer)
    Mit ShowPlayerMarkers(1) würde jeder Spieler angezeigt werden bzw. in einem Radius je nachdem welcher Mode.
    Mit SetPlayerMarkerForPlayer wird ein Spieler bei einem anderen Spieler immer angezeigt (was du glaub ich auch haben möchtest), musst du per For Schleife dann machen dass jeder Spieler den jenigen sieht.