Portal SAMP
[Ajuda] Preenche todas as vagas - 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] Preenche todas as vagas (/showthread.php?tid=4916)



Preenche todas as vagas - Mackor - 10/11/2024

Estou com um problema no loop, estou com a cabeça cheia por causa do trabalho e não consigo fazer um script decente. 

Código PHP:
        for(new 4<= MAX_MEMBER_TEAM(organization); ++i)
        {
            if(!
strcmp("vazio"Org_Member[organization][i], false)) //aqui verifica se a vaga esta vazia
            
{
                if(
strcmp(Name(playerid), Org_Member[organization][i], false))
            
        return 1// aqui não funciona (o objetivo dessa parte é, se alguma vaga estiver com o nome do jogador FillVacancy é cancelado (FillVacancy é onde adiciona o jogador na tal vaga).
            
        
                FillVacancy
(organizationiplayerid); //adiciona o jogador se a vaga estiver vazia
            
}
            else return 
SendClientMessage(playeridCOLOR_GREY"Todas as vagas foram preenchidas.");
        } 

O problema que preenche todas as vagas(MAX_MEMBER_TEAM).
Preciso de alguém para otimizar esse código urgente.


RE: Preenche todas as vagas - xbruno1000x - 11/11/2024

Tente dessa forma:

Código:
    for (new i = 4; i <= MAX_MEMBER_TEAM(organization); ++i)
    {
        if (!strcmp("vazio", Org_Member[organization][i], false)) // Verifica se a vaga está vazia
        {
            if (strcmp(Name(playerid), Org_Member[organization][i], false))
                return 1; // Se o jogador já estiver em alguma vaga, cancela o processo
            
            FillVacancy(organization, i, playerid); // Adiciona o jogador na vaga vazia
            break;
        }
        else return SendClientMessage(playerid, COLOR_GREY, "Todas as vagas foram preenchidas.");
    }

Em teoria, após preencher a vaga o break irá quebrar o looping.


RE: Preenche todas as vagas - domingues93 - 11/11/2024

Código PHP:
for(new 4<= MAX_MEMBER_TEAM(organization); ++i)
        {
            if(!strcmp("vazio"Org_Member[organization][i], false)) //aqui verifica se a vaga esta vazia
            {
                if(strcmp(Name(playerid), Org_Member[organization][i], false))
                    return 1// aqui não funciona (o objetivo dessa parte é, se alguma vaga estiver com o nome do jogador FillVacancy é cancelado (FillVacancy é onde adiciona o jogador na tal vaga).
                    
                FillVacancy
(organizationiplayerid); //adiciona o jogador se a vaga estiver vazia
            }
        }

return 
SendClientMessage(playeridCOLOR_GREY"Todas as vagas foram preenchidas."); 



RE: Preenche todas as vagas - RodrigoMSR - 13/11/2024

Para checar se o jogador já faz parte da organização, deve-se passar por todos os membros, e só depois adicioná-lo em alguma vaga livre.

Código PHP:
new idx = -1;

for(new 
4<= MAX_MEMBER_TEAM(organization); ++i)
{
    if(!strcmp(Name(playerid), Org_Member[organization][i], false))
        return SendClientMessage(playeridCOLOR_GREY"Você já faz parte da organização.");
    
    
if(idx == -&& !strcmp("vazio"Org_Member[organization][i], false))
        idx i;
}

if(
idx == -1)
    return SendClientMessage(playeridCOLOR_GREY"Todas as vagas foram preenchidas.");

FillVacancy(organizationidxplayerid); 



RE: Preenche todas as vagas - Mackor - 13/11/2024

(13/11/2024 03:04)RodrigoMSR Escreveu: Para checar se o jogador já faz parte da organização, deve-se passar por todos os membros, e só depois adicioná-lo em alguma vaga livre.

Código PHP:
new idx = -1;

for(new 
4<= MAX_MEMBER_TEAM(organization); ++i)
{
    if(!strcmp(Name(playerid), Org_Member[organization][i], false))
        return SendClientMessage(playeridCOLOR_GREY"Você já faz parte da organização.");
    
    
if(idx == -&& !strcmp("vazio"Org_Member[organization][i], false))
        idx i;
}

if(
idx == -1)
    return SendClientMessage(playeridCOLOR_GREY"Todas as vagas foram preenchidas.");

FillVacancy(organizationidxplayerid); 

Reputei todos vocês, obrigado.