/Rob Problem

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
  • Hey,


    Wenn ich /Rob eingebe wird die Nachricht das die Bank ausgeraubt wird immer an die Cops gesendet, auch wenn da steht "Die Bank wurde bereits überfallen" und es ist egal ob 3 Cops on sind oder nicht man kann die Bank trozdem ausrauben.
    Wie kann Ich das Verhindern?


    if(strcmp(cmd, "/rob", true) == 0 || strcmp(cmd, "/ausrauben", true) == 0)
    {
    if(IsACop(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Da du als Cop versucht hast die Bank auszurauben wurde die Nachricht an die Admins geschickt.");
    if(!IsPlayerInRangeOfPoint(playerid,3.0,2155.1436,1623.8749,993.6882))
    {
    SendClientMessage(playerid,0xAA3333AA,"Du bist nicht im Tresorraum der Bank!");
    return 1;
    }
    new Cops = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 3 || PlayerInfo[i][pMember] == 3)
    {
    Cops += 3;
    }
    }
    }


    if(Cops < 3)
    {
    SendClientMessage(playerid, COLOR_GREY, "Zurzeit sind keine Cops da & alles verriegelt!");
    return 1;
    }
    if(rob == 1)
    {
    SendClientMessage(playerid,0xAA3333AA,"Die Bank wurde gerade erst überfallen!");
    return 1;
    }
    //FreezePlayer(playerid);
    rob = 1;
    SetTimer("Rob_Reset",1000*60*60,0); // Nach 60 Minuten erst wieder ausrauben
    SetTimerEx("Rob_UnFreeze",120000,0,"i",playerid); // Nach 2 minuten Bank überfallen
    OnPlayerCommandText(playerid,"/S Hände hoch das ist ein Überfall!!!");
    SendClientMessage(playerid,0xFF9933FF,"Du willst die Bank überfallen und musst warten bis das Geld eingepackt ist!");
    SendClientMessage(playerid,0xFF9933FF,"Verlasse vorher nicht die Bank!");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"HQ: Achtung Alle Einheiten! Eine Meldung vom Bank Security System!");
    SendClientMessage(i,COLOR_RED,"HQ: Verbrechen: Banküberfall, Gesuchter: Unbekannt");
    SendClientMessage(i,COLOR_RED,"HQ: Begeben sie sich sofort zur Los Santos Bank!");
    }
    }
    }
    return 1;
    }

  • Nimm eine Variable, ob die Bankausgeraubt wurde, diese fragst du dann beim /rob Befehl ab, ob diese zb auf 1 steht. Dann starte einen Timer oder binde es in einem vorherigen Timer ein um die Variable nach einer gewissen Zeit wieder auf 0 zu stellen, quasi, dass die Bank wieder ausgeraubt werden kann.

  • Mach So

    if(strcmp(cmd, "/rob", true) == 0 || strcmp(cmd, "/ausrauben", true) == 0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,3.0,2141.8535,1637.0011,993.5761))
    {
    SendClientMessage(playerid,0xAA3333AA,"Du bist nicht im Tresorraum der Bank!");
    return 1;
    }
    new Cops = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 3 || PlayerInfo[i][pMember] == 3)
    {
    Cops += 3;
    }
    }
    }


    if(Cops < 3)
    {
    SendClientMessage(playerid, COLOR_GREY, "Wenn keine Cops online sind, ist kein Geld im Tressor!");
    return 1;
    }
    if(rob == 1)
    {
    SendClientMessage(playerid,0xAA3333AA,"Die Bank wurde gerade erst überfallen!");
    return 1;
    }
    //FreezePlayer(playerid);
    rob = 1;
    SetTimer("Rob_Reset",1800000,0); // Nach 60 Minuten erst wieder ausrauben
    SetTimerEx("Rob_UnFreeze",100000,0,"i",playerid); // Nach 2 minuten Bank überfallen
    OnPlayerCommandText(playerid,"/S Dies ist ein Überfall!! ");
    OnPlayerCommandText(playerid,"/S Auf den Boden Legen und Hände an den Kopf!!");
    SendClientMessage(playerid,0xFF2800FF,"Der Bankangestellte, Packt das Geld ein, warte bis er fertig ist!!");
    SendClientMessage(playerid,0xFF2800FF,"Verlasse vorher nicht die Bank, sonst gibts kein Geld aber Wanteds!");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i))
    {
    SendClientMessage(i,COLOR_RED,"HQ: Achtung Alle Einheiten! Eine Meldung vom Bank Security System!");
    SendClientMessage(i,COLOR_RED,"HQ: Verbrechen: Banküberfall, Gesuchter: Unbekannt");
    SendClientMessage(i,COLOR_RED,"HQ: Begeben sie sich sofort zur Los Santos Bank!");
    }
    }
    }
    return 1;
    }


  • new Cops = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 3 || PlayerInfo[i][pMember] == 3)
    {
    Cops += 3; // Es wird sogar nur ein Cop benötigt wg deinem Script^^
    }
    }
    }