Postado Janeiro 6, 2015 10 anos Estou usando Gesior pra TFS 1.0 e estou usando Ubuntu 12.04. Servidor está limpo e sem erros, porém quando compro algum item do shop do site, eu recebo ele a cada 30 segundos.. e aparece o seguinte erro no TFS: Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/others/shop.luanThink data/globalevents/scripts/others/shop.lua:57: attempt to perform arthmetic on local 'storage' (a string value) stack traceback: [C]: in function '__add' data/globalevents/scripts/others/shop.lua:57: in function <data/globalevents/scripts/others/shop.lua:7> [Error - GlobalEvents::think] Failed to execute event: shop Esse é meu /globalevents/scripts/shop.lua: -- ### CONFIG ### -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 18 -- 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.storeQuery("SELECT * FROM z_ots_comunication") if(result_plr ~= false) then repeat local id = tonumber(result.getDataInt(result_plr, "id")) local action = tostring(result.getDataString(result_plr, "action")) local delete = tonumber(result.getDataInt(result_plr, "delete_it")) local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name"))) if(cid) then local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1")) local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2")) local container_id = tonumber(result.getDataInt(result_plr, "param3")) local container_count = tonumber(result.getDataInt(result_plr, "param4")) local add_item_type = tostring(result.getDataString(result_plr, "param5")) local add_item_name = tostring(result.getDataString(result_plr, "param6")) local storage = tostring(result.getDataString(result_plr, "param7")) local received_item = 0 local full_weight = 0 if(add_item_type == 'container') then container_weight = getItemWeight(container_id, 1) if(isItemRune(itemtogive_id)) then items_weight = container_count * getItemWeight(itemtogive_id, 1) else items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeight(itemtogive_id, itemtogive_count) if(isItemRune(itemtogive_id)) then full_weight = getItemWeight(itemtogive_id, 1) else full_weight = getItemWeight(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(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from ArenaTibia Shop.') setPlayerStorageValue(cid,storage+555884621212,1) 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 ArenaTibia 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 ..' ArenaTibia 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 until not result.next(result_plr) result.free(result_plr) end return true end Obrigado desde já.
Postado Janeiro 6, 2015 10 anos Tente Deixar assim -- ### CONFIG ###-- message send to player by script "type" (types you can check in "global.lua")SHOP_MSG_TYPE = 18-- time (in seconds) between connections to SQL database by shop script SQL_interval = 1-- ### END OF CONFIG ###function onThink(interval, lastExecution)local result_plr = db.storeQuery("SELECT * FROM z_ots_comunication")if(result_plr ~= false) thenrepeatlocal id = tonumber(result.getDataInt(result_plr, "id"))local action = tostring(result.getDataString(result_plr, "action"))local delete = tonumber(result.getDataInt(result_plr, "delete_it"))local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))if(cid) thenlocal itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))local container_id = tonumber(result.getDataInt(result_plr, "param3"))local container_count = tonumber(result.getDataInt(result_plr, "param4"))local add_item_type = tostring(result.getDataString(result_plr, "param5"))local add_item_name = tostring(result.getDataString(result_plr, "param6"))local storage = tostring(result.getDataString(result_plr, "param7"))local received_item = 0local full_weight = 0if(add_item_type == 'container') thencontainer_weight = getItemWeight(container_id, 1)if(isItemRune(itemtogive_id)) thenitems_weight = container_count * getItemWeight(itemtogive_id, 1)elseitems_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)endfull_weight = items_weight + container_weightelsefull_weight = getItemWeight(itemtogive_id, itemtogive_count)if(isItemRune(itemtogive_id)) thenfull_weight = getItemWeight(itemtogive_id, 1)elsefull_weight = getItemWeight(itemtogive_id, itemtogive_count)endendlocal free_cap = getPlayerFreeCap(cid)if(full_weight <= free_cap) thenif(add_item_type == 'container') thenlocal new_container = doCreateItemEx(container_id, 1)local iter = 0while(iter ~= container_count) dodoAddContainerItem(new_container, itemtogive_id, itemtogive_count)iter = iter + 1endreceived_item = doPlayerAddItemEx(cid, new_container)elselocal new_item = doCreateItemEx(itemtogive_id, itemtogive_count)received_item = doPlayerAddItemEx(cid, new_item)endif(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) thendoPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from ArenaTibia Shop.')setPlayerStorageValue(cid,storage+555884621212,1)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 .. ";")elsedoPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' from ArenaTibia Shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')endelsedoPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' ArenaTibia 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.')endenduntil not result.next(result_plr)result.free(result_plr)endreturn trueend Se nao der serto tente assim -- ### CONFIG ###-- message send to player by script "type" (types you can check in "global.lua")SHOP_MSG_TYPE = 18-- time (in seconds) between connections to SQL database by shop script SQL_interval = 7643528765422525-- ### END OF CONFIG ###function onThink(interval, lastExecution)local result_plr = db.storeQuery("SELECT * FROM z_ots_comunication")if(result_plr ~= false) thenrepeatlocal id = tonumber(result.getDataInt(result_plr, "id"))local action = tostring(result.getDataString(result_plr, "action"))local delete = tonumber(result.getDataInt(result_plr, "delete_it"))local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name")))if(cid) thenlocal itemtogive_id = tonumber(result.getDataInt(result_plr, "param1"))local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2"))local container_id = tonumber(result.getDataInt(result_plr, "param3"))local container_count = tonumber(result.getDataInt(result_plr, "param4"))local add_item_type = tostring(result.getDataString(result_plr, "param5"))local add_item_name = tostring(result.getDataString(result_plr, "param6"))local storage = tostring(result.getDataString(result_plr, "param7"))local received_item = 0local full_weight = 0if(add_item_type == 'container') thencontainer_weight = getItemWeight(container_id, 1)if(isItemRune(itemtogive_id)) thenitems_weight = container_count * getItemWeight(itemtogive_id, 1)elseitems_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count)endfull_weight = items_weight + container_weightelsefull_weight = getItemWeight(itemtogive_id, itemtogive_count)if(isItemRune(itemtogive_id)) thenfull_weight = getItemWeight(itemtogive_id, 1)elsefull_weight = getItemWeight(itemtogive_id, itemtogive_count)endendlocal free_cap = getPlayerFreeCap(cid)if(full_weight <= free_cap) thenif(add_item_type == 'container') thenlocal new_container = doCreateItemEx(container_id, 1)local iter = 0while(iter ~= container_count) dodoAddContainerItem(new_container, itemtogive_id, itemtogive_count)iter = iter + 1endreceived_item = doPlayerAddItemEx(cid, new_container)elselocal new_item = doCreateItemEx(itemtogive_id, itemtogive_count)received_item = doPlayerAddItemEx(cid, new_item)endif(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) thendoPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received '.. add_item_name ..' from ArenaTibia Shop.')setPlayerStorageValue(cid,storage+555884621212,1)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 .. ";")elsedoPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' from ArenaTibia Shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.')endelsedoPlayerSendTextMessage(cid, SHOP_MSG_TYPE, ' '.. add_item_name ..' ArenaTibia 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.')endenduntil not result.next(result_plr)result.free(result_plr)endreturn trueend
Postado Janeiro 6, 2015 10 anos Autor @ paulo henriqueg O problema ainda persiste. @ Blackmotion Eu já postei cara.. @edit Problema resolvido, basta remover +555884621212 do setPlayerStorageValue(cid,storage+555884621212,1) Editado Janeiro 6, 2015 10 anos por Lord Hades (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.