SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Português/Portuguese (https://forum.sa-mp.com/forumdisplay.php?f=34)
-   -   Pontuação Guerra (https://forum.sa-mp.com/showthread.php?t=675853)

VSxD 22/05/2020 10:58 PM

[AJUDA] Pontuação Guerra
 
Bom galera quero fazer um sistema que tipo a cada 5 Minutos uma organização que tiver com mais membros dentro da zona de guerra ganha 1 Ponto por maioria , porem ta dando certo tipo a pontuação e o tempo o problema esta sendo que , ta contando por membro na zona tipo tem 2 DE UMA ORG e 1 DA OUTRA os 3 pontua tipo:
2 DA ORG TERRORISTA GANHOU 2 PONTO
1 DA EXERCITO GANHOU 1 Ponto,

Porém queria que so a ORG Terrorista ganhasse 1 Ponto por ser maioria de membros na zona de guerra teria como alguem me ajudar

Code:

stock EndGuerra2()
{
    for(new x; x < MAX_ORGS; ++x){
            new gStr[128];
                new orgid = GetPlayerOrg(x);
                if(TendoGuerra)
                {
                          if(orgid==3||orgid==15||orgid==23)
                        if(IsPlayerInGuerra(x) && orgid != -1)
                        {
                                //GPTS[x]++;
                                if(GPTS[orgid] == GPTS[orgid] || GPTS[orgid] > GPTS[orgid])
                                {
                                    format(gStr, sizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria, estão com mais membros na zona de guerra!!", GetOrgNameTerrorista(orgid));
                                    SendClientMessageToAll(GetPlayerColor(x), gStr);
                                        PSG[orgid] += 1;
                                }
                                else
                                {
                                        SendClientMessageToAll(-1, "{FFFF00}[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
                                }
                                TimerMGuerra = (1)*60;
                        }
                  }
        }
        return 1;
}


Hatiro 23/05/2020 12:59 AM

Re: Pontuação Guerra
 
testa
Code:

stock EndGuerra2()
{
    for(new x; x < MAX_ORGS; ++x){
            new gStr[128];
                new orgid = GetPlayerOrg(x);
                if(TendoGuerra)
                {
                          if(orgid==3||orgid==15||orgid==23)
                        if(IsPlayerInGuerra(x) && orgid != -1)
                        {
                                //GPTS[x]++;
                                if(GPTS[orgid] == GPTS[orgid] || GPTS[orgid] > GPTS[orgid])
                                {
                                    format(gStr, sizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria, estão com mais membros na zona de guerra!!", GetOrgNameTerrorista(orgid));
                                    SendClientMessageToAll(GetPlayerColor(x), gStr);
                                        PSG[orgid] += 1;
                                }
                                else
                                {
                                        SendClientMessageToAll(-1, "{FFFF00}[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
                                }
                                TimerMGuerra = (1)*60;
                        }
                  }
          break;
        }
        return 1;
}


VSxD 23/05/2020 05:28 PM

Re: Pontuação Guerra
 
Quote:

Originally Posted by Hatiro (Post 4147466)
testa
Code:

stock EndGuerra2()
{
    for(new x; x < MAX_ORGS; ++x){
            new gStr[128];
                new orgid = GetPlayerOrg(x);
                if(TendoGuerra)
                {
                          if(orgid==3||orgid==15||orgid==23)
                        if(IsPlayerInGuerra(x) && orgid != -1)
                        {
                                //GPTS[x]++;
                                if(GPTS[orgid] == GPTS[orgid] || GPTS[orgid] > GPTS[orgid])
                                {
                                    format(gStr, sizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria, estão com mais membros na zona de guerra!!", GetOrgNameTerrorista(orgid));
                                    SendClientMessageToAll(GetPlayerColor(x), gStr);
                                        PSG[orgid] += 1;
                                }
                                else
                                {
                                        SendClientMessageToAll(-1, "{FFFF00}[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
                                }
                                TimerMGuerra = (1)*60;
                        }
                  }
          break;
        }
        return 1;
}


man ajudou tipo o flood de pontuação parou , só teria como me ajudar agr pq ta dando empate quando tem 2 da msm org no gangzone , sendo que era pra ganhar 1 Ponto por maioria

VSxD 25/05/2020 05:16 PM

Re: Pontuação Guerra
 
upp alguem poderia me ajudar

Hatiro 25/05/2020 06:09 PM

Re: Pontuação Guerra
 
não sei como as função dae ta mas pode tentar
Code:

stock EndGuerra2()
{
    for(new x; x < MAX_ORGS; ++x){
            new gStr[128];
                new orgid = GetPlayerOrg(x);
                if(TendoGuerra)
                {
                          if(orgid==3||orgid==15||orgid==23)
                        if(IsPlayerInGuerra(x) && orgid != -1)
                        {
                                //GPTS[x]++;
                                if(GPTS[orgid] == GPTS[orgid] || GPTS[orgid] > GPTS[orgid])
                                {
                                    format(gStr, sizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria, estão com mais membros na zona de guerra!!", GetOrgNameTerrorista(orgid));
                                    SendClientMessageToAll(GetPlayerColor(x), gStr);
                                        PSG[orgid] = 1;
                                }
                                else
                                {
                                        SendClientMessageToAll(-1, "{FFFF00}[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
                                }
                                TimerMGuerra = (1)*60;
                        }
                  }
          break;
        }
        return 1;
}

edit: se precisar coloca mas pontuação tem outras alternativa

VSxD 26/05/2020 03:21 PM

Re: Pontuação Guerra
 
Quote:

Originally Posted by Hatiro (Post 4147973)
não sei como as função dae ta mas pode tentar
Code:

stock EndGuerra2()
{
    for(new x; x < MAX_ORGS; ++x){
            new gStr[128];
                new orgid = GetPlayerOrg(x);
                if(TendoGuerra)
                {
                          if(orgid==3||orgid==15||orgid==23)
                        if(IsPlayerInGuerra(x) && orgid != -1)
                        {
                                //GPTS[x]++;
                                if(GPTS[orgid] == GPTS[orgid] || GPTS[orgid] > GPTS[orgid])
                                {
                                    format(gStr, sizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria, estão com mais membros na zona de guerra!!", GetOrgNameTerrorista(orgid));
                                    SendClientMessageToAll(GetPlayerColor(x), gStr);
                                        PSG[orgid] = 1;
                                }
                                else
                                {
                                        SendClientMessageToAll(-1, "{FFFF00}[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
                                }
                                TimerMGuerra = (1)*60;
                        }
                  }
          break;
        }
        return 1;
}

edit: se precisar coloca mas pontuação tem outras alternativa

ta dando a mesma coisa , tipo não ta reconhecendo a quantia de players dentro da zona de guerra, se tem um empate ta saindo pontuação pra alguma ORG quando deveria tipo ninguem pontuar

pWesley 26/05/2020 03:41 PM

Re: Pontuação Guerra
 
Troca esse MAX_ORGS por MAX_PLAYERS

MateGPlay 26/05/2020 05:49 PM

Re: Pontuação Guerra
 
PHP Code:

stock EndGuerra2()
{
    new 
gStr[128], orgplayers[MAX_ORGS] = 0orgvencedora = -1;
    for(new 
0MAX_PLAYERSx++)
        if(
TendoGuerra && GetPlayerOrg(x) != -&& IsPlayerInGuerra(x))
            
orgplayers[GetPlayerOrg(x)]++;
    for(new 
0MAX_ORGSx++) {
        if(
orgplayers[GetPlayerOrg(x)] > orgplayers[GetPlayerOrg(x)+1])
            
orgvencedora GetPlayerOrg(x);
        else if(
orgplayers[GetPlayerOrg(x)] < orgplayers[GetPlayerOrg(x)+1])
            
orgvencedora GetPlayerOrg(x)+1;
    }
    if(
orgvencedora == -1)
        return 
SendClientMessageToAll(0xFFFF00"[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
    
format(gStrsizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria, estão com mais membros na zona de guerra!!"GetOrgNameTerrorista(orgvencedora));
    
SendClientMessageToAll(GetPlayerColor(orgvencedora), gStr);
    
PSG[orgvencedora]++;
    
TimerMGuerra = (1)*60;
    return 
1;



VSxD 27/05/2020 11:50 PM

Re: Pontuação Guerra
 
Quote:

Originally Posted by MateGPlay (Post 4148178)
PHP Code:

stock EndGuerra2()
{
    new 
gStr[128], orgplayers[MAX_ORGS] = 0orgvencedora = -1;
    for(new 
0MAX_PLAYERSx++)
        if(
TendoGuerra && GetPlayerOrg(x) != -&& IsPlayerInGuerra(x))
            
orgplayers[GetPlayerOrg(x)]++;
    for(new 
0MAX_ORGSx++) {
        if(
orgplayers[GetPlayerOrg(x)] > orgplayers[GetPlayerOrg(x)+1])
            
orgvencedora GetPlayerOrg(x);
        else if(
orgplayers[GetPlayerOrg(x)] < orgplayers[GetPlayerOrg(x)+1])
            
orgvencedora GetPlayerOrg(x)+1;
    }
    if(
orgvencedora == -1)
        return 
SendClientMessageToAll(0xFFFF00"[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
    
format(gStrsizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria, estão com mais membros na zona de guerra!!"GetOrgNameTerrorista(orgvencedora));
    
SendClientMessageToAll(GetPlayerColor(orgvencedora), gStr);
    
PSG[orgvencedora]++;
    
TimerMGuerra = (1)*60;
    return 
1;



ooh man , ta certo só que tipo
tem 1 EXERCITO , 1 ASFARC , 1 GI , 1 membro de cada ORG não ta reconhecendo o empate ta dando ponto para uma das ORG

MateGPlay 28/05/2020 11:37 PM

Re: Pontuação Guerra
 
Quote:

Originally Posted by VSxD (Post 4148369)
ooh man , ta certo só que tipo
tem 1 EXERCITO , 1 ASFARC , 1 GI , 1 membro de cada ORG não ta reconhecendo o empate ta dando ponto para uma das ORG

PHP Code:

    stock EndGuerra2()
{
    new 
gStr[128], orgplayers[MAX_ORGS] = 0orgvencedora = -1;
    for(new 
0MAX_PLAYERSx++)
        if(
TendoGuerra && GetPlayerOrg(x) != -&& IsPlayerInGuerra(x))
            
orgplayers[GetPlayerOrg(x)]++;
    for(new 
0MAX_ORGSx++) {
        if(
orgplayers[GetPlayerOrg(x)] > orgplayers[GetPlayerOrg(x)+1])
            
orgvencedora GetPlayerOrg(x);
        else if(
orgplayers[GetPlayerOrg(x)] < orgplayers[GetPlayerOrg(x)+1])
            
orgvencedora GetPlayerOrg(x)+1;
        else if(
orgplayers[orgvencedora] == orgplayers[GetPlayerOrg(x)+1] && orgvencedora != -1)
            
orgvencedora = -1;
    }
    if(
orgvencedora == -1)
        return 
SendClientMessageToAll(0xFFFF00"[GUERRA]: {FFFFFF}Houve um empate de membros na Guerra, e nenhuma organização pontuou!");
    
format(gStrsizeof(gStr), "• A Organização (%s) acabaram de pontuar por maioria: %d, estão com mais membros na zona de guerra!!"GetOrgNameTerrorista(orgvencedora), orgplayers[orgvencedora]);
    
SendClientMessageToAll(GetPlayerColor(orgvencedora), gStr);
    
PSG[orgvencedora]++;
    
TimerMGuerra = (1)*60;
    return 
1;


Testa Assim


All times are GMT. The time now is 07:46 PM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.