[Ajuda] Sobre otimizaзгo
#5

O SAMP Trabalha com um processamento para todas as as funзхes (one thread) veja um exemplo:

pawn Code:
SetPlayerHealth(playerid, 123); // quando essa funзгo terminar a prуxima й chamda
gPlayerHealth[playerod] = 123); // quando essa funзгo terminarб chamarб a prуxima

for(new i; i != 5000; ++i) printf(#); // quando o loop terminar, a prуxima funзгo й chamada.
apуs o servidor modificar a vida do jogador com a funзгo SetPlayerHealth, ela irб chamar a prуxima variбvel gPlayerHealth, quando ela terminar de ser modificada, chamarб a prуxima o demorado loop.


Quando se utiliza uma variбvel/array global, vocк pode usar a "lуgica de programaзгo", veja:

Lembrando que temos a array "new string[30];"

pawn Code:
format(string, 128, "Hello World");
print(string);

format(string, 128, "Olб mundo");
print(string);

format(string, 128, "Estamos em 2016");
print(string);
Agora vamos entender:

pawn Code:
// vamos formatar a string colocando "Helo World"
format(string, 128, "Hello World");
// exibimos noconsole.
print(string);


format(string, 128, "asdiuhaskjdnaksgdkayusgdkashg");
// ----> Esse momento, a string jб foi modificada e jб foi exibida! Pensando na lуgica, podemos fazer oque quisermos com a string e no console ainda exibirб "Hello World"
pawn Code:
format(string, 128, "Hello World");
print(string);

format(string, 128, "Olб mundo");
format(string, 128, "Estamos em 2016");

Nota-se que se vocк executar esse cуdigo, sу serб exibido "Hello World", e "Olб mundo" e "Estamos em 2016" nгo irб fazer diferenзa.

Mas se vocк usar assim, irб dar problema..


Imaginamos que vocк use a string em uma callback ou funзгo assim:
pawn Code:
GetPlayerName(playerid, string, 24); // armazenamos o nome do jogador na string
printf("Nome do jogador й: %s", string);
Saida: Nome do jogador й: zSuYaNW

Aн, vocк irб usar novamente a array string em OUTRA callback/funзгo:
pawn Code:
GetPlayerIp(playerid, string, 16);
printf("Ip do jogador й %s", string);
Saida: Nome do jogador й: zSuYaNWIp do jogador й 192.168.0.1

Este fenфmeno acontece porque vocк utilizou a string e nгo limpou ela apуs a utilizaзгo.


Bom projecto!
Reply


Messages In This Thread
Sobre otimizaзгo - by pWesley - 06.06.2016, 05:21
Re: Sobre otimizaзгo - by Ermanhaut - 06.06.2016, 05:24
Re: Sobre otimizaзгo - by F1N4L - 06.06.2016, 11:16
Re: Sobre otimizaзгo - by ZEDD666 - 06.06.2016, 12:20
Re: Sobre otimizaзгo - by zSuYaNw - 06.06.2016, 14:03
Respuesta: Sobre otimizaзгo - by OverKiller - 06.06.2016, 15:07
Re: Sobre otimizaзгo - by pWesley - 06.06.2016, 15:59
Re: Sobre otimizaзгo - by zSuYaNw - 06.06.2016, 16:13
Re: Sobre otimizaзгo - by zPain - 06.06.2016, 17:12
Re: Sobre otimizaзгo - by zSuYaNw - 06.06.2016, 17:14
Re: Sobre otimizaзгo - by pWesley - 06.06.2016, 18:16
Re: Sobre otimizaзгo - by zSuYaNw - 06.06.2016, 18:21
Re: Sobre otimizaзгo - by pWesley - 06.06.2016, 19:01

Forum Jump:


Users browsing this thread: 1 Guest(s)