Szerző Téma: Hírdetés elleni védelem  (Megtekintve 2202 alkalommal)

Hírdetés elleni védelem
« Dátum: 2015. január 02. - 19:52:44 »
0 Show voters
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);
}

Hírdetés elleni védelem
« Válasz #1 Dátum: 2015. január 02. - 21:20:25 »
0 Show voters

      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!\");
[/quote]
Ez most egy kisebb flood lenne az \"Áldozat\" részére?   :unsure:

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Hírdetés elleni védelem
« Válasz #2 Dátum: 2015. január 02. - 21:32:10 »
+1 Show voters
Egy tipp, régen én is így csináltam.
A számok elé a 0-t könyebben is odavarázsolhatod.
Formázott stringnél %d helyett %02d -t adj meg :D és nemkell xarakodni a többivel, csak elég hogy seconds rá és kész

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Hírdetés elleni védelem
« Válasz #3 Dátum: 2015. január 02. - 21:40:22 »
+2 Show voters
Bocs de ez a védelem nem épp tökéletes, ha nem sikerül jobbra, ajánlom, hogy ne bannolj miatta. Sima üzenet, hogy nem hirdethetsz és csá.

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Hírdetés elleni védelem
« Válasz #4 Dátum: 2015. január 02. - 21:43:44 »
0 Show voters
Nos, leírom személy szerinti véleményemet.
Kicsit kételkedek abban, hogy a hirdetés lekérdezését egymagad írtad volna ugyanis ezt a megoldást már nem egy helyen láttam már.
itt egy példa még a 70-es évekről: http://sampforum.hu/index.php?topic=16051.0 és ahogy nézegetek a scriptet szerintem csak összekaparintottad és átalakítottad kicsit.
Persze azt is értékelni kell, hogy erre szántál időt és megosztottad a többiekkel ezért azt mondom jó munka.
Viszont:
Én se értem azt a SendClientMessage-s üzenet \'floodolást\' inkább lefuttathatnál egy 100 értékig ciklust ami semmit nem írna ki. Ez az ún. \"ClearChat\" (Admin rendszerekben ismert).
Plusz szerintem ha egy játékos hirdet az azért teszi, mert hogy kevesen vannak a szerverén, vagy irigy hogy jobb szervere van a másnak, vagy valamilyen más indok. A Banolás szerintem nem célszerű a reklámozók ellen, mivel a Magyar SA:MP-os kutatóink szerint a játékosokat jobban idegesíti ha például börtönözést vagy némítást kapnak ;) És manapság azért könnyebben kihasználják az IP Ban-t sajnos :/

Hírdetés elleni védelem
« Válasz #5 Dátum: 2015. január 02. - 22:28:03 »
+1 Show voters
192.168.1.100:7777 BAN
192,168,1,100 - 7777 NINCS BAN
192-168,1,100 - 7777 itt se
Ki lehet küszöbölni.
Maximum kiírják betűkkel:
százkilencvenkettő pont százhatvannyolc pont egy pont száz kettőspont héthéthéthét

Hírdetés elleni védelem
« Válasz #6 Dátum: 2015. január 02. - 23:03:06 »
0 Show voters
Köszönöm a véleményeiteket!
A floodolás rész nekem könnyebbnek tűnt hogy CRT+C CRT+V :P :D Nem akartam nagyon bonyolítani. De jobb megoldás ha lefutatom 60x :D
A bannolásos rész azért részesíteném előnyben, mert már nem először találkozok olyan hackerrel/hirdetővel aki esetleg nem érdekli, hogy börtönben/fagyasztva van vagy éppen némítva (úgy értem hogy az algoritmusban kikerüli a dolgokat (cheat vagy kihasználja a szerver adottságait pl: /pm), bár ezekre mind van sok-sok megoldás pl: admin :D Csak egyszerűbb vagy még itt a kick is jobb lehet, de ez a számos se igazán jó mert van rá megoldás kikerülni példát most nem írnék :D
De flash jól mondta aki hirdet, azért hirdet, mert neki nem jön össze, és ezzel saját magát minősíti :D
Lassan, már most (tapasztalataim szerint is) a ban annyit (fog) ér(ni), mint a kick, de a ban akkor is több (lesz).
 
Idézetet írta: blackdog476 date=1420234083\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"52037\" data-ipsquote-contentclass=\"forums_Topic
192.168.1.100:7777 BAN
192,168,1,100 - 7777 NINCS BAN
192-168,1,100 - 7777 itt se
Ki lehet küszöbölni.
Maximum kiírják betűkkel:
százkilencvenkettő pont százhatvannyolc pont egy pont száz kettőspont héthéthéthét
 
OTT TÉNYLEG NINCS BAN de nem jeleníti meg chatben. És ha nem olvastad akkor írtam a megjegyzésemhez:  \"A script hasznos az esetek 90%-ban. Mivel nincs tökéletes védelem véleményem szerint.\"

Hírdetés elleni védelem
« Válasz #7 Dátum: 2015. január 03. - 12:04:47 »
0 Show voters
Hirdetés ellen szinte nem is lehet mit tenni, szerintem. Ha a hirdető játékos tisztában van azzal, hogy a szerver védelmekkel van ellátva, akkor máshogy közli a többiekkel az IP-t: Skype, FB. Manapság a nevek körbe-körbe járnak a szervereken is.


Játékon belül pedig ugyan ilyen szemtelenek, megoldják valahogy az IP közzétételét. Szerintem kézenfekvőbb megoldás az, (hogy ha megoldható) hogy a legforgalmasabb időszakokban mindig legyen a szerveren egy admin/moderátor. Jó esetben az ő figyelmét már nehéz kijátszani :)
Persze egy ilyen FS kiszűri a tapasztalatlanabb hirdetőket, nem kétség  :yes:

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal