Ir para conteúdo

(Resolvido)[AJUDA] Guild shop não está enviando os itens para os players

Featured Replies

Postado

Instalei o sistema de Guild Shop em meu gesior, ele abre a página normalmente, quando alguém compra algum item, os pontos são removidos normalmente, porém o item não chega ao player, e na database "z_shopguild_history_item" fica com status "wait".

 

Segue a imagem:

xioF9Th.jpg?1

 

Vale ressaltar que não ocorre nenhum erro na distro e nem na página do site, ocorre tudo normal como se estivesse funcionando, apenas o que acontece é do item não chegar ao player.

 

Rep+ para quem me ajudar ou pelo menos tentar :)

 

-- EDIT --

 

Postei em área errada, me perdoem, foi sem querer... Se possível alguém mover para Suporte de Websites seria grato.


@UP

Editado por VitorNM (veja o histórico de edições)

nbeTETb.png?1

 

Resolvido por VitorNM

Ir para solução
  • Respostas 17
  • Visualizações 2.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Vou tentar te ajudar...  Antes de tudo, faça backup de todos os arquivos do seu shop.   Em globalevents.xml verifique se há isso no arquivo: <globalevent name="shop" interval="30" script="shop

  • As informações passadas até aqui estão erradas. Na sua database provavelmente não existe a coluna "z_ots_guildcomunication", execute a query abaixo no phpmyadmin, compre o item novamente, e veja se

  • Pelo que vi no arquivo.php tem essa tabela, se ao comprar um item no shop, for adicionado algo lá, está funcionando perfeitamente essa parte, o problema é o script para enviar ao player o item da tabe

Postado

Vou tentar te ajudar... 

Antes de tudo, faça backup de todos os arquivos do seu shop.

 

Em globalevents.xml verifique se há isso no arquivo:

<globalevent name="shop" interval="30" script="shop.lua"/>

Em data/lib/000-constant.lua ou data/lib/constant.lua, verifique se há:

InitShopComunication = 0

Por último, substitua seu Shop.lua por esse:

-- ### CONFIG ### 
-- message send to player by script "type" (types you can check in "global.lua") 
SHOP_MSG_TYPE = 19 
-- time (in seconds) between connections to SQL database by shop script 
SQL_interval = 30 
-- ### END OF CONFIG ### 
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 
            id = tonumber(result_plr:getDataInt("id")) 
            action = tostring(result_plr:getDataString("action")) 
            delete = tonumber(result_plr:getDataInt("delete_it")) 
            cid = getCreatureByName(tostring(result_plr:getDataString("name"))) 
            if isPlayer(cid) == TRUE 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) 
                        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.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") 
                        db.executeQuery("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 TRUE 
end 

Editado por Larissa Azhaurn (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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo