Beiträge von Mystogan


    lösch die zeile 19031
    und den rest kp.
    gib mal den Public oder Command oder was du da hast


    gib mal die zeilen

    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }
    unten im script

    public PingTest()
    {

    for(new i= 0; i < GetMaxPlayers(); i++)
    {
    if(GetPlayerPing(i) >= 400)
    {
    new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
    GetPlayerName(i, name, sizeof(name));
    PingWarnung[i] ++;
    format(string,sizeof(string),"%s hast ein Warn bekommen. Grund: Hoher Ping(Über 400). ", name);
    SendClientMessageToAll(COLOR_YELLOW,string);
    }
    if(PingWarnung[i] > 3)
    {
    new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
    GetPlayerName(i, name, sizeof(name));
    format(string,sizeof(string),"%s hast einen Kick bekommen. Grund: Hoher Ping(Über 400).[Zum 3. Mal] ", name);
    SendClientMessageToAll(COLOR_YELLOW,string);
    Kick(i);
    }
    }
    return 1;
    }
    versuchs mal so

    Hallo Leute,
    Ich wollte mal meine Referenzen etwas erhöhen ^^
    deswegen zeig ich euch mal wie man einen Ping Tester macht,
    es ist kein großes System, jedoch hilfreich und ja es ist ein Schnippsel ^^


    Was ihr braucht:
    - 2-7 Minuten Zeit
    - eig. nicht mehr.


    Fangen wir an
    Achso, davor noch es gibt 2 Möglich keiten,
    einmal mit Warnungen und einmal Ohne.
    Machen wir erstmal mit Warnungen


    Als Erstes erstellen wir ein New , bzw. die Warnings.
    new PingWarnung[MAX_PLAYERS];
    Ihr könnt es auch natürlich anders nennen. die Max Player bedeutet eig. nur das es immer erhöh bar ist.


    als nähstes erstellen wir den Timer.
    forward PingTest();
    Somit sagen wir dem Script, das wir in diesem Fall nen Timer haben wollen ^^
    public PingTest()
    Das ist dann der Timer
    Wir erstellen nun eine Schleife, und fragen somit alle User ab...
    for(new i= 0; i < GetMaxPlayers(); i++)
    anschließend die Ping Abfrage mit
    if(GetPlayerPing(i) >= 400)
    InDiesem Fall fragt man ab ob der Spieler mehr als 400 Ping hat, wenn er das hat, wollen wir ne Nachricht und ne WarnungPunkt geben. das machen wir mit
    new string[64];
    format(string,sizeof(string),"%s hast ein Warn bekommen. Grund: Hoher Ping(Über 400). ",/*Namen Abfragung*/);
    SendClientMessageToAll(EURE FARBE, string);
    Dan geben wir ihm noch nen WarnungPunkt mit
    PingWarnung[i] ++;
    Dann abfragen ob er schon 3 Warnings oder mehr schon hat mit
    if(PingWarnung[i] > 3)
    Dan kicken wir ihm mit
    Kick(i);
    wenn ihr wollt könnt ihr noch ne nachricht schreiben aber ich machs diesmal nicht ^^
    Jetzt fügen wir den Timer noch unter OnGameModeInit ein
    SetTimer("PingTest",2000,true);
    Damit wird es alle 2 Sekunden abgefragt[10 Sekunden wären auch gut ^^ aber 2-5 wären optimal



    das wars dan auch mit der 1 Methode


    Jetzt kommen wir zur 2x
    Das gleiche nur das wir im Timer Public das
    if(PingWarnung[i] > 3)
    ganz auslassen
    und bei if(GetPlayerPing(i) >= 400)
    den kick einbauen
    ____________________-
    Hier mal im Ganzen für die die es nicht verstanden haben ^^


    Mothode 1.

    new PingWarnung[MAX_PLAYERS]; // Oben Im Script
    forward PingTest(); // oben im Script
    SetTimer("PingTest", 2000,true); // Unter OnGamemode Init


    //Unten Im Script
    public PingTest()
    {

    for(new i= 0; i < GetMaxPlayers(); i++)
    {
    if(GetPlayerPing(i) >= 400)
    {
    new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
    GetPlayerName(i, name, sizeof(name));
    PingWarnung[i] ++;
    format(string,sizeof(string),"%s hast ein Warn bekommen. Grund: Hoher Ping(Über 400). ", name);
    SendClientMessageToAll(COLOR_YELLOW,string);
    }
    if(PingWarnung[i] > 3)
    {
    new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
    GetPlayerName(i, name, sizeof(name));
    format(string,sizeof(string),"%s hast einen Kick bekommen. Grund: Hoher Ping(Über 400).[Zum 3. Mal] ", name);
    SendClientMessageToAll(COLOR_YELLOW,string);
    Kick(i);
    }
    }
    return 1;
    }


    Mothode 2.

    forward PingTest(); // oben im Script
    SetTimer("PingTest", 2000,true); // Unter OnGamemode Init


    //Unten Im Script
    public PingTest()
    {

    for(new i= 0; i < GetMaxPlayers(); i++)
    {
    if(GetPlayerPing(i) >= 400)
    {
    new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
    GetPlayerName(i, name, sizeof(name));
    PingWarnung[i] ++;
    format(string,sizeof(string),"%s hast ein Warn bekommen. Grund: Hoher Ping(Über 400). ", name);
    SendClientMessageToAll(COLOR_YELLOW,string);
    }
    }
    return 1;
    }


    Oder Bei OnPlayerUpdate
    for(new i= 0; i < GetMaxPlayers(); i++)
    {
    if(GetPlayerPing(i) >= 400)
    {
    new name[MAX_PLAYER_NAME], string[24+MAX_PLAYER_NAME];
    GetPlayerName(i, name, sizeof(name));
    PingWarnung[i] ++;
    format(string,sizeof(string),"%s hast ein Warn bekommen. Grund: Hoher Ping(Über 400). ", name);
    SendClientMessageToAll(COLOR_YELLOW,string);
    }
    }


    ____
    Wenn ich etwas Falsch hab bitte sagen:D


    p.s
    das ist jetzt zum großteil freihand und ich bin müde, also garantie net garantiert :D