[Ajuda] Como se faz?
#6

Quote:
Originally Posted by zCyan
Посмотреть сообщение
Com certeza vocк quer saber como otimizar seus cуdigos certo? Blz ai vai uma base

Esse aqui й um cуdigo funcionando perfeitamente, mais pode economizar linhas em seu gamemode:

PHP код:
//Topo do gamemode
new Tutorial[MAX_PLAYERS];
//Em OnPlayerCommandText
    
if (strcmp("/teste"cmdtexttrue10) == 0)
    {
        if(
Tutorial[playerid] == 1)
        {
            
SendClientMessage(playerid,-1,"Codigo Funcionando");
            return 
1;
        }
    } 
Viu? Esse cуdigo acima estб funcionando, agora vamos economizar linhas em seu gamemode:

PHP код:
    if (strcmp("/teste"cmdtexttrue10) == 0)
    {
        if(
Tutorial[playerid] == 1) return SendClientMessage(playerid,-1,"Cуdigo Funcionando E Otimizado!");
    } 
Viu a diferenзa? й basicamente isso ae man, qualquer dъvida poste ae
Economia de linhas nгo significa um cуdigo optimizado, a ъnica diferenзa vai ser na velocidade da compilaзгo, mas essa velocidade й bem insignificante.

O compilador ignora espaзos e linhas, os dois cуdigos acima iram gerar um amx bem semelhantes a ъnica diferenзa й no retorno do comando que no segundo cуdigo retorna o valor retornado pela funзгo SendClientMessage, se a funзгo retornar 0 o servidor vai entender que o comando nгo existe enquanto o primeiro sempre vai retornar 1.

Um cуdigo bem optimizado significa nгo desperdiзar memoria e processamento.


Exemplo de um loop que joga processamento fora:

PHP код:
for(new iMAX_PLAYERSi++) 
Supondo que a definiзгo MAX_PLAYERS nгo seja alterada (o valor padrгo й 500) e tenha 5 jogadores online no servidor, esse loop vai rodar de 0 a 499, executando muito mais vezes do que deveria.

PHP код:
for(new iGetPlayerPoolSize(); <= ji++) 
Supondo que tenha 5 players online no servidor e o id mais alto й 5, o loop vai rodar de 0 a 5, rodando somente 6 vezes.


Exemplo de desperdнcio de memуria:

Й muito comum ver pessoas ao declararem uma array para formatar um mensagem para ser enviada para um jogador declarando arrays com cйlulas muito acima do que precisam.

PHP код:
new name[MAX_PLAYER_NAME], str[128];
GetPlayerName(playeridnamesizeof name);
format(strsizeof str"Olб %s"name);
SendClientMessage(playerid, -1str); 
No exemplo acima foi declarado a array str com 128 cйlulas, mas na formataзгo foi usado apenas 28. Jogando fora 100 cйlulas.

PHP код:
new name[MAX_PLAYER_NAME], str[MAX_PLAYER_NAME 4];
GetPlayerName(playeridnamesizeof name);
format(strsizeof str"Olб %s"name);
SendClientMessage(playerid, -1str); 
A array str foi declarada com o valor de MAX_PLAYER_NAME (24) + 4 que seria: 23 caracteres do nome + 4 caracteres da formataзгo + EOS (End of string).
Reply


Messages In This Thread
Como se faz? - by Dragonic - 06.06.2017, 01:26
Re: Como se faz? - by DarkBr - 06.06.2017, 03:06
Re: Como se faz? - by ViniBorn - 06.06.2017, 04:48
Re: Como se faz? - by zCyan - 06.06.2017, 12:52
Re: Como se faz? - by Dragonic - 06.06.2017, 13:16
Re: Como se faz? - by MultiKill - 06.06.2017, 13:20
Re: Como se faz? - by Dragonic - 06.06.2017, 13:21
Re: Como se faz? - by zCyan - 06.06.2017, 14:05

Forum Jump:


Users browsing this thread: 1 Guest(s)