Peršokti prie turinio


Nuotrauka

Anti-Ping sistema


  • Please log in to reply
5 atsakymai į šią temą

#1 Jonas13

Jonas13

    Pawno.LT Savininkas

  • Administratorius
  • 51 Pranešimai
  • Praleido laiko: 2d 13h 21m 3s

Narių medaliai

     

15 May 2016 - 06:19 PM

Sveiki, kadangi senas narys, seno administratoriaus buvo ištrintos jo visos pamokos aš pasidalinsiu savomis, o jo temos bus ištrintos.

Šiandien pristatysiu anti ping sistemą.

Susikurkime taimer'io forwardą, jį galite prisirašyti prie kitų forward.

forward AntiPingas();

Tada susirandame callback'ą OnGameModeInit() ir po juo sukuriame taimer'į

SetTimer("AntiPingas",5000,true); // Karojame kas 10s

Paaiškinimai:

SetTimer - Funkcija kuriame galime pradėti taimer'io skaičiavimą
"AntiPingas" - Pavadinimas taimer'io funkcijos kurią naudosime kurdami sistemą
10000 - Laikas kas kiek laiko kartos taimer'io funkciją, šiuo atveju kas 10s. Kadangi sa-mp'e viskas skaičiuojama milisekundėmis turime prirašyti 3 nulius prie skaičiaus.
true - Tai reiškia, kad kartos taimer'is visą laiką.

Dabar eikime prie savo funkcijų arba į gamemode galą.

public AntiPingas()
{
    for(new p; p < MAX_PLAYERS; p++) 
    {
        if(GetPlayerPing(p) >= 500) // 500 pasikeičiame į savo tai yra maksimalus pingas
        {
            new vardas[64]; // Kintamasis kurį panaudosime išgaunant vardą(vardo ilgis max 64 simboliai)
            GetPlayerName(p, vardas, sizeof(vardas)); // išgauname vardą ir panaudojame kintamajį vardas
            new tekstas[200]; // Sukuriame kintamajį kuriuo vaizduosime tekstą
            format(tekstas, sizeof(tekstas), "[Serveris] Žaidėjas %s buvo išmestas iš žaidimo už pernelyg didelį ping(500)", pName); // formatuojame žinutė kurią siūsime serverio žaidėjams kurie prisijungė
            SendClientMessageToAll(-1, tekstas); //Siunčiame tekstą -1 tai spalva, o tekstas kintamasis kurį formatavome
            Kick(p); // Išmetame žaidėją
        }
    }
    return 1;
}
 

Iškilus klausimams arba jeigu išmes klaidas rašykite į temą.

Laiko neturėjau ištestuoti


  • 1

#2 Nattive

Nattive

    Forumo Narys (-ė)

  • Moderatorius
  • 148 Pranešimai
  • Praleido laiko: 2d 4h 25m 48s

15 May 2016 - 06:45 PM

Labai gera pamoka, viskas su paaiškinimais kaip ir turi būti. Naujokam pravers.


  • 0
Paveiksliukas

#3 king.

king.
  • Praleido laiko: 1h 28m 41s

26 May 2016 - 01:30 PM

Šauni pamoka !


  • 0

#4 MantasPwn

MantasPwn

    Patyręs narys

  • Moderatorius
  • 410 Pranešimai
  • LocationAlytus
  • Praleido laiko: 4d 8h 50m 54s

Narių medaliai

           

31 May 2016 - 02:49 PM

Šauni pamoka, bet radau klaidą. Naujokai gali nesuprasti "SetTimer("AntiPingas",5000,true); // Karojame kas 10s"  5000 nėra 10 sekundžių, o 5 sekundės.


  • 0

Mano pasiekimai:


[ × ] Pawno.lt forumo moderatorius (2016.04.10 - x)


#5 LukasP

LukasP

    Patyręs narys

  • Narys
  • 147 Pranešimai
  • LocationPAwno
  • Praleido laiko: 1d 1h 45m

31 May 2016 - 08:35 PM

Šauni pamoka, bet radau klaidą. Naujokai gali nesuprasti "SetTimer("AntiPingas",5000,true); // Karojame kas 10s"  5000 nėra 10 sekundžių, o 5 sekundės.

Lengvai pakeisti :) nieko čia tokio


  • 0

Paslaugas teikių tik ripinimo nebe !


#6 MantasPwn

MantasPwn

    Patyręs narys

  • Moderatorius
  • 410 Pranešimai
  • LocationAlytus
  • Praleido laiko: 4d 8h 50m 54s

Narių medaliai

           

31 May 2016 - 09:07 PM

Lengvai pakeisti :) nieko čia tokio

Lengva, bet naujokai gali susipainioti nes tai milisekundemis parašyta, ir baik free postinti nes bereikšmis tavo pranešimas


  • 0

Mano pasiekimai:


[ × ] Pawno.lt forumo moderatorius (2016.04.10 - x)





1 vartotojai(-ų) skaito šią temą

0 nariai(-ių), 0 svečiai(-ių) ir 0 slapti(-ų) nariai(-ių)


    Alexa (1)
Redagavimas : #Nobody
Visos teisės saugomos © pawno.lt