Sziasztok!
A scriptet én készítettem, mint a címből is biztosan kiderült hírdetés elleni védelmre jó. (Tesztelve)
Működése: Ha a játékos a chatbe IP címet ír akkor bannolja.
Akkor is bannol ha a(z) IP cím közepén van egy betű mivel, akkor bannol ha meg található a \"player\" által írt szövegben:
-3 pont ÉS 1 kettős pont ÉS 9-nél több szám
(Ami egy IP címnek felel meg)
Na de mivan ha nem csak egyet ír? A scriptet arra is írtam hogyha 9-nél több számot ír a chatbe akkor ne jelenítse meg a szöveget és hiba üzenetet küldjön neki.
A scriptnek szükséges, hogy létrehozzatok egy mappát és egy jegyzet tömböt (.txt kiterjesztéssel, de ha letöltitek csak \"át kell húzni\")
Szükséges elérési útvonal: [szervered mappája]/scriptfiles/slogs/Hirdetesek.txt
Megjegyzésem:
A script hasznos az esetek 90%-ban. Mivel nincs tökéletes védelem véleményem szerint. A script lehet
egyszerűnek tűnik (mert az is), de lehet jó lesz valakinek. :D
Link: http://www.mediafire.com/download/m09kjw22ql74n9z/HirdetesElleniVedelem.rar
Kód:
/*
Készítette: _[G]M[K]_Sh1ft_
Készítési idő(teszteléssel): 25 < perc
Köszönet a TUT-okért:
sampforum.hu & wiki.sa-mp.com
Megjegyzésem:
A scriptet szabadon fellehet használni / és terjeszteni, hiszen az a cél,
hogy ne hírdessenek. A script IGÉNYELI, hogy a server scriptfiles mappájába
létrehozzál egy \'slogs\' nevű mappát azon belül egy jegyzet tömböt .txt
kiterjesztéssel melynek neve: Hirdetesek
*/
#include <a_samp>
#include <dini>
public OnPlayerText(playerid, text[])
{
new PONTok, KettosPONTok, SZAMok;
for(new l = strlen(text), p; p < l; ++p)
{
if(text[p] == \'.\') ++PONTok;
if(text[p] == \':\') ++KettosPONTok;
if(\'0\' <= text[p] <= \'9\') ++SZAMok;
}
if( PONTok >= 3 && KettosPONTok >= 1 && SZAMok >= 10 )
{
new swcys[128], name[MAX_PLAYER_NAME], hdate[16],htime[16],strng[256],year,month,day,hours,minutes,seconds;
GetPlayerName(playerid, name, sizeof(name));
//Ez a folyamat arra jó, hogy elmentsük: MIKOR? KI? és MIT? reklámozott.
format(swcys, sizeof(swcys),\"/slogs/Hirdetesek.txt\");
getdate(year, month, day), gettime(hours, minutes, seconds);
format(hdate, sizeof hdate, \"%d.%s%d.%s%d\", year, ((month < 10) ? (\"0\") : (\"\")), month,((day < 10) ? (\"0\") : (\"\")), day);
format(htime, sizeof htime, \"%s%d:%s%d:%s%d\", (hours < 10) ? (\"0\") : (\"\"), hours, (minutes < 10) ? (\"0\") : (\"\"), minutes, (seconds < 10) ? (\"0\") : (\"\"), seconds);
format(strng, sizeof strng, \"%s %s %s: %s\", hdate, htime, name, text);
dini_IntSet(swcys,strng,1);
//Kiírjuk az áldozatnak hogy mi lett vele...
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFF0000AA, \"Bannolva lettél hírdetés miatt!\");
SendClientMessage(playerid, 0xFFFFFFAA, \"Örülj, hogy nem az ujjaidat amputáltam!\" );
//Bannoljuk 0,5mp múlva, AZÉRT csak annyi hogy legyen idő kiírjnia a szöveget.
HBan(playerid);
return 0;
}
if(SZAMok >=9)
{
SendClientMessage( playerid, -1, \"Szerver:{ffffff} Hírdetés gyanus, amit írtál, ezért nem jelent meg a \'közös/nyílt\' chatben. Sorry!\");
return 0;
}
return 1;
}
stock HBan(playerid) SetTimerEx(\"SBan\", 500, false, \"i\", playerid);
forward SBan(playerid);
public SBan(playerid)
{
SendClientMessageToAll(0xFFFFFFAA,\"Valaki ki lett bannolva hirdetésért!\");
return Ban(playerid);
}