Jump to content

Recommended Posts

Posted

Multi oameni vor sa stie cum creezi un plugin folosind Microsoft Visual C++ 2008/2010. Unii oameni cred ca este greu dar defapt este simplu

Voi explica pas cu pas cum se creeaza un plugin.

Lucruri de stiut inainte sa incepi

[*]Trebuie sa instalezi Microsoft Visual C++.

[*]Trebuie sa ai experienta in pawno pentru a intelege unele lucruri.

[*]SA-MP Software Development Kit (SDK).

Cum?

[*]Deschide Microsoft Visual C++ (2008/2010 version).

[*]Dute la "File" apasa pe "New" si alege "Project".

93040080.jpg

[*]Vei vedea urmatorul dialog.

[img width=500 height=345]http://img215.imageshack.us/img215/9831/10213722.jpg

[*]Alege "Win32 Project", scrie un nume si apoi apasa "OK" pentru a continua.

[*]Va aparea urmatorul dialog

[img width=500 height=423]http://img823.imageshack.us/img823/3038/20612685.jpg

[*]Apasa "Next" pentru a continua.

[*]In urmatorul dialog trebuie sa selectezi "DLL" apoi apasa butonul "Finish".

32653365.jpg

[*]Apasa pe "View" si alege "Other windows" apoi apasa "Solution explorer")

80660788.jpg

[*]Dupa cum vezi am numit proiectul "Test". Apasa click pe "Test" la "Solution explorer" si alege "Properties".

[*]Vei vedea urmatorul dialog.

45562007.jpg

[*]In dreapta, click pe "Linker" apoi alege "Input" . "Module Definition File" este numele proiectului apoi apasa  "OK".

[img width=500 height=355]http://img828.imageshack.us/img828/6793/31736483.png

[*]Dute inapoi la "solution explorer" si apasa click dreapta pe pe numele proiectului tau apoi alege "Add", si apoi apasa click "New Item".

[*]In urmatorul dialog, alege "C++ File (.cpp)" si jos la "Name" scrii ce scrii la "Module Definition File" (in step 11). apoi apasa "Add".

16586537.jpg

[*]Apasa click dreapta pe numele proiectului tau, alege "Add" si apasa "New Item" iar.

[*]Apoi faci la fel, alegi"C++ File (.cpp)" dar acum, scrii la "Name" numele care lai ales inainte dar acu cu extensia ".cpp" . Apoi apasa "Add".

[img width=500 height=345]http://img23.imageshack.us/img23/522/21321823.jpg

[*]Acum vei vedea 2 tabele: "YourProjectName.def" si "YourProjectName.cpp".

[*]Deschide"YourProjectName.def" si da paste paste la urmatorul cod:

EXPORTS
	Supports
	Load
	Unload
	AmxLoad
	AmxUnload

[*]Acum deschide "YourProjectName.cpp" si copie urmatorul cod:

[pawn]

#include "../SDK/plugin.h"

typedef void

(*logprintf_t)(char* format, ...)

;

logprintf_t

logprintf

;

void

**ppPluginData

;

extern void

*pAMXFunctions

;

PLUGIN_EXPORT bool PLUGIN_CALL Load(void **ppData)

{

  pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS];

  logprintf = (logprintf_t)ppData[PLUGIN_DATA_LOGPRINTF];

  return 1;

}

PLUGIN_EXPORT void PLUGIN_CALL Unload()

{

}

AMX_NATIVE_INFO projectNatives[] =

{

  { 0, 0 }

};

PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports()

{

  return SUPPORTS_VERSION | SUPPORTS_AMX_NATIVES;

}

PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX *amx)

{

  return amx_Register(amx, projectNatives, -1);

}

PLUGIN_EXPORT int PLUGIN_CALL AmxUnload(AMX *amx)

{

  return AMX_ERR_NONE;

}

[/pawn]

[*]Dute inapoi la " Solution explorer" si apasa click dreapta pe numele proiectului tau , alege "Add", si da click pe "New Filter". Acum vei vedea ca s-a creat un nou fisiel. Schimbai numele cu "SDK".

[*]Da extract la fisierul "SDK" si il downloadezi in "Documents/Visual Studio 2010/Projects/YourProjectName/".

[*]Dute la "Solution explorer" si da click dreapta pe "SDK" pe care l-ai creat si apasa"Add", apoi da click pe "Existing Item".

[*]un dialog va aparea, acum cauta folderul in care ai descarcat "SDK" si alege "amxplugin.cpp".

[*]Acum apasa F7 pentru compilare.

[*]Vei gasi fisierul .dll in folderul de Degug.

Crearea unui native

[*]Adauga asta undeva prin scriptul tau .cpp:

[pawn]

static cell AMX_NATIVE_CALL YourNativeNameHere(AMX *amx, cell *params)

        logprintf("Mi-am creat primul meu plugin )");

        return 1;

}[/pawn]

[*]Dute la:

[pawn]

AMX_NATIVE_INFO projectNatives[] =

{

        { 0, 0 }

};

[/pawn]

Adauga "{ "YourNativeNameHere", YourNativeNameHere }", asa:

[pawn]

AMX_NATIVE_INFO projectNatives[] =

{

        { "YourNativeNameHere", YourNativeNameHere } // In primul array, scrii numele native-ului care il vei folosi in PAWN. In prima parte, scrii numele in fisierul .cpp .

};

[/pawn]

[*]Compileaza si dute la folderul Debug-ului.

[*]Alege fisierul .dll si scrie asta in fisierul serverului tau (.pwn).

[*]Creaza un .pwn si adauga "native YourNativeNameHere();" in script. Si folosestel sub "OnFilterScriptInit".

[pawn]

#include <a_samp>

native YourNativeNameHere();

public OnFilterScriptInit()

{

YourNativeNameHere();

return 1;

}

[/pawn]

[*]Iti deschizi serverul, si ar trebui sa se printeze ca: "Mi-am facut primul plugin :)".

[*]Asta este doar baza. Acum iti poti crea propriile pluginuri!

NOTE: Daca vrei sa creezi un native cu parametri, poti folosi "params[]" incepand de la index 1.

P.S:Acest tutorial nu este facut de mine , dar de aici am invatat eu cat de cat

Sursa

Massari e curva mea

Posted

Anakin" post="143129" timestamp="1368877325"]

Bine ca ii tradus bravo :D

Pai asta e forum roman ..

Trebuia sa-l pun in eng?:))

Mersi xD

Massari e curva mea

Posted

Tare frate! :) Bravo ma continua tot asa... cum te-am invatat eu ;;)

:)) =]]

Mai invatat cum sa fac "wank"?:))

Mersi xD

Massari e curva mea

  • 3 weeks later...
Posted

Bravo

<a href="http://www.game-state.com/93.119.26.26:7777/"><img src="http://www.game-state.com/93.119.26.26:7777/350x20_FFFFFF_FFFFFF_000000_000000.png" alt="www.Game-State.com" style="border-style: none;" /></a>

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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. For more details you can also review our Terms of Use and Privacy Policy.