Postado Agosto 24, 2018 6 anos Buenas estou tentando criar uma função para localizar uma storage na account porém estou tendo este problema na hora de utilizar: a função estou utilizando a seguinte: function getAccountStorageValueDois(accid, key) local resultId = db.getResult("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key) if resultId ~= false then return result.getNumber(resultId, 'value') else return -1 end return resultId:free() end e o código do npc: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function getTable(player) local storage = 64556 local value = player:getAccountId() local itemsList = { {name='backpack', id=1988, buy=200} } local itemsList1 = { {name='backpack', id=1988, buy=180} } if getAccountStorageValueDois(value,storage) == 30 then return itemsList1 end return itemsList end local function setNewTradeTable(table) local items, item = {} for i = 1, #table do item = table[i] items[item.id] = {itemId = item.id, buyPrice = item.buy, sellPrice = item.sell, subType = 0, realName = item.name} end return items end local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end if msgcontains(msg, 'trade') then local player = Player(cid) local items = setNewTradeTable(getTable(player)) local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) if (ignoreCap == false and (player:getFreeCapacity() < ItemType(items[item].itemId):getWeight(amount) or inBackpacks and player:getFreeCapacity() < (ItemType(items[item].itemId):getWeight(amount) + ItemType(1988):getWeight()))) then return player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You don\'t have enough cap.') end if items[item].buyPrice <= player:getMoney() then if inBackpacks then local container = Game.createItem(1988, 1) local bp = player:addItemEx(container) if(bp ~= 1) then return player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You don\'t have enough container.') end for i = 1, amount do container:addItem(items[item].itemId, items[item]) end else return player:addItem(items[item].itemId, amount, false, items[item]) and player:removeMoney(amount * items[item].buyPrice) and player:sendTextMessage(MESSAGE_INFO_DESCR, 'You bought '..amount..'x '..items[item].realName..' for '..items[item].buyPrice * amount..' gold coins.') end player:sendTextMessage(MESSAGE_INFO_DESCR, 'You bought '..amount..'x '..items[item].realName..' for '..items[item].buyPrice * amount..' gold coins.') player:removeMoney(amount * items[item].buyPrice) else player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You do not have enough money.') end return true end local function onSell(cid, item, subType, amount, ignoreEquipped) if items[item].sellPrice then return player:removeItem(items[item].itemId, amount, -1, ignoreEquipped) and player:addMoney(items[item].sellPrice * amount) and player:sendTextMessage(MESSAGE_INFO_DESCR, 'You sold '..amount..'x '..items[item].realName..' for '..items[item].sellPrice * amount..' gold coins.') end return true end openShopWindow(cid, getTable(player), onBuy, onSell) npcHandler:say('Keep in mind you won\'t find better offers here. Just browse through my wares.', cid) end return true end npcHandler:setMessage(MESSAGE_GREET, 'Hello.') npcHandler:setMessage(MESSAGE_FAREWELL, 'It was a pleasure to help you, |PLAYERNAME|.') npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Estou utilizando OTX 1.3, a função set funcionou perfeitamente, somente a get que não estou conseguindo utilizar Editado Agosto 24, 2018 6 anos por marcoshps11 (veja o histórico de edições)
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.