Üdv!
Nem rég kitaláltam egy igen hatékony módszert arra, hogy megvédd a játékmódod. (például ilyen esetben:
http://sampforum.hu/index.php?topic=10891.0)
*
A védelemhez legalább 0.3b verzió szükséges. (szerver és függvénykönyvtár)*
Amennyiben feltöltöd FTPre a forrástfájlt (.pwn) is, nem érsz semmit a védelemmel, hiszen el tudják távolítani!*
A védelmet a játékmódba kell írnod, hiszen ha filterscript, akkor ki tudják kapcsolni, vagy meg tudják akadályozni, hogy elinduljon..Ezzel a védelemmel mikor elindul a játékmód, a szervered leellenõriz egy fájlt, (te adod meg linkjét, legyen olyan helyen, ahol csak te férsz hozzá) és ez alapján eldönti, hogy futhat a mód, vagy sem. Ha a válasz negatív, akkor autómatikusan leállítja a szerveredet.
Elsõ lépésként ágyazzuk be az
a_http nevû függvénykönyvtárat. Ezt az #include <a_samp> alá írd:
[pawn]#include <a_http>[/pawn]
Az OnGameModeInit akkor fut le, mikor elindul a játékmód, ezért ilyenkor ellenõrizzük, hogy van-e jog futni:
[pawn]
print( \"[iHTTP Védelem]: Futtatási jog ellenõrzése...\" ); // Ez nem kötelezõ, ha szeretnéd, kihagyhatod.
if( !HTTP( 0, HTTP_GET, \"weboldalam.hu/samp/modom_futtatasi_joga.txt\", \"\", \"HTTPCheck\" ) )
print( \"Sikertelen HTTP lekérdezés. A szerver biztonsági okokból leáll.\" ), SendRconCommand( \"exit\" ); // Itt a tárhelyeden levõ fájl tartalmát próbáljuk kiolvasni. Ha nem sikerül, leállítjuk a szervert.
[/pawn]
Most ellenõrizzük a lekért információkat:
[pawn]
forward HTTPCheck( index, response_code, data[ ] );
public HTTPCheck( index, response_code, data[ ] )
{
if( index == 0 ) // Ellenõrizzük, hogy a HTTP lekérdezés azonosítója egyezik-e.
{
if( response_code != 200 ) return printf( \"2. Lekérdezés sikertelen! Hibakód: %i\\nBiztonsági okokból a szerver leáll.\", response_code ), SendRconCommand( \"exit\" ); // Ha a válaszkód nem 200, akkor nem sikerült a lekérdezés, ezért biztonsági okokból leállítjuk a szervert.
if( !strcmp( data, \"true\", true ) ) print(\" [iHTTP Védelem]: Futtatási jog megszerezve.\" ); // Ellenõrizzük az információt. Ha egyezik azzal, amit megadtunk korábban, megadjuk a jogot.
else print( \"[iHTTP Védelem]: Futtatási jog elutasítva, kérlek lépj kapcsolatba vele: NEVED.\" ), SendRconCommand( \"exit\" ); // Ha nem egyezik azzal, amivel engedélyezzük, tájékoztatjuk az \"olvasót\" és leállítjuk a szervert.
}
return 1;
}
[/pawn]
Ennyi lenne.
Amit pirossal írtam, át tudod/kell írni/írnod.
weboldalam.hu/samp/modom_futtatasi_joga.txt - Az ellenõrzendõ fájl elérési útvonala.
true - A fájl tartalma akkor, ha futhat a szerver.
NEVED - Na, ez vajon mi lehet?
Korábban teszteltem egy móddal, nekem tökéletesen mûködött. Várom a véleményeket, észrevételeket.
(remélem nem hagytam ki semmit)