[Ajuda] Erro de lуgica
#1

pawn Код:
CMD:convidar(playerid, params[])
{
    new convidado, name[MAX_PLAYER_NAME], OrgName[30], strin[220], str[128];
    if(sscanf(params, "i", convidado))
        return Mensagem(playerid, MENSAGEM_USO, "/Convidar <ID/Nick>");
    printf("convidado = %d, playerorg = %d", convidado, GetPlayerOrg(playerid));
    if(PlayerOrg[playerid][pOrgID] == 0) return Mensagem(playerid, MENSAGEM_ERRO, "VocГЄ precisa ser lнder ou sub lнder de alguma organizaзгo para usar este comando.");

    if(PlayerOrg[playerid][pRank] < 4) return   Mensagem(playerid, MENSAGEM_ERRO, "VocГЄ precisa ser sub/lнder para usar este comando.");

    if(PlayerOrg[convidado][pOrgID] != 0) return Mensagem(playerid, MENSAGEM_ERRO, "O jogador jб possui uma organizaзгo.");

    GetPlayerName(playerid, name, sizeof(name));

    format(OrgName, 30, "%s", GetPlayerOrgName(playerid));

    new diretorio[45];

    format(diretorio, sizeof(diretorio), "/BLS/ORG/%s.ini", OrgName);
    for(new i = 0; i <= 20; i ++)
    {
        new buffer[25],line[12];
        format(line, 12, "membro%d", i);
        DOF2_GetString(diretorio, line, buffer);
        if(!strcmp(buffer, "Ninguйm")) break;
        printf("%s", i);
        if(i == 20) return Mensagem(playerid, MENSAGEM_ERRO, "Nгo existem vagas para a organizaзгo. VocГЄ pode limpar uma vaga usando /demitir [nome]");
    }
    /*new line[12];
    format(line, 12, "membro%d", vaga);
    DOF2_SetString(diretorio, line, GetName(senderid));*/

   

    // 133a30a30a24r217
    format(strin, sizeof(strin), "{FFFFFF}Olб, %s,\nVocГЄ recebeu um convite de %s para entrar na organizaзгo %s.\n\n\nPara entrar na organizaзгo %s pressione \"Sim\".", GetName(convidado), GetName(playerid), OrgName, OrgName);
    ShowPlayerDialog(convidado, DIALOG_CONVITE_ORG, DIALOG_STYLE_MSGBOX, "{FFFFFF}B{1E90FF}L{FFFFFF}S - Novo convite", strin, "Sim", "Nгo");
    PlayerOrg[convidado][OrgPretendente] = GetPlayerOrg(playerid);

    printf("e%d", PlayerOrg[convidado][OrgPretendente]);
    printf("e%d", Player[playerid][pOrgID]);
   
    format(str, 128, "{1E90FF}[BLS]: {FFFFFF}VocГЄ convidou %s para a organizaзгo %s.", GetName(convidado));
    SendClientMessage(playerid, -1, str);
    return true;
}
O que acontece:
O primeiro print printa o player destino organizaзгo que o player vai ser convidado para entrar.
Logo mais a frente eu vou setar a variavel PlayerOrg[][OrgPretendente] para a organizaзгo que o player vai ser convidado a entrar.
Sу que eu uso a mesma funзгo que usei no topo do gamemode para pegar a merda da organizaзгo que o player vai entrar e da certo, sу que se eu tento usar no final da funзгo da erro. WTF?
pawn Код:
// Inicio da funзгo - funciona perfeitamente
    printf("convidado = %d, playerorg = %d", convidado, GetPlayerOrg(playerid));

    // Final da funзaх
    printf("e%d", PlayerOrg[convidado][OrgPretendente]);
    printf("e%d", Player[playerid][pOrgID]); // Equivalente ao GetPlayerOrg
PS: Os dois ultimos prints printam 0.
Reply
#2

Faзa um Debug pois em algum lugar no Codigo deve estar alterando o Valor da Var pOrgID, й a unica explicaзгo do seu problema para mim.
Reply
#3

Sempre erro nas coisas mais idiotas, й do deficit de atenзгo ;/

Eu estava tentando usar:
Player[playerid][pOrgID], sendo que o pOrgID estб definido apenas na PlayerOrg[playerid][pOrgID], veja:
pawn Код:
enum oInfo
{
    pOrgID,
    pRank,
    OrgPretendente
}
new PlayerOrg[MAX_PLAYERS][oInfo];
--

Closed
Reply
#4

Quote:
Originally Posted by Magnus'
Посмотреть сообщение
Sempre erro nas coisas mais idiotas, й do deficit de atenзгo ;/

Eu estava tentando usar:
Player[playerid][pOrgID], sendo que o pOrgID estб definido apenas na PlayerOrg[playerid][pOrgID], veja:
pawn Код:
enum oInfo
{
    pOrgID,
    pRank,
    OrgPretendente
}
new PlayerOrg[MAX_PLAYERS][oInfo];
--

Closed
De vez em quando acontece mesmo, estranho й ter compilado..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)