[Pedido] Й possнvel ?
#5

Quote:

vejo gamemodes com centenas de includes , acho desnecessбrio e mal optimizado. Qual sua opiniгo ?

Use apenas as dependкncias (includes) que vocк precisa, simples. Sу vem a ser desnecessбrio se vocк incluir alguma lib que vocк nгo precise utilizar.

Em questгo de otimizaзгo, isso nгo tem nada ver com a quantidade de includes e sim o cуdigo em si. Nгo й sу por que vocк se limita na quantidade das dependкncias que seu script utiliza, que ele й "otimizado", isso nгo define a qualidade do seu cуdigo em questгo de boas prбticas.

Quote:
Originally Posted by GSantana
Посмотреть сообщение
Sim, porйm ficaria uma GM gigantesca, por exemplo, o DOF2 usa funзхes do propio SA-MP para fazer o salvamento, sу que ele meio que otimiza isso por exemplo, vou explicar em forma de cуdigo, vou usar meu comando criar casa
"Otimizar", sobre isso nгo vou falar nada...

Quote:
Originally Posted by GSantana
Посмотреть сообщение
PHP код:

CMD
:criarcasa(playeridparams[])
{
    new 
precocinteriorFloat:pXFloat:pYFloat:pZString[40];
    
    if(
sscanf(params,"dd",precoc,interior)) return  SCM(playeridINFOA"[ERRO] Comando incorreto! Use: /criarcasa [preзo] [interior]");
    
GetPlayerPos(playeridpXpYpZ);
    
    
    
format(Stringsizeof(String), "Interiores/%d.txt",interior);
    if(
PlayerInfo[playerid][pAdmin] >= 4)
     {
      
CriarCasa(playeridprecocDOF2_GetInt(String"mundo"), Float:pXFloat:pYFloat:pZDOF2_GetFloat(String"x"), DOF2_GetFloat(String"y"), DOF2_GetFloat(String"z"));
     }
    return 
precoc;
}
stock CriarCasa(playeridprecoiIntFloat:CXFloat:CYFloat:CZFloat:ICasaXFloat:ICasaYFloat:ICasaZ)
{
    new 
String[150], INFOC[130];
    
    for(new 
0MAX_CASASi++)
    {
    
format(Stringsizeof(String), "Casas/Casa %d.txt"i);
    
     if(!
DOF2_FileExists(String))
     {
    
DOF2_CreateFile(String);
    
    
DOF2_SetInt(String"Id"i);
    
DOF2_SetInt(String"Preco"preco);
    
DOF2_SetInt(String"Nivel"0);
    
DOF2_SetInt(String"Mundo"iInt);
    
DOF2_SetInt(String"PickU"1273);
    
DOF2_SetInt(String"tDono"0);
    
DOF2_SetInt(String"Trancada"0);
    
    
DOF2_SetFloat(String"IX"ICasaX);
    
DOF2_SetFloat(String"IY"ICasaY);
    
DOF2_SetFloat(String"IZ"ICasaZ);
    
    
DOF2_SetFloat(String"PX"CX);
    
DOF2_SetFloat(String"PY"CY);
    
DOF2_SetFloat(String"PZ"CZ);
    
    
DOF2_SetString(String"Dono""Ninguem");
    
DOF2_SetString(String"Comprar""/comprarcasa");
    
DOF2_SaveFile();
    
    
format(INFOCsizeof(INFOC), "{87CEFA}Dono: {FFFF00}%s\n{87CEFA}Preзo: {FFFF00}%d\n{87CEFA}Nivel: {FFFF00}%d\n\n{87CEFA}Use:{FFFFFF} /comprarcasa"DOF2_GetString(String"Dono"), DOF2_GetInt(String"Preco"), DOF2_GetInt(String"Nivel"));
    
Ctexto[i] = CreateDynamic3DTextLabel(INFOC, -1CXCYCZ30.0INVALID_PLAYER_IDINVALID_VEHICLE_ID1, -1, -1, -1200.0);
    
piCasa[i] = CreateDynamicPickup(DOF2_GetInt(String"PickU"), 1CXCYCZ, -1, -1, -1200.0);
    
    
SCM(playeridINFOA"[SERVER] Vocк criou uma casa!");
    break;
    }
    
    
    }
    return 
1;

em vez de eu usar esse cуdigo que estб na stock toda vez que uma funзгo cria uma casa, eu crio um stock e apenas chamo ela quando quero criar uma casa, й basicamente isso que includes fazem, elas pega um cуdigo enorme e colocam em um public, ai vocк sу chama essa public em vez de colocar um cуdigo enorme em suas funзхes, ou seja, sua GM й mais otimizada com inlude, do que sem (aos crнticos peguem leve se falei merda, e nгo sei se й bom este meu sistema de criar casa)
Sу para deixar claro, vocк nгo estб criando um "stock" e sim uma FUNЗГO.

A palavra-chave (keyword) "stock" manda o compilador ignorar funзхes/variбveis nгo utilizadas, nгo gerando um aviso apуs a compilaзгo, ъtil quando vocк estб escrevendo uma biblioteca (lib/include) onde nгo hб garantia que o usuбrio venha a utilizar todas as funзхes que vocк previdenciou. Diferente da crenзa popular do pessoal da comunidade, a keyword stock NГO й um requerimento.

Vocк tambйm parece nгo saber para qual necessidade funзхes utilizam a keyword "public", entгo permita me explicar.

Vocк deve apenas usar para casos como: Executar uma callback com um timer, CallLocal/RemoteFunction ou se pretende executar a callback na instвncia da AMX a partir de um plugin.

Pawn й compilado para bytecode (p-code) que "roda" na mбquina abstrata. A keyword torna a funзгo visнvel para a mбquina abstrata (Vocк tambйm jб deve ter percebido como funзхes com a keyword public tem o seu nome legнvel na .amx), e esse й exatamente o motivo pelo qual as callbacks do SA-MP utilizam a keyword, para que elas possam ser executadas pelo prуprio nome com amx_FindPublic. As funзхes "normais" (Nesse caso, sem a keyword public), sу tem simplesmente seus endereзos em instruзхes "jump". Se o seu caso nгo for nenhum acima, nгo utilize a keyword 'public' em sua funзгo.

Em questгo das outras asneiras que vocк falou, nem vou perder meu tempo, simplesmente nгo vale a pena, mas me irrita ver indivнduos como vocк passando informaзгo invбlida para os usuбrios aqui da board. Pseudointelectual.
Reply


Messages In This Thread
Й possнvel ? - by dimy - 10.10.2018, 01:06
Re: Й possнvel ? - by GSantana - 10.10.2018, 01:26
Re: Й possнvel ? - by JPedro - 10.10.2018, 01:56
Re: Й possнvel ? - by FerrariL - 10.10.2018, 01:57
Re: Й possнvel ? - by BrunoBM23 - 10.10.2018, 01:57
Re: Й possнvel ? - by Ermanhaut - 10.10.2018, 02:03
Re: Й possнvel ? - by GSantana - 10.10.2018, 02:24
Re: Й possнvel ? - by GSantana - 10.10.2018, 02:27
Re: Й possнvel ? - by BrunoBM23 - 10.10.2018, 02:28
Re: Й possнvel ? - by GSantana - 10.10.2018, 02:30
Re: Й possнvel ? - by BrunoBM23 - 10.10.2018, 02:32
Re: Й possнvel ? - by GSantana - 10.10.2018, 02:37
Re: Й possнvel ? - by BrunoBM23 - 10.10.2018, 02:39
Re: Й possнvel ? - by CaioTJF - 10.10.2018, 02:47
Re: Й possнvel ? - by MBJ - 10.10.2018, 02:50
Re: Й possнvel ? - by GSantana - 10.10.2018, 02:54
Re: Й possнvel ? - by Domingues - 10.10.2018, 02:56
Re: Й possнvel ? - by MBJ - 10.10.2018, 02:57
Re: Й possнvel ? - by hotspicytaco - 10.10.2018, 03:12
Re: Й possнvel ? - by Santso - 10.10.2018, 03:22
Re: Й possнvel ? - by ipsLuan - 10.10.2018, 11:42

Forum Jump:


Users browsing this thread: 5 Guest(s)