Pitanje/savjet: Kako da uradim da igrac ne moze da spamuje komande?
Opširnije: Treba mi SAMO ZA KOMANDE jer vec imam uradjeno za chat.
Dodatno: //
Spam komandi
660
pregleda
12
postova
25. Jan. 2023.
Kod mene je u vidu Anti Cheata za spam komande, naravano ovo je samo deo toga ima jos par sitnica za gCommandSpam ali to prilagodis sam sebi modu..........
if(AC_Info == 1)
{
if(PlayerInfo < 1 && PlayerInfo < 1)
{
if(gettime() < AntiCMDSpam)
{
SCM(playerid, -1, ""ERRORBOJA"[ANTI SPAM]: "BELA"Komande mozete koristiti svake 2 sekunde...");
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 10.0);
return 0;
}
AntiCMDSpam = gettime() + 2;
}
}
return 1;
}25. Jan. 2023.
#luyn wrote on January 25, 2023, 9:17 pm:
Kod mene je u vidu Anti Cheata za spam komande, naravano ovo je samo deo toga ima jos par sitnica za gCommandSpam ali to prilagodis sam sebi modu..........
if(AC_Info == 1)
{
if(PlayerInfo < 1 && PlayerInfo < 1)
{
if(gettime() < AntiCMDSpam)
{
SCM(playerid, -1, ""ERRORBOJA"[ANTI SPAM]: "BELA"Komande mozete koristiti svake 2 sekunde...");
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 10.0);
return 0;
}
AntiCMDSpam = gettime() + 2;
}
}
return 1;
}samo gde da stavim ovo? Pod OnPlayerCommandText ili OnPlayerCommandPerformed?
25. Jan. 2023.
Ivo_Dev wrote on January 25, 2023, 10:39 pm:
Stavi pod OnPlayerCommandPerformed
vidi sliku :https://imgur.com/a/vfwIsto
evo i kod
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success) return SCM(playerid, SRV_BOJA, ":"BELA2" Uneli ste komandu koja ne postoji!");
if(PI < 1 && PI < 1)
{
if(as)
{
SCM(playerid, SRV_BOJA,": "BELA2"Komande mozete koristiti svake 2 sekunde!");
return 0;
}
as = true;
SetTimerEx("asa",2000,false,"i",playerid);
}
return 1;
}on detektuje da ja spamujem ali idalje isvrsi komandu
26. Jan. 2023.
Unknown command ti ispisuje zbog return 0
Probaj zamijeniti sa return 1
Ne znam je l koristiš zcmd ili pawn.cmd ili šta već drugo, nisam baratao ni sa jednim od toga, sa ycmd jedino COMMAND_INVALID_INPUT return ne bi ispisivao tu default samp poruku
I možda je bolje da koristiš gettickcount umjesto timera u tom slučaju
Probaj zamijeniti sa return 1
Ne znam je l koristiš zcmd ili pawn.cmd ili šta već drugo, nisam baratao ni sa jednim od toga, sa ycmd jedino COMMAND_INVALID_INPUT return ne bi ispisivao tu default samp poruku
I možda je bolje da koristiš gettickcount umjesto timera u tom slučaju
26. Jan. 2023.
Rex wrote on January 25, 2023, 11:04 pm:
vidi sliku :https://imgur.com/a/vfwIsto
evo i kod
on detektuje da ja spamujem ali idalje isvrsi komandu
evo i kod
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(!success) return SCM(playerid, SRV_BOJA, ":"BELA2" Uneli ste komandu koja ne postoji!");
if(PI < 1 && PI < 1)
{
if(as)
{
SCM(playerid, SRV_BOJA,": "BELA2"Komande mozete koristiti svake 2 sekunde!");
return 0;
}
as = true;
SetTimerEx("asa",2000,false,"i",playerid);
}
return 1;
}on detektuje da ja spamujem ali idalje isvrsi komandu
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
if((gettime() - spamdetekcija) < 3)
{
SendClientMessage(playerid, -1, " {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", antispam2 - gettime());
return 1;
}
if(success) SpamCheck = GetTickCount();
if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
spamdetekcija = gettime() + 3;
return true;
}26. Jan. 2023.
Grellaâ„¢ wrote on January 26, 2023, 10:04 am:
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
if((gettime() - spamdetekcija) < 3)
{
SendClientMessage(playerid, -1, " {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", antispam2 - gettime());
return 1;
}
if(success) SpamCheck = GetTickCount();
if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
spamdetekcija = gettime() + 3;
return true;
}Zasto forsirate true/false return-ove u non-boolean callbackovima/funkcijama?
26. Jan. 2023.
Galardo wrote on January 26, 2023, 11:09 am:
Zasto forsirate true/false return-ove u non-boolean callbackovima/funkcijama?
my bad hvala na ispravci
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
if((gettime() - spamdetekcija) < 3)
{
SendClientMessage(playerid, -1, " {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", spamdetekcija - gettime());
return 1;
}
if(success) SpamCheck = GetTickCount();
if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
spamdetekcija = gettime() + 3;
return 1;
}27. Jan. 2023.
Grellaâ„¢ wrote on January 26, 2023, 11:45 am:
my bad hvala na ispravci
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
if((gettime() - spamdetekcija) < 3)
{
SendClientMessage(playerid, -1, " {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", spamdetekcija - gettime());
return 1;
}
if(success) SpamCheck = GetTickCount();
if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
spamdetekcija = gettime() + 3;
return 1;
}Idalje ISTO se desava, komanda se izvrsi i ispise poruku da ne moze da se spamuje!
27. Jan. 2023.
Resen problem!
public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
if(as)
{
SCM(playerid, SRV_BOJA,": "BELA2"Komande mozete koristiti svake 2 sekunde!");
return 0;
}
return 1;
}
public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
{
if(result == -1)
{
SCM(playerid, SRV_BOJA, ":"BELA2" Uneli ste komandu koja ne postoji!");
return 0;
}
as = true; SetTimerEx("asa",2000,false,"i",playerid);
return 1;
}Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava