Problem(error/warning): Kako da namestim da kada igraÄa spama u Äetu tj ponovi isto 4-5 puta da ga server mutira ?
Dio skripte: [ pawn ]Å ta treba ?[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]/[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): /
Zaključano
Oko
480
pregleda
5
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 7 godina
MisliÅ¡ ako recimo koristi C/P za istu reÄenicu?Npr:
I kada bi to ukucao da ga mutira? Gle.Nije problem takvo neÅ¡to napraviti ali mislim da nema smisla.Jer da bi ti napravio takvo neÅ¡to morao bi imati jednu varijablu u koju bi morao spremati sve Å¡to igraÄ napiÅ¡e u chatu i onda kada sljedeći put neÅ¡to napiÅ¡e provjeriti da li se to poklapa sa prethodnim zapamćenim stringom i onda joÅ¡ jednu varijablu u koju bi brojao koliko je puta to napisao( I onda naravno mora resetirati varijablu ako se ne poklapa sa onim Å¡to je prethodni put napisao)
Nije teško napraviti-Ali jako loše riješenje.
Puno bolje riješenje bi bilo napraviti da chat može koristiti svakih 2-3 sekunde pa si riješio dio problema.(A to možeš sa jednom varijablom u koju ćeš spremati trenutno vrijeme+2,3 sekunde i onda samo napraviti provjeru u OnPlayerText.)
Balkan Samp
Balkan Samp
Balkan Samp
Balkan Samp
Balkan SampI kada bi to ukucao da ga mutira? Gle.Nije problem takvo neÅ¡to napraviti ali mislim da nema smisla.Jer da bi ti napravio takvo neÅ¡to morao bi imati jednu varijablu u koju bi morao spremati sve Å¡to igraÄ napiÅ¡e u chatu i onda kada sljedeći put neÅ¡to napiÅ¡e provjeriti da li se to poklapa sa prethodnim zapamćenim stringom i onda joÅ¡ jednu varijablu u koju bi brojao koliko je puta to napisao( I onda naravno mora resetirati varijablu ako se ne poklapa sa onim Å¡to je prethodni put napisao)
Nije teško napraviti-Ali jako loše riješenje.
Puno bolje riješenje bi bilo napraviti da chat može koristiti svakih 2-3 sekunde pa si riješio dio problema.(A to možeš sa jednom varijablom u koju ćeš spremati trenutno vrijeme+2,3 sekunde i onda samo napraviti provjeru u OnPlayerText.)
pre 7 godina
nešto na ovaj fazon??
pisao sam preko browsera, ne garantujem ti da ce raditi, mada pogledaj na kojem principu bi radilo to tvoje mutiranje. inputcheck funkciju ubaci unutar callbackova tipa OnDialogResponse i OnPlayerCommandPerformed..
#define broj_upozorenja 5
enum last_inputenum {
lastinput[ 128 ],
warnings,
mutetime
}
new inputdata[ MAX_PLAYERS ][ last_inputenum ];
inputcheck( playerid, inputtext[] ) {
if( !strcmp( inputdata[ playerid ][ lastinput ], inputtext, true ) ) inputdata[ playerid ][ warnings ]++;
else inputdata[ playerid ][ warnings ] = 0;
if( inputdata[ playerid ][ warnings ] >= broj_upozorenja ) {
// ovdje ide mutiranje...
strdel( inputdata[ playerid ][ lastinput ], 0, 128 );
inputdata[ playerid ][ warnings ] = 0;
}
strdel( inputdata[ playerid ][ lastinput ], 0, 128 );
strcat( inputdata[ playerid ][ lastinput ], inputtext );
return inputdata[ playerid ][ warnings ];
}pisao sam preko browsera, ne garantujem ti da ce raditi, mada pogledaj na kojem principu bi radilo to tvoje mutiranje. inputcheck funkciju ubaci unutar callbackova tipa OnDialogResponse i OnPlayerCommandPerformed..
pre 7 godina
Bašovski wrote on September 30, 2018, 7:44 pm:
nešto na ovaj fazon??
pisao sam preko browsera, ne garantujem ti da ce raditi, mada pogledaj na kojem principu bi radilo to tvoje mutiranje. inputcheck funkciju ubaci unutar callbackova tipa OnDialogResponse i OnPlayerCommandPerformed..
#define broj_upozorenja 5
enum last_inputenum {
lastinput[ 128 ],
warnings,
mutetime
}
new inputdata[ MAX_PLAYERS ][ last_inputenum ];
inputcheck( playerid, inputtext[] ) {
if( !strcmp( inputdata[ playerid ][ lastinput ], inputtext, true ) ) inputdata[ playerid ][ warnings ]++;
else inputdata[ playerid ][ warnings ] = 0;
if( inputdata[ playerid ][ warnings ] >= broj_upozorenja ) {
// ovdje ide mutiranje...
strdel( inputdata[ playerid ][ lastinput ], 0, 128 );
inputdata[ playerid ][ warnings ] = 0;
}
strdel( inputdata[ playerid ][ lastinput ], 0, 128 );
strcat( inputdata[ playerid ][ lastinput ], inputtext );
return inputdata[ playerid ][ warnings ];
}pisao sam preko browsera, ne garantujem ti da ce raditi, mada pogledaj na kojem principu bi radilo to tvoje mutiranje. inputcheck funkciju ubaci unutar callbackova tipa OnDialogResponse i OnPlayerCommandPerformed..
To se lako da zaobici ex.
Say: Ja sam dobar
Say: Ja sam doobar
Say: Ja sam dobar
(broj upozorenja = 0)
Kao sto je Paul naveo gore, mnogo bolje rjesenje mu je da napravi provjeru da igrac ne moze pisati brzo u chatu (npr. da moze pisati svakih 2-3 sekunde).
Bukvalno sa ovim sto si uradio: 1. vise ces preopteretit server 2. nece biti efektivno
new nextChatTime = { 0, ... };
// OnPlayerText
if (nextChatTime < gettime()) {
// Error message
return 0;
}
nextChatTime = gettime() + 3;Sto se tice ovoga sto ti je Basovski pokusao uraditi, tu bi ti trebalo malo vise truda, smisliti dobar algoritam i pokriti sve "rupe".
Tipa:
1. Dupla slova
2. Spaceovi
3. Simboli kojima izoblice neku rijec (rijec > r.i#j,,e.c)
Vrijedi li to na single threaded sampu? Ne 🙂
pre 7 godina
.кÑундер wrote on September 30, 2018, 10:53 pm:
To se lako da zaobici ex.
Say: Ja sam dobar
Say: Ja sam doobar
Say: Ja sam dobar
(broj upozorenja = 0)
Kao sto je Paul naveo gore, mnogo bolje rjesenje mu je da napravi provjeru da igrac ne moze pisati brzo u chatu (npr. da moze pisati svakih 2-3 sekunde).
Bukvalno sa ovim sto si uradio: 1. vise ces preopteretit server 2. nece biti efektivno
Sto se tice ovoga sto ti je Basovski pokusao uraditi, tu bi ti trebalo malo vise truda, smisliti dobar algoritam i pokriti sve "rupe".
Tipa:
1. Dupla slova
2. Spaceovi
3. Simboli kojima izoblice neku rijec (rijec > r.i#j,,e.c)
Vrijedi li to na single threaded sampu? Ne 🙂
Say: Ja sam dobar
Say: Ja sam doobar
Say: Ja sam dobar
(broj upozorenja = 0)
Kao sto je Paul naveo gore, mnogo bolje rjesenje mu je da napravi provjeru da igrac ne moze pisati brzo u chatu (npr. da moze pisati svakih 2-3 sekunde).
Bukvalno sa ovim sto si uradio: 1. vise ces preopteretit server 2. nece biti efektivno
new nextChatTime = { 0, ... };
// OnPlayerText
if (nextChatTime < gettime()) {
// Error message
return 0;
}
nextChatTime = gettime() + 3;Sto se tice ovoga sto ti je Basovski pokusao uraditi, tu bi ti trebalo malo vise truda, smisliti dobar algoritam i pokriti sve "rupe".
Tipa:
1. Dupla slova
2. Spaceovi
3. Simboli kojima izoblice neku rijec (rijec > r.i#j,,e.c)
Vrijedi li to na single threaded sampu? Ne 🙂
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava