SetPlayerMarkerForPlayer ?

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


    Ich habe ein problem mit dem oben genannten Befehl. Ich bin ein RL script am machen (nein kein GF, von grund auf selfmade) und bin gerade an dem cmd dran wo man den ADAC rufen kann. Das klappt schonmal einwandfrei. Das problem ist aber, dass der spieler nicht auf der karte angezeigt wird. Er wird aber rot. Ist das nur dafür da um den spieler für einen anderen ne andere farbe zu geben? oda kann man damit auch die marker auf der karte zeigen?
    Kann es auch daran liegen dass ich ShowPlayerMarkers(0); habe?


    MFG, Robdeflop

  • Beim Spawnen, soll man eine unsichtbare (Transparente ) Farbe bekommen.


    SetPlayerColor(playerid, Farbe);


    Die genau definierung der Farbe hab ich nicht im Kopf.


    Wenn man ADAC ruft, dann bekommt der Spieler nur für ADAC die Farbe grün oder so

  • Achsooooo :D
    Jez raff ich des^^
    Aber die farbe des spielers (z.B. in der spielerliste) soll nich transparent sein. Wenn z.B. ein spieler in den dienst geht dann soll der ja auch nit auf der karte sichtbar sein aber der name soll ne andere farbe haben.


    MFG, Rob

  • Auf der Spielerliste is dann die Farbe nicht transparent ( soweit ich weiß ) nur halt auf der Karte.


    Musst du mal testen.

  • oder kannst es doch z.B. ein timer machen, der dann jede sekunde aufgerufen wird.
    Dann SetPlayerCheckpoint und dann wird das checkpoint denn spieler verfolgen.
    Hmm etwa so z.B.:


    ganz oben:
    new adacTimer


    Mach das rein wo der spieler /accept adac macht
    adacTimer = SetTimerEx("adacCall",1000,1,"ii",playerid,giveplayerid);


    ganz unten rein:
    forward adacCall(playerid, giveplayerid);
    public adacCall(playerid, giveplayerid)
    {
    new Float:pPosX, Float:pPosY, Float:pPosZ;
    GetPlayerPos(giveplayerid, pPosX, pPosY, pPosZ);
    if(IsPlayerInRangeOfPoint(playerid, 3.0, pPosX, pPosY, pPosZ)
    {
    KillTimer(adacTimer);
    DisablePlayerCheckpoint(playerid);
    return 1;
    }
    else
    {
    SetPlayerCheckpoint(playerid, pPosX, pPosY, pPosZ, 3.0);
    return 1;
    }
    return 1;
    }

  • Nein danke FoxHound, das soll ohne Checkpoints funzen :D


    So, is zwar schon länger her, aber ich habs getestet.
    Ich hab bei OnPlayerLogin ne abfrage gemacht, in welchem job man is. Wenn man z.B. nich in Taxi is, dann wird der spieler durch SetPlayerColor(playerid, COLOR_YELLOW) gelb angezeigt. Der soll aber nicht auf der karte angezeigt werden. Aber wenn man tab drückt soll der gelb angezeigt werden. Wenn man in keinem job is, dann is der player unsichtbar, weil ich ja die farbe transparent definiert habe.
    Also is das schonmal ein problem. Dann habe ich jetzt noch eins. Wenn einer Taxi ruft, dann wird der spieler zwar rot, aber nicht auf der karte angezeigt oO


    Hier ein Auszug aus dem Ruf-CMD:


    if(strcmp(cmd, "/taxi", true) == 0)
    {
    new string11[256];
    new kunde[MAX_PLAYER_NAME];
    GetPlayerName(playerid, kunde, sizeof(kunde));
    format(string11, sizeof(string11), "%s benoetigt ein Taxi!", kunde);


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][Beruf] == TAXI && Taxifahrer[i] == 1)
    {
    SendClientMessage(i, COLOR_YELLOW, string11);
    SetPlayerMarkerForPlayer(i, playerid, COLOR_RED);
    }
    }


    Das sollte doch eigendlich funktionieren oda? oO


    EDIT: Also wenn der spieler ja nit im dienst is, dann funzt das ja ohne probleme. Jedoch im dienst is das doof. Da soll der spieler nit auf der karte sichtbar sein aber trotzdem z.B. gelb wenn man tab drückt


    EDIT 2: Ich hab es immernochnicht hinbekommen. Weiß einer woran es liegt?


    MFG, Rob

    2 Mal editiert, zuletzt von Robdeflop ()