Desenvolver um Plugin[Linux] -
leonardo1434 - 01.10.2013
Tуpicos:
- Introduзгo
- Requerimentos
- Configuraзгo.
- Teste
- Notas Finais
- Link Auxiliar
- Crйditos
- 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.
- IDE Code::Blocks,Sampgdk e conhecimento bбsico em c/c++.
- Configuraзгo
- CodeBlocks:
- File->New->Project.
Passo 1
- Selecione: Shared Library na aba projects.
Passo 2
- 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.)
- Quase Tudo pronto, Apenas precisamos configurar o compilador e fazer um link com o sampgdk. Vб em projetcs-> build options ->
Passo 4
- 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]
- 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.
- Terminamos a parte do IDE.
Passo 5
- Sampgdk:
- Baixe a ultima versгo normal(Nгo baixe static.) do tipo .sh.
- Abra o terminal. use o comando cd e vб atй o diretуrio onde estб o .sh.
- Faзa o login como sudo. (comando -> "sudo su", depois a senha)
- 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.
- Aceite as condiзхes por apertando "y" + enter, Depois pressione "Q" e por fim, aperte "y" + enter para instalar na pasta default.
Passo 6
- 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
- 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.
- Link Auxiliar:
- Crйditos:
- Todos os direitos estгo reservados aos seus devidos criadores.
PSS: Aceito sugestхes/erros/crнticas e etc.
Re: Desenvolver um Plugin -
PT - 01.10.2013
epaaaaaaaa
muito bom, isso ja era necessario u.u
bom trabalho +rep
Re: Desenvolver um Plugin -
smiiir - 01.10.2013
Muito bom..
Tentarei criar..
Re: Desenvolver um Plugin -
zSuYaNw - 01.10.2013
Belo tutorial Leonardo!
Era oque eu tava precisando,
... e necessitaria um tutorial desses para windows :c
Re: Desenvolver um Plugin -
Schocc - 01.10.2013
vc leu meu tуpico Leonardo, sabia que vc iria atender.
++++++++++++++rep;
Fiquei muito feliz com vc expandindo sobre o assunto.
Re: Desenvolver um Plugin -
Magnus' - 01.10.2013
Excelente tutorial, pena que os usuбrios de linux sгo minoria, seria interessante um para windows
+2 reps.
Re: Desenvolver um Plugin -
zSuYaNw - 01.10.2013
Opa ia quase esquecendo, +7
versгo windows: (inglкs)
https://sampforum.blast.hk/showthread.php?tid=253436
Re: Desenvolver um Plugin -
Schocc - 01.10.2013
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.
Re: Desenvolver um Plugin -
RebeloX - 01.10.2013
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
Re: Desenvolver um Plugin -
ipsBruno - 01.10.2013
Tambйm acho que deveria ter feito para Windows, mas enfim. Bom tutorial.