Ir para conteúdo
  • 0

Problemas ao receber items do shop


edukf

Pergunta

Então, como faz para entregar 5kk do shop? sendo que eu coloco la para entregar 5kk mas só recebe 1kk?

 

 

se possível tem como fazer receber os itens em uma bag?

 

local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGElocal SQL_interval = 30 function onThink(interval, lastExecution)        local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")        if(result_plr:getID() ~= -1) then                while(true) do                        local id = tonumber(result_plr:getDataInt("id"))                        local action = tostring(result_plr:getDataString("action"))                        local delete = tonumber(result_plr:getDataInt("delete_it"))                        local cid = getCreatureByName(tostring(result_plr:getDataString("name")))                        if isPlayer(cid) then                                local itemtogive_id = tonumber(result_plr:getDataInt("param1"))                                local itemtogive_count = tonumber(result_plr:getDataInt("param2"))                                local container_id = tonumber(result_plr:getDataInt("param3"))                                local container_count = tonumber(result_plr:getDataInt("param4"))                                local add_item_type = tostring(result_plr:getDataString("param5"))                                local add_item_name = tostring(result_plr:getDataString("param6"))                                local received_item = 0                                local full_weight = 0                                if add_item_type == 'container' then                                        container_weight = getItemWeightById(container_id, 1)                                        if isItemRune(itemtogive_id) == TRUE then                                                items_weight = container_count * getItemWeightById(itemtogive_id, 1)                                        else                                                items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)                                        end                                        full_weight = items_weight + container_weight                                else                                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count)                                        if isItemRune(itemtogive_id) == TRUE then                                                full_weight = getItemWeightById(itemtogive_id, 1)                                        else                                                full_weight = getItemWeightById(itemtogive_id, itemtogive_count)                                        end                                end                                local free_cap = getPlayerFreeCap(cid)                                if full_weight <= free_cap then                                        if add_item_type == 'container' then                                                local new_container = doCreateItemEx(container_id, 1)                                                local iter = 0                                                while iter ~= container_count do                                                        doAddContainerItem(new_container, itemtogive_id, itemtogive_count)                                                        iter = iter + 1                                                end                                                received_item = doPlayerAddItemEx(cid, new_container)                                        else                                                local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)                                                                                               doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000)                                                received_item = doPlayerAddItemEx(cid, new_item)                                        end                                        if received_item == RETURNVALUE_NOERROR then                                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.')                                                db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")                                                db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")                                        else                                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')                                        end                                else                                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')                                end                        end                        if not(result_plr:next()) then                                break                        end                end                result_plr:free()        end        return trueend

 

Editado por edukf
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Temos que identificar o local que está ocasionando o erro.

 

Faz assim: vai no shop do site, compra o item, manda pra um player X, MAS não logue o player X (deixe ele off o tempo todo durante esse teste).

Aí dps que vc fizer a compra pelo site, as especificações da compra (item, qntd, etc) serão armazenadas na tabela z_ots_comunication (dentro da data base, obvio), aí dps que a compra tiver sido feita vá nessa tabela e veja quais foram os valores armazenados (atente-se para a coluna param2, veja qual o valor que está armazenado nela e mande esse resultado aqui).

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta usar esse shop.lua:

local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGElocal SQL_interval = 30function onThink(interval, lastExecution)        local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")        if(result_plr:getID() ~= -1) then                while(true) do                        local id = tonumber(result_plr:getDataInt("id"))                        local action = tostring(result_plr:getDataString("action"))                        local delete = tonumber(result_plr:getDataInt("delete_it"))                        local cid = getCreatureByName(tostring(result_plr:getDataString("name")))                        if isPlayer(cid) then                                local itemtogive_id = tonumber(result_plr:getDataInt("param1"))                                local itemtogive_count = tonumber(result_plr:getDataInt("param2"))                                local container_id = tonumber(result_plr:getDataInt("param3"))                                local container_count = tonumber(result_plr:getDataInt("param4"))                                local add_item_type = tostring(result_plr:getDataString("param5"))                                local add_item_name = getItemNameById(tonumber(result_plr:getDataInt("param1")))								local add_item_count = tostring(result_plr:getDataInt("param2"))                                local received_item = 0                                local full_weight = 0                                if add_item_type == 'container' then                                        container_weight = getItemWeightById(container_id, 1)                                        if isItemRune(itemtogive_id) == TRUE then                                                items_weight = container_count * getItemWeightById(itemtogive_id, 1)                                        else                                                items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)                                        end                                        full_weight = items_weight + container_weight                                else                                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count)                                        if isItemRune(itemtogive_id) == TRUE then                                                full_weight = getItemWeightById(itemtogive_id, 1)                                        else                                                full_weight = getItemWeightById(itemtogive_id, itemtogive_count)                                        end                                end                                local free_cap = getPlayerFreeCap(cid)                                if full_weight <= free_cap then                                        if add_item_type == 'container' then                                                local new_container = doCreateItemEx(container_id, 1)                                                local iter = 0                                                while iter ~= container_count do                                                        doAddContainerItem(new_container, itemtogive_id, itemtogive_count)                                                        iter = iter + 1                                                end                                                received_item = doPlayerAddItemEx(cid, new_container)                                        else                                                local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)                                                doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!")                                                doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000)                                                received_item = doPlayerAddItemEx(cid, new_item)                                        end                                        if received_item == RETURNVALUE_NOERROR then                                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'Você recebeu >> '.. add_item_count ..' '.. add_item_name ..' << do Hospice shop.')                                                db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")                                                db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")                                        else                                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_count ..' '.. add_item_name ..' << from Hospice shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')                                        end                                else                                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_count ..' '.. add_item_name ..' << from Hospice shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')                                end                        end                        if not(result_plr:next()) then                                break                        end                end                result_plr:free()        end        return trueend

 

Link para o comentário
Compartilhar em outros sites

  • 0

@edukf, vê se resolve:

local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGElocal SQL_interval = 30function onThink(interval, lastExecution)        local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';")        if(result_plr:getID() ~= -1) then                while(true) do                        local id = tonumber(result_plr:getDataInt("id"))                        local action = tostring(result_plr:getDataString("action"))                        local delete = tonumber(result_plr:getDataInt("delete_it"))                        local cid = getCreatureByName(tostring(result_plr:getDataString("name")))                        if isPlayer(cid) then                                local itemtogive_id = tonumber(result_plr:getDataInt("param1"))                                local itemtogive_count = tonumber(result_plr:getDataInt("param2"))                                local container_id = tonumber(result_plr:getDataInt("param3"))                                local container_count = tonumber(result_plr:getDataInt("param4"))                                local add_item_type = tostring(result_plr:getDataString("param5"))                                local add_item_name = getItemNameById(tonumber(result_plr:getDataInt("param1")))								local add_item_count = tostring(result_plr:getDataInt("param2"))                                local received_item = 0                                local full_weight = 0                                if add_item_type == 'container' then                                        container_weight = getItemWeightById(container_id, 1)                                        if isItemRune(itemtogive_id) == TRUE then                                                items_weight = container_count * getItemWeightById(itemtogive_id, 1)                                        else                                                items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count)                                        end                                        full_weight = items_weight + container_weight                                else                                        full_weight = getItemWeightById(itemtogive_id, itemtogive_count)                                        if isItemRune(itemtogive_id) == TRUE then                                                full_weight = getItemWeightById(itemtogive_id, 1)                                        else                                                full_weight = getItemWeightById(itemtogive_id, itemtogive_count)                                        end                                end                                local free_cap = getPlayerFreeCap(cid)                                if full_weight <= free_cap then                                        if add_item_type == 'container' then                                                local new_container = doCreateItemEx(container_id, 1)                                                local iter = 0												local dado = 0                                                while iter ~= container_count do														if itemtogive_count > 100 then															while itemtogive_count > 100 do															doAddContainerItem(new_container, itemtogive_id, 100)															iter = iter + 1															dado=dado+100															end														doAddContainerItem(new_container, itemtogive_id, (itemtogive_count - dado))                                                        iter = iter + 1														end                                                end                                                received_item = doPlayerAddItemEx(cid, new_container)                                        else                                                local new_item = doCreateItemEx(itemtogive_id, itemtogive_count)                                                doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!")                                                doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000)                                                received_item = doPlayerAddItemEx(cid, new_item)                                        end                                        if received_item == RETURNVALUE_NOERROR then                                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'Você recebeu >> '.. add_item_count ..' '.. add_item_name ..' << do Hospice shop.')                                                db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";")                                                db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";")                                        else                                                doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_count ..' '.. add_item_name ..' << from Hospice shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')                                        end                                else                                        doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_count ..' '.. add_item_name ..' << from Hospice shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.')                                end                        end                        if not(result_plr:next()) then                                break                        end                end                result_plr:free()        end        return trueend

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...