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 i = 4; i <= 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(organization, i, playerid); //adiciona o jogador se a vaga estiver vazia } else return SendClientMessage(playerid, COLOR_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 i = 4; i <= 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(organization, i, playerid); //adiciona o jogador se a vaga estiver vazia } }
return SendClientMessage(playerid, COLOR_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 i = 4; i <= MAX_MEMBER_TEAM(organization); ++i) { if(!strcmp(Name(playerid), Org_Member[organization][i], false)) return SendClientMessage(playerid, COLOR_GREY, "Você já faz parte da organização."); if(idx == -1 && !strcmp("vazio", Org_Member[organization][i], false)) idx = i; }
if(idx == -1) return SendClientMessage(playerid, COLOR_GREY, "Todas as vagas foram preenchidas.");
FillVacancy(organization, idx, playerid);
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 i = 4; i <= MAX_MEMBER_TEAM(organization); ++i) { if(!strcmp(Name(playerid), Org_Member[organization][i], false)) return SendClientMessage(playerid, COLOR_GREY, "Você já faz parte da organização."); if(idx == -1 && !strcmp("vazio", Org_Member[organization][i], false)) idx = i; }
if(idx == -1) return SendClientMessage(playerid, COLOR_GREY, "Todas as vagas foram preenchidas.");
FillVacancy(organization, idx, playerid);
Reputei todos vocês, obrigado.
|