// -------------------------------------------------------------------------
// NPC Mercado RMT - Sistema de Vendas por Real
// -------------------------------------------------------------------------
// Desenvolvido para integração com o FluxCP RMT Market
// -------------------------------------------------------------------------

prontera,155,185,4	script	Mercado RMT	100,{

    mes "[Mercado RMT]";
    mes "Olá! Eu sou o corretor do Mercado RMT.";
    mes "O que você deseja fazer hoje?";
    next;

    switch(select("Vender um item:Resgatar itens comprados:Consultar regras:Sair")) {
        case 1:
            // Validar se o jogador tem perfil de vendedor no CP
            set .@acc_id, getcharid(3);
            query_sql("SELECT account_id FROM rmt_seller_profiles WHERE account_id = "+.@acc_id, .@seller_exists);
            
            if (!.@seller_exists) {
                mes "[Mercado RMT]";
                mes "Sinto muito, mas você ainda não possui um ^FF0000Perfil de Vendedor^000000 cadastrado no site.";
                mes "Por favor, acesse o painel da sua conta no site e preencha seus dados de PIX e CPF antes de vender.";
                close;
            }

            mes "[Mercado RMT]";
            mes "Ótimo! Escolha qual item você deseja anunciar:";
            next;
            
            getinventorylist;
            
            set .@menu$, "";
            for(set .@i, 0; .@i < @inventorylist_count; set .@i, .@i + 1) {
                if (@inventorylist_expire[.@i] == 0 && @inventorylist_bound[.@i] == 0) {
                    set .@menu$, .@menu$ + getitemname(@inventorylist_id[.@i]) + " (" + @inventorylist_amount[.@i] + "x):";
                }
            }
            
            if (.@menu$ == "") {
                mes "[Mercado RMT]";
                mes "Você não possui itens negociáveis no inventário.";
                close;
            }

            set .@selection, select(.@menu$) - 1;
            
            set .@idx, -1;
            set .@count, 0;
            for(set .@i, 0; .@i < @inventorylist_count; set .@i, .@i + 1) {
                if (@inventorylist_expire[.@i] == 0 && @inventorylist_bound[.@i] == 0) {
                    if (.@count == .@selection) {
                        set .@idx, .@i;
                        break;
                    }
                    set .@count, .@count + 1;
                }
            }

            set .@item_id, @inventorylist_id[.@idx];
            set .@item_amount_total, @inventorylist_amount[.@idx];
            set .@item_refine, @inventorylist_refine[.@idx];
            set .@item_identify, @inventorylist_identify[.@idx];
            set .@cards[0], @inventorylist_card1[.@idx];
            set .@cards[1], @inventorylist_card2[.@idx];
            set .@cards[2], @inventorylist_card3[.@idx];
            set .@cards[3], @inventorylist_card4[.@idx];

            mes "[Mercado RMT]";
            mes "Item escolhido: ^0000FF" + getitemname(.@item_id) + "^000000";
            if (.@item_refine > 0) mes "Refino: ^00FF00+" + .@item_refine + "^000000";
            
            mes "Quantas unidades você deseja vender? (Disponível: " + .@item_amount_total + ")";
            next;
            input .@item_amount;
            
            if (.@item_amount <= 0 || .@item_amount > .@item_amount_total) {
                mes "[Mercado RMT]";
                mes "Quantidade inválida.";
                close;
            }

            mes "[Mercado RMT]";
            mes "Agora, informe o ^FF0000Preço Total^000000 em Reais (R$) para este anúncio:";
            next;
            input .@price;

            if (.@price <= 0) {
                mes "[Mercado RMT]";
                mes "O preço deve ser maior que zero.";
                close;
            }

            mes "[Mercado RMT]";
            mes "Confirmar anúncio?";
            mes "Item: " + getitemname(.@item_id) + " x" + .@item_amount;
            mes "Preço: R$ " + .@price + ",00";
            next;

            if (select("Sim, publicar!:Não, cancele.") == 2) {
                mes "[Mercado RMT]";
                mes "Anúncio cancelado.";
                close;
            }

            if (countitem(.@item_id) < .@item_amount) {
                mes "[Mercado RMT]";
                mes "Erro: Você não possui mais a quantidade necessária do item.";
                close;
            }
            
            delitem .@item_id, .@item_amount;

            set .@char_id, getcharid(0);
            query_sql("INSERT INTO rmt_market_items (account_id, char_id, nameid, amount, refine, identify, card0, card1, card2, card3, price, status, created_at) VALUES ("+.@acc_id+", "+.@char_id+", "+.@item_id+", "+.@item_amount+", "+.@item_refine+", "+.@item_identify+", "+.@cards[0]+", "+.@cards[1]+", "+.@cards[2]+", "+.@cards[3]+", "+.@price+", 0, NOW())");

            mes "[Mercado RMT]";
            mes "Parabéns! Seu item já está disponível no Mercado do site.";
            close;

        case 2:
            // Resgate de Compras
            set .@acc_id, getcharid(3);
            set .@count, query_sql("SELECT id, nameid, amount, refine, identify, card0, card1, card2, card3 FROM rmt_deliveries WHERE account_id = "+.@acc_id+" AND status = 0", .@del_ids, .@del_nameids, .@del_amounts, .@del_refines, .@del_identifies, .@del_card0, .@del_card1, .@del_card2, .@del_card3);

            if (.@count == 0) {
                mes "[Mercado RMT]";
                mes "Você não possui itens para resgatar no momento.";
                close;
            }

            mes "[Mercado RMT]";
            mes "Você possui ^00FF00"+.@count+"^000000 entrega(s) pendente(s).";
            mes "Deseja resgatar tudo agora?";
            next;

            if (select("Sim, resgatar tudo!:Agora não.") == 2) close;

            for(set .@i, 0; .@i < .@count; set .@i, .@i + 1) {
                getitembound2 .@del_nameids[.@i], .@del_amounts[.@i], .@del_identifies[.@i], .@del_refines[.@i], 0, .@del_card0[.@i], .@del_card1[.@i], .@del_card2[.@i], .@del_card3[.@i], 0;
                query_sql("UPDATE rmt_deliveries SET status = 1 WHERE id = "+.@del_ids[.@i]);
            }

            mes "[Mercado RMT]";
            mes "Todos os itens foram entregues com sucesso!";
            mes "Obrigado por usar o Mercado RMT.";
            close;

        case 3:
            mes "[Mercado RMT]";
            mes "1. O item anunciado sairá do seu inventário e ficará 'preso' no mercado até ser vendido.";
            mes "2. O pagamento será realizado por PIX pelo administrador após a venda.";
            mes "3. Após comprar no site, venha até mim para ^00FF00Resgatar seus itens^000000.";
            next;
            mes "[Mercado RMT]";
            mes "4. Verifique se seus dados de PIX no site estão corretos.";
            close;

        case 4:
            close;
    }
}
