Portal SAMP
[Ajuda] CMD org - 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] CMD org (/showthread.php?tid=2373)



CMD org - GUI_DA_Z5 - 09/05/2022

Ola eu fiz recentemente  um sistema de org com o info org em dof2 e coloquei comando de dar lider mais estou com duvidas como eu posso fazer o comando de limpar lider funcionaria asim iria tirar o nome dele do info org e zeraria a variavel dele se ele tivesse online e se nao estiver o comando pegasse o nome do info org se tiraria o valor da variavel no scriptfiles direto alguem poderia me ajudar?


RE: CMD org - White_Blue - 09/05/2022

Posta o código.


RE: CMD org - GUI_DA_Z5 - 09/05/2022

Código:
enum Oinfo
{
Lider[MAX_PLAYER_NAME],
SubLider[MAX_PLAYER_NAME],
Membro1[MAX_PLAYER_NAME],
Membro2[MAX_PLAYER_NAME],
Membro3[MAX_PLAYER_NAME],
Membro4[MAX_PLAYER_NAME],
Membro5[MAX_PLAYER_NAME],
Membro6[MAX_PLAYER_NAME],
Membro7[MAX_PLAYER_NAME],
Membro8[MAX_PLAYER_NAME],
Membro9[MAX_PLAYER_NAME],
Membro10[MAX_PLAYER_NAME],
Membro11[MAX_PLAYER_NAME],
Membro12[MAX_PLAYER_NAME],
Membro13[MAX_PLAYER_NAME],
Membro14[MAX_PLAYER_NAME],
Membro15[MAX_PLAYER_NAME],
Membro16[MAX_PLAYER_NAME],
Membro17[MAX_PLAYER_NAME],
Membro18[MAX_PLAYER_NAME],
Membro19[MAX_PLAYER_NAME],
Membro20[MAX_PLAYER_NAME],
Membro21[MAX_PLAYER_NAME],
Membro22[MAX_PLAYER_NAME],
Membro23[MAX_PLAYER_NAME],
Membro24[MAX_PLAYER_NAME],
Membro25[MAX_PLAYER_NAME],
Membro26[MAX_PLAYER_NAME],
Membro27[MAX_PLAYER_NAME],
Membro28[MAX_PLAYER_NAME],
Membro29[MAX_PLAYER_NAME],
Membro30[MAX_PLAYER_NAME],
      Membro31[MAX_PLAYER_NAME],
Membro32[MAX_PLAYER_NAME],
Membro33[MAX_PLAYER_NAME],
Membro34[MAX_PLAYER_NAME],
Membro35[MAX_PLAYER_NAME],
Membro36[MAX_PLAYER_NAME],
Membro37[MAX_PLAYER_NAME],
Membro38[MAX_PLAYER_NAME],
Membro39[MAX_PLAYER_NAME],
Membro40[MAX_PLAYER_NAME],
};
new InfoOrg[MAX_ORGS][Oinfo];

CMD:lider(playerid, params[])
{
    new para1;
    new level;
    if(!IsPlayerConnected(playerid)) return 1;
    if(pLogado[playerid] == false) return 1;
    if(pDados[playerid][pAdmin] < 7) return SendClientMessage(playerid, AZUL, "[Servidor] {FFFFFF}Voce nao tem permissao para usar esse comando");
    if(AdminTrabalhando[playerid] == false) return SendClientMessage(playerid, AZUL, "[Servidor] {FFFFFF}Voce nao esta em modo trabalho Use: /tra");
    if(sscanf(params, "ud", para1, level)) return SendClientMessage(playerid, AZUL, "[Servidor] {FFFFFF}Use: /lider [id] [Numero]");
    if(level < 1 || level > 26) return SendClientMessage(playerid, AZUL, "[Servidor] {FFFFFF}Lideres de 1 a 26");
if(pDados[para1][pLider] != 0 || pDados[para1][pMembro] != 0) return SendClientMessage(playerid, AZUL, "[Servidor] {FFFFFF}Este player ja participa de uma organizacao!");
    if(!IsPlayerConnected(para1)) return SendClientMessage(playerid,AZUL,"[Servidor] {FFFFFF}Jogador nao connectado");
    if(para1 != INVALID_PLAYER_ID)
if(pLogado[para1] == false) return SendClientMessage(playerid,AZUL,"[Servidor] {FFFFFF}Jogador nao connectado");
    if(strcmp(InfoOrg[level][Lider],"Ninguem",true)==0)
{
        InfoOrg[level][Lider] = PlayerName(para1);
        SaveORGS();
}
else
{
    SendClientMessage(playerid, AZUL, "[Servidor] {FFFFFF}Ja tem um lider nessa ORG, use /limparlider antes de colocar outro lider");
    return 1;
}
GetPlayerName(para1, giveplayerZCMD, sizeof(giveplayerZCMD));
GetPlayerName(playerid, sendername, sizeof(sendername));
pDados[para1][pLider] = level;
SendClientMessage(para1, AZUL, "[Servidor] {FFFFFF}Voce foi promovido a lider pelo admin");
// LideresLog(stringZCMD);
    pDados[para1][pMembro] = 0;
    pDados[para1][pCargo] = 6;
    format(stringZCMD, sizeof(stringZCMD), "[Servidor] {FFFFFF}Voce promoveu %s a lider da organizacao [%s].", giveplayerZCMD, NomeORG(para1));
    SendClientMessage(playerid, AZUL, stringZCMD);
format(stringZCMD, 256, "[Servidor] {FFFFFF}%s deu lider da organizacao: %s Para: %s[%d].", PlayerName(playerid), NomeORG(para1), PlayerName(para1), para1);
    SendClientMessageADM(AZUL,stringZCMD);
pDados[para1][pEmprego] = 0;
SaveORGS();
return 1;
}

stock SaveORGS()
{
    new idx = 1;
    while (idx < sizeof(InfoOrg))
    {
            new DOF2[500];
            format(DOF2, sizeof(DOF2), "InfoOrg/%d.ini", idx);
            DOF2_CreateFile(DOF2);
            DOF2_SetString(DOF2, "Nome", GetOrgName(idx));
            DOF2_SetString(DOF2, "Lider", InfoOrg[idx][Lider]);
            DOF2_SetString(DOF2, "SubLider", InfoOrg[idx][SubLider]);
            DOF2_SetString(DOF2, "Membro1", InfoOrg[idx][Membro1]);
            DOF2_SetString(DOF2, "Membro2", InfoOrg[idx][Membro2]);
            DOF2_SetString(DOF2, "Membro3", InfoOrg[idx][Membro3]);
            DOF2_SetString(DOF2, "Membro4", InfoOrg[idx][Membro4]);
            DOF2_SetString(DOF2, "Membro5", InfoOrg[idx][Membro5]);
            DOF2_SetString(DOF2, "Membro6", InfoOrg[idx][Membro6]);
            DOF2_SetString(DOF2, "Membro7", InfoOrg[idx][Membro7]);
            DOF2_SetString(DOF2, "Membro8", InfoOrg[idx][Membro8]);
            DOF2_SetString(DOF2, "Membro9", InfoOrg[idx][Membro9]);
            DOF2_SetString(DOF2, "Membro10", InfoOrg[idx][Membro10]);
            DOF2_SetString(DOF2, "Membro11", InfoOrg[idx][Membro11]);
            DOF2_SetString(DOF2, "Membro12", InfoOrg[idx][Membro12]);
            DOF2_SetString(DOF2, "Membro13", InfoOrg[idx][Membro13]);
            DOF2_SetString(DOF2, "Membro14", InfoOrg[idx][Membro14]);
            DOF2_SetString(DOF2, "Membro15", InfoOrg[idx][Membro15]);
            DOF2_SetString(DOF2, "Membro16", InfoOrg[idx][Membro16]);
            DOF2_SetString(DOF2, "Membro17", InfoOrg[idx][Membro17]);
            DOF2_SetString(DOF2, "Membro18", InfoOrg[idx][Membro18]);
            DOF2_SetString(DOF2, "Membro19", InfoOrg[idx][Membro19]);
            DOF2_SetString(DOF2, "Membro20", InfoOrg[idx][Membro20]);
            DOF2_SetString(DOF2, "Membro21", InfoOrg[idx][Membro21]);
            DOF2_SetString(DOF2, "Membro22", InfoOrg[idx][Membro22]);
            DOF2_SetString(DOF2, "Membro23", InfoOrg[idx][Membro23]);
            DOF2_SetString(DOF2, "Membro24", InfoOrg[idx][Membro24]);
            DOF2_SetString(DOF2, "Membro25", InfoOrg[idx][Membro25]);
            DOF2_SetString(DOF2, "Membro26", InfoOrg[idx][Membro26]);
            DOF2_SetString(DOF2, "Membro27", InfoOrg[idx][Membro27]);
            DOF2_SetString(DOF2, "Membro28", InfoOrg[idx][Membro28]);
            DOF2_SetString(DOF2, "Membro29", InfoOrg[idx][Membro29]);
            DOF2_SetString(DOF2, "Membro30", InfoOrg[idx][Membro30]);
            DOF2_SetString(DOF2, "Membro31", InfoOrg[idx][Membro31]);
            DOF2_SetString(DOF2, "Membro32", InfoOrg[idx][Membro32]);
            DOF2_SetString(DOF2, "Membro33", InfoOrg[idx][Membro33]);
            DOF2_SetString(DOF2, "Membro34", InfoOrg[idx][Membro34]);
            DOF2_SetString(DOF2, "Membro35", InfoOrg[idx][Membro35]);
            DOF2_SetString(DOF2, "Membro36", InfoOrg[idx][Membro36]);
            DOF2_SetString(DOF2, "Membro37", InfoOrg[idx][Membro37]);
            DOF2_SetString(DOF2, "Membro38", InfoOrg[idx][Membro38]);
            DOF2_SetString(DOF2, "Membro39", InfoOrg[idx][Membro39]);
            DOF2_SetString(DOF2, "Membro40", InfoOrg[idx][Membro40]);
            DOF2_SaveFile();
            idx++;
    }
    return 1;
}



RE: CMD org - xbruno1000x - 09/05/2022

A variável que define a liderança está atrelada ao nome do player, então você deve limpar o nome e retornar para o valor default. Além disso, caso haja alguma variável ligada exclusivamente ao playerid, ela deverá ser zerada. Basicamente é só você desfazer o que foi feito no comando /lider. Se for pra fazer sem o player estar online, dá pra fazer até direto na DOF2.

Código de exemplo:
Código:
CMD:deletarconta(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))
        return ShowInfoBox(playerid, COR_ERRO, ERRO_PERM);

    if(!strlen(params))
        return ShowInfoBox(playerid, COR_USOCORRETO, "Uso: /deletarconta [nick]");

    new file[80];
    format(file, sizeof(file), CONTAS, params);

    if(DOF2_FileExists(file))
    {
        DOF2_RemoveFile(file);
        DOF2_RemoveFile(File_Admins(params));

        format(fixStr, 128, "[SERVER]: O %s %s deletou a conta de '%s'.", AccountName(playerid), GetPlayerNameEx(playerid), params);
        SendMessageToAdminsEx(fixStr);

        if(fexist(VIP_FILE(params)))
        {
            new vipfile[50];
            format(vipfile, sizeof(vipfile),"/GBB/vips/%s.ini", params);
            DOF2_RemoveFile(vipfile);
        }

        format(fixStr, sizeof(fixStr), "%s deletou a conta de %s.", GetPlayerNameEx(playerid), params);
        WriteLog("DeleteContas", fixStr);
    }
    else
        return ShowInfoBox(playerid, COR_ERRO, "ERRO: IP/Nick não encontrado.");

    return true;
}



RE: CMD org - GUI_DA_Z5 - 09/05/2022

compreendi mais como vou pegar esse nome para fazer uma format para o dof2 e verificar se ele esta online e pegar o id dele para eu zerar pDados[id][pLider] = 0;


RE: CMD org - xbruno1000x - 09/05/2022

(09/05/2022 21:46)GUI_DA_Z5 Escreveu: compreendi mais como vou pegar esse nome para fazer uma format para o dof2 e verificar se ele esta online e pegar o id dele para eu zerar pDados[id][pLider] = 0;

Você vai zerar da mesma forma que é feito para salvar em dof2, só que com o valor 0.