[Projeto] SA-MP Toolkit - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (
https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Projeto] SA-MP Toolkit (
/showthread.php?tid=602669)
SA-MP Toolkit -
Dayvison_ - 11.03.2016
SA-MP Toolkit 0.1
Construido pela comunidade, para a comunidade
Sumбrio- Sobre
- Caracteristicas
- Prй-Compilador
- Mуdulos dinвmicos
- Simulaзгo de objetos
- Variaveis
- Personalizavel
- DocGen
- Visualizaзгo em HTML
- JSON
- Sintaxe like DoxyGen, PHPDoc
- Extensivo
- Site
- Responsivo
- Changelog
- Metas
- Sugestхes
- Blog
- Disqus comentбrios
- ****** analytics
- Contador
- Feed rss
- Base
- Anticheat
- Links
- Crйditos
Sobre
Algum tempo atrбs deparei-me com "PAWN Boilerplate" uma ferramenta incrнvel criada por Slice e ******, que me deu a idйia e inspiraзгo para fazer algo melhor, maior.
Tomando assim resolvi fazer o SA-MP Toolkit, tanto com o Prй-Compilador como outras ferramentas que vocк verб logo mais.
Optei neste projeto ultilizar a linguagem php, por ser uma linguagem de fбcil manuseio, porйm como php nгo й tгo veloz em um grande projeto atrasaria o compilador em no minimo 12 segundos devido a isto a melhor opзгo seria usar c++, porйm nгo o domino fluentemente, mas caso alguйm se interesse no que eu busco e tenha o conhecimento para ajudar a transcrever o cуdigo, serб bem vindo.
Caracteristicas
Prй-Compilador- Mуdulos dinвmicos.
Com o prй compilador vocк pode usufruir de um abrangente sistema de modularidade, vocк abaixo pode ver um escopo de mуdulos.
Quote:
- Mуdulos
- User
- callbacks
- OnPlayerConnect.inc
- OnPlayerDeath.inc
- CustomCallback.inc
- Login
- callbacks
- OnPlayerConnect.inc
- OnPlayerRequestSpawn.inc
- callbacks.inc
- commands.inc
- CustomFile.inc
- functions.inc
- header.inc
- callbacks.inc
- commands.inc
- CustomFile.inc
- functions.inc
- header.inc
|
Caso queira ver uma arvore completa, pode acessar este link.
Cada mуdulo tem seu prefixo.
User => User.
Admin => Admin.
Podendo tambem ser acessado via 'this.', este indicarб o prefixo do mуdulo atual.
Exemplo
Quote:
User/header.inc
PHP код:
new this.Variavel = 5;
Admin/header.inc
PHP код:
new this.Variavel = 2;
Admin/callbacks/OnGameModeInit.inc
PHP код:
{
printf("Admin.Variavel = %d", Admin.Variavel);
printf("User.Variavel = %d", User.Variavel);
}
Output
Код:
Admin.Variavel = 2
User.Variavel = 5
|
Este й o conceito bбsico, vocк encontrarб mais informaзхes na documentaзгo.
- Simulaзгo de objetos.
Fora os prefixos que vocк ja viu acima, caso ativado nas configuraзхs, vocк pode usar uma espйcie de "Objeto orientado", um exemplo disto seria.
Quote:
User/header.inc
PHP код:
new UserVar<int:Kills>;
new UserVar<int:Deaths>;
new UserVar<string:Nome[MAX_PLAYER_NAME + 1]>;
new UserVar<BitArray:Logado>; // Y_Bits
new UserVar<Iterator:Veiculos<15>>; // Y_Iterate
User/callbacks/OnPlayerDeath.inc
PHP код:
if(killerid != INVALID_PLAYER_ID)
++killerid->Kills;
++playerid->Deaths;
Ou pode usar assim, й a teu critйrio.
User/callbacks/OnPlayerDeath.inc
PHP код:
if(killerid != INVALID_PLAYER_ID)
++User.Kills[killerid];
++User.Deaths[playerid];
|
Porйm pode haver um conflito, em que no caso se deve usar um tag para corrigi-lo, exemplo do conflito.
Eu recomendo sempre usar a tag, pois hoje vocк pode nгo ter 2 ou mais variaveis de mesmo nome, porйm em um futъro...
Quote:
User/header.inc
PHP код:
new UserVar<int:Variavel>;
Veiculo/header.inc
PHP код:
new VehVar<int:Variavel>;
Admin/callbacks/OnGameModeInit.inc
PHP код:
new id;
id->Variavel = 5;
Como o Prй-Compilador entenderia isto? Como advinhar qual caminho o programdor quer, Veiculo ou User?
Para isto existe uma simples soluзгo.
Admin/callbacks/OnGameModeInit.inc
PHP код:
new id;
P:id->Variavel = 5;
Assim o compilador assumiria que Variavel, vem de Player.
|
Tags para desiludir o Prй-Compilador.
P: - Player/Usuario
U: - Player/Usuario
V: - Veiculo
C: - Config
Vocк poderб altera-las sem editar o source na seзгo abaixo.
- Variaveis.
Como jб viu nos exemplos acima, vocк pode criar variaveis de um modo diferente do habitual.
Nativamente se pode criar 3 tipos de variaveis sendo elas- Player/User
- Veiculo
- Configuraзгo
Caso vocк ultilize alguns dos Gamemodes bases, ou o sistema que nele tem destas variaveis vocк verб que.
As variaveis criadas para players e configuraзхes, sгo salvas e carregadas automбticamente, bastando apenas cria-las e nada mais.
Para criar uma destas variaveis pode-se fazer assim:
PHP код:
new UserVar[int:Variavel];
new VehVar[int:Variavel];
new ConfigVar[int:Variavel];
Apуs fazer isto o prй-compilador irб transforma-la em algo similar.
PHP код:
new int:User.Variavel[MAX_PLAYERS];
RegUserVar: User.Variavel;
new int:Vehicle.Variavel[MAX_VEHICLES];
RegVehicleVar: Vehicle.Variavel;
new ConfigVar[int:Variavel];
new int:Config.Variavel;
RegConfigVar: Config.Variavel;
Ambos mйtodos de criaзгo de variaveis podem ser acessados por objetos/nгo.
Depois disto o processamento serб no prуpio, prй-compilador do pawncc.
As variaveis de usuбrio serгo resetadas, automбticamente para o valor 0, porйm vocк pode setar o valor inicial da variavel, assim toda vez que o player se logar ela irб ser setada aquele valor.
PHP код:
new UserVar[int:Variavel = -1];
Ou tambйm desta forma:
PHP код:
new int:User.Variavel[MAX_PLAYERS];
RegUserVar: User.Variavel, -1;
Vocк tambйm pode alterar como a variavel criada ficarб salva no banco de dados/arquivo. Por padrгo ela assume o nome da variavel criada, mas podes altera-la da seguinte forma.
PHP код:
new UserVar[int:Variavel] => "Var";
Ou tambйm desta forma:
PHP код:
new int:User.Variavel[MAX_PLAYERS];
RegUserVar: "Var", User.Variavel, -1;
- Personalizavel.
Existe um arquivo .ini de configuraзгo, aonde nele vocк pode:- Alterar nome do projeto(GM) e sigla do mesmo.
- Desativar Simulaзгo de objetos.
- Desativar Ferramentas de traduзгo.
- Desativar Prefixos de mуdulos.
- Desativar declaraзгo "dinвmica" de variaveis.
- Adicionar novo tipo de variavel.
- Adicionar novo arquivo a incluir.
- Alterar estilo do cabeзalho.
- Reordenar ordem de inclusхes.
DocGen- Visualizaзгo em HTML.
Ainda nгo hб um layout prй definido para apresentar a documentaзгo, porйm pode-se ter em mente algo similar a:
SourceMod
PHP Doc
Doxygen
- JSON.
O retorno do aplicativo й completamente em JSON tendo em mente este escopo:
Response
Junto da resposta, tem o 'data' outra responsta que vocк pode encontrar dentro do item acima.
Data dentro do response.
- Sintaxe like DoxyGen, PHPDoc.
A sintaxe da documentaзгo diferentemente da padrгo do pawnc, nгo й no formato XML vocк pode ver um exemplo abaixo
PHP код:
/**
* <Uma curta linha de descriзгo>
*
* <Descriзгo maior>
* <Pode criar mъltiplas linhas ou parбgrafos se quiser>
*
* @param nome Descriзгo dos parвmetros de entrada de funзхes ou mйtodos
* @param ...
* @retorno Descriзгo do valor de retorno
*/
stock Funcao(nome, ...){
return 1;
}
- Extensivo.
Ao contrбrio da documentaзгo padrгo do pawnc, esta ferramenta tambem suporta:- Variaveis
- Enums e itens
- Macros
- Callbacks
- Funзхes
Site- Responsivo.
- Changelog.
Area para postar seu changelog, para que seu publico possa acompanhar o desenvolvimento.
- Metas.
Area para postar metas que tendem a ser desenvolvida, para que seu publico possa ver o futuro do servidor.
- Sugestхes.
Seu publico pode interagir com vocк, dando sugestхes para seu modo de jogo.
- Blog.
- Disqus comentбrios.
- ****** analytics.
- Contador.
- Feed rss.
Base
TODO
Anticheat
TODO
Links
SA-MP Toolkit
Referкncias
Contato
Crйditos- Dayvison - iniciativa e atual desenvolvimento do projeto.
- Slice - PBP extrutura inicial do prй-compilador.
- Dan - Anticheat extrutura inicial do anticheat.
Observaзхes
Apуs este longo e cansativo tуpico(BBCode is a really shit), se vocк se interessou pelo projeto vocк pode se juntar a mim na construзгo do mesmo.
Todos os repositуrios do GitHub atualmente estгo vazios, nos prуximos dias estarei fazendo o Push de meu computador para a nuvem.
Atualmente tenho concluido:- Prй-Compilador - Feito em PHP, porйm C++ seria uma boa transcriзгo...
- Site - feito em PHP puro, porйm quero saber wordpress й uma boa idйia a pensar?
- Base - Sistemas de salvamento citados(SQLite, MySQL, Y_INI), motor de sistema administrativo.
Re: SA-MP Toolkit -
Dayvison_ - 11.03.2016
@reservado
Re: SA-MP Toolkit -
Petrick™ - 11.03.2016
Boa iniciativa! Boa sorte.
Re: SA-MP Toolkit -
ViniBorn - 11.03.2016
Bom trabalho aos envolvidos, e terгo bastante! rs
Re: SA-MP Toolkit -
ZombieSmash - 11.03.2016
Pelo que vi parece ser bem legal, mas hб uma coisa que nгo entendi 100%.
Quote:
Vai ser uma "especie de pawno" que serб usada para criar gamemodes?
|
Re: SA-MP Toolkit -
PT - 11.03.2016
Se nao desistires disse sera algo muito top.
Re: SA-MP Toolkit -
Coringa_Vilao - 11.03.2016
уtimo projeto , espero que nгo desista !
Re: SA-MP Toolkit -
Dayvison_ - 11.03.2016
Quote:
Originally Posted by ZombieSmash
Pelo que vi parece ser bem legal, mas hб uma coisa que nгo entendi 100%.
Quote:
Vai ser uma "especie de pawno" que serб usada para criar gamemodes?
|
|
O prй-compilador irб usar de expressгo regular e outros artifнcios para criar novos atalhos na sintaxe que nгo existiam antes, convertendo o que vocк escreveu de nova forma e transformando em pawn puro, tambйm irб fazer todo trabalho de Modularidade por vocк, vocк tem apenas que criar a pasta em seu mуdulos, e pronto a mesma estarб incluнda em seu modo de jogo.
Apуs ele recriar todo o arquivo de compilaзгo e fazer as transcriзхes, ele repassa o arquivo ao pawnc.
Re: SA-MP Toolkit -
ZombieSmash - 11.03.2016
Quote:
Originally Posted by Day_
O prй-compilador irб usar de expressгo regular e outros artifнcios para criar novos atalhos na sintaxe que nгo existiam antes, convertendo o que vocк escreveu de nova forma e transformando em pawn puro, tambйm irб fazer todo trabalho de Modularidade por vocк, vocк tem apenas que criar a pasta em seu mуdulos, e pronto a mesma estarб incluнda em seu modo de jogo.
Apуs ele recriar todo o arquivo de compilaзгo e fazer as transcriзхes, ele repassa o arquivo ao pawnc.
|
Nossa, ai sim, boa sorte ae
Re: SA-MP Toolkit - Whoo - 11.03.2016
Уtimo projeto muito interessante,
boa sorte.