SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Español/Spanish > Lanzamientos/Releases

 
 
Thread Tools Display Modes
Old 22/02/2013, 05:47 PM   #1
Dreyfuz
Huge Clucker
 
Dreyfuz's Avatar
 
Join Date: Jan 2013
Location: Planeta Tierra - Argentina - Buenos Aires.
Posts: 444
Reputation: 19
Default Cómo crear un plugin

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

Como
  1. Ejecutar Visual C++ (2008/2010 version).
  2. Ir a "File" luego en "New" y seleccionar "Project".

  3. Verás el siguiente cuadro:

  4. Selecciona "Win32 Project", he introduce un nombre al Proyecto y presiona "OK".
  5. Luego te aparecera el siguiente cuadro:

  6. Solo presionas el boton "Next" para continuar.
  7. En el siguiente cuadro debes marcar la opcion "DLL" en Application type y "Empty project" en additional options luego presionar el boton "Finish".

  8. 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")

  9. 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".
  10. Luego les aparecera el siguiente cuadro:

  11. 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".

  12. Ahora te llevara al solution explorer. Has click derecho en el nombre del proyecto y seleccionas "Add", luego has clik en "New Item".
  13. 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".

  14. Has click derecho en el nombre del proyecto. selecciona la opción "Add" y click en "New Item", de nuevo.
  15. 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".

  16. Ahora podras ver 2 pestañas abiertas: "NombreDeTuProyecto.def" y "NombreDeTuProyecto.cpp".
  17. Abre "NombreDeTuProyecto.def" y pega lo siguiente:
    Code:
    EXPORTS
    	Supports
    	Load
    	Unload
    	AmxLoad
    	AmxUnload
  18. Ahora abre "NombreDeTuProyecto.cpp" y pega lo siguiente:
    pawn Code:
    #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;
    }
  19. 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".
  20. Extraes el archivo "SDK" que descargaste en "Documents/Visual Studio 2010/Projects/NombreDeTuProyecto/".
  21. volver al solution explorer y hacer click derecho en la carpeta "SDK" que creaste y selecciona "Add", luego has click en "Existing Item".
  22. Te aparecera un cuadro. Ahora busca el archivo "amxplugin.cpp", lo seleccionas y le das a "Add".
  23. Ahora lo mas lindo. Presiona F7 para compilarlo.
  24. Ahora si seguiste bien los pasos, podras encontrar el .dll en la carpeta debug.
Crear un native
  1. Añadir esto en algún lugar de la secuencia de comandos .cpp:
    pawn Code:
    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
    }
  2. Ir a:
    pawn Code:
    AMX_NATIVE_INFO projectNatives[] =
    {
            { 0, 0 }
    };
    Y Agregar "{ "NombreDeTuNativeAqui", NombreDeTuNativeAqui }", Ejemplo:
    pawn Code:
    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!
    };
  3. Compilar(F7) he ir a la carpeta debug.
  4. Selecciona su archivo .dll y copia dentro de la carpeta plugins de tu servidor
  5. Crear un nuevo script .pwn y añadi "native NombreDeTuNativeAqui()" En la parte superior. Y así lo llaman en "OnFilterScriptInit". Ejemplo:
    pawn Code:
    #include <a_samp>

    native NombreDeTuNativeAqui();

    public OnFilterScriptInit()
    {
        NombreDeTuNativeAqui();
        return 1;
    }
  6. Cuando se ejecuta el servidor, se debe imprimir esto: "He echo mi primer plugin.! ".
  7. 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.
Nota(s)
  • 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.
__________________
Traducciones del Ingles al Español
[Tutorial] Cómo crear un plugin
[Tool/Web/Other] Callback's
[Include] [0.3X] mSelection 1.1 R3
Dreyfuz is offline  
Old 22/02/2013, 05:49 PM   #2
godoy32
Huge Clucker
 
Join Date: Jul 2011
Posts: 260
Reputation: 8
Default Respuesta: Cómo crear un plugin

Muy buen tutorial, llevaba mucho tiempo esperando uno así en español
godoy32 is offline  
Old 22/02/2013, 05:52 PM   #3
Dreyfuz
Huge Clucker
 
Dreyfuz's Avatar
 
Join Date: Jan 2013
Location: Planeta Tierra - Argentina - Buenos Aires.
Posts: 444
Reputation: 19
Default Respuesta: Cómo crear un plugin

Quote:
Originally Posted by godoy32 View Post
Muy buen tutorial, llevaba mucho tiempo esperando uno así en español
El post lo hizo Ryder yo solo lo traduje. Igual Gracias..
__________________
Traducciones del Ingles al Español
[Tutorial] Cómo crear un plugin
[Tool/Web/Other] Callback's
[Include] [0.3X] mSelection 1.1 R3
Dreyfuz is offline  
Old 22/02/2013, 06:07 PM   #4
JustBored
High-roller
 
JustBored's Avatar
 
Join Date: Jan 2013
Location: Buenos Aires - Argentina
Posts: 1,150
Reputation: 134
Default Respuesta: Cómo crear un plugin

Está genial la verdad. Lo leí todo.
__________________
"Compiler - A program designed to tell you how wrong you are. It's a great way to induce stress and frustration."

JustBored is offline  
Old 22/02/2013, 06:15 PM   #5
Dreyfuz
Huge Clucker
 
Dreyfuz's Avatar
 
Join Date: Jan 2013
Location: Planeta Tierra - Argentina - Buenos Aires.
Posts: 444
Reputation: 19
Default Respuesta: Cómo crear un plugin

Quote:
Originally Posted by JustBored View Post
Está genial la verdad. Lo leí todo.
Gracias.. xD

Ojala ahora alguien de la seccion español, empiesen a crear plugin como lo hacen los de la seccion inglesa. xD
__________________
Traducciones del Ingles al Español
[Tutorial] Cómo crear un plugin
[Tool/Web/Other] Callback's
[Include] [0.3X] mSelection 1.1 R3
Dreyfuz is offline  
Old 22/02/2013, 06:24 PM   #6
CrossOv3r
Gangsta
 
CrossOv3r's Avatar
 
Join Date: Jun 2012
Location: Antofagasta - Chile
Posts: 689
Reputation: 55
Default Respuesta: Cómo crear un plugin

Genial, aver si me animó a crear unos cuantos.
CrossOv3r is offline  
Old 22/02/2013, 06:25 PM   #7
Daniel-92
Gangsta
 
Join Date: Dec 2010
Location: Nicaragua
Posts: 836
Reputation: 65
Default Re: Cómo crear un plugin

Buenisimo que lo hayas traducido, así los que no entienden mucho ingles como yo xD les será muy útil.
Daniel-92 is offline  
Old 22/02/2013, 06:29 PM   #8
Dreyfuz
Huge Clucker
 
Dreyfuz's Avatar
 
Join Date: Jan 2013
Location: Planeta Tierra - Argentina - Buenos Aires.
Posts: 444
Reputation: 19
Default Respuesta: Re: Cómo crear un plugin

Quote:
Originally Posted by Daniel-92 View Post
Buenisimo que lo hayas traducido, así los que no entienden mucho ingles como yo xD les será muy útil.
Gracias...

Quote:
Originally Posted by CrossOv3r View Post
Genial, aver si me animó a crear unos cuantos.
Animate,.. yo te apoyo... xD
__________________
Traducciones del Ingles al Español
[Tutorial] Cómo crear un plugin
[Tool/Web/Other] Callback's
[Include] [0.3X] mSelection 1.1 R3
Dreyfuz is offline  
Old 22/02/2013, 07:53 PM   #9
xSDx
Gangsta
 
Join Date: Oct 2012
Posts: 746
Reputation: 2
Default Respuesta: Cómo crear un plugin

Microsoft Visual C++ esta disponible en el lenguaje español, para que puedas ponerlo completamente en español y te recomendaria que mejor uses Dev C++

Saludos.
__________________
Quote:
Skype: shinydavidvaldez
xSDx is offline  
Old 23/02/2013, 01:06 AM   #10
JustBored
High-roller
 
JustBored's Avatar
 
Join Date: Jan 2013
Location: Buenos Aires - Argentina
Posts: 1,150
Reputation: 134
Default Respuesta: Cómo crear un plugin

Tengo una duda. ¿Cuales son las funciones disponibles? es que he comenzado y bien quisiera saber que puedo utilizar. O más bien, si pudiera no sé adaptar algunas de PAWN aunque sean 2 lenguajes un tanto relacionados y un tanto distanciados.
__________________
"Compiler - A program designed to tell you how wrong you are. It's a great way to induce stress and frustration."

JustBored is offline  
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 11:11 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.