[Off] Dicas e avisos relacionados a SA-MP [PT/BR]
#1

Dicas / Truques e avisos sobre SA-MP


@Regras:
1) Este tуpico й proibido postar conteъdo que nгo seja relacionado a Tips & Tricks e avisos importantes relacionados a SA-MP.


Podem postar suas dicas e truques que vocк aprendeu.
Podem postar noticias relacionadas a SA-MP.

Obrigado a todos que participarem.
Reply
#2

Й correto e funcional fazermos isto para obtermos o nome de um player:

pawn Код:
stock GetName(playerid)
{
    new name[24];
    GetPlayerName(playerid,name,24);
    return name;
}

format(msg,50,"Seja bem vindo: %s",GetName(playerid));
Porйm obtemos o nome de um mesmo jogador vбrias vezes.

Mas pode ser muito mais otimizado obtermos apenas uma vez

pawn Код:
new pName[MAX_PLAYERS][24]; // Variбvel global

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid,pName[playerid],24);
    return 1;
}

// Pronto, agora sу utilizarmos quando quisermos :D

CMD:meunome(playerid)
{
    new frase[50];
    format(frase,50,"Seu nome й: %s",pName[playerid]);
    SendClientMessage(playerid,0xFFDD00FF,frase);
    return 1;
}
Reply
#3

Acho que sempre й bom contar a verdadeira quantidade de cйlulas que vai utilizar uma Array, assim economizando bytes da memoria de seu host/localhost...
Nгo vai fazer muita diferenзa, mas deixa seu GM mais organizado...
Reply
#4

nгo deixe seu gm com mais de 277k e linhas, pois vai bugar.
Reply
#5

Ao pedir ajuda no fуrum, faзa um tуpico resumido com algumas informaзхes, isso ajuda na hora de resolver ou identificar o problema.

Informe qual й o problema que vocк tem (Um simples resumo, errors/warnings).
O que o sistema/script deve fazer (Qual sua funзгo/finalidade).
O que o sistema/script estб fazendo (Qual й o resultado final).
Informe tambйm o sistema/script nгo deve fazer (Quais restriзхes deve ter, o inverso do que й pra acontecer).

Quote:

Qual comando exatamente demora ? poderia postar o cуdigo ?

Qual gamemode vocк usa ? й antigo, editado ou feito totalmente do zero.
Feito em zcmd ou processa os comandos com strcmp ?

Sгo informaзхes que vocк precisa postar quando quer ajuda, isso ajuda no processo de identificaзгo do problema.

Reply
#6

Tente usar a lуgica e fazer debug de todos os scriptse que vocк faz, lembre-se que deve estudar programaзгo e nгo usas GF's.
Reply
#7

nгo deve criar variбveis desnecessбrias, tentar optimizar o mais possнvel sempre o script
Reply
#8

Nunca deixar espaзos excessivo nos cуdigos, pois aumenta o tamanho do amx e dependendo do excesso pode atй causar lag.

Exemplo:

pawn Код:
Mйtodo incorreto:

new bool:Autorizado[ MAX_PLAYERS ];

public OnPlayerConnect( playerid )
{
    if( Autorizado[ playerid ] == false ) return SendClientMessage( playerid, -1, "[INFO]: Vocк nгo estб autorizado a entrar no servidor."), Kick( playerid );
    return 1;
}

Mйtodo correto:

new Autorizado[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    if(Autorizado[playerid] == false) return SendClientMessage(playerid, -1, "[INFO]: Vocк nгo estб autorizado a entrar no servidor."), Kick(playerid);
    return 1;
}

Mйtodo Super Fast:

new Autorizado[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    if(Autorizado[playerid]==false) return SendClientMessage(playerid,-1,"[INFO]: Vocк nгo estб autorizado a entrar no servidor."),Kick(playerid);
    return 1;
}
Alguns acham 'desorganizado', realmente fica um pouco, mais melhora muito o desempenho!

OBS: й claro que se vocк otimizar somente 2 cуdigos nгo obterб diferenзa visнvel, agora faзa isso em um game-mode inteiro e percebera a diferenзa.
Reply
#9

Quote:
Originally Posted by Russo66
Посмотреть сообщение
Nunca deixar espaзos excessivo nos cуdigos, pois aumenta o tamanho do amx e dependendo do excesso pode atй causar lag.

Exemplo:

pawn Код:
Mйtodo incorreto:

new bool:Autorizado[ MAX_PLAYERS ];

public OnPlayerConnect( playerid )
{
    if( Autorizado[ playerid ] == false ) return SendClientMessage( playerid, -1, "[INFO]: Vocк nгo estб autorizado a entrar no servidor."), Kick( playerid );
    return 1;
}

Mйtodo correto:

new Autorizado[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    if(Autorizado[playerid] == false) return SendClientMessage(playerid, -1, "[INFO]: Vocк nгo estб autorizado a entrar no servidor."), Kick(playerid);
    return 1;
}

Mйtodo Super Fast:

new Autorizado[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    if(Autorizado[playerid]==false) return SendClientMessage(playerid,-1,"[INFO]: Vocк nгo estб autorizado a entrar no servidor."),Kick(playerid);
    return 1;
}
Alguns acham 'desorganizado', realmente fica um pouco, mais melhora muito o desempenho!

OBS: й claro que se vocк otimizar somente 2 cуdigos nгo obterб diferenзa visнvel, agora faзa isso em um game-mode inteiro e percebera a diferenзa.
Meu game mode RPG tem 20k de linhas e й completamente cheio de espaзo e nгo senti nenhuma diferenзa, tem 420 KB de AMX
Reply
#10

Quote:
Originally Posted by iSmirnoff
Посмотреть сообщение
Meu game mode RPG tem 20k de linhas e й completamente cheio de espaзo e nгo senti nenhuma diferenзa, tem 420 KB de AMX
porque o compilador ao compilar colocar tudo juntinho

nao tem diferenзa colocarmos o code

A s s i m

porque ao compilar ele vai ficar

Assim
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)