Nach nem Hit kein /exit

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
  • Zitat

    Ja natürlich.


    klappt net :S


    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid){
    new string[128];
    if(issuerid == INVALID_PLAYER_ID || playerid == INVALID_PLAYER_ID) return 1;
    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    format(string,sizeof(string)," -%.0f von %s",amount,PlayerName(issuerid));
    SetPlayerChatBubble(playerid, string, GRÜN, 70.0, 1000*3);
    SetTimerEx("AntiExit", 2500, false, "i", playerid);
    AntiExit[playerid] = 1;

    return 1;
    }

    forward AntiExits (playerid);
    public AntiExits (playerid)
    {
    AntiExit[playerid] = 0;
    return 1;
    }



    ocmd:l(playerid,params[])
    {
    if(AntiExit[playerid] == 1)return SendClientMessage(playerid,-1,"Du kannst er nacht 2.5sek wieder eine Arena verlassen durch den Hit");
    if(Map[playerid] == 1)
    {
    if(dm[0][playerid] == 1)
    {
    if(dmcount[0] > 0)
    {
    dmcount[0] --;
    }
    }
    if(dm[1][playerid] == 1)
    {
    if(dmcount[1] > 0)
    {
    dmcount[1] --;
    }
    }
    if(dm[2][playerid] == 1)
    {
    if(dmcount[2] > 0)
    {
    dmcount[2] --;
    }
    }
    for(new i; i != 3; ++i)dm[i][playerid]=0;
    SendClientMessage(playerid,GRÜN,"[INFO] Du hast die Arena verlassen");
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerHealth(playerid,100);
    Map[playerid] = 0;
    CBug = 0;
    SpawnPlayer(playerid);
    }
    return 1;
    }

  • Zitat

    SetTimerEx("AntiExit", 2500, false, "i", playerid);
    zu
    SetTimerEx("AntiExit", 2500, false, "i", issuerid);
    Weil der getroffene ja nach 2,5sec erst /exit machen darf. Nicht der, der geschossen hat.


    Funktioniert nicht beim /l Befehl kommt einfach man kann nicht 2.5sek verlassen

  • new exitHitTime[MAX_PLAYERS];
    public OnPlayerTakeDamage(...) {
    exitHitTime[playerid] = gettime();
    }


    // beim exit befehl:
    if (gettime() - exitHitTime[playerid] > ZeitInSekunden) {
    return SendClientMessage(..., "Du darfst nicht raus");
    }
    // hier käme der normale exit


    Bittesehr, gute Nacht.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'


  • Klappt i.wie net erst nach dem anschiessen kann man raus, davor steht das man nicht raus kann.

  • Dann häng an das exitHitTime[MAX_PLAERS] ein =0
    Oder setze die variable beim connect auf 0


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Zeig mal bitte komplett alles, was mit dem Befehl zu tun hat.


    new exitHitTime[MAX_PLAYERS]=0;


    public OnPlayerConnect(playerid)
    {
    exitHitTime[playerid] = 0;



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid){
    new string[128];
    if(issuerid == INVALID_PLAYER_ID || playerid == INVALID_PLAYER_ID) return 1;
    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    format(string,sizeof(string)," -%.0f von %s",amount,PlayerName(issuerid));
    SetPlayerChatBubble(playerid, string, GRÜN, 70.0, 1000*3);
    exitHitTime[playerid] = gettime();

    return 1;
    }



    ocmd:l(playerid,params[])
    {
    if (gettime() - exitHitTime[playerid] > 5000) {
    return SendClientMessage(playerid,-1, "Du darfst nicht raus");
    }
    if(Map[playerid] == 1)
    {
    if(dm[0][playerid] == 1)
    {
    if(dmcount[0] > 0)
    {
    dmcount[0] --;
    }
    }
    if(dm[1][playerid] == 1)
    {
    if(dmcount[1] > 0)
    {
    dmcount[1] --;
    }
    }
    if(dm[2][playerid] == 1)
    {
    if(dmcount[2] > 0)
    {
    dmcount[2] --;
    }
    }
    for(new i; i != 3; ++i)dm[i][playerid]=0;
    SendClientMessage(playerid,GRÜN,"[INFO] Du hast die Arena verlassen");
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerHealth(playerid,100);
    Map[playerid] = 0;
    CBug = 0;
    SpawnPlayer(playerid);
    }
    return 1;
    }