Spam komandi

Započeo Rex, Januar 25, 2023, 21:44:39 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 4 gostiju pregledaju ovu temu.

Rex

*

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: //

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..........
[pawn]   if(AC_Info[gCommandSpam] == 1)
   {
       if(PlayerInfo[playerid][pAdmin] < 1 && PlayerInfo[playerid][pHelper] < 1)
      {
         if(gettime() < AntiCMDSpam[playerid])
         {
            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[playerid] = gettime() + 2;
      }
   }
   return 1;
}[/pawn]

Rex

*

Citat: #luyn poslato Januar 25, 2023, 22:17:48 POSLE PODNE
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..........
[pawn]   if(AC_Info[gCommandSpam] == 1)
   {
       if(PlayerInfo[playerid][pAdmin] < 1 && PlayerInfo[playerid][pHelper] < 1)
      {
         if(gettime() < AntiCMDSpam[playerid])
         {
            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[playerid] = gettime() + 2;
      }
   }
   return 1;
}[/pawn]

samo gde da stavim ovo? Pod OnPlayerCommandText ili OnPlayerCommandPerformed?

Citat: Rex poslato Januar 25, 2023, 23:16:08 POSLE PODNE
samo gde da stavim ovo? Pod OnPlayerCommandText ili OnPlayerCommandPerformed?
Stavi pod OnPlayerCommandPerformed

Rex

*

Citat: Ivo_Dev poslato Januar 25, 2023, 23:39:06 POSLE PODNE
Stavi pod OnPlayerCommandPerformed

vidi sliku :https://imgur.com/a/vfwIsto

evo i kod

[pawn]public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    if(!success) return SCM(playerid, SRV_BOJA, "[GRESKA]:"BELA2" Uneli ste komandu koja ne postoji!");
   if(PI[playerid][xAdmin] < 1 && PI[playerid][xHelper] < 1)
   {
      if(as[playerid])
      {
         SCM(playerid, SRV_BOJA,"[AS]: "BELA2"Komande mozete koristiti svake 2 sekunde!");
         return 0;
      }
      as[playerid] = true;
      SetTimerEx("asa",2000,false,"i",playerid);
   }
    return 1;
}[/pawn]

on detektuje da ja spamujem ali idalje isvrsi komandu

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

Citat: Rex poslato Januar 26, 2023, 00:04:09 PRE PODNE
vidi sliku :https://imgur.com/a/vfwIsto

evo i kod

[pawn]public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    if(!success) return SCM(playerid, SRV_BOJA, "[GRESKA]:"BELA2" Uneli ste komandu koja ne postoji!");
   if(PI[playerid][xAdmin] < 1 && PI[playerid][xHelper] < 1)
   {
      if(as[playerid])
      {
         SCM(playerid, SRV_BOJA,"[AS]: "BELA2"Komande mozete koristiti svake 2 sekunde!");
         return 0;
      }
      as[playerid] = true;
      SetTimerEx("asa",2000,false,"i",playerid);
   }
    return 1;
}[/pawn]

on detektuje da ja spamujem ali idalje isvrsi komandu

[pawn]public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if((gettime() - spamdetekcija[playerid]) < 3)
        {
            SendClientMessage(playerid, -1, "[SPAM] {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", antispam2[playerid] - gettime());
            return 1;
        }
      if(success) SpamCheck[playerid] = GetTickCount();
    if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
    spamdetekcija[playerid] = gettime() + 3;
    return true;
}[/pawn]
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

Citat: Grella™ poslato Januar 26, 2023, 11:04:25 PRE PODNE
[pawn]public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if((gettime() - spamdetekcija[playerid]) < 3)
        {
            SendClientMessage(playerid, -1, "[SPAM] {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", antispam2[playerid] - gettime());
            return 1;
        }
      if(success) SpamCheck[playerid] = GetTickCount();
    if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
    spamdetekcija[playerid] = gettime() + 3;
    return true;
}[/pawn]
Zasto forsirate true/false return-ove u non-boolean callbackovima/funkcijama?
Poslednja Izmena: Januar 26, 2023, 12:12:02 POSLE PODNE od Galardo

Citat: Galardo poslato Januar 26, 2023, 12:09:02 POSLE PODNE
Zasto forsirate true/false return-ove u non-boolean callbackovima/funkcijama?

my bad hvala na  ispravci

[pawn]public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if((gettime() - spamdetekcija[playerid]) < 3)
        {
            SendClientMessage(playerid, -1, "[SPAM] {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", spamdetekcija[playerid] - gettime());
            return 1;
        }
      if(success) SpamCheck[playerid] = GetTickCount();
    if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
    spamdetekcija[playerid] = gettime() + 3;
    return 1;
}[/pawn]
Poslednja Izmena: Januar 26, 2023, 12:47:29 POSLE PODNE od Grella™
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

Citat: Galardo poslato Januar 26, 2023, 12:09:02 POSLE PODNE
Zasto forsirate true/false return-ove u non-boolean callbackovima/funkcijama?

Ne znaju za bolje :D

Rex

*

Citat: Grella™ poslato Januar 26, 2023, 12:45:32 POSLE PODNE
my bad hvala na  ispravci

[pawn]public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if((gettime() - spamdetekcija[playerid]) < 3)
        {
            SendClientMessage(playerid, -1, "[SPAM] {FFFFFF}Pricekajte %d sekunde do sledeceg koristenja komandi.", spamdetekcija[playerid] - gettime());
            return 1;
        }
      if(success) SpamCheck[playerid] = GetTickCount();
    if(!success) return SendClientMessage(playerid, -1, "GRESKA: Komanda koju ste unijeli ne postoji!");
    spamdetekcija[playerid] = gettime() + 3;
    return 1;
}[/pawn]

Idalje ISTO se desava, komanda se izvrsi i ispise poruku da ne moze da se spamuje!

Rex

*

Resen problem!

[pawn]
public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
{
   if(as[playerid])
   {
       SCM(playerid, SRV_BOJA,"[AS]: "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, "[GRESKA]:"BELA2" Uneli ste komandu koja ne postoji!");
        return 0;
    }
    as[playerid] = true; SetTimerEx("asa",2000,false,"i",playerid);
    return 1;
}[/pawn]