timer in befehl geht 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
  • hallo an alle die dies lesen
    Ich möchte gerne in den befehl "/einhacken" einen timer drine haben.
    leider ist es momentan so:
    wenn man sich die wanteds versucht wegzuhacken, und man schafft es nicht, kann man es gleich noch mal probieren.


    ich möchte es aber gerne so:
    wenn man den befehl /einhacken benutzt, dass man diesen befehl erst in 15 Minuten wieder benutzen kann.


    hier die pwn:
    if(strcmp(cmd, "/einhacken", true) == 0)
    {
    if(PlayerCuffed[playerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst ohne Hände nicht Hacken!");
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 596 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 597)
    {
    new cops;
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    if(IsPlayerConnected(p))
    {
    if(IsACop(p) && OnDuty[p])
    {
    cops ++;
    }
    }
    }
    if(cops < 2)
    {
    SendClientMessage(playerid, COLOR_GREY, "Zum Hacken müssen genügend Cop´s Online sein!");
    return 1;
    }
    SendClientMessage(playerid, COLOR_ALLDEPT, "Du hast dich Erfolgreich in den Polizeicomputer eingehackt.");
    TogglePlayerControllable(playerid,0);
    PlayerHacked[playerid] = 1;
    SetTimerEx("hack", 36000, 0, "d", playerid);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInFrac(i, 1) || IsPlayerInFrac(i, 2) || IsPlayerInFrac(i, 3) || IsPlayerInFrac(i, 22))
    {
    SendClientMessage(i, TEAM_BLUE_COLOR, "HQ: VORSICHT unerlaubter Zugriff auf einen Polizeicomputer!");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du musst dafür in einem LSPD-Fahrzeug sitzen!");
    return 1;
    }
    return 1;
    }


    public hack(playerid)
    {
    new string[256];
    if(IsPlayerConnected(playerid))
    {
    new rand = random(3);
    if(rand == 0 || rand == 2)
    {
    format(string,sizeof(string), "* Du bist soeben erfolgreich in den Polizeicomputer eingedrungen. Deine Wanteds hast du aus dem System entfernt.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    WantedLevel[playerid] = 0;
    PlayerHacked[playerid] = 0;
    ClearCrime(playerid);
    SetPlayerWantedLevel(playerid,0);
    TogglePlayerControllable(playerid, 1);
    // UnFreezePlayer(playerid);
    SendRadioMessage(1, TEAM_BLUE_COLOR, "HQ: Jemand hat sich soeben erfolgreich in den Polizeicomputer gehackt und seine Wanteds aus dem System entfernt!");
    }
    else
    {
    format(string,sizeof(string), "* Du bist soeben ertappt worden. Deine Wanteds wurden erhöht.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    WantedLevel[playerid] += 3;
    PlayerHacked[playerid] = 0;
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    TogglePlayerControllable(playerid, 1);
    //UnFreezePlayer(playerid);
    format(string, sizeof(string), "HQ: %s hat soeben versucht sich in den Polizeicomputer einzuhacken. Seine Wanteds wurden erhöht.", sendername);
    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    return 1;
    }


    Ich hoffe das die Infos ausreichen um mir helfen zu können.


    Danke schon mal in vorraus an alle die mir versuchen zu helfen



    mfg

  • Benutz Variablen...


    ganz oben einfach new eingehackt=0;
    und im public hack ganz oben abfragen
    if(eingehackt==1)return SendClientMessage(playerid,-1,"Du kannst dies erst nach 15 minuten wieder tun!");
    und natürlich nicht vergessen davor die variable auf 1 zu setzen und sobald der timer zu ende ist wieder auf 0! :thumbup:

  • PawnStar: Das ist Käse was du da gepostet hast. Das wird nicht funktionieren, sobald ein Spieler den Befehl nutzt kann ihn keiner mehr benutzen.


    if(strcmp(cmd, "/einhacken", true) == 0)
    {
    if(PlayerCuffed[playerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst ohne Hände nicht Hacken!");
    return 1;
    }
    if(PlayerHackedTime[playerid]+(15*60) > gettime()) // 15*60 = 15min
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst nur alle 15 Minuten Hacken!");
    return 1;
    }
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 596 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 597)
    {
    new cops;
    for(new p = 0; p < MAX_PLAYERS; p++)
    {
    if(IsPlayerConnected(p))
    {
    if(IsACop(p) && OnDuty[p])
    {
    cops ++;
    }
    }
    }
    if(cops < 2)
    {
    SendClientMessage(playerid, COLOR_GREY, "Zum Hacken müssen genügend Cop´s Online sein!");
    return 1;
    }
    SendClientMessage(playerid, COLOR_ALLDEPT, "Du hast dich Erfolgreich in den Polizeicomputer eingehackt.");
    TogglePlayerControllable(playerid,0);
    PlayerHacked[playerid] = 1;
    PlayerHackedTime[playerid] = gettime(); //Zeit speichern
    SetTimerEx("hack", 36000, 0, "d", playerid);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInFrac(i, 1) || IsPlayerInFrac(i, 2) || IsPlayerInFrac(i, 3) || IsPlayerInFrac(i, 22))
    {
    SendClientMessage(i, TEAM_BLUE_COLOR, "HQ: VORSICHT unerlaubter Zugriff auf einen Polizeicomputer!");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du musst dafür in einem LSPD-Fahrzeug sitzen!");
    return 1;
    }
    return 1;
    }


    Unter die Includes:
    new PlayerHackedTime[MAX_PLAYERS];


    OnPlayerConnect:
    PlayerHackedTime[playerid] = 0;