Jump to content
Hostul a fost schimbat. Daca vedeti serverul offline readaugati rpg.b-zone.ro sau 141.95.124.78:7777 in clientul de sa-mp ×

[PAWN] - Filterscript/Gamemode protect (anti theft tutorial)


Adi007
 Share

Recommended Posts

Financial_steal-256.png

 

GENERALIZARE

 

Aici am sa va prezint o metoda simpla si eficienta, cu ajutorul careia veti putea restrictiona accesul la propriile scripturi.

A restrictiona in acest caz, inseamna a-ti securiza scripturile in doar 2 etape:

ETAPA 1: Introducerea unui cod pentru anti-decompilare.

ETAPA 2: Introducerea unui cod care sa nu permita pornirea serverului de SA:MP daca anumite conditii nu sunt indeplinite.

 

 


 

 

ETAPA 1

 

A decompila inseamna a genera dintr-un fisier cu extensia .amx, un fisier cu extensia .pwn.

Un fisier cu extensia .pwn este editabil, ceea ce inseamna ca va trebui sa-i adaugati niste linii de cod in asa fel incat daca cineva foloseste vreun soft pentru conversie (DeAMX), sa nu poata sa extraga fisierul .pwn.

Pentru a face acest lucru urmati urmatorii pasi:

 

Pasul 1:

Includeti urmatoarele librarii in cazul in care nu sunt incluse deja (librariile se introduc la inceputul scriptului):

#include <a_samp>
#include <core>
#include <float>//Daca rulati serverul pe versiunea 0.3.7/0.3z, nu trebuie sa mai includeti librariile 'core' si 'float'. Despre celelalte versiuni de sa:mp nu ma pronunt.

Pasul 2:

Undeva in script, introduceti urmatorul ansamblu de linii de cod (la finalul scriptului de exemplu):

Dupa ce ati introdus liniile de cod, folositi cuvantul magic: "AntiDeAMX();", intr-un callback din script (de exemplu la OnGamemodeInit/OnFilterscriptInit).

AntiDeAMX()
{
    new a[][] =
    {
        "Unarmed (Fist)",
        "Brass K"
    };
    #pragma unused a
}

Pasul 3:

Compilati gamemodeul/filterscriptul (Comanda rapida: F5).

 

 


 

 

ETAPA 2

In aceasta etapa am sa va arat o metoda prin care un gamemode/filterscript va refuza sa porneasca daca nu indeplineste anumite conditii impuse in script. Pentru ca aceasta metoda sa fie eficienta, trebuie sa treceti inainte prin etapa 1, pentru ca nimeni sa nu poata sa editeze sursa scriptului si sa elimine conditiile.

 

Exista numeroase alternative, eu am sa va prezint una dintre ele si probabil cea mai eficienta:

Daca folositi in gamemode/filterscript, o conexiune la o baza de date, puteti folosi urmatorul script:

  mysql = mysql_connect("localhost", "Mysql_user", "Mysql_db", "Mysql_password");//Editati urmatoarele campuri.     if(mysql_errno(mysql) != 0)//Nu se conecteaza la baza de date
  {
	SendRconCommand("exit");//Inchide serverul
  }
  else print("MySQL: A MySQL Connection was successfully opened.");//Se conecteaza cu succes la baza de date

Notae:

-Pentru ca exemplul de mai sus sa functioneze si nimeni sa nu fie capabil sa ruleze filterscriptul/gamemodeul protejat, trebuie sa folositi la hostul bazei de date, "localhost", sau in cazul in care stiti ca un gamemode/filterscript a fost furat, sa schimbati datele de acces la baza de date (user/db_name/parola).

-Pentru mysql am folosit pluginul MySQL R39-3: https://github.com/pBlueG/SA-MP-MySQL/releases

Edited by Cdorsu
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • 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.