22.02.2013, 17:47
Introducion
Mucha gente quiere saber cуmo crear un plugin utilizando Microsoft Visual C++ 2008/2010. Algunas personas piensan que es difнcil, pero en realidad es bastante simple.
A continuaciуn voy a explicarles paso a paso cуmo crear su primer nativo.
Cosas que usted debe saber antes de empezar
Mucha gente quiere saber cуmo crear un plugin utilizando Microsoft Visual C++ 2008/2010. Algunas personas piensan que es difнcil, pero en realidad es bastante simple.
A continuaciуn voy a explicarles paso a paso cуmo crear su primer nativo.
Cosas que usted debe saber antes de empezar
- Tienes que instalar Microsoft Visual C++.
- Secesitas de una cierta experiencia en el lenguaje PAWN para entender las cosas.
- SA-MP Software Development Kit (SDK).
- Ejecutar Visual C++ (2008/2010 version).
- Ir a "File" luego en "New" y seleccionar "Project".
- Verбs el siguiente cuadro:
- Selecciona "Win32 Project", he introduce un nombre al Proyecto y presiona "OK".
- Luego te aparecera el siguiente cuadro:
- Solo presionas el boton "Next" para continuar.
- En el siguiente cuadro debes marcar la opcion "DLL" en Application type y "Empty project" en additional options luego presionar el boton "Finish".
- Ahora lo unico que vas a ver es el solution explorer(Explorador de Soluciones) en la parte izquierda.(Si no puede ver el solution explorer, presione la pestaсa "View" y seleccione "Other Windows" y haga click en "Solution Explorer")
- Como veran yo llame "Test" a mi proyecto, ustedes pueden llamarlo como quieran. Haga click derecho en "Test" en el Solution Explorer y seleccione la opcion "Properties".
- Luego les aparecera el siguiente cuadro:
- En el lado izquierdo, has click en "Linker" luego seleccionar "Input" y escribir al lado de "Module Definition File" el nombre del proyecto o el que tu quieras, aсadiendo la extensiуn ".def" y luego presionas "OK".
- Ahora te llevara al solution explorer. Has click derecho en el nombre del proyecto y seleccionas "Add", luego has clik en "New Item".
- En el cuadro que te aparece, selecciona "C++ File (.cpp)" y a continuacion de "Name" escribe lo que has escrito junto a "Module Definition File" (en el paso 11). Y presiona "Add".
- Has click derecho en el nombre del proyecto. selecciona la opciуn "Add" y click en "New Item", de nuevo.
- Esta ves tienes que hacer lo mismo, Seleccionar "C++ File (.cpp)" pero ahora, escribe juento a "Name" el nombre elegido anteriormente, con la extensiуn ".cpp". Y presionar "Add".
- Ahora podras ver 2 pestaсas abiertas: "NombreDeTuProyecto.def" y "NombreDeTuProyecto.cpp".
- Abre "NombreDeTuProyecto.def" y pega lo siguiente:
Код:EXPORTS Supports Load Unload AmxLoad AmxUnload
- Ahora abre "NombreDeTuProyecto.cpp" y pega lo siguiente:
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;
} - Ahora ve al Solution explorer y has click derecho en el nombre del proyecto, selecciona la opciуn "Add", y has click en "New Filter". Ahora veras que se ha creado una nueva carpeta. Le cambias el nombre a "SDK".
- Extraes el archivo "SDK" que descargaste en "Documents/Visual Studio 2010/Projects/NombreDeTuProyecto/".
- volver al solution explorer y hacer click derecho en la carpeta "SDK" que creaste y selecciona "Add", luego has click en "Existing Item".
- Te aparecera un cuadro. Ahora busca el archivo "amxplugin.cpp", lo seleccionas y le das a "Add".
- Ahora lo mas lindo. Presiona F7 para compilarlo.
- Ahora si seguiste bien los pasos, podras encontrar el .dll en la carpeta debug.
- Aсadir esto en algъn lugar de la secuencia de comandos .cpp:
pawn Код:static cell AMX_NATIVE_CALL NombreDeTuNativeAqui(AMX *amx, cell *params)
{
logprintf("He echo mi primer plugin.! :)");
// Aqui colocas tus codigos
return 1; // Cambia el valor de return si se necesita
} - Ir a:
pawn Код:AMX_NATIVE_INFO projectNatives[] =
{
{ 0, 0 }
};
pawn Код:AMX_NATIVE_INFO projectNatives[] =
{
{ "NombreDeTuNativeAqui", NombreDeTuNativeAqui } // En la dimensiуn del array, se escribe el nombre de los nativos que vas a llamar en PAWN. En la segunda, se escribe el nombre en .Cpp En este caso, son lo mismo!
}; - Compilar(F7) he ir a la carpeta debug.
- Selecciona su archivo .dll y copia dentro de la carpeta plugins de tu servidor
- Crear un nuevo script .pwn y aсadi "native NombreDeTuNativeAqui()" En la parte superior. Y asн lo llaman en "OnFilterScriptInit". Ejemplo:
pawn Код:#include <a_samp>
native NombreDeTuNativeAqui();
public OnFilterScriptInit()
{
NombreDeTuNativeAqui();
return 1;
} - Cuando se ejecuta el servidor, se debe imprimir esto: "He echo mi primer plugin.!
".
- Esto es sуlo lo bбsico. Usted puede crear otras cosas ъnicas!
NOTA: Si desea native's con parбmetros, puedes utilizar "params []" a partir del нndice(Index) 1.
- Trate de encontrar la manera de hacer otras cosas. Yo sуlo te estoy enseсando lo bбsico sobre cуmo empezar.
- A continuaciуn puedes hacer preguntas, pero yo no voy a contestar a todos(por que yo no soy RyDeR` xD).
Creditos - Post creado por RyDeR`.(Post Original)
- Traducido por Dreyfuz.