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!