Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 01/14/25 em todas áreas

  1. BANK SYSTEM

    Doidodepeda reagiu a L3K0T por uma resposta no tópico

    1 ponto
    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
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo