19.10.2015, 22:00
Testowałeś to przy większej ilości graczy? Powinieneś zrobić ze zmiennej pingWarn tablicę z indeksem id gracza ponieważ, skrypt będzie dawał ostrzeżenia globalnie dla każdego. Tutaj masz taki przykład, nie testowałem ale idee zrozumiesz.
Squirrel Script
- local Player = {};
-
- function initPlayerStructures()
- {
- for(local i = 0; i < getMaxSlots(); ++i)
- {
- Player[i] <- {};
- Player[i].pingWarn = 0;
- }
- }
-
- function clearPlayerStructure(pid)
- {
- Player[pid].pingWarn = 0;
- }
-
- function onInit()
- {
- initPlayerStructures();
-
- setServerWorld("NEWWORLD\\NEWWORLD.ZEN"); // ustawiamy graczu khorinis
- setTimer(playerUpdate, 1000, true); //TWORZYMY TIMERA
- print("Anty ping by Dejv został załadowany.");
- }
-
- function onDisconnect(pid, reason)
- {
- clearPlayerStructure(pid);
- }
-
- function playerUpdate( )
- {
- for(local i = 0; i < getMaxSlots(); i++)
- {
- if (isConnected (i))
- {
- local ping = getPlayerPing(i); //Pobieramy ping gracza
- if(ping >= 700) //Ustawimy sobie na 700 mingu.
- {
- Player[i].pingWarn++;
- switch(Player[i].pingWarn)
- {
- case 1:
- case 2:
- case 3:
- sendMessageClient( i, "FF0000", "Masz zbyt wysoki ping. Aby grać na naszym serwerze, zmniejsz ping! ("+ ping +"/700) " );
- break;
- case 4:
- sendMessageClientAll( "FF0000", ""+ getPlayerName(i) +" został(a) wyrzucony z serwera z powodu zbyt dużego pingu. ("+ ping +"/700) " );
- kick(i);
- break;
- }
- }
- else
- Player[i].pingWarn = 0;
- }
- }
- }