Hitman Tarn Befehl

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 liebes Breadfish Forum,
    Undzwar habe ich mir vor paar monaten ein Tarn System für die Hitman Agentur gescriptet.
    Ich wollte das Tarn Befehl so haben:
    - Sobalt man /tarn eingibt ist der Name nicht mehr zusehen (nur derjenige der /tarn eingibt)
    - Und man ist auf der Minikarte auch nicht mehr zusehen.


    //TARNSYSTEM
    new TarnDuty[MAX_PLAYERS];





    if (strcmp("/tarn", cmdtext, true) == 0)
    {
    if(TarnDuty[playerid] == 0)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, false);
    SendClientMessage(playerid,COLOR_GRAD2,"Das Tarnen kostet dich 25000$");
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun nicht mehr auf der Karte zu sehen.");
    GivePlayerMoney(playerid, -25000);
    SetPlayerColor(playerid,COLOR_HITMAN);
    BizzInfo[6][bTill] += 25000;
    TarnDuty[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"*Du darfst diesen Befehl nicht nutzen*");
    }
    }
    if(TarnDuty[playerid] == 1)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    ShowPlayerNameTagForPlayer(playerid, i, true);
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun wieder auf der Karte zu sehen.");
    SetPlayerColor(playerid,COLOR_WHITE);
    TarnDuty[playerid] = 0;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"*Du darfst diesen Befehl nicht nutzen*");
    }
    }
    }


    Ich habe das früher so gemacht aber wenn ich den Befehl eingebe sehe ich denjenigen sein namen nicht..
    könnt ihr mir vlt dabei helfen?

  • Beitrag von Pall. ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Also ich möchte das so haben, ich als Hitman möchte /tarn eingeben und die anderen Spieler sehen meinen namen nicht und sie sehen mich nicht auf der Minimap.


    //Edit


    Pall.: ich hab das doch drinne


    if (strcmp("/tarn", cmdtext, true) == 0)
    {
    if(TarnDuty[playerid] == 0)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, false);
    SendClientMessage(playerid,COLOR_GRAD2,"Das Tarnen kostet dich 25000$");
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun nicht mehr auf der Karte zu sehen.");
    GivePlayerMoney(playerid, -25000);
    SetPlayerColor(playerid,COLOR_HITMAN);
    BizzInfo[6][bTill] += 25000;
    TarnDuty[playerid] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"*Du darfst diesen Befehl nicht nutzen*");
    }
    }

  • if (strcmp("/tarn", cmdtext, true) == 0)
    {
    if(TarnDuty[playerid] == 0)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i,playerid, false);
    SendClientMessage(playerid,COLOR_GRAD2,"Das Tarnen kostet dich 25000$");
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun nicht mehr auf der Karte zu sehen.");
    GivePlayerMoney(playerid, -25000);
    SetPlayerColor(playerid,COLOR_HITMAN);
    BizzInfo[6][bTill] += 25000;
    TarnDuty[playerid] = 1;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"*Du darfst diesen Befehl nicht nutzen*");
    }
    if(TarnDuty[playerid] == 1)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(playerid, i, true);
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun wieder auf der Karte zu sehen.");
    SetPlayerColor(playerid,COLOR_WHITE);
    TarnDuty[playerid] = 0;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"*Du darfst diesen Befehl nicht nutzen*");
    }
    }
    return 1;
    }
    return 1;
    }


    Ich versteh das nicht..

  • return 1;


    Das gehört nicht in die Schleifen. Beides mal raus machen.


    Ebenso müssen die Nachrichten die du innerhalb der Schleifen hast, und das Abziehen des Geldes vor bzw nach die Schleifen (ist egal), da du sonst 500 Nachrichten bekommst.

  • Ja ok aber ich verstehe das nicht kann mir jemand weiterhelfen? vlt das er es anders Scriptet wenn ich dies zu kompliziert gemacht habe..
    Ich möchte nur das sollte man /tarn eingeben das man mich (als hitman ID 8) nicht mehr auf der Minikarte sieht und meinen Nametag nicht mehr sieht..
    Sollte ich dann wieder /tarn eingeben soll ich wieder angezeigt werden.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • if (strcmp("/tarn", cmdtext, true) == 0)
    {
    if(TarnDuty[playerid] == 0)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i,playerid, false);
    SendClientMessage(playerid,COLOR_GRAD2,"Das Tarnen kostet dich 25000$");
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun nicht mehr auf der Karte zu sehen.");
    GivePlayerMoney(playerid, -25000);
    SetPlayerColor(playerid,COLOR_HITMAN);
    BizzInfo[6][bTill] += 25000;
    TarnDuty[playerid] = 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_WHITE,"*Du darfst diesen Befehl nicht nutzen*");
    }
    if(TarnDuty[playerid] == 1)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(playerid, i, true);
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun wieder auf der Karte zu sehen.");
    SetPlayerColor(playerid,COLOR_WHITE);
    TarnDuty[playerid] = 0;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"*Du darfst diesen Befehl nicht nutzen*");
    }
    }
    return 1;
    }
    return 1;
    }


    So dürfte es gehen
    Du darfst in eine Schleife kein "return" klatschen.
    Das unterbricht die schleife


    Die Beste möglichkeit ist diese
    if (strcmp("/tarn", cmdtext, true) == 0)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    if(TarnDuty[playerid] == 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) {ShowPlayerNameTagForPlayer(i,playerid, false);}
    SendClientMessage(playerid,COLOR_GRAD2,"Das Tarnen kostet dich 25000$");
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun nicht mehr auf der Karte zu sehen.");
    GivePlayerMoney(playerid, -25000);
    SetPlayerColor(playerid,COLOR_HITMAN);
    BizzInfo[6][bTill] += 25000;
    TarnDuty[playerid] = 1;
    }
    else if(TarnDuty[playerid] == 1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++){ShowPlayerNameTagForPlayer(playerid, i, true);}
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun wieder auf der Karte zu sehen.");
    SetPlayerColor(playerid,COLOR_WHITE);
    TarnDuty[playerid] = 0;
    }
    }
    else return SendClientMessage(playerid,COLOR_RED,"*Du darfst diesen Befehl nicht nutzen*");
    return 1;
    }


    In der 2 Möglichkeit habe ich die Nachrichten etc aus der Schleife genommen.
    Da durch die Schleife der Text gut 500 mal ausgegeben wird.
    Was bei der 2 ;Möglichkeit nicht passiert.
    Dazu habe ich es dir einfacher und verbessert gescriptet


    Ich hoffe es geht nun

  • for(new i=0; i<MAX_PLAYERS; i++) SetPlayerMarkerForPlayer( i, playerid, ( GetPlayerColor( playerid ) & 0xFFFFFF00 ) );


    Geht allerdings nur, wenn du zuvor SetPlayerColor irgendwann verwendet hast. Falls du bei OnPlayerConnect/OnPlayerSpawn dem Spieler die Farbe gibst passt das, dann hast du keine Probleme.

  • Ich finde die Farbe im Script aber nur hier #define TEAM_HIT_COLOR 0xFFFFFF00
    &nd wo genau muss ich das einfügen das wenn ich /tarn eingebe das man mich nicht mehr auf der Minimap sieht? aber wenn ich dann wieder /tarn eingebe muss man mich wieder sehen..?


    if (strcmp("/tarn", cmdtext, true) == 0)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    if(TarnDuty[playerid] == 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++) {ShowPlayerNameTagForPlayer(i,playerid, false);}
    SendClientMessage(playerid,COLOR_GRAD2,"Das Tarnen kostet dich 25000$");
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun nicht mehr auf der Karte zu sehen.");
    GivePlayerMoney(playerid, -25000);
    SetPlayerColor(playerid,COLOR_HITMAN);
    BizzInfo[6][bTill] += 25000;
    TarnDuty[playerid] = 1;
    }
    else if(TarnDuty[playerid] == 1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++){ShowPlayerNameTagForPlayer(i, playerid, true);}
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun wieder auf der Karte zu sehen.");
    SetPlayerColor(playerid,COLOR_HITMAN);
    TarnDuty[playerid] = 0;
    }
    }
    else return SendClientMessage(playerid,COLOR_RED,"*Du darfst diesen Befehl nicht nutzen*");
    return 1;
    }

  • if (strcmp("/tarn", cmdtext, true) == 0)
    {
    if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    if(TarnDuty[playerid] == 0)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i,playerid, false);
    SetPlayerMarkerForPlayer( i, playerid, ( GetPlayerColor( playerid ) & 0xFFFFFF00 ) );
    }
    SendClientMessage(playerid,COLOR_GRAD2,"Das Tarnen kostet dich 25000$");
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun nicht mehr auf der Karte zu sehen.");
    GivePlayerMoney(playerid, -25000);
    BizzInfo[6][bTill] += 25000;
    TarnDuty[playerid] = 1;
    }
    else if(TarnDuty[playerid] == 1)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    ShowPlayerNameTagForPlayer(i, playerid, true);
    SetPlayerMarkerForPlayer( i, playerid, GetPlayerColor( playerid ) );
    }
    SendClientMessage(playerid,COLOR_GRAD2,"Du bist nun wieder auf der Karte zu sehen.");
    TarnDuty[playerid] = 0;
    }
    }
    else return SendClientMessage(playerid,COLOR_RED,"*Du darfst diesen Befehl nicht nutzen*");
    return 1;
    }


    So sollte es klappen.

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