[Tutorial] Desenvolver um Plugin
#1

Tуpicos:

  1. Introduзгo
    • c/c++
  2. Requerimentos
    • Download
      • Code::Blocks

      • SampGdk
  3. Configuraзгo.
    • Code::Blocks

    • SampGdk
  4. Teste
    • Source
  5. Notas Finais
  6. Link Auxiliar
  7. Crйditos











  1. Tуpico foi criado com o intuito de ajudar no desenvolvimento de projetos em IDE diferentes do Visual Studio. PS: O foco atual deste tutorial й para Linux. Porйm poderб haver uma versгo windows se alguйm quiser contribuir.





    • Neste tуpico nгo irei ajudar pessoas sobre c/c++/etc.




  2. IDE Code::Blocks,Sampgdk e conhecimento bбsico em c/c++.










  3. Configuraзгo





    1. CodeBlocks:


      1. File->New->Project.
        Passo 1
      2. Selecione: Shared Library na aba projects.
        Passo 2
      3. Clique em next -> escolha a linguagem c ou c++ -> escolha o titulo e etc. -> escolha o compilador, deixe GNU GCC COMPILER.(ou pule essa parte.)
      4. Quase Tudo pronto, Apenas precisamos configurar o compilador e fazer um link com o sampgdk. Vб em projetcs-> build options ->
        Passo 4
      5. Nesta aba "Compile Setting", vб para "Compile Flags", lб existem vбrias opзхes para o compilador. Apenas irei mencionar as que eu uso para evitar ao mбximo o desnecessбrio. Marque a caixinha destas.




        Aba Debug:
        Produce debugging symbols [-g]





        Aba Release:
        Produce debugging symbols [-g]




      6. Pronto feito. O compilador estб pronto. Agora vamos fazer o link.
        Neste mesmo lugar, terб uma aba "linker settings". Clique em "add" e apenas adicione isto "sampgdk". sem aspas.
      7. Terminamos a parte do IDE.
        Passo 5


    2. Sampgdk:
      1. Baixe a ultima versгo normal(Nгo baixe static.) do tipo .sh.
      2. Abra o terminal. use o comando cd e vб atй o diretуrio onde estб o .sh.
      3. Faзa o login como sudo. (comando -> "sudo su", depois a senha)
      4. Agora digite isso -> "sh sampgdk-x.y.z-Linux.sh --prefix=/usr/local" onde x.y.z й a versгo.(coloque para qual versгo vocк baixou.). Apуs isso aperte enter.
      5. Aceite as condiзхes por apertando "y" + enter, Depois pressione "Q" e por fim, aperte "y" + enter para instalar na pasta default.
        Passo 6




  4. Teste:
    Source helloworld.cpp by Zeex.

    PHP код:
    #include <sampgdk/a_players.h>
    #include <sampgdk/a_samp.h>
    #include <sampgdk/core.h>
    #include <sampgdk/plugin.h>
    #include <cstdio>
    static ThisPlugin teste;
    PLUGIN_EXPORT bool PLUGIN_CALL OnGameModeInit() {
      
    ServerLog::Printf("------------------------------------------\n");
      
    ServerLog::Printf("      Plugin Carregado com sucesso.     \n");
      
    ServerLog::Printf("------------------------------------------\n");
      return 
    true;
    }
    PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports() {
      return 
    SUPPORTS_VERSION SUPPORTS_PROCESS_TICK;
    }
    PLUGIN_EXPORT bool PLUGIN_CALL Load(void **ppData) {
      return 
    teste.Load(ppData) >= 0;
    }
    PLUGIN_EXPORT void PLUGIN_CALL Unload() {
      
    teste.Unload();
    }
    PLUGIN_EXPORT void PLUGIN_CALL ProcessTick() {
      
    teste.ProcessTimers();

    • Volte para o code::blocks, copie e cole este source no seu source(".cpp"). Apуs isso, apenas apertar "ctrl" + "f9" para construir o plugin (.so). Agora estб pronto, basta configurar na pasta do seu servidor e o server.cfg que ele irб carregar e funcionar perfeitamente.
      Passo Final



  5. Notas Finais:
    -Tentei ser o mais breve possнvel e desviar de questхes sobre o uso do SDK(low level, abordado neste уtimo tutorial -> [Tutorial] Plugin development guide). No caso, atual, Sampgdk(high level,SDK) que й bastante similar ao que й em pawn.

    - Como foi dito no comeзo, este tutorial apenas foi feito para linux. Porque? Linux й foda, sу isso.

    - Bom... mas vai ter outro para windows? Nгo sei. se eu conseguir emular o compilador + ide eu poderia atй fazer a versгo windows, ou atй mesmo se alguйm quiser colaborar com alguma coisa. Enfim, para quem quiser tentar no windows, bastar instalar o compilador MinGW, definir como compilador principal no code::blocks e ao invйs de baixar o sampgdk .sh que й para linux, baixe o .exe e instale na pasta do sistema. feito isso, na criaзгo do projeto, mude, escolha "DLL" e depois й apenas seguir os outros passos que deve funcionar.

    - Alguns devem estar se perguntando sobre o porque de nгo usar o ".def". No linux, nгo й necessбrio. pois o GCC/G++ funciona de forma diferente do VC++. Isto й bom, pois nгo deverб precisar do ".def" caso tentar usar o "MinGW", como explicado acima.


    - Ultima nota, Eu tentarei adicionar hoje a noite outro IDE, Geany. Programa й em portuguкs, simples e direto.




  6. Link Auxiliar:

  7. Crйditos:
    - Todos os direitos estгo reservados aos seus devidos criadores.


PSS: Aceito sugestхes/erros/crнticas e etc.
Reply


Messages In This Thread
Desenvolver um Plugin[Linux] - by leonardo1434 - 01.10.2013, 18:50
Re: Desenvolver um Plugin - by PT - 01.10.2013, 18:52
Re: Desenvolver um Plugin - by smiiir - 01.10.2013, 19:11
Re: Desenvolver um Plugin - by zSuYaNw - 01.10.2013, 19:20
Re: Desenvolver um Plugin - by Schocc - 01.10.2013, 19:23
Re: Desenvolver um Plugin - by Magnus' - 01.10.2013, 19:24
Re: Desenvolver um Plugin - by zSuYaNw - 01.10.2013, 19:25
Re: Desenvolver um Plugin - by Schocc - 01.10.2013, 19:29
Re: Desenvolver um Plugin - by RebeloX - 01.10.2013, 19:56
Re: Desenvolver um Plugin - by ipsBruno - 01.10.2013, 20:05

Forum Jump:


Users browsing this thread: 1 Guest(s)