[Ajuda] Sobre ShowPlayerDialog
#1

Bom dia, estou com pequenas dъvidas sobre a funзгo, irei explicar detalhadamente.

Eu criei um comando, na qual seria possнvel um player vender arma para outro. Atй ai tudo bem, o cуdigo ficou da seguinte maneira:

PHP код:
CMD:verderak(playeridparams[])
{
    new 
idP;
    if(
sscanf(params"i"idP)) return SCM(playerid, -1,"{F40000}››{FFFFFF} Uso correto: /venderak [id]");
    
    
format(formatosizeof(formato),"{FFFFFF}%s estб lhe vendendo uma Ak-47 pelo valor de R$1000, aceitar?"VerNome(playerid));
    
ShowPlayerDialog(playerid658DIALOG_STYLE_MSGBOX"Venda de Arma"formato"Aceitar""Cancelar");
    return 
1;

Ai agora chega a parte da OnDialogResponse, que й aonde eu tenho minha dъvida. Queria saber como dar o dinheiro da venda da arma para o playerid do comando 'verderak'.

PHP код:
if(dialogid == 658// Venda de Armas
{
        if(
response)
    {
        
SCM(playerid0x6895FFAA,"Vocк aceitou comprar uma Ak47 pelo preзo de R$1000.");
        
GivePlayerWeapon(playerid301000);
        
GivePlayerMoney(playerid, - 1000);
    }
    else
    {
        
SCM(playerid, -1,"Vocк recusou a oferta ilegal de arma.");
    }

Ai й a parte que o player recebe a arma, e perde o dinheiro junto com o envio da mensagem da resposta. E como faзo para dar o dinheiro para o player que vendeu a arma, jб que estб em locais separados?
Alguйm pode me ajudar? Aguardo respostas.
Reply
#2

voce pode fazeer de duas formas! Variavel global ou variavel do player! a diferenзa й que a global fica salva na memoria do servidor, enquanto a do player fica na memoria do player
vou dar os dois exemplos

pawn Код:
//coloque isto no topo do GM depois das include e dos #define
new plyvende[MAX_PLAYERS];



CMD:verderak(playerid, params[])
{
    new idP;

    if(sscanf(params, "i", idP)) return SCM(playerid, -1,"{F40000}››{FFFFFF} Uso correto: /venderak [id]");

    if(plyvende[idP] != INVALID_PLAYER_ID) return SCM(playerid, -1,"Esse player ja tem uma oferta!");

    format(formato, sizeof(formato),"{FFFFFF}%s estб lhe vendendo uma Ak-47 pelo valor de R$1000, aceitar?", VerNome(playerid));
    ShowPlayerDialog(idP, 658, DIALOG_STYLE_MSGBOX, "Venda de Arma", formato, "Aceitar", "Cancelar");
    plyvende[idP] = playerid;
    return 1;
}

if(dialogid == 658) // Venda de Armas
{
    if(response)
    {
        SCM(playerid, 0x6895FFAA,"Vocк aceitou comprar uma Ak47 pelo preзo de R$1000.");
        GivePlayerWeapon(playerid, 30, 1000);
        GivePlayerMoney(plyvende[playerid], 1000);
        GivePlayerMoney(playerid, - 1000);
        plyvende[playerid] = INVALID_PLAYER_ID;
    }
    else
    {
        SCM(playerid, -1,"Vocк recusou a oferta ilegal de arma.");
    }
}


//ou

//voce tem de colocar isso em OnPlayerConnect porque a funcao GetPVarInt quando nao tem um valor atribuido retorna a 0, mas no caso, 0 й o id do primeiro player, entao nao funcionaria corretamente!

SetPVarInt(playerid,"plyvende",INVALID_PLAYER_ID);



CMD:verderak(playerid, params[])
{
    new idP;

    if(sscanf(params, "i", idP)) return SCM(playerid, -1,"{F40000}››{FFFFFF} Uso correto: /venderak [id]");

    if(GetPVarInt(idP,"plyvende") != INVALID_PLAYER_ID) return SCM(playerid, -1,"Esse player ja tem uma oferta!");

    format(formato, sizeof(formato),"{FFFFFF}%s estб lhe vendendo uma Ak-47 pelo valor de R$1000, aceitar?", VerNome(playerid));
    ShowPlayerDialog(idP, 658, DIALOG_STYLE_MSGBOX, "Venda de Arma", formato, "Aceitar", "Cancelar");
    SetPVarInt(idP,"plyvende",playerid);
    return 1;
}

if(dialogid == 658) // Venda de Armas
{
    if(response)
    {
        SCM(playerid, 0x6895FFAA,"Vocк aceitou comprar uma Ak47 pelo preзo de R$1000.");
        GivePlayerWeapon(playerid, 30, 1000);
        GivePlayerMoney(GetPVarInt(playerid,"plyvende"), 1000);
        GivePlayerMoney(playerid, - 1000);
        SetPVarInt(playerid,"plyvende",INVALID_PLAYER_ID);
    }
    else
    {
        SCM(playerid, -1,"Vocк recusou a oferta ilegal de arma.");
    }
}
outra coisa, voce estava mostrando a dialog para o player que digita o comando
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)