[Ajuda] duvida sobre variaveis globais e locais
#1

bom galera, estava eu na minha rotina de script diario criando alguns systema de intereзгo de players quando me surgiu uma duvida...

qual melhor forma de criar as variveis neste caso, crei uma interaзгo por dialog simples й rapida para tentar explicar na pratica a minha duvida vamos lб:

no topo criei as seguintes variaveis
PHP код:
new Amigomoneystring[128], name[MAX_PLAYER_NAME]; 
Quote:

defini minhas dialogs
#define DIALOG_AMIGO 1
#define DIALOG_AMIGO_2 2

Quote:

e chamei a minha dialog.
COMMAND : sendmoneytofriend( playerid )
{
ShowPlayerDialog(playerid, DIALOG_AMIGO, DIALOG_STYLE_INPUT, "SA-MP DIALOG ", " digite o id do seu amigo ", "Enviar", "Cancelar");

return 1;
}

entгo galera aqui que estб minha duvida, o codigo irб funcionar perfeitamente quando 1 pessoa usar , mas se 2 pessoas usarem ao mesmo tempo serб que as variaveis amigos nгo dariam bugs? talvez eu deveria criar uma variavel local mas iria dar erro na segunda dialog porque a chave destruiria a variavel e nгo daria certo...

~ caso alguem saibe uma maneira mais correta de guardar esse id na variavel amigo, sem que der bugs com outros player comenta ai pfvr obg!

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if( dialogid == DIALOG_AMIGO )
	{
        if ( response )
		{
            GetPlayerName(playerid, name, sizeof(name));
			Amigo = strval ( inputtext ) ;
			printf(" seu amigo й o id: %i ", Amigo );
			ShowPlayerDialog(playerid, DIALOG_AMIGO_2, DIALOG_STYLE_INPUT, "SA-MP DIALOG ", " digite uma quantia para\nenviar ao seu amigo ", "Enviar", "Cancelar");
        }
        return 1;
    }
    if( dialogid == DIALOG_AMIGO_2 )
	{
        if ( response )
		{

			money = strval(inputtext);
            format(string, sizeof(string), "voce recebeu: %i de seu amigo: %s",money,name); // will output something like 09:45:02
            SendClientMessage(playerid, -1, string);
            printf("%s enviou %i $ para o id: [ %i ]", name, money, Amigo );
            GivePlayerMoney(Amigo, 200);
            GivePlayerMoney(playerid, -200);
        }
        return 1;
    }
    return 0; 
}
OBS; esse e apenas um code exemplo, o foco й a duvida.
Reply
#2

Sim provavelmente iria bugar.

Cria elas global, mas para cada player.
PHP код:
new Amigo[MAX_PLAYERS]; 
E a string vocк cria sempre local.
Reply
#3

Quote:
Originally Posted by Cleyson
Посмотреть сообщение
Sim provavelmente iria bugar.

Cria elas global, mas para cada player.
PHP код:
new Amigo[MAX_PLAYERS]; 
E a string vocк cria sempre local.
hm... muito obrigado +rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)