Oggi è 14/08/2022, 11:32

Tutti gli orari sono UTC + 1 ora [ ora legale ]





 Pagina 1 di 2 [ 29 messaggi ] 

Vai alla pagina :: 1, 2  Prossima »
  Apri un nuovo argomento Rispondi all’argomento

  Stampa pagina

Autore Messaggio
 Oggetto del messaggio: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 0:11 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Bene in questa guida spiegherò come creare un semplicissimo Anti HighPing quindi uno script che permetta di far eseguire un'azione scelta da voi sul player che ha il ping più alto del limite (Sempre scelto da voi).

Iniziamo!

Per prima cosa, in cima, creiamo le variabili che ci faranno riconoscere: 1.Il limite di ping - 2.I massimi avvisi di ping - 3.Avvisi che ha ricevuto ogni player. Quindi inseriamo:
Codice:
new
   maxPing = 500,
   maxAvvisiPing = 3,
   avvisiPingRicevuti[MAX_PLAYERS];

Cambiando 500 con il limite di ping e 3 con i massimi avvisi di eccesso ping

Sotto l'OnPlayerConnect mettiamo:
Codice:
avvisiPingRicevuti[playerid] = 0;

Così setteremo che, alla connessione, non si è ricevuto neanche un avviso

Adesso creiamo il vero e proprio "Anti HighPing". Sotto l'OnPlayerUpdate mettiamo:
Codice:
if(GetPlayerPing(playerid) >= maxPing && GetPlayerPing(playerid) != 65535) OnPlayerHaveHighPing(playerid);

Che ci servirà per capire se il ping del playerid che si aggiorna è maggiore o uguale al limite di ping. Se sarà così verrà richiamata la funzione OnPlayerHaveHighPing ((Scusate per il nome ma non sapevo che metterci :asd:)) che adesso creeremo.

Per finire, fuori da tutto, inseriamo questa funzione con la quale decideremo cosa fare quando un player viene avvisato di ping alto:
Codice:
OnPlayerHaveHighPing(playerid)
{
   avvisiPingRicevuti[playerid]++;
   if(avvisiPingRicevuti[playerid] < maxAvvisiPing)
   {
       //Qui mettere le funzioni che devono avvenire se gli avvisi di ping alto sono minori del massimo degli avvisi di ping
   }
   else
   {
       //Qui mettere le funzioni che devono avvenire se gli avvisi di ping alto sono maggiori del massimo degli avvisi di ping
   }
   return 1;
}

Ricordate che sotto il primo if dovrete mettere le funzioni che dovranno avvenire se gli avvisi di ping sono minori dei massimi avvisi e sotto l'else le funzioni che dovranno avvenire se gli avvisi di ping sono maggiori dei massimi avvisi.
Quindi dovrete decidere voi cosa fare!

Per finire, potete anche creare dei comandi (riservati agli admins) che permettano di: 1.Modificare il limite del ping - 2.Modificare il limite degli avvisi - 3.Resettare gli avvisi di un player
Dato che già li ho creati io, potrete direttamente usarli. Ma ricordo che per questi comandi serve lo strtok.
Codice:
//Sotto OnPlayerCommandText
if(!strcmp(cmd, "/setmaxping", true))
{
   if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xF60000AA, "[ERRORE:] Devi essere Admin.");
   new
      tmp[256],
      newMaxPing = strval(tmp),
      pName[24],
      string[128];
   if(!strlen(tmp)) return SendClientMessage(playerid, 0xF6D500AA, "[USO:] /setmaxping [Nuovo limite ping]");
   GetPlayerName(playerid, pName, 24);
   format(string, 128, "[AVVISO:] L'Admin %s ha cambiato il limite di ping da %d a %d.", pName, maxPing, newMaxPing);
   SendClientMessageToAll(0xF66200AA, string);
   maxPing = newMaxPing;
   return 1;
}

if(!strcmp(cmd, "/setmaxpingwarns", true))
{
   if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xF60000AA, "[ERRORE:] Devi essere Admin.");
   new
      tmp[256],
      newMaxAvvisiPing = strval(tmp),
      pName[24],
      string[128];
   if(!strlen(tmp)) return SendClientMessage(playerid, 0xF6D500AA, "[USO:] /setmaxpingwarns [Nuovo limite avvisi ping]");
   GetPlayerName(playerid, pName, 24);
   format(string, 128, "[AVVISO:] L'Admin %s ha cambiato il limite di avvisi ping da %d a %d.", pName, maxAvvisiPing, newMaxAvvisiPing);
   SendClientMessageToAll(0xF66200AA, string);
   maxAvvisiPing = newMaxAvvisiPing;
   return 1;
}

if(!strcmp(cmd, "/resetpingwarns", true))
{
   if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xF60000AA, "[ERRORE:] Devi essere Admin.");
   new
      tmp[256],
      id = strval(tmp),
      pName[24],
      idName[24],
      string[128];
   if(!strlen(tmp)) return SendClientMessage(playerid, 0xF6D500AA, "[USO:] /resetpingwatns [PlayerID]");
   GetPlayerName(playerid, pName, 24);
   GetPlayerName(id, idName, 24);
   format(string, 128, "[AVVISO:] L'Admin %s ha resettato gli avvisi ping a [%d] %s.", pName, id, idName);
   SendClientMessageToAll(0xF66200AA, string);
   return 1;
}


Spero che la guida sia stata utile, specialmente ai novellini. Commentate e se avete dubbi/problemi o altro, beh... postate ^^

Gentilmente non copiate la guida senza inserire i crediti!


Ultima modifica di Peppinux AKA Peppe_Stasu il 07/11/2010, 14:00, modificato 1 volta in totale.

Top
 E-mail  
 

 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 0:16 
Utente

Iscritto il: 06/11/2010
Messaggi: 114
Xfire: revolution96

Karma
0


Non connesso
Ottimo lavoro.. anche se meglio non usare l'OnPlayerUpdate sinnò ti kicka subito essendo chiamato ogni 40ms..


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 1:06 
Avatar utente
Utente

Iscritto il: 31/10/2010
Messaggi: 901
Località: Universo - Via Lattea - Sistema Solare - Pianeta Terra - Europa - Italia - Sicilia - Grammichele(CT)
Favourite GTA: San Andreas
Xfire: Privato

Karma
2


Non connesso
Semplice ma utile :D

_________________
Immagine


I Miei Filterscript Per Sa-Mp

Rampone System By me and Mik_Teck
Autovelox System By me and Mik_Teck
Metro System By me
pLaserPointer By me

Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 3:34 
Avatar utente
Utente

Iscritto il: 05/11/2010
Messaggi: 35
Località: Udine
Favourite GTA: San Andreas
Xfire: gabber941

Karma
0


Non connesso
Questi 2 valori "maxPing,maxAvvisiPing" si sta di meno a definirli in cima alla GM, meno casino per modificarli e non serve mettere niente nel "OnGameModeInit"..

_________________
Prova Video ._.



Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 10:32 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
@Revo: Grazie ma a volte il ping alto dura anche per pochissimi millisecondi. In caso modificherò nel modo migliore. Consigliami tu ;)

@Angelo: Thx :D Comunque le guide semplici possono sempre essere utili ;)

@Den: Beh non cambia molto :asd:


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 10:52 
Utente

Iscritto il: 06/11/2010
Messaggi: 197
Favourite GTA: San Andreas

Karma
1


Non connesso
Den_Zarock ha scritto:
Questi 2 valori "maxPing,maxAvvisiPing" si sta di meno a definirli in cima alla GM, meno casino per modificarli e non serve mettere niente nel "OnGameModeInit"..

Quoto, definendoli con il #define non vai ad occupare memoria nell'amx :/


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:19 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Si ma con le variabili, se magari vuoi fare un comando Admin che cambia il ping, puoi. Con i define non lo so D:


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:34 
Utente

Iscritto il: 06/11/2010
Messaggi: 114
Xfire: revolution96

Karma
0


Non connesso
#define MAX_PING 250

Nel Cmd

#undef MAX_PING
#define MAX_PING NUOVOPING

Esempio pratico:

Codice:
#define MAX_PING 250


Codice:
    new newlimit = 5;
   #undef MAX_PING
   #define MAX_PING newlimit
   printf("%d",MAX_PING);


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:39 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Ok grazie per la dritta. Si può sempre imparare :D. Correggo subito ;)


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:39 
Utente

Iscritto il: 06/11/2010
Messaggi: 197
Favourite GTA: San Andreas

Karma
1


Non connesso
ReVo_ ha scritto:
#define MAX_PING 250

Nel Cmd

#undef MAX_PING
#define MAX_PING NUOVOPING

Esempio pratico:

Codice:
#define MAX_PING 250


Codice:
    new newlimit = 5;
   #undef MAX_PING
   #define MAX_PING newlimit
   printf("%d",MAX_PING);


Cazzo dici :/

I define vengono interpretati al momento della compilazione.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:42 
Utente

Iscritto il: 06/11/2010
Messaggi: 114
Xfire: revolution96

Karma
0


Non connesso
Peppe ha scritto:
ReVo_ ha scritto:
#define MAX_PING 250

Nel Cmd

#undef MAX_PING
#define MAX_PING NUOVOPING

Esempio pratico:

Codice:
#define MAX_PING 250


Codice:
    new newlimit = 5;
   #undef MAX_PING
   #define MAX_PING newlimit
   printf("%d",MAX_PING);


Cazzo dici :/

I define vengono interpretati al momento della compilazione.



Funziona anche cosi, per il fatto che vengono implementati al momento della compilazione lo so ma come ho fatto io dovrebbe funzionare comunque


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:47 
Utente

Iscritto il: 06/11/2010
Messaggi: 197
Favourite GTA: San Andreas

Karma
1


Non connesso
ReVo_ ha scritto:
Peppe ha scritto:
ReVo_ ha scritto:
#define MAX_PING 250

Nel Cmd

#undef MAX_PING
#define MAX_PING NUOVOPING

Esempio pratico:

Codice:
#define MAX_PING 250


Codice:
    new newlimit = 5;
   #undef MAX_PING
   #define MAX_PING newlimit
   printf("%d",MAX_PING);


Cazzo dici :/

I define vengono interpretati al momento della compilazione.



Funziona anche cosi, per il fatto che vengono implementati al momento della compilazione lo so ma come ho fatto io dovrebbe funzionare comunque


No, come hai fatto tu il comando viene interpretato così:
new newlimit = 5;
printf("%d",newlimit);

Quindi non avrebbe senso.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:48 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 282
Località: Cesena
Favourite GTA: Ballad of Gay Tony
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: ske92

Karma
10


Non connesso
In effetti definire una costante per poi "undefinirla" e per poi definirla con il valore di una variabile.. non è che abbia un filo logico.

_________________


Top
  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:51 
Banned

Iscritto il: 31/10/2010
Messaggi: 1363
Località: Sicilia
Favourite GTA: San Andreas
Xfire: peppinux

Karma
-10


Non connesso
Abbiamo capito. Non modifico niente che è meglio :asd:. Stavo per modificare la guida e leggo questo lol. Io la lascio così, tanto funziona lo stesso :ghfuma:. Se qualche Admin/Mod vuole la modifica ma io non ci metto più mano :asd:.


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:55 
Utente

Iscritto il: 06/11/2010
Messaggi: 114
Xfire: revolution96

Karma
0


Non connesso
Beyond ha scritto:
In effetti definire una costante per poi "undefinirla" e per poi definirla con il valore di una variabile.. non è che abbia un filo logico.

Un filo logico ce l'ha quando devi modificare il MAX_PLAYERS oppure MAX_VEHICLES.
Tipo questo
Codice:
#undef MAX_PLAYERS
#define MAX_PLAYERS 20
#undef MAX_VEHICLES
#define MAX_VEHICLES 100


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:56 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 282
Località: Cesena
Favourite GTA: Ballad of Gay Tony
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: ske92

Karma
10


Non connesso
ReVo_ ha scritto:
Beyond ha scritto:
In effetti definire una costante per poi "undefinirla" e per poi definirla con il valore di una variabile.. non è che abbia un filo logico.

Un filo logico ce l'ha quando devi modificare il MAX_PLAYERS oppure MAX_VEHICLES.
Tipo questo
Codice:
#undef MAX_PLAYERS
#define MAX_PLAYERS 20
#undef MAX_VEHICLES
#define MAX_VEHICLES 100

Esatto, ma nel tuo esempio non ci stava.

_________________


Top
  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:57 
Utente

Iscritto il: 06/11/2010
Messaggi: 197
Favourite GTA: San Andreas

Karma
1


Non connesso
ReVo_ ha scritto:
Beyond ha scritto:
In effetti definire una costante per poi "undefinirla" e per poi definirla con il valore di una variabile.. non è che abbia un filo logico.

Un filo logico ce l'ha quando devi modificare il MAX_PLAYERS oppure MAX_VEHICLES.
Tipo questo
Codice:
#undef MAX_PLAYERS
#define MAX_PLAYERS 20
#undef MAX_VEHICLES
#define MAX_VEHICLES 100

Be, quando sono già definite tipo in un include si, ma come avevi fatto tu no o.ò


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 11:58 
Avatar utente
Administrator

Iscritto il: 02/09/2010
Messaggi: 282
Località: Cesena
Favourite GTA: Ballad of Gay Tony
PlayStation Network: Nessuno
Xbox Live: Nessuno
Xfire: ske92

Karma
10


Non connesso
Adesso però forse è meglio ritornare sull'argomento Antiping ;)
Il resto è stato appurato

_________________


Top
  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 13:12 
Avatar utente
Utente

Iscritto il: 29/10/2010
Messaggi: 43
Località: Cosenza - ITA
Favourite GTA: San Andreas
Xfire: giuseppemazzei

Karma
0


Non connesso
Se non sbaglio, da quando il giocatore si connette a qualche secondo dopo che spawni, ha ping 65535 (infatti http://wiki.sa-mp.com/wiki/GetPlayerPing).

_________________
Immagine


Top
 E-mail  
 
 Oggetto del messaggio: Re: [GUIDA] Creare un Anti HighPing
MessaggioInviato: 07/11/2010, 13:30 
Avatar utente
Utente

Iscritto il: 05/11/2010
Messaggi: 35
Località: Udine
Favourite GTA: San Andreas
Xfire: gabber941

Karma
0


Non connesso
Peppinux AKA Peppe_Stasu ha scritto:
Si ma con le variabili, se magari vuoi fare un comando Admin che cambia il ping, puoi. Con i define non lo so D:

Si le variabili vanno bene per cambiare il ping massimo, e il numero massimo di avvertimenti, ma nella guida non l'hai spiegato, se non devi modificarli in game conviene definirli ;)

_________________
Prova Video ._.



Top
 E-mail  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 1 di 2 [ 29 messaggi ] 

Vai alla pagina :: 1, 2  Prossima »
  Apri un nuovo argomento Rispondi all’argomento

Tutti gli orari sono UTC + 1 ora [ ora legale ]



Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
cron