[FilterScript] Sistema de Casas Muito Simples.
#5

Vou te dar algumas dicas sobre seu cуdigo:

1- Nunca use pragma tabsize, isso й coisa de preguiзoso que nгo indenta o prуprio cуdigo pra evitar "warning: loose indentation" no console, pйssima prбtica pra legibilidade de quem vai ler seu cуdigo.

Код:
#pragma tabsize 0
2- PlayerNames sу tem 24 bytes, e se eu nгo me engano, o prуprio sa-mp nгo usa os 24 bytes (acho que sгo 16 ou 20 caracteres no mбximo se me lembro bem), nгo й necessбrio mais do que isso para armazenar a string contendo o nome deles, no caso sу MAX_PLAYER_NAME jб estaria perfeito:

Код:
   Dono[MAX_PLAYER_NAME+1],
3- Й uma boa prбtica usar PascalCase ou snake_case nas variбveis em pawn pra melhorar a legibilidade, eu gostava atй mesmo de usar uma "Pascal_Snake_Case" pra atributos compostos como posiзгo por exemplo, que й importante vocк dar bastante destaque ao elemento principal da variбvel, por exemplo:

Код:
Float:pickupx, 
Float:pickupy, 
Float:pickupz
poderia ser:

Код:
Float: Pickup_X,
Float: Pickup_Y,
Float: Pickup_Z
Percebeu que os elementos "Pickup", "X", "Y" e "Z" ficaram bastante em destaque quando vocк leu? Й muito bom usar desta forma, vocк poderia tambйm fazer PickupX, PickupY e PickupZ que estaria correto (PascalCase), mas nгo daria tanto destaque а separaзгo dos elementos correspondentes, mas isso й uma questгo de gosto.

Para variбveis que contйm uma estrutura, eu uso somente PascalCase, por exemplo:

Код:
new Info_Casa[...][...];
eu faria:

new InfoCasa[...][...];

O mesmo para enumeradores, melhora a legibilidade se estiver tudo junto, porque Casa nгo й um Atributo de Info para ser separado por um underline.


Alguns pontos cruciais que tкm que ser mudados no seu cуdigo:

Quote:

static CriarCasa(casaid, Float:PickupX, Float:PickupY, Float:PickupZ)
{
format(gstring, 150, "/Casas/ID%i.ini", casaid);

Esse trecho de cуdigo tem alйm de pйssimas prбticas, erros muito bбsicos sendo cometidos.

1- Nunca faзa um sistema de criaзгo de coisas que precise de um ID como parвmetro, faзa sua prуpria auto incrementaзгo, crie uma variбvel global, quando o gamemode for iniciado leia todos os elementos persistidos (salvos) daquele tipo e coloque o valor da variбvel global que vocк criou como o id do maior elemento salvo, toda vez que for inserir um novo registro, busque essa variбvel global e incremente +1 e salve os dados da nova casa, dessa forma vai sempre estar ordenado, e pra finalizar, pra ficar bastante completo, retorne sempre o ID do elemento criado na funзгo de criaзгo, por exemplo, a funзгo CriarCasa(...) poderia retornar o ID da casa que foi criada, dessa forma vocк teria muito mais usabilidade no seu cуdigo.

2- Nгo use o prefixo "IDNъmero", jб que as casas estгo sendo salvas dentro de uma pasta especнfica "/Casas", salve somente pelo ID da mesma, ex: "1.ini", "2.ini", "3.ini", melhora muito a legibilidade e futuros sistemas automatizados que vocк precise criar.

3- Seu sistema estб incompleto, ele sу cria uma casa ao iniciar o filterscript/gamemode, faзa um comando usando as dicas que te dei acima para melhorar seu sistema de casas, coloque posiзгo do pickup de entrada, interior, virtual world, entre outras informaзхes ъteis ao seu sistema.
Reply


Messages In This Thread
Sistema de Casas Muito Simples. - by GuiKommander - 12.02.2018, 15:12
Re: Sistema de Casas Muito Simples. - by IlanZ - 12.02.2018, 16:36
Re: Sistema de Casas Muito Simples. - by GuiKommander - 12.02.2018, 21:27
Re: Sistema de Casas Muito Simples. - by Bruno13 - 13.02.2018, 02:06
Re: Sistema de Casas Muito Simples. - by n0minal - 13.02.2018, 17:35

Forum Jump:


Users browsing this thread: 1 Guest(s)