[Ajuda] Nгo executar se tiver menos que x membros
#1

Boa tarde, tenho uma dъvida e acho que pode ser simples, como nunca tentei, preciso de ajuda, como faзo para que uma funзгo nгo executar caso haja menos de 5 membros da org no local?

A variбvel DAS ORGS de meu GM й PlayerInfo[playerid][pMembro], a funзгo que quero bloquear se tiver menos que 5 membros no local й:

PHP код:
if (!strcmp(cmdtext"/explodircela"true)) {
    new 
celao[100];
    if (
PlayerInfo[playerid][pMembro] != && PlayerInfo[playerid][pLider] != && PlayerInfo[playerid][pMembro] != 14 && PlayerInfo[playerid][pLider] != 14 && PlayerInfo[playerid][pMembro] != 17 && PlayerInfo[playerid][pLider] != 17 && PlayerInfo[playerid][pMembro] != 18 && PlayerInfo[playerid][pLider] != 18 && PlayerInfo[playerid][pMembro] != 19 && PlayerInfo[playerid][pLider] != 19
        
&& PlayerInfo[playerid][pMembro] != 20 && PlayerInfo[playerid][pLider] != 20 && PlayerInfo[playerid][pMembro] != 21 && PlayerInfo[playerid][pLider] != 21 && PlayerInfo[playerid][pMembro] != && PlayerInfo[playerid][pLider] != && PlayerInfo[playerid][pMembro] != 22 && PlayerInfo[playerid][pLider] != 22 && GetPlayerOrg(playerid) != && GetPlayerOrg(playerid) != 12 && GetPlayerOrg(playerid) != 13 && GetPlayerOrg(playerid) != 15 && GetPlayerOrg(playerid) != 23) {
            
SendClientMessage(playeridCOLOR_GREY"Vocк nгo explodir as celas do presнdio!");
            return 
true;
        }
    if(
PlayerToPoint(5.0playerid203.4444,1442.0721,10.5859))
    {
        if (
explodircela == 1) return SendClientMessage(playerid, -1"Alguem jб atacou a cela 1, tente novamente mais tarde!");
        
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
        
format(celaosizeof(celao), "%s e o(a) %s estгo tentando explodir a cela 1 do presнdio!"playernameNomeORG(playerid));
        
SendClientMessageToAll(0x9ACD32FFcelao);
          
SendClientMessage(playerid, -1"Saia de perto, a cela serб explodida em 30 segundos!");
           
SetTimerEx("explodircela1"300000"i"playerid);   // 30 segundos para explodir a cela
        
SetTimer("UsarCela"15000000); // Explodir cela de novo....  25 minutos
        
Contagem[playerid] = 30;
        
ContagemExplosaoPresidio[playerid] = SetTimerEx("ContagemPresidio"10001"i"playerid);
        
explodircela 1;
        
SetPlayerCriminal(playerid255"Tentativa de rebeliгo no presнdio");
        return 
1;
 } 
Agradeзo a quem for ajudar!
Reply
#2

FAЗA um loop e verifique...

PHP код:
new OnlineOrg;
for(new 
iMAX_PLAYERS; ++i)
    if(
PlayerInfo[i][pMembro] == X)
        
OnlineOrg ++;
if(
OnlineOrg 5)
    
//Do something 
Reply
#3

Olб, obrigado por tentar, tentei um monte de mйtodos com seu cуdigo e nгo tive resultados, de qualquer forma obrigado!

Alguem poderia sugerir algo melhor?
Reply
#4

Код:
stock has_members_online(min, org_id)
{
	new members_online;
	for( new i=0; i < MAX_PLAYERS; i++ )
	{
		if(PlayerInfo[i][pMembro == org_id)
			members_online++;
	}

	return members_online >= min;
}
Essa funзгo vocк passa como primeiro parвmetro a quantidade minima de jogadores online, por exemplo 5, e o segundo й o ID da organizaзгo.

Exemplo
Код:
has_members_online(5, 5)
Vai verificar se tem ai menos 5 membros online da organizaзгo de ID 5.

Com isso vocк pode implementar em qualquer comando ou funзгo. Mais fбcil que isso sу eu pegando seu GM e fazendo pra vocк.
Reply
#5

Certo, no caso por exemplo, quero colocar em 5 orgs, ai colocaria a stock e na funзгo eu coloco 5 vezes?

PHP код:
has_members_online(51)
has_members_online(52)
has_members_online(53)
has_members_online(54)
has_members_online(55
Reply
#6

Quote:
Originally Posted by Sennior
Посмотреть сообщение
Certo, no caso por exemplo, quero colocar em 5 orgs, ai colocaria a stock e na funзгo eu coloco 5 vezes?

PHP код:
has_members_online(51)
has_members_online(52)
has_members_online(53)
has_members_online(54)
has_members_online(55
vocк coloca ao tanto de orgs que vocК quiser por , ou tiver
Reply
#7

A funзгo retorna um booleano, entгo vocк usa ela dentro de uma condicional.

Exemplo
Код:
if( has_members_online(5, 1) )
{
	printf("testes");
}
Vai aparecer "teste" se tiver 5 membros onlines da organizaзгo 1
Reply
#8

Й sу comparar a variбvel da org do jogador, com a dos jogadores do loop dentro de X metros e fazer a contagem. Nгo tem mistйrio nisso.
Reply
#9

Quote:
Originally Posted by Sennior
Посмотреть сообщение
Olб, obrigado por tentar, tentei um monte de mйtodos com seu cуdigo e nгo tive resultados, de qualquer forma obrigado!

Alguem poderia sugerir algo melhor?
Me explique o que o meu cуdigo faz...
Reply
#10

Eu ja consegui VeNuZ com um cуdigo que criei aqui mas bloqueia pra todos se tiver menos de 3 pessoas, se tiver mais de 3 pessoas de qualquer org ele desbloqueia, eu precisava bloquear apenas para os membros da org, exemplo, se tiver 3 da org em tal local, a funзгo desbloqueava, se tivesse menos, ela nгo deixaria executar o comando, o seu ele bloqueava para o x de pessoas mas nгo executava a funзгo depois, mas de qualquer forma obrigado!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)