[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
#2

epaaaaaaaa

muito bom, isso ja era necessario u.u

bom trabalho +rep
Reply
#3

Muito bom..

Tentarei criar..
Reply
#4

Belo tutorial Leonardo!

Era oque eu tava precisando,
... e necessitaria um tutorial desses para windows :c
Reply
#5

vc leu meu tуpico Leonardo, sabia que vc iria atender.

++++++++++++++rep;


Fiquei muito feliz com vc expandindo sobre o assunto.
Reply
#6

Excelente tutorial, pena que os usuбrios de linux sгo minoria, seria interessante um para windows

+2 reps.
Reply
#7

Opa ia quase esquecendo, +7


versгo windows: (inglкs) https://sampforum.blast.hk/showthread.php?tid=253436
Reply
#8

Se alguйm poder explicar como criar compilar sem IDE, somente por linha de comando seria bom, gosto de fazer as coisas manualmente par obter melhores resultados.

@Topico Vou testar, depois posto noticias


Se for bem explicado garanto que й Sticky, porem deveria ter a parte ensinando na plataforma Windows pois a maioria usa o ruindows.
Reply
#9

Quote:
Originally Posted by Schocc
Посмотреть сообщение
Se alguйm poder explicar como criar compilar sem IDE, somente por linha de comando seria bom, gosto de fazer as coisas manualmente par obter melhores resultados.

@Topico Vou testar, depois posto noticias


Se for bem explicado garanto que й Sticky, porem deveria ter a parte ensinando na plataforma Windows pois a maioria usa o ruindows.
Bem normalmente usa-se um IDE para fazer esse trabalho porque vocк vai ter mais trabalho a linkar as libs e outras coisas, nгo que seja difнcil mas й perda de tempo porque os resultados serгo os mesmos.

--

Bastante interessante e ainda bem que fez com Code::blocks e MinGW pois й o que eu estou a usar neste momento
Reply
#10

Tambйm acho que deveria ter feito para Windows, mas enfim. Bom tutorial.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)