shuzin 1 Postado Março 13, 2013 Share Postado Março 13, 2013 (editado) globalevents <?xml version="1.0" encoding="UTF-8"?> <globalevents> <!-- Server Events --> <globalevent name="save" interval="3600000" event="script" value="save.lua"/> <globalevent name="clean" interval="7200000" event="script" value="clean.lua"/> <globalevent name="init" type="startup" event="script" value="init.lua"/> <globalevent name="globalsave" type="globalsave" event="script" value="init.lua"/> <globalevent name="record" type="record" event="script" value="record.lua"/> <globalevent name="shop" interval="30" script="shop.lua"/> </globalevents> shop.lua -- ### 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 ..' << Seu item esta esperando por voce. Por favor faça o local para este item em sua mochila e aguarde '.. SQL_interval ..' segundos para obte-lo.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << Seu item esta esperando por voce. O peso do item e '.. full_weight ..' oz., Vc tem no momento '.. free_cap ..' oz. de capacidade livre. Coloque alguns itens no deposito e espere cerca de '.. SQL_interval ..' segundos para obte-lo.') end end if not(result_plr:next()) then break end end result_plr:free() end return TRUE end ps: linux! Editado Março 13, 2013 por shuzin Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/ Compartilhar em outros sites More sharing options...
murilo103 42 Postado Março 13, 2013 Share Postado Março 13, 2013 (editado) Use esse: shop.lua -- ### 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.query("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 ..' << Seu item esta esperando por voce. Por favor faça o local para este item em sua mochila e aguarde '.. SQL_interval ..' segundos para obte-lo.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << Seu item esta esperando por voce. O peso do item e '.. full_weight ..' oz., Vc tem no momento '.. free_cap ..' oz. de capacidade livre. Coloque alguns itens no deposito e espere cerca de '.. SQL_interval ..' segundos para obte-lo.') end end if not(result_plr:next()) then break end end result_plr:free() end return TRUE end espero ter ajudado. Editado Março 13, 2013 por murilo103 Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485272 Compartilhar em outros sites More sharing options...
shuzin 1 Postado Março 13, 2013 Autor Share Postado Março 13, 2013 Não bombo ;x Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485520 Compartilhar em outros sites More sharing options...
ThiagoBji 146 Postado Março 13, 2013 Share Postado Março 13, 2013 Tenta esse Vá em Pasta do seu OT -> data -> globalevents -> globalevents.xml: <globalevent name="shop" interval="30" event="script" value="shop.lua"/> Agora vá em Pasta do seu OT -> data -> globalevents -> scripts -> shop.lua: local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE local 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, "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, '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 Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485579 Compartilhar em outros sites More sharing options...
shuzin 1 Postado Março 13, 2013 Autor Share Postado Março 13, 2013 (editado) Não funciona, eu acho que o erro não é no shop.lua nem no globalevents.xml Editado Março 13, 2013 por shuzin Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485588 Compartilhar em outros sites More sharing options...
ThiagoBji 146 Postado Março 13, 2013 Share Postado Março 13, 2013 Dá algum erro na distro? posta mais informações ou foto do problema. Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485606 Compartilhar em outros sites More sharing options...
shuzin 1 Postado Março 13, 2013 Autor Share Postado Março 13, 2013 Tipo, eu dou 15 points para o player, dai entro com a conta do player, tento comprar um item no shop do site de 15 points, só que no ultimo purchase, ele vai para uma tela que diz que eu tenho os mesmo 15 points, é como se eu comprasse, retorna-se meus points e o item não vai para o player! Sacou? Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485617 Compartilhar em outros sites More sharing options...
murilo103 42 Postado Março 13, 2013 Share Postado Março 13, 2013 Qual shop system está usando? qual site?? Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485647 Compartilhar em outros sites More sharing options...
shuzin 1 Postado Março 13, 2013 Autor Share Postado Março 13, 2013 (editado) gesior normal! Acontece isso! Passo 1: Passo 2: Passo 3: Passo 4: Editado Março 13, 2013 por shuzin Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485682 Compartilhar em outros sites More sharing options...
ThiagoBji 146 Postado Março 14, 2013 Share Postado Março 14, 2013 Adicinou o negócio no sql? Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1485996 Compartilhar em outros sites More sharing options...
shuzin 1 Postado Março 14, 2013 Autor Share Postado Março 14, 2013 sim, mas reinstalei, só assim consegui arrumar Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1486304 Compartilhar em outros sites More sharing options...
Roksas 846 Postado Março 14, 2013 Share Postado Março 14, 2013 Tópico movido para pedidos e dúvidas atendidos. Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1486307 Compartilhar em outros sites More sharing options...
Stigal 584 Postado Abril 21, 2018 Share Postado Abril 21, 2018 A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. + Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda. * Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado. Link para o comentário https://xtibia.com/forum/topic/209648-encerrado-porque-itens-do-shop-n%C3%A3o-v%C3%A3o-para-o-player/#findComment-1733979 Compartilhar em outros sites More sharing options...
Posts Recomendados