[Ajuda] Usar Variavel Global
#1

Galera usar uma Variavel Global para o GM todo pode causar algum problema?
exemplo
pawn Код:
String[256],
Nome[MAX_PLAYER_NAME],
ANome[MAX_PLAYER_NAME],
Vou usar essa String e a Variavel do nome em varios comandos e sistemas isso causa alguma problema?
ou e melhor criar uma local para cada cmd e sistema
Reply
#2

Olha.. eu uso uma variбvel global no no meu script e nunca deu erros atй agora mas eu uso ela apenas para comandos simples e tals, sу que uma vez aumentei o nъmero de cйlulas dela para usar em um dialog bem grande strcat e quando abri o dialog estava normal, mas digitei o comando novamente e tipo duplicou as mesmas coisas que jб tinha no dialog, cada vez que eu executava ia bugando, eu tive que criar uma variбvel local para esse comando em dialog.

Creio que para comandos simples nao tenha problemas.
Reply
#3

sem problema para as strings, o problema estara se precisar de uma string maior do que vc declarou, entao ai vc cria nesse local que precisa uma local.

A diferenзa maior estaria se voce usasse static ou new.
Reply
#4

Quote:
Originally Posted by PT
Посмотреть сообщение
sem problema para as strings, o problema estara se precisar de uma string maior do que vc declarou, entao ai vc cria nesse local que precisa uma local.

A diferenзa maior estaria se voce usasse static ou new.
intao compensa criar uma String Global com bastante celulas doque criar varias global?
Reply
#5

Uma dica: crie uma variбvel global apenas pra armazenar dados que possam ser ъteis em diversas partes do seu script, e nгo crie com nomes muito comuns exemplo: new Float, Float:y, Float:z; sendo que estes nomes comuns vocк usarб em outras variбveis internas em alguma parte do cуdigo. Nгo exagere no tamanho de cйlulas de strings, caso precise criar uma string grande crie uma string interna dentro de determinada parte dos seus sistemas para nгo manter um alto uso desnecessбrio de memуria visto que a interna й deletada apуs o bracket que fecha o ciclo da parte do codigo onde ela foi definida, exemplo:
Код:
new var[1024]; //global mantйm um vasto numero de celulas

Local (interna)

public OnPlayerConnect(playerid)
{
    new var[1024];//variavel criada
}//variavel destruida apos o processamento
Reply
#6

Aproveitando o msm topico nгo da pra utilizar no switch text draw definida desse modo?
pawn Код:
new Text:Registro[9];
na public da estes erros

pawn Код:
C:\Users\Matheus\Desktop\Servidor\gamemodes\GM.pwn(515) : error 008: must be a constant expression; assumed zero
C:\Users\Matheus\Desktop\Servidor\gamemodes\GM.pwn(527) : error 008: must be a constant expression; assumed zero
C:\Users\Matheus\Desktop\Servidor\gamemodes\GM.pwn(539) : error 008: must be a constant expression; assumed zero
C:\Users\Matheus\Desktop\Servidor\gamemodes\GM.pwn(543) : error 008: must be a constant expression; assumed zero
pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(Arquivo, sizeof(Arquivo), "Registros/%s.ini", Nome);
   
    switch (clickedid)
    {
        case Registro[5]:
        {
            if(DOF2_FileExists(Arquivo))
            {
                SendClientMessage(playerid, COR_AVISO, "| AVISO | Atenзгo Vocк ja tem uma Conta, Clique em Logar para Logar.");
            }
            else
            {
                format(String, sizeof(String), "{F8F8FF}Bem Vindo ao Servidor {FF4040}%s{F8F8FF}\n\nVocк ainda nao tem uma Conta Registrada\n\nDigite Digite uma Senha para se Registrar\n\nStatus: {FF4040}N/A Registrado.\n\n{F8F8FF}IP:{FF4040}%s", Nome, IP);
                ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "-- REGISTRANDO --", String, "Registrar", "Cancelar");
            }
        }
        case Registro[6]:
        {
            if(DOF2_FileExists(Arquivo))
            {
                format(String, sizeof(String), "{F8F8FF}Bem Vindo ao Servidor {FF4040}%s{F8F8FF}\n\nVocк ja tem uma Conta Registrada\n\nDigite sua senha para Logar\n\nStatus:{FF4040}Registrado.\n\n{F8F8FF}IP:{FF4040}%s", Nome, IP);
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "-- LOGANDO --", String, "Logar", "Cancelar");
            }
            else
            {
                SendClientMessage(playerid, COR_AVISO, "| AVISO | Atenзгo Vocк nгo tem uma Conta, Clique em Registrar para Registrar.");
            }
        }
        case Registro[7]:
        {
            SendClientMessage(playerid, COR_AVISO, "| AVISO | Atenзгo Vocк nгo tem uma Conta, Clique em Registrar para Registrar.");
        }
        case Registro[8]:
        {
            format(String, sizeof(String), "| INFO | O Jogador(a) %s Saiu do Servidor");
            SendClientMessageToAll(COR_AZUL_ADMIN, String);
        }
    }
    return 1;
}
@n0minal, Vou seguir sua Dica Obrigado
Reply
#7

switch sу й compatнvel com nъmeros eu acho
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)