Portal SAMP
[Ajuda] Duvidas sobre posições - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Duvidas sobre posições (/showthread.php?tid=4328)



Duvidas sobre posições - L10motos - 21/12/2023

Oih, estou com um problema, estou ajudando uma pessoa a organizar uma gm mais estou em duvida.

o que é certo? ou é apenas uma preferencia?

assim:

Código PHP:
        if(!IsPlayerConnected(suspect))
            return 
SendClientMessage(playeridCOLOR_GREY"Você só pode interagir com jogadores online."); 

ou assim:

Código PHP:
if(!IsPlayerConnected(suspect))
{
      SendClientMessage(playeridCOLOR_GREY"Você só pode interagir com jogadores online.");
return 
1;



Acho mais que seria uma preferencia de organização, mais tem seus defeitos, certo e errado.

Outro modo que usam bastante em gms da net é:
Código PHP:
if(PlayerInfo[playerid][pMedicBill] > 0){ SendClientMessage(playeridTEAM_CYAN_COLOR"Você está em coma não consegue falar!"); return 0; } 

Tudo na mesma linha, muito ruim de compilar...

@Edit

Outra duvida é a seguinte, qual é o modo certou ou também pode ser apenas uma preferencia?

modo 1:
Código PHP:
                                format(sstring256"%s(%d) preso em %s por %02d:%02d:%02d"Name(i), itext, ((j/60)/60), ((j/60)%60), (j%60));
                                
SendClientMessage(playerid, -1sstring); 

modo 2:
Código PHP:
                                    format(sstring256"%s(%d) preso em %s por %02d:%02d:%02d"Name(i), itext, ((PlayerInfo[i][pJailTime]/60)/60), ((PlayerInfo[i][pJailTime]/60)%60), (PlayerInfo[i][pJailTime]%60));
                                
SendClientMessage(playerid, -1sstring); 

O que muda?
Muda que em PlayerInfo[i][pJailTime] é definido como j


RE: Duvidas sobre posições - pushline - 21/12/2023

Os dois primeiros estão corretos, vai de cada um, pra mim se um if retorna apenas 1 linha (vulgo return ou var = true) eu não uso {}.
O terceiro eu já acho feio, ruim pra ler (a compilação não lê identação).
E no terceiro não muda nada, apenas atribuindo uma variável o jailtime do player, e já que é feito no format, não ocorrerá erro em questão de heap overflow e etc.


RE: Duvidas sobre posições - L10motos - 21/12/2023

(21/12/2023 22:06)pushline Escreveu: Os dois primeiros estão corretos, vai de cada um, pra mim se um if retorna apenas 1 linha (vulgo return ou var = true) eu não uso {}.
O terceiro eu já acho feio, ruim pra ler (a compilação não lê identação).
E no terceiro não muda nada, apenas atribuindo uma variável o jailtime do player, e já que é feito no format, não ocorrerá erro em questão de heap overflow e etc.

Então na sua opinião o certo seria?

Código PHP:
        if(!IsPlayerConnected(suspect))
        return 
SendClientMessage(playeridCOLOR_GREY"Você só pode interagir com jogadores online."); 

Mais inquanto as public OnPlayerConnect que automaticamente no SA-MP ela é atribuida com {} e tipo assim:

Código PHP:
public OnPlayerConnect(playerid)
{
      return 1;




No new pwn do pawno quando você cria uma nova GM as public vem tudo assim, você colocaria como eu coloquei acima ou abaixo:

Código PHP:
public OnPlayerConnect(playerid)
  return 1



RE: Duvidas sobre posições - Dr Editor - 21/12/2023

Performance não muda em nenhum exemplo.
O primeiro exemplo não muda nada. Apenas o valor de retorno caso use uma função irá retornar o valor dela, logo, SendClientMessage retorna 1 caso o jogador esteja conectado e 0 caso não esteja. Em ambos casos o código abaixo do retorno não é chamado.
Atribuir o valor de um array em uma variável pode apenas facilitar a visualização, principalmente se tiver mais de duas dimensões, mas não possui impacto senão na alocação de memória (insignificantre neste caso).
Como dito acima, o terceiro código é uma porquice. Você não é uma máquina, portanto organize o código para melhor visualização e organização.

(21/12/2023 22:32)L10motos Escreveu: No new pwn do pawno quando você cria uma nova GM as public vem tudo assim, você colocaria como eu coloquei acima ou abaixo:

Código PHP:
public OnPlayerConnect(playerid)
  return 1

Você vai utilizar sempre essa função no servidor, no entanto você pode removê-las caso não as utilize.
Com chaves ou sem chaves não muda nada, neste exemplo.
Unica função obrigatória do script é a "main".


RE: Duvidas sobre posições - zBreno - 21/12/2023

o new.pwn dentro da pasta pawno pode ser editado por você o a_samp e o main é a base pra um gm funcionar o resto você modifica de acordo com suas necessidades, eu gosto de falar que programador e pedreiro é a mesma coisa, você constrói uma casa de uma forma onde as pessoas possam viver nela e dormir em um espaço confortável, então escreva seu código da mesma forma como é ensinado a escrever da alfabetização ao ensino fundamental o importante é as pessoas sempre entenderem o que você esta escrevendo pra facilitar a vida delas quando uma modificação for necessária, código truncado é coisa de internet, em ambiente de trabalho alguém sempre vai pegar o que você escreve pra modificar e vice versa, imagina a confusão que não daria com três pessoas escrevendo texto legível e a quarta pessoa fazendo código de letra de médico que ninguém entende nada seria um caos e o projeto nunca iria pra frente