CMD:membros(playerid, params[])
{
if(Player[playerid][Organizacao] == 0)
{
SendClientMessage(playerid, 0xFF0000FF, "[BLC] |Erro| Vocк nгo й de uma organizaзгo.");
}
else
{
for(new i = 0, i < MAX_PLAYERS, i++)
{
if(Player[i][Organizacao] == Player[playerid][Organizacao])
{
SendClientMessage(playerid, -1, "/-----Membros Online-----/\n");
new nome[MAX_PLAYER_NAME], string[MAX_PLAYER_NAME];
GetPlayerName(i, nome, sizeof(nome));
format(string, sizeof(string), "%s", nome);
SendClientMessage(playerid, -1, string);
SendClientMessage(playerid, -1, "\n/-----Membros Online-----/");
}
}
}
}
CMD:membros(playerid) {
if(!Player[playerid][Organizacao]) return SendClientMessage(playerid, 0xFF0000FF, "[BLC] Vocк nгo й de uma organizaзгo.");
new CountMembers, nome[MAX_PLAYER_NAME];
foreach(Player, i) {
if(Player[i][Organizacao] == Player[playerid][Organizacao] && i != playerid) {
if(!CountMembers) SendClientMessage(playerid, -1, "/----- Membros da Organizaзгo Online -----/");
GetPlayerName(i, nome, sizeof(nome));
SendClientMessage(playerid, -1, nome);
CountMembers++;
}
}
SendClientMessage(playerid, CountMembers >= 1 ? (-1) : (0xFF0000FF), CountMembers >= 1 ? ("/----- Membros da Organizaзгo Online -----/") : ("[BLC] Fora vocк nгo hб nenhum(a) outro(a) membro(a) da sua organizaзгo estб online."));
return true;
}
CMD:membros(playerid) { if(!Player[playerid][Organizacao]) return SendClientMessage(playerid, 0xFF0000FF, "[BLC] Vocк nгo й de uma organizaзгo."); static CountMembers, nome[MAX_PLAYER_NAME], string[MAX_PLAYER_NAME]; foreach(Player, i) { if(Player[i][Organizacao] == Player[playerid][Organizacao] && i != playerid) { if(!CountMembers) SendClientMessage(playerid, -1, "/-----Membros da Organizaзгo Online -----/"); GetPlayerName(i, nome, sizeof(nome)); format(string, sizeof(string), "%s", nome); SendClientMessage(playerid, -1, string); CountMembers++; } } SendClientMessage(playerid, CountMembers >= 1 ? (-1) : (0xFF0000FF), CountMembers >= 1 ? ("/----- Membros da Organizaзгo Online -----/") : ("[BLC] Fora vocк nгo hб nenhum(a) outro(a) membro(a) da sua organizaзгo estб online.")); return 1; }
Acho que nгo da pra otimizar mais que isso. Sу mudei o return true pra return 1. E CountMembers = 0 pra CountMembers.
Код:
CMD:membros(playerid) { if(!Player[playerid][Organizacao]) return SendClientMessage(playerid, 0xFF0000FF, "[BLC] Vocк nгo й de uma organizaзгo."); static CountMembers, nome[MAX_PLAYER_NAME], string[MAX_PLAYER_NAME]; foreach(Player, i) { if(Player[i][Organizacao] == Player[playerid][Organizacao] && i != playerid) { if(!CountMembers) SendClientMessage(playerid, -1, "/-----Membros da Organizaзгo Online -----/"); GetPlayerName(i, nome, sizeof(nome)); format(string, sizeof(string), "%s", nome); SendClientMessage(playerid, -1, string); CountMembers++; } } SendClientMessage(playerid, CountMembers >= 1 ? (-1) : (0xFF0000FF), CountMembers >= 1 ? ("/----- Membros da Organizaзгo Online -----/") : ("[BLC] Fora vocк nгo hб nenhum(a) outro(a) membro(a) da sua organizaзгo estб online.")); return 1; } |
Sу removendo a operaзгo ternбria no SendClientMessage.
Menos linhas nгo quer dizer que estб mais otimizado. "Medir o progresso de um programa por linhas de cуdigo й como medir o processo de montagem de um aviгo pelo peso." - Bill Gates |
No seu cуdigo de comando, troque static por new para que a variбvel CountMembers sempre comece zerada em execuзхes sucessivas do mesmo .
Opcionalmente, vocк pode manter o static e apenas zerar essa variбvel logo abaixo de sua declaraзгo. Espero ter ajudado . |
Explique a sua lуgica de raciocнnio em utilizar a operaзгo ternбria. Lembrando que o "?" tem som de "й" e ":" tem som de "ou".
Ъnica coisa que vocк fez foi encher linguiзa na sua "otimizaзгo", e tornar seu cуdigo com uma pйssima legibilidade. |
Com operaзгo ternбria vocк faz duas verificaзхes enquanto usando if seria apenas uma
|
Certo porйm com if seria duas linhas para fazer a mesma coisa correto ? Mostre-me uma outra forma melhor utilizando if
|
if(... && i != playerid)
if(...) { if(i != playerid)
switch(CountMembers)
{
case 0: SendClientMessage(0, -1, "[BLC] Fora vocк nгo hб nenhum(a) outro(a) membro(a) da sua organizaзгo estб online.");
default: SendClientMessage(0, -1, "/----- Membros da Organizaзгo Online -----/");
}
if(CountMembers != 0) SendClientMessage(0, -1, "/----- Membros da Organizaзгo Online -----/");
else SendClientMessage(0, -1, "[BLC] Fora vocк nгo hб nenhum(a) outro(a) membro(a) da sua organizaзгo estб online.");
(CountMembers != 0) && SendClientMessage(0, -1, "/----- Membros da Organizaзгo Online -----/") || SendClientMessage(0, -1, "[BLC] Fora vocк nгo hб nenhum(a) outro(a) membro(a) da sua organizaзгo estб online.");
Acredito que nesse caso operaзгo ternбria perder tanto para switch quanto para if, nesse caso if ganha em velocidade:
PHP код:
|
Код:
(CountMembers != 0) && SendClientMessage(0, -1, "/----- Membros da Organizaзгo Online -----/") || SendClientMessage(0, -1, "[BLC] Fora vocк nгo hб nenhum(a) outro(a) membro(a) da sua organizaзгo estб online."); |
Aproveitando que estou no celular do meu tio, gostaria de mandar um salve ao meu mestre, @RazorGuigo, futuramente estarei voltando, sу esperando meu PC novo chegar.
|
Nгo й permitido "Double Post" (Postagem dupla) antes de 24 horas. Existe um botгo chamado "Editar" .