Quando eu uso uma bazuca ou Teleguiado no veículo o veículo não explode, eu posso rajar de míssil no carro ele não explode, mas quando eu bato em algum lugar ele quebra e explode, me ajudem por favor, eu quero que o veículo exploda.
Como muitos sabem, a Hosted List foi encerrada alguns meses atrás, e apenas quem tinha algum pacote ativo deve permanecer lá até o término do tempo contratado. Nos últimos dias, o site oficial do SA-MP foi desligado, levando consigo todos os downloads e informações sobre cada versão.
Infelizmente, há alguns anos, o fórum foi encerrado, e por esse motivo, o nosso fórum surgiu com o propósito de abrigar o desenvolvimento de servidores em idioma português e auxiliar aqueles que já possuem servidores.
A continuação da existência do SA-MP não está atrelada à equipe do SA-MP. Não há como desligar os servidores criados e muito menos impedir a criação de novos. O SA-MP continuará existindo enquanto houver servidores, criação de servidores e jogadores dispostos a jogar, seja pelo PC ou pelo Android.
Com a ausência do site oficial, um usuário do SA-MP criou uma página para substituir a antiga.
Quanto à nossa comunidade, continuaremos firmes e fortes. Renovei o nosso domínio há cerca de uma semana para mais um ano. A comunidade é sustentada pelos anúncios inseridos no site, que ajudam a pagar a anuidade do domínio.
English
Citar:Greetings,
As many are aware, Hosted List was closed a few months ago, and only those with an active package should remain there until their contracted time expires. In recent days, the official SA-MP website was shut down, taking with it all downloads and information about each version.
Unfortunately, a few years ago, the forum was closed, and for this reason, our forum emerged with the purpose of hosting the development of Portuguese-language servers and assisting those who already own servers.
The continuation of SA-MP's existence is not tied to the SA-MP team. It is impossible to shut down existing servers or prevent the creation of new ones. SA-MP will continue to exist as long as there are servers, server creation, and players willing to play, whether on PC or Android.
In the absence of the official site, a SA-MP user created a page to replace the old one.
Regarding our community, we will remain steadfast. I renewed our domain about a week ago for another year. The community is supported by the ads placed on the site, which help cover the domain's annual fee.
Ola, dado que o Forum SA-MP fechou decidi trazer os tutorais que tinha feito para o Forum SA-MP para aqui, com o objetivo de ver os utilizadores desta board com melhores scripts e com melhor raciocinio, isto apos ter visto muitos membros novos com codigos muito mal feitos, e se nao aprendem direito de novos, nunca ou tarde endireitam.
Problema do strtok
Bem, vejo ainda muitos membros desta board,a usar a "velhinha" strtok feita pelo DarcoBlue.
Código:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
Viram? Os comandos acima fazem exatamente o mesmo, porém como podem ver, a sua elaboração é diferente, pessoalmente acho que é sem duvida o segundo, mais fácil que o primeiro.
Problema do uso de strcmp para criar comandos
Bem, ainda muito usam strcmp para criar comandos. Isto atualmente normalmente diz muito sobre o programador do GM, ou é preguiçoso e não quer atualizar os seus comandos para processador de comandos, ou, usa um gamemode da Internet e não faz a mínima ideia do que é um processador de comandos (embora atualmente tenha mais gamemodes na internet com processador de comandos). Antes de tudo strcmp tem como finalidade comparar string's e nao criar comandos.
Usar um processador de comandos tem enormes vantagens, como a maior simplicidade na criação de comandos, é prática, cómodo e sobretudo mais rápido de usar do que strcmp.
Analisem o comando /kick [id] abaixo:
Porque são os mais rápidos (apesar de ycmd ser o mais rápido), já criados em pawn atualmente e são os que a maioria dos programadores de sa-mp que usam processadores de comandos usam.
Sim, eu sei que ainda existem mais rápidos desenvolvidos em C++, porém são mais complexos o seu uso para quem ainda está a aprender, porque mexe com plugins, etc.
E se eu usar sscanf e um processador de comandos, estou a agir bem?
Bem isso é o ideal e sim está a agir corretamente, porém para quem não está a usar a e quer começar.
Deixo o link Github de cada processador e da SSCANF:
Não é que esteja errado, porém esquecem-se que o valor default de MAX_PLAYERS, se alterarem o valor para o valor real de slots máximo do seu servidor podem fazer com que os loops tenham um processamento (velocidade) maior, como?
Fazendo simplesmente isto:
Código:
#include <a_samp>
#undef MAX_PLAYERS
#define MAX_PLAYERS (50) // o 50 voce muda pelo numero de slots do seu servidor
Qual a diferença?
Se não alterarem o valor, MAX_PLAYERS assume um valor que para quem não sabe está definido por default pela SA-MP Team na include a_samp.inc como valor padrão 1000, ou seja, irá sempre realizar o loop de 1000, mas se alterarem o valor de MAX_PLAYERS ira assumir o valor máximo no loop a quantidade de slots do seu servidor, sendo que a maioria dos membros aqui na board portuguesa quase nunca tem um servidor com 1000 slots alterando o valor o loop é muito mais rápido.
Porem tem também quem insista em fazer o loop deste jeito:
Código:
for(new i = 0; i < GetMaxPlayers(); i++)
Este tipo de loop é errado e mais lento.
Apenas num caso especial poderá ser mais rápido, se voce tiver um servidor de 50 slots e não alterar o valor de MAX_PLAYERS usando o loop acima torna-se mais rápido é verdade, porem se alterarem o valor o valor de MAX_PLAYERS para o valor real dos seus slots o loop acima torna-se muito mais lento.
foreach
Com esta simples include (versão mais antiga, nas versoes mais recentes esta incorporada na YSI) feita pelo Y_Less voce pode melhorar e muito os seus loops sendo que quando são ligados a sistemas para players apenas corre o loop nos players conectados, mas também poderá nos veículos, entre outros.
Ou seja, códigos assim:
Código:
stock DarDinheiroTodos()
{
for( new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
GivePlayerMoney(i, 1000);
}
}
return 1;
}
Tornam-se alem de mais fáceis, mais rápidos também na hora do processamento:
Com isto vejo que muitos membros ainda não sabem os operadores lógicos, se é que ao menos sabem que eles existem, por isso decidi deixar aqui alguns links de tutoriais de operadores lógicos, e tambem a nivel de otimizacoes, para quem quiser saber mais sobre este assunto.
Créditos Emmet_ - Base da ideia para criacao do tutorial PT_Player a.k.a PT - Criacao do tutorial
Espero que aprendam algo com este tutorial, se quiserem acrescentar algo ou melhorar o tutorial em algum aspeto, estejam á vontade.
Talvez no futuro, dependendo do vosso feedback, melhorarei ou farei mais tutoriais, deixem abaixo as suas opiniхes, tambem se tiverem em duvida acerca de algum assunto deste tutorial, estarei á disposiзгo para responder.
Sei que o tutorial é sobre de uma matéria simples, porém muitos ainda nunca se aperceberam ou nunca viram a vantagem de "evoluir" os seus scripts, talvez com isto aprendam algo.
Cumprimentos
P.S: Relembro que isto é um tutorial feito e postado em 2014 no Forum SA-MP.
Estou trabalhando em um sistema de armamentos mais quando eu digito /armamentos o jogo desliga e fecha sozinho, o que fiz de errado?
Código:
else if(TeamColombia(playerid))
{
if(!PlayerToPoint(5, playerid,-1113.3751,-1631.2290,76.3739))
return SCM(playerid, COLOR_GREY, "Você não está no armazém de armas para continuar.");
Bom, até o momento de postagem não sei tem uma categoria adequada para postar esse tópico, mas aí está os downloads (Client's e Server Windows e Linux) do SAMP:
Postei isso porque algumas pessoas podem ter dificuldade de achar novamente esses downloads depois da desativação do site oficial do samp, então quis postar os downloads aqui..
(Os links da versão 0.3.DL são do administrador willttoonn!)