Jump to content

Question

Posted

Salut, as vrea sa pun pe serverul meu un sistem de anti spam care sa fie pentru char, indiferent ca e doar scris sau comenzi. Am facut un timer doar ca indiferent ce as scrie imi tot spune ca trebuie sa astept 3 secunde chiar daca nu am mai scris nicio comanda pana atunci.

Recommended Posts

  • 0
Posted
1 oră în urmă, TheGodfather a spus:

Salut, as vrea sa pun pe serverul meu un sistem de anti spam care sa fie pentru char, indiferent ca e doar scris sau comenzi. Am facut un timer doar ca indiferent ce as scrie imi tot spune ca trebuie sa astept 3 secunde chiar daca nu am mai scris nicio comanda pana atunci.

arata timerul cu problema

YouTube : Click

Discord : CosminAK47#8524

  • 0
Posted (edited)

Am pus la task LocalTimer[1000] 
        if(antispam[i] > 0)
            antispam[i]--;

Cand jucatorul scrie ceva pe chat sau tasteaza o comanda, vreau sa primeasca deelay de 3 secunda dar nu reusesc nicicum...

Edited by TheGodfather
  • 0
Posted

Poti face in felul asta:

new chatTime[MAX_PLAYERS];

OnPlayerConnect
{
	chatTime[playerid] = 0;
}

OnPlayerText
{
	// la inceput
	if((gettime() - chatTime[playerid]) < 3)
    {
        SendClientMessage(playerid, -1, "Te rugam sa astepti 3 secunde.");
    	return 0;
    }
    // la sfarsit
    chatTime[playerid] = gettime();
}

 

  • 0
Posted
Acum 11 minute, iSkull a spus:

Poti face in felul asta:


new chatTime[MAX_PLAYERS];

OnPlayerConnect
{
	chatTime[playerid] = 0;
}

OnPlayerText
{
	// la inceput
	if((gettime() - chatTime[playerid]) < 3)
    {
        SendClientMessage(playerid, -1, "Te rugam sa astepti 3 secunde.");
    	return 0;
    }
    // la sfarsit
    chatTime[playerid] = gettime();
}

 

Merge pentru chat, dar pentru comenzi nu, de exemplu daca scriu /a 123 de mai multe trimite mesajul. Cum trebuie sa scriu aici SCMf(playerid, COLOR_LIGHTRED, "[Anti-Spam] Asteapta %d secunde.", antispam[playerid] - gettime()); ca sa imi arate fiecare secunda, gen 3 2 1?

  • 0
Posted
Acum 1 minut, iSkull a spus:

Tu ai zis pentru chat, chatul nu are treaba cu acele comenzi, acolo trebuie sa ai onplayercommandperformed si trebuie alt anti spam

Cum pot face si pentru comenzi? Si sa imi arate secundele la SCMf(playerid, COLOR_LIGHTRED, "[Anti-Spam] Asteapta %d secunde.", antispam[playerid] - gettime());?

  • 0
Posted
Acum 1 minut, TheGodfather a spus:

Cum pot face si pentru comenzi? Si sa imi arate secundele la SCMf(playerid, COLOR_LIGHTRED, "[Anti-Spam] Asteapta %d secunde.", antispam[playerid] - gettime());?

Faci alta variabila si restul e la fel

  • 0
Posted
Acum 3 minute, iSkull a spus:

Faci alta variabila si restul e la fel

Daca pun asa imi da la secunde 0, -1 si -2. Daca schimb semnele imi da 0, 1 si 2. Cand ar trebui sa dea 3, 2 si 1

  • 0
Posted
Acum 33 minute, iSkull a spus:

Faci alta variabila si restul e la fel

public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if((gettime() - antispam2[playerid]) < 3)
        {
            SCMf(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Asteapta %d secunde.", antispam2[playerid] - gettime() + 3);
            return 0;
        }
    if(success) SpamCheck[playerid] = GetTickCount();
    if(!success) return SCM(playerid, COLOR_GREY, "ERROR: Unknown command!");
    antispam2[playerid] = gettime();
    return true;
}

Asta am la aceasta functie, de fiecare data cand tastez o comanda, indiferent ca e doar /a sau /a 123 imi da si mesajul unknown command si si mesajul de sus cu nu scrie...

  • 0
Posted
Acum 1 minut, TheGodfather a spus:

public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if((gettime() - antispam2[playerid]) < 3)
        {
            SCMf(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Asteapta %d secunde.", antispam2[playerid] - gettime() + 3);
            return 0;
        }
    if(success) SpamCheck[playerid] = GetTickCount();
    if(!success) return SCM(playerid, COLOR_GREY, "ERROR: Unknown command!");
    antispam2[playerid] = gettime();
    return true;
}

Asta am la aceasta functie, de fiecare data cand tastez o comanda, indiferent ca e doar /a sau /a 123 imi da si mesajul unknown command si si mesajul de sus cu nu scrie...

chatTime[playerid] = gettime() + 3; la onplayertext nu in format

E posibil sa ai onplayercommandtext

  • 0
Posted
Acum 2 minute, iSkull a spus:

chatTime[playerid] = gettime() + 3; la onplayertext nu in format

E posibil sa ai onplayercommandtext

Nu am onplayercommandtext, am doar onplayercommandreceived, performed si onplayertext.

  • 0
Posted
Acum 1 minut, TheGodfather a spus:

Nu am onplayercommandtext, am doar onplayercommandreceived, performed si onplayertext.

daca ai zcmd, incearca cu return 1 daca ai pawn cmd n are cum sa nu ti mearga return 0

  • 0
Posted
Acum 1 minut, iSkull a spus:

daca ai zcmd, incearca cu return 1 daca ai pawn cmd n are cum sa nu ti mearga return 0

Zcmd folosesc, am pus asa si la fel face.
public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
    if((gettime() - antispam2[playerid]) < 3)
        {
            SCMf(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Asteapta %d secunde.", antispam2[playerid] - gettime());
            return 1;
        }
    if(success) SpamCheck[playerid] = GetTickCount();
    if(!success) return SCM(playerid, COLOR_GREY, "ERROR: Unknown command!");
    antispam2[playerid] = gettime() + 3;
    return true;
}

  • 0
Posted
Acum 7 minute, iSkull a spus:

if(!success) return SCM(playerid, COLOR_GREY, "ERROR: Unknown command!"); 

asta zice tot, o poti sterge si pui return 0

Stai ca am vazut ca scrie SERVER: Unknown command! si eu in gamemode n-am niciunde mesajul asta, acolo scrie ERROR

  • 0
Posted
Acum 5 minute, iSkull a spus:

vezi received, altceva n-am de unde, doar din include daca e ceva

Nu gasesc in niciun include, nu stiu ce are de arata mesajul ala

  • 0
Posted
Acum 1 minut, TheGodfather a spus:

Nu gasesc in niciun include, nu stiu ce are de arata mesajul ala

Dupa cum am mai zis, incearca return 1/return 0, daca nu treci pe pawn cmd, acolo pentru prescurtarea comenzii e alias

Altceva nu am ce sa fac pentru mesajul respectiv

 

Ex:

 

alias:test('te');

cmd:test(playerid, params[]) // cmd cu litere mici pe comanda

{

SendClientMessage(playerid, -1, "Welcome to server with pawn cmd.");

return 1;

}

  • 0
Posted
Acum 8 minute, iSkull a spus:

Dupa cum am mai zis, incearca return 1/return 0, daca nu treci pe pawn cmd, acolo pentru prescurtarea comenzii e alias

Altceva nu am ce sa fac pentru mesajul respectiv

 

Ex:

 

alias:test('te');

cmd:test(playerid, params[]) // cmd cu litere mici pe comanda

{

SendClientMessage(playerid, -1, "Welcome to server with pawn cmd.");

return 1;

}

N-am idee de ce nu vrea, am pus in toate modurile. Iar de cmd, nu ma pun sa modific atatea comenzi dintr-un gm :))

  • 0
Posted

Daca pun functia asta si o apelez separat la comanda merge bine, dar is 600+ comenzi in gm... pana le pun :l

function nomessage(playerid) {
    if(aspam[playerid] > 0)
        return SCMEx(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Asteapta %d secunde.", aspam[playerid]);
    return 1;
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.