Geplaatst: 13 februari 201015 jaren comment_1588415 hi ik wil een anti spam hebben. Dus als je iets typt moet je 3 seconden wachten. en als je eerder typt komt er: Wait ... seconds! En als het je weer gebeurd moet bij iedereen staan: ... kicked [REASON: Spam] Bedankt
Geplaatst: 13 februari 201015 jaren comment_1588437 is het niet zo dat als je een server maakt je het of zelf script, of je voor een team zorgt? Want nu komt het over als "maak maar even dit en dit voor me"...
Geplaatst: 13 februari 201015 jaren Auteur comment_1588501 is het niet zo dat als je een server maakt je het of zelf script, of je voor een team zorgt? Want nu komt het over als "maak maar even dit en dit voor me"... niet zo bedoeld maar ik heb soms van die mensen in me serverdie typen: hi ik ben ... hi ik ben .. hi ik ben ... hi ik ben.... en ik heb ook op google/forum samp gezocht maar vond niks
Geplaatst: 13 februari 201015 jaren comment_1588560 Dit vond ik in een topic hier op het forum: (Gepost door Sandra) Sorry, ik had een foutje gemaakt in mijn script:Verander de regel if((lbc[playerid]-GetTickCount()) < 3000) naar: if((GetTickCount() - lbc[playerid]) < 3000) Dan zou het moeten werken. GetTickCount meet de tijd vanaf het moment dat de server is aangezet. Dus maak er zoiets van: if((GetTickCount() - lbc[playerid]) < 5000) // verander lbc naar je eigen check { SendClientMessage(playerid, COLOR_IDK,"You have to wait 5 seconds before you can speak in that channel!"); return 1; } Hier heb je de link naar de SAMP-wiki page over GetTickCount Suc6! Bewerkt: 13 februari 201015 jaren door sean5874
Geplaatst: 13 februari 201015 jaren Auteur comment_1588571 Dit vond ik in een topic hier op het forum: (Gepost door Sandra) Sorry, ik had een foutje gemaakt in mijn script:Verander de regel if((lbc[playerid]-GetTickCount()) < 3000) naar: if((GetTickCount() - lbc[playerid]) < 3000) Dan zou het moeten werken. GetTickCount meet de tijd vanaf het moment dat de server is aangezet. Dus maak er zoiets van: if((GetTickCount() - lbc[playerid]) < 5000) // verander lbc naar je eigen check { SendClientMessage(playerid, COLOR_IDK,"You have to wait 5 seconds before you can speak in that channel!"); return 1; } Hier heb je de link naar de SAMP-wiki page over GetTickCount Suc6! ty
Geplaatst: 13 februari 201015 jaren comment_1588694 Dat is volgens mij niet zo handig voor een anti-spam. Drie seconden wachten voor je weer iets mag zeggen is in sommige gevallen niet zo handig. Je kan het (naar mijn mening) beter zo doen: new LastMessage[MAX_PLAYERS][128]; new SpamWarning[MAX_PLAYERS]; new msg[128]; public OnPlayerText(playerid, text[]) { if(!strlen(LastMessage[playerid])) return 1; // check of het laatste bericht niet leeg was, anders werkt strcmp niet. if(strcmp(text, LastMessage[playerid], true)) return 1; // Als het bericht anders is mag het er door. SendClientMessage(playerid, COLOR_RED, "SERVER: Don't spam the chat please! You have recieved a warning!"); SpamWarning[playerid]++; if(SpamWarning[playerid] >= 3) { new pname[24]; GetPlayerName(playerid, pname, sizeof(pname)); format(msg, sizeof(msg), "SERVER: %s (id:%i) has been kicked for: Spamming the chat.", pname, playerid); SendClientMessageToAll(COLOR_WHITE, msg); Kick(playerid); SpamWarning[playerid] = 0; } return 0; }
Geplaatst: 13 februari 201015 jaren comment_1588784 Niet dat ik het systeem van Big Boss wil afbreken, maar... Maar het systeem van Big Boss ook 2 grote nadelen: Het verbruikt MAX_PLAYERS * 128 bytes (Het kan meer zijn, want ik ken de grote niet van zo een variabele in Pawno)(en eigenlijk zou ik ook nog de variabele SpamWarning en msg moeten meetellen) van je RAM geheugen, dus stel nu dat je een server hebt waar max 200 mensen op kunnen, dan heb je een continu extra verbruik van 25600 Bytes. Het anti-spam systeem kan worden omgezeild door steeds 1 teken te veranderen, bijvoorbeeld: Kom naar mijn server!!! Kom naar mijn server!! Kom naar mijn server!!! Dit kan zo oneindig veel worden herhaalt... Het verschil is dat er een laatste '!' ontbreekt bij het ene voorbeeld. BTW: 123 Posts, lol. Bewerkt: 13 februari 201015 jaren door GTAguillaume
Geplaatst: 13 februari 201015 jaren Auteur comment_1588828 Dat is volgens mij niet zo handig voor een anti-spam. Drie seconden wachten voor je weer iets mag zeggen is in sommige gevallen niet zo handig. Je kan het (naar mijn mening) beter zo doen: new LastMessage[MAX_PLAYERS][128]; new SpamWarning[MAX_PLAYERS]; new msg[128]; public OnPlayerText(playerid, text[]) { if(!strlen(LastMessage[playerid])) return 1; // check of het laatste bericht niet leeg was, anders werkt strcmp niet. if(strcmp(text, LastMessage[playerid], true)) return 1; // Als het bericht anders is mag het er door. SendClientMessage(playerid, COLOR_RED, "SERVER: Don't spam the chat please! You have recieved a warning!"); SpamWarning[playerid]++; if(SpamWarning[playerid] >= 3) { new pname[24]; GetPlayerName(playerid, pname, sizeof(pname)); format(msg, sizeof(msg), "SERVER: %s (id:%i) has been kicked for: Spamming the chat.", pname, playerid); SendClientMessageToAll(COLOR_WHITE, msg); Kick(playerid); SpamWarning[playerid] = 0; } return 0; } ty
hi ik wil een anti spam hebben.
Dus als je iets typt moet je 3 seconden wachten.
en als je eerder typt komt er: Wait ... seconds!
En als het je weer gebeurd moet bij iedereen staan: ... kicked [REASON: Spam]
Bedankt