/take maske Befehl funktioniert nicht.

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 Befehl erstellt. -> /take maske
    Das heißt der Cop zieht den User die Maske ab nur es funktioniert nicht.
    Im Chat steht, Es ist kein Maskierter in der Nähe, obwohl ein Maskierter in der Nähe ist..


    Der Befehl:


    else if(strcmp(x_nr,"maske",true) == 0) // x_nr
    {
    if(Maske[giveplayerid] == 1)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    giveplayerid = GetClosestPlayer(playerid);
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du hast %s die Maske entzogen.", giveplayer);
    SendClientMessage(playerid, COLOR_GREY, string);
    format(string, sizeof(string), "%s hat dir deine Maske entzogen", sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);


    Maske[giveplayerid] = 0;
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, giveplayerid, 1);
    SetPlayerChatBubble(giveplayerid," ",COLOR_MASKE,10.0,0);
    //Delete3DTextLabel(Maskierter);
    SetPlayerSkin(giveplayerid,GetPVarInt(giveplayerid,"oldSkin"));
    DeletePVar(giveplayerid,"oldSkin");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht in deiner Nähe !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Es ist kein Maskierter in der Nähe!");
    return 1;
    }
    }


    Danke im Vorraus

    Mit freundlichen Grüßen,
    rndy

  • sonst mach es mit einer for-schleife und eine IsPlayerInRangeOfPoint Abfrage
    aber nicht das return 1 vergessen.

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • So sollte es dann aussehen [nochmal Korrigiert]:
    else if(strcmp(x_nr,"maske",true) == 0)
    {
    for(new i= 0; i<MAX_PLAYERS; i++)
    {
    if(Maske[i] == 1)
    {
    if(ProxDetectorS(8.0, playerid, i))
    {
    giveplayerid = GetClosestPlayer(i);
    GetPlayerName(i, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du hast %s die Maske entzogen.", giveplayer);
    SendClientMessage(playerid, COLOR_GREY, string);
    format(string, sizeof(string), "%s hat dir deine Maske entzogen", sendername);
    SendClientMessage(i, COLOR_LIGHTBLUE, string);
    Maske[i] = 0;
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, giveplayerid, 1);
    SetPlayerChatBubble(giveplayerid," ",COLOR_MASKE,10.0,0);
    //Delete3DTextLabel(Maskierter);
    SetPlayerSkin(giveplayerid,GetPVarInt(giveplayerid,"oldSkin"));
    DeletePVar(giveplayerid,"oldSkin");
    return 1;
    }
    }
    }
    return SendClientMessage(playerid,COLOR_GREY,"Es ist kein Maskierter in der Nähe!");
    }

    4 Mal editiert, zuletzt von Pr0x ()

  • Du wirst ja auch für den Maskierten bzw. für alle dann auch nicht sichtbar bzw. ziehst die maske ab und nicht der Maskierte zieht die Maske für alle ab.


    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i, giveplayerid, 1);
    zu:
    for(new nt = 0; nt < MAX_PLAYERS; nt++) ShowPlayerNameTagForPlayer(giveplayerid, nt, 1);


    Du bekommst den CJ skin weil der Variable nicht gefüllt wurde, setz die Variable einfach beim Laden des Skins und wenn du die Maske anziehst setzt du den einfach auf den Maskierten Skin und dann bekommst du auch keinen CJ skin.


    Das heißt z.B:
    SetPVarInt(playerid,"oldSkin",GetPlayerSkin(playerid));