Jump to content

Cum creezi un plugin


Rimmon

Recommended Posts

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

Link to comment
Share on other sites

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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