Beiträge von Weihnachtsmann

    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;
    }

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


    und nach dem Hit kann er sofort /exit eingeben obwohl ich die Zeit auf 5000 gestellt habe
    if (gettime() - exitHitTime[playerid] > 5000) {
    return SendClientMessage(playerid,-1, "Du darfst nicht raus");


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

    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

    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

    Variable für den Spieler erstellen und bei dem Befehl abfragen, und bei dem Timer nach den 3 sek die Variable wieder auf 0 setzen.


    Mit welchem Public? da ich wissen will wann er angeschossen wird

    public OnPlayerText(playerid, text[]) { new string[128]; switch(SpielerInfo[playerid][pAdmin]) { case 1:format(string, 128,"{E600FF}(( {FFFFFF}%s %s: %s {E600FF}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text); case 2:format(string, 128,"{19CF00}(( {FFFFFF}%s %s: %s {19CF00}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text); case 3:format(string, 128,"{0085FF}(( {FFFFFF}%s %s: %s {0085FF}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text); case 4:format(string, 128,"{E1FF00}(( {FFFFFF}%s %s: %s {E1FF00}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text); default:format(string, 128,"(( %s: %s ))",PlayerName(playerid),text);//wenn er unter 1 ist und über 4 } SendClientMessageToAll(-1,string); return 0; }


    Danke <3,
    Ein Problem noch, er sendet zwar den Text etc aber davor steht nicht der Rangname bzw. die Farbe der Klammern? es ist ienfach alles weiß

    Ich wollte es so machen, das bestimmt ränge andere Farben haben, aber er sendet keinen Text?



    public OnPlayerText(playerid, text[])
    {
    new string[128];
    if(SpielerInfo[playerid][pAdmin] == 0)
    {
    format(string, 128,"(( %s: %s ))",PlayerName(playerid),text);
    SendClientMessageToAll(-1,string);
    }
    else if(SpielerInfo[playerid][pAdmin] == 1)
    {
    format(string, 128,"{E600FF}(( {FFFFFF}%s %s: %s {E600FF}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text);
    SendClientMessageToAll(-1,string);
    }
    else if(SpielerInfo[playerid][pAdmin] == 2)
    {
    format(string, 128,"{19CF00}(( {FFFFFF}%s %s: %s {19CF00}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text);
    SendClientMessageToAll(-1,string);
    }
    else if(SpielerInfo[playerid][pAdmin] == 3)
    {
    format(string, 128,"{0085FF}(( {FFFFFF}%s %s: %s {0085FF}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text);
    SendClientMessageToAll(-1,string);
    }
    else if(SpielerInfo[playerid][pAdmin] == 4)
    {
    format(string, 128,"{E1FF00}(( {FFFFFF}%s %s: %s {E1FF00}))",Adminrang[SpielerInfo[playerid][pAdmin]],PlayerName(playerid),text);
    SendClientMessageToAll(-1,string);
    }
    return 0;
    }

    Wie würde das gehen wenn ich mehrere Teams und Gebiete haben, und man ein Gebiet mit /invade oder so angreifen kann, genau das Gebiet angegriffen wird und blickt? :S