Postado Fevereiro 9, 2023 2 anos Então estou aqui pra fazer um pedido em relação ao bank, eu queria saber como que faço pra quando eu ir em qualquer NPC pra comprar algo, ele utilizar o dinheiro o Bank. Pois no ot que eu tenho o dinheiro tem que esta na BP. ficarei agradecido pela ajuda. .Qual servidor ou website você utiliza como base? GESIOR TIBIA 8.60 Qual o motivo deste tópico? AJUDA Está surgindo algum erro? Se sim coloque-o aqui. Citar Você tem o código disponível? Se tiver publique-o aqui: Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Março 16, 2023 2 anos Diretor Para permitir que os jogadores usem o dinheiro em seu banco para comprar itens de NPCs, você precisará modificar o arquivo modules/shop/shop.lua. Vamos supor que você tenha uma tabela player_data que armazena as informações do banco do jogador. Primeiro, você precisará adicionar uma nova função que verifica se o jogador tem dinheiro suficiente no banco para comprar um item. Adicione este código ao final do arquivo shop.lua: function getPlayerBankBalance(cid) local resultId = db.storeQuery("SELECT `balance` FROM `player_data` WHERE `id` = " .. getPlayerGUID(cid)) if resultId == false then return false end local balance = result.getNumber(resultId, "balance") result.free(resultId) return balance end function getPlayerBankBalanceString(cid) local balance = getPlayerBankBalance(cid) if balance == false then return "Not available" else return formatNumber(balance) .. " gold coins" end end function doPlayerWithdrawFromBank(cid, amount) if amount <= 0 then return false end local balance = getPlayerBankBalance(cid) if balance == false or balance < amount then return false end db.query("UPDATE `player_data` SET `balance` = `balance` - " .. amount .. " WHERE `id` = " .. getPlayerGUID(cid)) doPlayerAddMoney(cid, amount) return true end Agora, você precisará modificar a função onBuy para permitir que o jogador compre o item usando o dinheiro do banco. Aqui está o código modificado: function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) local cost = getItemPrice(item.itemid) * amount if(getPlayerMoney(cid) + getPlayerBalance(cid) < cost) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have enough money.") end if(inBackpacks) then local container = doPlayerAddItem(cid, 2000, 1) if(container == 0) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have any container to put the item.") end doAddContainerItem(container, item.itemid, amount) item = container else doPlayerAddItem(cid, item.itemid, amount) end doPlayerRemoveMoney(cid, cost - getPlayerBalance(cid)) doPlayerRemoveBalance(cid, math.min(cost, getPlayerBalance(cid))) doSendAnimatedText(getThingPos(cid), "$-"..cost, TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You bought ".. amount .." ".. getItemNameById(item.itemid) .." for ".. cost .." gold.") return true end Agora que você identificou onde o dinheiro do jogador está sendo verificado, você pode fazer a seguinte modificação: Antes: if getPlayerMoney(cid) < item.price then npcHandler:say('Desculpe, você não tem dinheiro suficiente.', cid) return false end Depois: if getPlayerMoney(cid) + getPlayerBalance(cid) < item.price then npcHandler:say('Desculpe, você não tem dinheiro suficiente.', cid) return false end Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código. #OpenSource #Programação #Contribuição
Postado Janeiro 6 Jan 6 Em 16/03/2023 em 08:35, L3K0T disse: Para permitir que os jogadores usem o dinheiro em seu banco para comprar itens de NPCs, você precisará modificar o arquivo modules/shop/shop.lua. Vamos supor que você tenha uma tabela player_data que armazena as informações do banco do jogador. Primeiro, você precisará adicionar uma nova função que verifica se o jogador tem dinheiro suficiente no banco para comprar um item. Adicione este código ao final do arquivo shop.lua: function getPlayerBankBalance(cid) local resultId = db.storeQuery("SELECT `balance` FROM `player_data` WHERE `id` = " .. getPlayerGUID(cid)) if resultId == false then return false end local balance = result.getNumber(resultId, "balance") result.free(resultId) return balance end function getPlayerBankBalanceString(cid) local balance = getPlayerBankBalance(cid) if balance == false then return "Not available" else return formatNumber(balance) .. " gold coins" end end function doPlayerWithdrawFromBank(cid, amount) if amount <= 0 then return false end local balance = getPlayerBankBalance(cid) if balance == false or balance < amount then return false end db.query("UPDATE `player_data` SET `balance` = `balance` - " .. amount .. " WHERE `id` = " .. getPlayerGUID(cid)) doPlayerAddMoney(cid, amount) return true end Agora, você precisará modificar a função onBuy para permitir que o jogador compre o item usando o dinheiro do banco. Aqui está o código modificado: function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) local cost = getItemPrice(item.itemid) * amount if(getPlayerMoney(cid) + getPlayerBalance(cid) < cost) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have enough money.") end if(inBackpacks) then local container = doPlayerAddItem(cid, 2000, 1) if(container == 0) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You do not have any container to put the item.") end doAddContainerItem(container, item.itemid, amount) item = container else doPlayerAddItem(cid, item.itemid, amount) end doPlayerRemoveMoney(cid, cost - getPlayerBalance(cid)) doPlayerRemoveBalance(cid, math.min(cost, getPlayerBalance(cid))) doSendAnimatedText(getThingPos(cid), "$-"..cost, TEXTCOLOR_ORANGE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You bought ".. amount .." ".. getItemNameById(item.itemid) .." for ".. cost .." gold.") return true end Agora que você identificou onde o dinheiro do jogador está sendo verificado, você pode fazer a seguinte modificação: Antes: if getPlayerMoney(cid) < item.price then npcHandler:say('Desculpe, você não tem dinheiro suficiente.', cid) return false end Depois: if getPlayerMoney(cid) + getPlayerBalance(cid) < item.price then npcHandler:say('Desculpe, você não tem dinheiro suficiente.', cid) return false end existe isso para tfs 0.3.6
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.