Fraktionsmitglieder sehen sich auf der Map

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 wollte heute Scripten, das Fraktionsmitglieder sich auf der Map sehen per SetPlayerMarkerForPlayer


    Aber es funktioniert nicht.


    Dies soll fürs SAPD erstmal sein und soll sobald sie Duty gehen angezeigt werden.


    if(isPlayerInFrakt(playerid,1))
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    SetPlayerColor(playerid,SAPDDUTY);
    SetFraktionMarker(playerid,SAPDDUTY);
    SendClientMessage(playerid,SORBLAU,"Du bist nun im Dienst.");
    Spieler[playerid][pDuty] = 1;
    format(string,sizeof(string),"** %s zieht seine Dienstkleidung an und geht in den Dienst **",SpielerName(playerid));
    PlayerTalkPublic(playerid,MEFARBE,string,10);
    }


    stock SetFraktionMarker(playerid,farbe)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
    {
    SetPlayerMarkerForPlayer(playerid,i,farbe);
    SetPlayerMarkerForPlayer(i,playerid,farbe);
    return 1;
    }
    }
    return 1;
    }

  • stock SetFraktionMarker(playerid,farbe)
    {
    print("1");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    print("2");
    if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
    {
    print("3");
    SetPlayerMarkerForPlayer(playerid,i,farbe);
    SetPlayerMarkerForPlayer(i,playerid,farbe);
    print("4");
    return 1;
    }
    print("5");
    }
    return 1;
    }
    Mach das so mal, kompiliere, starte den Server neu, und schau welche Zahlen in der Konsole wiedergegeben werden.


    /e
    Du brauchst auch einen Partner, der in der Fraktion ist, da du es nicht selber siehst ;)

  • Ich hatte es so in meinem Server:


    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    switch(Spieler[i][Team])
    {
    case 1:
    {
    SetPlayerMarkerForPlayer(playerid,i,UnsichtbarA);
    SetPlayerMarkerForPlayer(i,playerid,UnsichtbarA);
    }
    case 2:
    {
    SetPlayerMarkerForPlayer(playerid,i,UnsichtbarR);
    SetPlayerMarkerForPlayer(i,playerid,UnsichtbarR);
    }
    }
    }


    Farbcodes waren so:
    #define UnsichtbarR 0x008CFF00
    #define UnsichtbarA 0xAA333300


    Musst halt vieles ändern, aber ich hoffe, ich konnte dir helfen ..


    Folgendes musst du machen:
    1. Den Code oben bearbeiten
    2. Einen Farbcode nehmen ( zb Dunkelrot )
    3. Ganz hinten an den Farbcodes "00" machen
    Dunkelrot -> Vorher: "0xAA3333AA" nachher "0xAA333300" ( das ist nun unsichtbar )



    5Gum
    Das wird nicht gehen.. Man wird die Gegner trdm sehen können

  • Mach das unter OnPlayerSpawn..


    Kannst ja auch so machen:

    stock FrakMap(playerid) // oder wie auch immer ..
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    switch(Spieler[i][Team])
    {
    case 1:
    {
    SetPlayerMarkerForPlayer(playerid,i,UnsichtbarA);
    SetPlayerMarkerForPlayer(i,playerid,UnsichtbarA);
    }
    case 2:
    {
    SetPlayerMarkerForPlayer(playerid,i,UnsichtbarR);
    SetPlayerMarkerForPlayer(i,playerid,UnsichtbarR);
    }
    }
    }
    return 1;
    }


    Und dann unter OnPlayerSpawn
    FrakMap(playerid);


    Wie du es eben willst..

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Okay gut ..
    Nur habe ich etwas vergessen .. Das muss eig so hin:


    if(Spieler[playerid][pFraktion] != 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
    {
    SetPlayerMarkerForPlayer(playerid, i, GetPlayerColor(i));
    SetPlayerMarkerForPlayer(i, playerid, GetPlayerColor(playerid));
    }
    else
    {
    switch(Spieler[i][pFraktion])
    {
    case 1://Fraktion 1
    {
    SetPlayerMarkerForPlayer(playerid,i,UnsichtbarA);
    SetPlayerMarkerForPlayer(i,playerid,UnsichtbarA);
    }
    case 2://Fraktion 2
    {
    SetPlayerMarkerForPlayer(playerid,i,UnsichtbarR);
    SetPlayerMarkerForPlayer(i,playerid,UnsichtbarR);
    }
    }
    }
    }
    }

  • Funktioniert nicht


    stock SetFraktionMarker(playerid)
    {
    if(Spieler[playerid][pFraktion] != 0)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
    {
    SetPlayerMarkerForPlayer(playerid, i, GetPlayerColor(i));
    SetPlayerMarkerForPlayer(i, playerid, GetPlayerColor(playerid));
    }
    else
    {
    switch(Spieler[i][pFraktion])
    {
    case 1: // Fraktion SAPD
    {
    SetPlayerMarkerForPlayer(playerid,i,SAPDMARKER);
    SetPlayerMarkerForPlayer(i,playerid,SAPDMARKER);
    }
    }
    }
    }
    }
    return 1;
    }


    #define SAPDMARKER 0x00489100


  • was genau funktioniert nicht?
    Sieht man die trdm auf der Karte? -> Wenn ja : Ist SAPDMARKER eine unsichtbare Farbe?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen