MadAd

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.Undzwar hätte ich da eine Frage.Die hat zwar kaum was mit MadAd zu tun aber durch sein Script ist mir die Frage gekommen.Undzwar am Anfang bekommt ja jeder Spieler eine Farbe z.B. Violett.In dieser Farbe ist halt sein Name und seine Position auf der Karte (keine Ahnung ob es verschiedene Farben sind aber ich hatte nur 1Freund auf meinem Hamachi Testserver und der war halt lila^^) naja jetzt würde ich gerne wissen, wie ich das deaktivieren kann? Also wenn ich
    public OnPlayerConnect(playerid)
    SetPlayerColor(playerid,weiß);
    machen würde, hätte es ja keinen Sinn, da die spieler noch weiß angezeigt werden.Gibt es irgendeine Farbe für unsichtbar oder irgendeinen Command mit dem man das deaktivieren kann?
    Nochein Beispiel:
    Ich gehe Adminduty, werde halt orange angezeigt.Wenn ich nun Adminduty verlasse möchte ich nicht mehr auf der Karte angezeigt werden.
    THX im Vorraus Mr.Tadäus (ich weiß, dass es Thaddäus geschrieben wird :D)

    MFG MrTadäus

  • public SetPlayerToTeamColor(playerid)


    Gibt es das in deinem Script?

  • Jo meint er.
    Das wie bei einem DM script alle Markiert sind

  • teil meines aduty befehls


    dcmd_aduty
    {
    SetPlayerColor(playerid,COLOR_ORANGE);
    }
    Nun möchte ich das wieder rückgängig machen, sodass mein Name wieder weiß ist und ich nicht mehr auf der Karte sichtbar bin.

    MFG MrTadäus

  • öhh wenn du weiß angezeigt werden willst, mach an der stelle an der es passieren soll
    SetPlayerColor(playerid,0xFFFFFFFF);


    ich weiß wie alle marker auf der karte deakivieren werden, aber nicht wie ein einzelner deaktiviert wird

  • Am Anfang sollen alle marker deaktiviert werden.Nur wenn man /aduty eingibt, nachdem man schon aduty war (alsoa duty verlasse) soll nur die Markierung von demjenigen gelöscht werden.Also ,dass er nicht mehr angezeigt wird.
    Und jetztz nocheine frage.Wie mache ich nun, dass wenn man in aduty reingeht, dass man wieder auf der karte markiert wird?

    MFG MrTadäus

  • Du musst an der richtigen Stelle im Script, also wo du es haben willst:
    SetPlayerColor(playerid,0xFFFFFF00); // unsichtbar (weiß)
    eingeben und für sichtbar:
    SetPlayerColor(playerid,0xFFFFFFFF); // sichtbar (weiß)


    Das Prinzip ist ganz einfach, jede Farbe setzt sich aus folgendem Code zusammen: 0x + Farb-HEX-Code + Transparenz in HEX-Code


    Farb-HEX-Codes findet man in Google und die Transparenz ist100% bei 00 und 0% bei FF. Das ganze wird unter Alpha-Values auf der Seite http://wiki.sa-mp.com/wiki/Colors_List schön erklärt.


    Ob du jetzt alle Spieler oder nur einen bestimmten Spieler unsichtbar machen oder sichtbar machen willst ist egal, du musst nur wissen wo du den Befehl einfügst und ob du ihn in einer Schleife verbauen musst, weil du zum Beispiel alle Spieler unsichtbar/sichtbar machen willst oder nicht weil du nur einen Spieler veränderst, musst du selbst wissen.

  • Also so?
    Onplayerconnect
    SetPlayerColor(playerid,0xFFFFFF00); // unsichtbar (weiß)
    Da ja jeder mit einer Farbe z.B. Orange,Lila spawnt
    und dann beim /aduty


    dcmd_aduty(playerid,params[] )
    {
    #pragma unused params
    if(aduty[playerid] == 0)
    {
    new Name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(string,sizeof(string),"Admin %s befindet sich nun im Adminduty!",Name);
    SendClientMessageToAll(GELB,string);
    SetPlayerHealth(playerid, 10000);
    SetPlayerArmour(playerid, 10000);
    SetPlayerColor(playerid, 0xFF8C00FF); // Sichtbar Orange
    new Float:x,Float:y,Float:z;
    format(string,256,"Admin");
    aduty[playerid] = 1;
    return 1;
    }
    else if(aduty[playerid] == 1) //Wenn er den Befehl eingibt und die Variable diesmal auf True/1 ist weil man den Befehl schonmal eingegeben hat
    {
    new Name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(string,sizeof(string),"Admin %s befindet sich nun nicht mehr im Adminduty!",Name);
    SendClientMessageToAll(GELB,string);
    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 0);
    SetPlayerColor(playerid, 0xFFFFFF00); // Unsichtbar Weiß
    aduty[playerid] = 0;
    }


    return 1;
    }

    MFG MrTadäus