23/06/2021 13:44
(23/06/2021 11:56)nilat Escreveu: Recentemente percebi que não existem bons tópicos de dicas para otimizações na linguagem Pawn.
Decidi criar esse tópico, para que quem souber, possa responder aqui com a sua contribuição.
Bom, lá vai a minha: Otimização de Loop's
Código:// A INCLUDE a_samp.inc NATURALMENTE DEFINE QUE O MAXIMO DE JOGADORES QUE O SAMP SUPORTA É 1000(MIL) SLOTS
// E SE VOCÊ NÃO REDEFINIR O MAXIMO DE PLAYERS OU USAR OUTRA FORMA DE LOOP, EM GRANDE ESCALA O SERVIDOR IRÁ LAGAR E DAR RT.
//VAMOS LÁ
#include <a_samp> //include base
#include <foreach> //include para loops/listas
//INICIALMENTE, PARA CRIAR UM LOOP PARA TODOS OS JORADORES, FAZEMOS DESSA FORMA:
for(new i; i < MAX_PLAYERS; i++) //Esse loop é executado 1000 vezes, em todos os slots(Mesmo que o slot não tenha ninguém conectado)
{
SetPlayerHealth(i, 100.0); //Essa função seta para todos os jogadores a vida para 100(Máximo).
}
//A INCLUDE FOREACH FAZ ATÉ QUE MELHOR, ELA APENAS EXECUTA EM JOGADORES CONECTADOS:
foreach(new i: Players)//Se tiver 100 slots, mas 30 jogadores conectados, ele só ira executar 30x(Nos Conectados)
{
SetPlayerHealth(i, 100.0);//Essa função seta para todos os jogadores a vida para 100(Máximo).
}
[color=#333333][size=small][font=Monaco, Consolas, Courier, monospace]//Créditos: nilat_[/font][/size][/color]
Considerações Importantes:
- O Foreach usa a include YSI do Y_Less, caso não tenha: Link
- Include Foreach: Link
Muito bom tutorial mano