LucasOlzon 1 Posted February 13, 2023 Share Posted February 13, 2023 Como fazer os NPCs aceitarem dinheiro do banco no Trade? Estou usando OTX2 Link to comment Share on other sites More sharing options...
0 El Rusher 43 Posted September 13, 2024 Share Posted September 13, 2024 No script Lua do NPC que lida com transações comerciais (geralmente dentro da pasta data/npc/scripts/), você deve incluir verificações do saldo bancário do jogador, além de verificar o dinheiro que ele tem em mãos. Usar a função getBankBalance: Use a função getPlayerBalance(cid) para verificar o saldo bancário do jogador. Se o jogador não tiver dinheiro suficiente em mãos, mas tiver saldo no banco, o NPC pode debitar diretamente do banco. Exemplo de implementação: Aqui está um exemplo básico de como ajustar o código de um NPC para verificar o saldo bancário: local function playerHasMoney(cid, amount) local money = getPlayerMoney(cid) -- Dinheiro que o jogador tem na mochila local bankBalance = getPlayerBalance(cid) -- Saldo do banco -- Verifica se o jogador tem dinheiro suficiente na mochila ou no banco return (money + bankBalance) >= amount end local function removePlayerMoney(cid, amount) local money = getPlayerMoney(cid) if money >= amount then -- Se o jogador tiver dinheiro suficiente na mochila, remover da mochila doPlayerRemoveMoney(cid, amount) else -- Se não, remover o que tem na mochila e o restante do banco doPlayerRemoveMoney(cid, money) doPlayerSetBalance(cid, getPlayerBalance(cid) - (amount - money)) end end -- Exemplo de função de venda de item local function sellItem(cid, itemId, amount, cost) if not playerHasMoney(cid, cost) then npcHandler:say("Você não tem dinheiro suficiente.", cid) return false end -- Se o jogador tiver dinheiro suficiente, remover o dinheiro e dar o item removePlayerMoney(cid, cost) doPlayerAddItem(cid, itemId, amount) npcHandler:say("Aqui está o seu item!", cid) return true end -- Exemplo de uso no script de NPC local tradeItems = { {name = "sword", id = 2376, price = 100}, -- Exemplo de item para vender } function onCreatureSay(cid, type, msg) if msgcontains(msg, 'trade') then npcHandler:say("Gostaria de comprar algo?", cid) openShopWindow(cid, tradeItems) -- Abre a janela de trade end end Explicação: playerHasMoney(cid, amount): Verifica se o jogador tem dinheiro suficiente na mochila e/ou no banco. removePlayerMoney(cid, amount): Deduz a quantia necessária primeiro da mochila e depois, se necessário, do banco. Adicionar ao sistema de NPC existente: Certifique-se de ajustar os nomes das funções e estruturas de diálogo do NPC para o formato usado no seu servidor. Você pode integrar essa lógica com o sistema de eventos de NPCHandler que já está no OTX2. sellItem: Implementa a lógica de venda de um item, removendo o dinheiro do jogador e entregando o item. Rodrigo94 1 Link to comment Share on other sites More sharing options...
Question
LucasOlzon 1
Como fazer os NPCs aceitarem dinheiro do banco no Trade? Estou usando OTX2
Link to comment
Share on other sites
1 answer to this question
Recommended Posts