-
-
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.
-
No script Lua do NPC que lida com transações comerciais (geralmente dentro da pasta
-
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.
-
Use a função
-
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.
- Fórum
- OTServ
- Suporte
- Programação
- [OTX2] Como fazer os NPCs aceitarem dinheiro do banco no Trade?
LU
[OTX2] Como fazer os NPCs aceitarem dinheiro do banco no Trade?
Por LucasOlzon, 13 de fev. de 2023 em Programação
2
1.8k
1 ano depois...
info
Grupo: Cavaleiro
Registrado: 05/10/17
Posts: 185
Reputação: +43
Gênero: Masculino

13 de setembro de 2024 às 12:57

info
Grupo: Campones
Registrado: 24/12/10
Posts: 11
Reputação: +1
Gênero: Masculino
Como fazer os NPCs aceitarem dinheiro do banco no Trade? Estou usando OTX2