SA-MP Forums Archive
[Ajuda] Problema nas Orgs - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Problema nas Orgs (/showthread.php?tid=522036)



Problema nas Orgs - s4kuL - 25.06.2014

Eae galera suavгo?

Bom, estou com um problema aqui, quando o lнder de alguma orgs digita /contaslider, o cara continua de lider na org oO

Alguйm tem ideia de como posso arrumar isso?

pawn Код:
// /contaslider:

if(!strcmp("/contaslider", cmdtext, true))
    {
        if(PlayerInfo[playerid][pLider] == 0)
        {
            SendClientMessage(playerid,COLOR_GREY," Vocк nгo й lнder de nenhuma organizaзгo!");
            return 1;
        }
        DemitirInfoOrg(PlayerName(playerid));
        gTeam[playerid] = 3;
        PlayerInfo[playerid][pTeam] = 3;
        PlayerInfo[playerid][pMembro] = 0;
        PlayerInfo[playerid][pLider] = 0;
        PlayerInfo[playerid][pCargo] = 0;
        if(PlayerInfo[playerid][pSex] == 1) { PlayerInfo[playerid][pSkin] = 23; } else { PlayerInfo[playerid][pSkin] = 216; }
        SetSpawnInfo(playerid, gTeam[playerid], PlayerInfo[playerid][pSkin],0.0,0.0,0.0,0,0,0,0,0,0,0);
        MedicBill[playerid] = 0;
        SpawnPlayer(playerid);
        MedicBill[playerid] = 0;
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "Vocк pediu as contas, agora vocк й um Civil novamente!");
        return 1;
    }

//callback DemitirInfoOrg:

public DemitirInfoOrg(nome[])
{
    new arquivo[128];
    for(new i = 1; i < sizeof(InfoOrg); i++)
    {
        format(arquivo, sizeof(arquivo), "InfoOrg/Org%d.cfg",i);
        if(strcmp(nome,InfoOrg[i][Lider],true)==0)
        {
            strmid(InfoOrg[i][Lider], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Lider","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][SubLider],true)==0)
        {
            strmid(InfoOrg[i][SubLider], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"SubLider","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro1],true)==0)
        {
            strmid(InfoOrg[i][Membro1], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro1","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro2],true)==0)
        {
            strmid(InfoOrg[i][Membro2], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro2","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro3],true)==0)
        {
            strmid(InfoOrg[i][Membro3], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro3","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro4],true)==0)
        {
            strmid(InfoOrg[i][Membro4], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro4","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro5],true)==0)
        {
            strmid(InfoOrg[i][Membro5], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro5","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro6],true)==0)
        {
            strmid(InfoOrg[i][Membro6], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro6","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro7],true)==0)
        {
            strmid(InfoOrg[i][Membro7], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro7","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro8],true)==0)
        {
            strmid(InfoOrg[i][Membro8], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro8","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro9],true)==0)
        {
            strmid(InfoOrg[i][Membro9], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro9","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro10],true)==0)
        {
            strmid(InfoOrg[i][Membro10], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro10","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro11],true)==0)
        {
            strmid(InfoOrg[i][Membro11], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro11","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro12],true)==0)
        {
            strmid(InfoOrg[i][Membro12], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro12","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro13],true)==0)
        {
            strmid(InfoOrg[i][Membro13], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro13","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro14],true)==0)
        {
            strmid(InfoOrg[i][Membro14], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro14","Ninguem");
            return 1;
        }
        if(strcmp(nome,InfoOrg[i][Membro15],true)==0)
        {
            strmid(InfoOrg[i][Membro15], "Ninguem", 0, strlen("Ninguem"), MAX_PLAYER_NAME);
            DOF2_SetString(arquivo,"Membro15","Ninguem");
            return 1;
        }
    }
    return 0;
}

// /orgs:

if (strcmp("/infolider", cmdtext, true, 10) == 0 || strcmp(cmd, "/orgs", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new DialogVinny[1500];
            //SendClientMessage(playerid, 0xFF00FFAA, "[BPC] Lideres das Organizaзхes:");
            format(string,sizeof(string), "{FF9000} 1 - {FFFFFF}Policia Militar:{FF9000} %s\n", InfoOrg[1][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 2 - {FFFFFF}B.O.P.E:{FF9000} %s\n", InfoOrg[2][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 3 - {FFFFFF}Exйrcito:{FF9000} %s\n", InfoOrg[3][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 4 - {FFFFFF}Mйdicos:{FF9000} %s\n", InfoOrg[4][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 5 - {FFFFFF}Aztecas:{FF9000} %s\n", InfoOrg[5][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 6 - {FFFFFF}Taliban:{FF9000} %s\n", InfoOrg[6][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 7 - {FFFFFF}Prefeitura: {FF9000}%s\n", InfoOrg[7][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 8 - {FFFFFF}Hitmans:{FF9000} %s\n", InfoOrg[8][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 9 - {FFFFFF}Reporteres:{FF9000} %s\n", InfoOrg[9][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 10 - {FFFFFF}Taxistas:{FF9000} %s\n", InfoOrg[10][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 11 - {FFFFFF}Policia Federal:{FF9000} %s\n", InfoOrg[11][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 12 - {FFFFFF}Cosa Nostra:{FF9000} %s\n", InfoOrg[12][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 13 - {FFFFFF}Yakuza:{FF9000} %s\n", InfoOrg[13][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 14 - {FFFFFF}Groove:{FF9000} %s\n", InfoOrg[14][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 15 - {FFFFFF}Al'qaeda:{FF9000} %s\n", InfoOrg[15][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 16 - {FFFFFF}Polнcia Rodoviбria: {FF9000}%s\n", InfoOrg[16][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 17 - {FFFFFF}Ballas: {FF9000}%s\n", InfoOrg[17][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 18 - {FFFFFF}Vagos:{FF9000} %s\n", InfoOrg[18][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 19 - {FFFFFF}Comando Vermelho:{FF9000} %s\n", InfoOrg[19][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 20 - {FFFFFF}PCC: {FF9000}%s\n", InfoOrg[20][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 21 - {FFFFFF}Hells Angels:{FF9000} %s\n", InfoOrg[21][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 22 - {FFFFFF}Mongols:{FF9000} %s\n", InfoOrg[22][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 23 - {FFFFFF}Sons Of Anarchy:{FF9000} %s\n", InfoOrg[23][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 24 - {FFFFFF}Triads:{FF9000} %s\n", InfoOrg[24][Lider]);
            strcat(DialogVinny,string);
            format(string,sizeof(string), " 25 - {FFFFFF}Drifters:{FF9000} %s\n\n", InfoOrg[25][Lider]);
            strcat(DialogVinny,string);
            ShowPlayerDialog(playerid, 8723, DIALOG_STYLE_MSGBOX, "{00ECEC}Lнderes das Organizaзхes", DialogVinny, "Fechar", "");
        }
        return true;
    }

E quando eu limpo o lider, o cara sai.. isso pode ter algo em comum .. mais n ao consigo sabe oque й.

pawn Код:
if (strcmp("/limparlider", cmdtext, true, 10) == 0)
    {
        if(PlayerInfo[playerid][pAdmin] < 1337)
        {
            SendClientMessage(playerid, COLOR_GRAD2, "Somente admins master ou dono podem usar este comando!");
            return 1;
        }
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GRAD2, "USE: /limparlider [organizaзгo]");
            return 1;
        }
        new length = strlen(cmdtext);
        while ((idx < length) && (cmdtext[idx] <= ' '))
        {
          idx++;
        }
        new offset = idx;
        new result[64];
        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
        {
            result[idx - offset] = cmdtext[idx];
            idx++;
        }
        result[idx - offset] = EOS;
        if(!strlen(result))
        {
            SendClientMessage(playerid, COLOR_GRAD2, "USE: /limparvaga [ID da Vaga] [Motivo]");
            return 1;
        }
        new Vaga2 = strval(tmp);
        if(Vaga2 < 1 || Vaga2 > 25) { SendClientMessage(playerid, COLOR_GREY, "Vaga mнnima 1 mбximo 22!"); return 1; }
        new id=GetPlayerID(InfoOrg[Vaga2][Lider]), str[64];
        if(IsPlayerOnline(InfoOrg[Vaga2][Lider]))
        {
            DemitirLider(id);
            format(string, sizeof(string), "* Vocк Foi Tirado de Lнder Motivo: %s",result);
            SendClientMessage(id, COLOR_LIGHTBLUE, string);
        }
        else
        {
            format(str, sizeof(str), "Agendados/ORG%s.ini",InfoOrg[Vaga2][Lider]);
            DOF2_CreateFile(str);
            DOF2_SetString(str,"Nome",PlayerName(playerid));
            DOF2_SetInt(str,"Org",Vaga2);
            DOF2_SetString(str,"Motivo",result);
        }
        strmid(InfoOrg[Vaga2][Lider], "Ninguem", 0, strlen("Ninguem"), 255);
        format(gstring,sizeof(gstring), "InfoOrg/Org%d.cfg", Vaga2);
        DOF2_SetString(gstring,"Lider","Ninguem");
        format(string, sizeof(string), "Vocк limpou o lнder da organizaзгo Nє %d, Motivo: %s",Vaga2,result);
        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
        Atualizar3Dtexts();
        //LabelOrg();
        return 1;
    }



Re: Problema nas Orgs - DogeMan - 25.06.2014

No /contaslider, vocк define PlayerInfo[playerid][pLider] = 0;, porйm vocк esquece de tirar o cara como lнder pelo InfoOrg[][], ou seja, o PlayerInfo[playerid][pLider] diz que ele nгo й lнder, mas o InfoOrg[][] diz que ele й. Oque causa um conflito nos comandos.


Re: Problema nas Orgs - s4kuL - 25.06.2014

Opa valeu ae cara, mais nгo faзo a ideia de tipo, como localizar e corrigir pode me dar uma ajuda mais profunda?

Agradeзo.


Re: Problema nas Orgs - DogeMan - 25.06.2014

Dentro do /contaslider(depois do PlayerInfo[playerid][pLider = 0;], precisa fazer um loop(for), dentro desse loop precisa verificar se o jogador й lнder da determinada org, caso seja, faзa:

strmid(InfoOrg[i][Lider], "Ninguem", 0, strlen("Ninguem"), 255);
format(gstring,sizeof(gstring), "InfoOrg/Org%d.cfg", Vaga2);
DOF2_SetString(gstring,"Lider","Ninguem");


Re: Problema nas Orgs - s4kuL - 25.06.2014

Nгo consegui

poderia me passar o CMD por favor?

Grato.


Re: Problema nas Orgs - ProKillerpa - 25.06.2014

faz algo assim

PHP код:
stock FinalizarContas(playerid){

    if(
Observacao == 1){
        
strmid(InfoOrg[Vaga1][Lider], "Ninguem"0strlen("Ninguem"), 255);
        
format(gstring,sizeof(gstring), "InfoOrg/Org%d.cfg"Vaga1);
        
DOF2_SetString(gstring,"Lider","Ninguem");
    }
    else if(.........){
    
    }

Sendo Observaзгo = Variбvel que armazena para qual ORG o player pertence
Depois chama essa stock quando ele da o /contaslider


Re: Problema nas Orgs - PT - 25.06.2014

testa isso

pawn Код:
if(!strcmp("/contaslider", cmdtext, true))
{
    if(PlayerInfo[playerid][pLider] == 0)
        return SendClientMessage(playerid,COLOR_GREY," Vocк nгo й lнder de nenhuma organizaзгo!");      
    DemitirLider(playerid);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Vocк pediu as contas, agora vocк й um Civil novamente!");
    return 1;
}



Re: Problema nas Orgs - s4kuL - 25.06.2014

Nгo consegui de nenhum jeito :/

Como o DogeMan disse acho que funcionaria , mais eu nгo dou conta de fazer oque ele disse.