[Ajuda] Preciso de Dicas de Otimizaзгo
#1

Entгo Galera, й isso que estб no titulo, eu to criando alguns sistemas aqui e preciso de algumas dicas de otimizaзгo e tals, pra nгo deixar os comandos e outros sistemas cheios de coisas que nгo precisam, como por exemplo esse que estб abaixo, eu tenho a sensaзгo de que da pra melhorar alguйm pode me das algumas dicas??

PHP код:
public OnPlayerClickTextDraw(playeridText:clickedid)
{
    
GetPlayerName(playeridNomesizeof(Nome));
    
format(Arquivosizeof(Arquivo), "Contas/%s.ini"Nome);
    if(
clickedid == REGISTRAR)
    {
        if(
DOF2_FileExists(Arquivo))
        {
            
SendClientMessage(playeridCOR_AVISO"| AVISO | O Nick Informado Jб Possui Cadastro em Nosso Sistema!");
            }else{
            
format(Stringsizeof(String), "{0080FF}Bem Vindo ao Servidor Brasil Real Life - RPG  {FFFFFF}%s{0080FF}\n\nVocк Ainda Nгo Tem Uma Conta Registrada\n\nDigite uma Senha Para se Registrar\n\nStatus: {CE0000}N/A Registrado."Nome);
            
ShowPlayerDialog(playeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"{FF0000}REGISTRO"String"Registrar""Cancelar");
        }
    }
    if(
clickedid == LOGAR)
    {
        if(
DOF2_FileExists(Arquivo))
        {
            
format(Stringsizeof(String), "{F8F8FF}Bem Vindo ao Servidor Brasil Real Life - RPG  {FF4040}%s{F8F8FF}\n\nVocк Jб Tem Uma Conta Registrada\n\nDigite Sua Senha Para Efetuar o Login\n\nStatus:{FF4040}Registrado."Nome);
            
ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{0080FF}LOGIN"String"Logar""Cancelar");
        }else{
        
SendClientMessage(playeridCOR_AVISO"| AVISO | O Nick Informado Ainda Nгo Possui Cadastro em Nosso Sistema, Click em Registrar Para Efetuar um Registro!");
        }
        return 
1;
    }
    if(
clickedid == CREDITOS)
    {
        new 
Strin4[324];
        
strcat(Strin4,"{FF0000}GAMEMODE: {FFFFFF}Brasil Real Life - RPG Versгo BETA 1.1\n\n\n\nUpdate 1.0\n\n\n- Criado Nova Tela de Login.\n- Criado Sistema de Contas.\n- Criado Sistema de Salvamento de Spawn.\n- Criado o Sistema de Tutorial.\n- Otimizaзхes e Correзхes Diversas.\n\n\n\n\n");
        
strcat(Strin4,"Update 1.1\n\n\n- Criado Algumas Funзхes Administrativas.\n- Otmizaзхes Diversas.\n- Criado 5 Comandos (/Creditos /Relatorio /Duvida /Admins).\n\n\n\n\n");
        
ShowPlayerDialog(playeridDIALOG_INFODIALOG_STYLE_MSGBOX"{FF0000}Novidades",Strin4,"Ok""");
        return 
1;
    }
    if(
clickedid == INFO)
    {
        if(
DOF2_FileExists(Arquivo))
        {
            
StopAudioStreamForPlayer(playerid);
            
PlayAudioStreamForPlayer(playerid,"https://www.dropbox.com/s/xskqeezq4isxh4a/GTA%20San%20Andreas%20Theme%20Song%20Remix.mp3?dl=1");
            
Limpando(playerid);
            
IniciandoTutorial[playerid] = 1;
            
SetPlayerCameraPos(playerid1745.696655, -2234.84008754.584293);
            
SetPlayerCameraLookAt(playerid1743.801269, -2239.01684552.593635);
            
PlayerPlaySound(playerid1057000);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[0]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[1]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[2]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[3]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[4]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[5]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[6]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[7]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[8]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[9]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[10]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[11]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[12]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[13]);
            
TextDrawShowForPlayer(playeridText:TDEditor_TD[14]);
            
CancelSelectTextDraw(playerid);
            
TextDrawHideForPlayer(playeridREGISTRAR);
            
TextDrawHideForPlayer(playeridLOGAR);
            
TextDrawHideForPlayer(playeridNOMESERVIDOR);
            
TextDrawHideForPlayer(playeridFUNDOCREDITOS);
            
TextDrawHideForPlayer(playeridCREDITOS);
            
TextDrawHideForPlayer(playeridFUNDOINFO);
            
TextDrawHideForPlayer(playeridINFO);
            
TextDrawHideForPlayer(playeridFUNDOSAIR);
            
TextDrawHideForPlayer(playeridFUNDOSAIR1);
            
TextDrawHideForPlayer(playeridBARRAESQUERDA);
            
TextDrawHideForPlayer(playeridBARRADIREITA);
            
TextDrawHideForPlayer(playeridFUNDOREGISTRAR);
            
TextDrawHideForPlayer(playeridFUNDOLOGAR);
            
TextDrawHideForPlayer(playeridFUNDOGERAL);
            
TextDrawShowForPlayer(playeridMensagemText[0]);
            
TextDrawShowForPlayer(playeridMensagemText[1]);
            
TextDrawShowForPlayer(playeridMensagemText[2]);
            
TextDrawShowForPlayer(playeridMensagemText[3]);
            
SetTimerEx("Tutorial00",25000,false,"i",playerid);
            }else{
            
SendClientMessage(playeridCOR_AVISO"| AVISO | O Nick Informado Ainda Nгo Possui Cadastro em Nosso Sistema, Para Ver o Tutorial Vocк Precisa Estar Registrado!");
        }
        return 
1;
    }
     if(
clickedid == MenuADM[3])
    {
        
CancelSelectTextDraw(playerid);
        
TextdrawsF(playerid);
        
SendClientMessage(playeridVerde"| INFO | Vocк Fechou o Menu Administrativo.");
        return 
1;
    }
    if(
clickedid == MenuADM[5])
    {
        
GetPlayerName(playeridNomesizeof(Nome));
        
format(Arquivosizeof(Arquivo), "Contas/%s.ini"Nome);
           if(
pAdmin[playerid] == || pAdmin[playerid] == || pAdmin[playerid] == || pAdmin[playerid] == || pAdmin[playerid] == )
        {
            
CancelSelectTextDraw(playerid);
            
TextdrawsF(playerid);
            
SendClientMessage(playeridAmarelo"| INFO | Vocк Abriu o Menu de Teleportes do Servidor!");//teleporte
              
ShowPlayerDialog(playeridMENUTELEPORTESDIALOG_STYLE_LIST"{FF00D0}Categoria - Teleportes""» Los Santos\n» Las Venturas\n» San Fierro\n» HQ's\n» Locais Privados\n» Locais Diversos""Selecionar""Fechar");
        }
        return 
1;
    }
    if(
clickedid == MenuADM[9])//veiculos
    
{
        
CancelSelectTextDraw(playerid);
        
TextdrawsF(playerid);
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!");
        return 
1;
    }
    if(
clickedid == MenuADM[10])// comandos administrativos
    
{
        
CancelSelectTextDraw(playerid);
        
TextdrawsF(playerid);
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!");
        return 
1;
    }
    if(
clickedid == MenuADM[11])//cores do nick
    
{
        
CancelSelectTextDraw(playerid);
        
TextdrawsF(playerid);
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!");
        return 
1;
    }
    if(
clickedid == MenuADM[13])//camufladores //nicks
    
{
        if( 
pAdmin[playerid] == || pAdmin[playerid] == || pAdmin[playerid] == )
        {
        
CancelSelectTextDraw(playerid);
        
TextdrawsF(playerid);
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!");
        }else{
            
SendClientMessage(playeridCOR_AVISO"| AVISO | Apenas Administradores Superiores Podem Usar o Sistema!");
        }
        return 
1;
    }
    if(
clickedid == MenuADM[15])//camera ramdomica
    
{
        if(
pAdmin[playerid] == || pAdmin[playerid] == || pAdmin[playerid] == )
        {
        
CancelSelectTextDraw(playerid);
        
TextdrawsF(playerid);
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!");
        }else{
            
SendClientMessage(playeridCOR_AVISO"| AVISO | Apenas Administradores Superiores Podem Usar o Sistema!");
        }
        return 
1;
    }
    if(
clickedid == MenuADM[17])//textdraw editor
    
{
        if( 
pAdmin[playerid] == || pAdmin[playerid] == )
        {
        
CancelSelectTextDraw(playerid);
        
TextdrawsF(playerid);
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!");
        }else{
            
SendClientMessage(playeridCOR_AVISO"| AVISO | Apenas o(a) Desenvolvedor(a) Tem Acesso a Esse Sistema e Vocк Nгo Pode Usa-lу!");
        }
        return 
1;
    }
    return 
0;

Reply
#2

Bem dei uma pequena olhada,vocк poderia diminuir um pouco de linha nesta parte :
PHP код:
TextDrawShowForPlayer(playeridText:TDEditor_TD[0]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[1]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[2]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[3]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[4]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[5]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[6]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[7]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[8]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[9]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[10]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[11]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[12]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[13]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[14]); 
Usando um looping.
Exemplo :
PHP код:
for(new 0<= sizeof(TDEditor_TD); i++)
{
    
TextDrawShowForPlayer(playeridTDEditor_TD[i]); 

Isso aqui compilou ? Text:TDEditor_TD[0] remova o Text.
As condiзхes que verifica se o jogador й Administrador em vez disto :
PHP код:
 if(pAdmin[playerid] == || pAdmin[playerid] == || pAdmin[playerid] == 5
Poderia Usar
PHP код:
if(pAdmin[playerid] >= 3
Nestas linhas :
PHP код:
if(clickedid == MenuADM[9])//veiculos 
    

        
CancelSelectTextDraw(playerid); 
        
TextdrawsF(playerid); 
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!"); 
        return 
1
    } 
    if(
clickedid == MenuADM[10])// comandos administrativos 
    

        
CancelSelectTextDraw(playerid); 
        
TextdrawsF(playerid); 
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!"); 
        return 
1
    } 
Vocк pode usar o operador OR,pois pelo que vi ambos blocos de cуdigo tem a mesma funзгo.Exemplo :
PHP код:
 if(clickedid == MenuADM[9] || clickedid == MenuADM[10])//veiculos 
    

        
CancelSelectTextDraw(playerid); 
        
TextdrawsF(playerid); 
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!"); 
        return 
1
    } 
Dei uma pequena olhada,se achar mais dou um edit. As dicas que dei creio que nгo vai alterar muito in Game,й mais questгo de legibilidade.
Reply
#3

Quote:
Originally Posted by FerrariL
Посмотреть сообщение
Bem dei uma pequena olhada,vocк poderia diminuir um pouco de linha nesta parte :
PHP код:
TextDrawShowForPlayer(playeridText:TDEditor_TD[0]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[1]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[2]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[3]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[4]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[5]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[6]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[7]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[8]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[9]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[10]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[11]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[12]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[13]); 
        
TextDrawShowForPlayer(playeridText:TDEditor_TD[14]); 
Usando um looping.
Exemplo :
PHP код:
for(new 0<= sizeof(TDEditor_TD); i++)
{
    
TextDrawShowForPlayer(playeridTDEditor_TD[i]); 

Isso aqui compilou ? Text:TDEditor_TD[0] remova o Text.
As condiзхes que verifica se o jogador й Administrador em vez disto :
PHP код:
 if(pAdmin[playerid] == || pAdmin[playerid] == || pAdmin[playerid] == 5
Poderia Usar
PHP код:
if(pAdmin[playerid] >= 3
Nestas linhas :
PHP код:
if(clickedid == MenuADM[9])//veiculos 
    

        
CancelSelectTextDraw(playerid); 
        
TextdrawsF(playerid); 
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!"); 
        return 
1
    } 
    if(
clickedid == MenuADM[10])// comandos administrativos 
    

        
CancelSelectTextDraw(playerid); 
        
TextdrawsF(playerid); 
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!"); 
        return 
1
    } 
Vocк pode usar o operador OR,pois pelo que vi ambos blocos de cуdigo tem a mesma funзгo.Exemplo :
PHP код:
 if(clickedid == MenuADM[9] || clickedid == MenuADM[10])//veiculos 
    

        
CancelSelectTextDraw(playerid); 
        
TextdrawsF(playerid); 
        
SendClientMessage(playeridAmarelo"| INFO | Sistema Desativado Para Correзхes!"); 
        return 
1
    } 
Dei uma pequena olhada,se achar mais dou um edit. As dicas que dei creio que nгo vai alterar muito in Game,й mais questгo de legibilidade.
Hб sim obg, olha seu discord depois ti avisei um negocio lб.
Reply
#4

Vocк pode usar else if tambйm... Afinal se o programa jб encontrou o botгo que foi clicado, nгo hб necessidade de testar os outros...
Reply
#5

PHP код:
public OnPlayerClickTextDraw(playeridText:clickedid)
{
    switch(
clickedid)
    {
        case 
ID_DIALOG: {
        }
    }
    return 
true;

De fato, nгo faria TANTA DIFERENЗA, levando em conta QUE ESSES OPERADORES sгo processado excessivamente rбpido pelo sistema.

Otimizaзгo й muito alйm disso..
Vocк precisa dar mais atenзгo em sistemas grandes, que utiliza LOOP/OnPlayerUpdate/Uso de Banco de Dados.. e otimizar que ai sim farб diferenзa!
Reply
#6

https://sampforum.blast.hk/showthread.php?tid=493276
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)