SA-MP Forums Archive
[Ajuda] Cуdigo Eficiente - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Cуdigo Eficiente (/showthread.php?tid=501103)



Cуdigo Eficiente - Douglas_prt - 16.03.2014

Olб, estou neste momento a desenvolver o meu primeiro gamemode e estou a tentar criar um cуdigo que seja eficiente.

A minha dъvida й: Qual dos seguintes procedimentos й o mais eficiente?

1. Criar um comando que contйm a funзгo

pawn Код:
COMMAND:achat(playerid, params[]) {
    new text[128], string[128];
    if(!sscanf(params, "s", text)) {
        if(Player[playerid][AdminLevel] > 0) {
            for(new i = 0; i < MAX_PLAYERS; i++) {
                if(Player[i][AdminLevel] > 0) {
                    format(string, sizeof(string), "[ADM CHAT] %s : %s", pName(playerid), text);
                    SendClientMessage(i, -1, string);
                }
            }
        }
        else SendClientMessage(playerid, 0xFF3C3CFF, "ERRO: Nгo йs administrador.");
    }
    else SendClientMessage(playerid, 0xFF3C3CFF, "Utilizaзгo: /achat [texto]");
    return 1;
}
2. Criar um comando que faz uso de uma funзгo exterior

pawn Код:
COMMAND:achat(playerid, params[]) {
    new text[128];
    if(!sscanf(params, "s", text)) {
        if(Player[playerid][AdminLevel] > 0) {
            adminChat(playerid, text);
        }
        else SendClientMessage(playerid, 0xFF3C3CFF, "ERRO: Nгo йs administrador.");
    }
    else SendClientMessage(playerid, 0xFF3C3CFF, "Utilizaзгo: /achat [texto]");
    return 1;
}
pawn Код:
public adminChat(playerid, const string[]) {
    new text[128];
    for(new i = 0; i < MAX_PLAYERS; i++) {
        if(Player[i][AdminLevel] > 0) {
            format(text, sizeof(text), "[ADM CHAT] %s : %s", pName(playerid), string);
            SendClientMessage(i, -1, text);
        }
    }
    return 1;
}



Re: Cуdigo Eficiente - Dolby - 16.03.2014

Bom, neste caso й questгo de organizaзгo. Nгo faz tanta diferenзa a ponto de ser notбvel, cada programador tem seu modo de programar. Se vocк for utilizar essa funзгo vбrias vezes, seria interessante deixa-la como uma funзгo 'exterior', atй porque as funзхes nгo sгo inline, ou seja, consultam a callback, executa suas funзхes e pega apenas seu retorno, nгo fazendo "substituiзхes", assim como macros.

Entгo a escolha й sua, mas particularmente eu criaria uma funзгo externa, atй porque й uma funзгo que vocк provavelmente vai usar vбrias vezes no decorrer do script.

Abraзos.


Re: Cуdigo Eficiente - GWMPT - 16.03.2014

A utilizaзao de funзхes nгo executam o "cуdigo" mais depressa, mas sim organiza-o, e permite usa-los outra vez mais tarde.


Re: Cуdigo Eficiente - Douglas_prt - 16.03.2014

@ Dolby, Kikito

Ok, obrigado pela ajuda