13.02.2018, 17:35
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.
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:
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:
poderia ser:
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:
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:
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.
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
Код:
Dono[MAX_PLAYER_NAME+1],
Код:
Float:pickupx, Float:pickupy, Float:pickupz
Код:
Float: Pickup_X, Float: Pickup_Y, Float: Pickup_Z
Para variбveis que contйm uma estrutura, eu uso somente PascalCase, por exemplo:
Код:
new Info_Casa[...][...];
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); |
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.