Postado Abril 8, 2017 8 anos Iae Galerinha, bom eu baixei um geisor que o sekk disponibilizou, junto com uma source que o fir3 também disponibilizou aqui no forum. TFS [0.4] o unico problema que está acontecendo é que quando um player comprar itens no site e quando o item chega na bp do player da dois erros no exe.. como vcs podem ver "sim esse erro só acontece quando o player recebe o item, e o outro problema é que quando- o player desloga do servidor da um duplicate uniqueid, e esse duplicate uniqueid só aparece depois que o player compra o item no site, ou seja- se o player comprar 5 itens no site toda vez que ele desloga do servidor fica dando 5 duplicate uniqueid e isso sucessivamente podem ver que as 18:49- eu não tinha comprado nenhum item com o char reloguei normal e não deu nenhum erro e os erros só apareceram dps que o player comprar item no site. OBS: já executei as devidas query das devidas tabelas mas o erro persiste, já deletei as mesmas e as refiz e nada. e esses dois erros de Z_ots_communication e z_shop_history_item, acontecem toda vez que alguem comprar o item no site. Preciso da ajuda de vcs... @Sekk @Fir3element Editado Abril 8, 2017 8 anos por Strung (veja o histórico de edições)
Postado Abril 8, 2017 8 anos Tenta usar esse shop.lua no server Mostrar conteúdo oculto -- ### 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.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 ..' << 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 <globalevent name="shop" interval="4000" script="shop.lua"/> Editado Abril 8, 2017 8 anos por Sekk (veja o histórico de edições) GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Abril 9, 2017 8 anos Autor @Sekk funcionou parou de dar o erros e o duplicate uniqueid, agora você tem alguma query que crie os samples? por algum movitovo deletei as accounts da db e os samples foi junto.
Postado Abril 9, 2017 8 anos Tenho a query que eu uso no meu server, mas acho melhor você checar cada coluna dessa query, por exemplo resets, cast etc... Checa os valores, e se as colunas existem na sua tabela players. E antes de exxecutá-las, verifique se o id da account estão sendo inseridos os players existe. INSERT INTO `players` (`id`, `name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `cast`, `castViewers`, `castDescription`, `auction_balance`, `resets`) VALUES (1, 'Account Manager', 0, 1, 1, 8, 0, 150, 150, 4200, 0, 0, 0, 0, 302, 3, 4, 150, 150, 0, 100, 1, 10157, 10053, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0), (4, 'Rook Sample', 0, 1, 2, 8, 0, 150, 150, 4200, 0, 0, 0, 0, 110, 0, 4, 150, 150, 0, 100, 1, 10157, 10053, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0), (5, 'Sorcerer Sample', 0, 1, 2, 8, 1, 150, 150, 4200, 0, 0, 0, 0, 110, 0, 4, 150, 150, 0, 100, 1, 10157, 10053, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0), (6, 'Druid Sample', 0, 1, 2, 8, 2, 150, 150, 4200, 0, 0, 0, 0, 110, 0, 4, 150, 150, 0, 100, 1, 10157, 10053, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0), (7, 'Paladin Sample', 0, 1, 2, 8, 3, 150, 150, 4200, 0, 0, 0, 0, 110, 0, 4, 150, 150, 0, 100, 1, 10157, 10053, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0), (8, 'Knight Sample', 0, 1, 2, 8, 4, 150, 150, 4200, 0, 0, 0, 0, 110, 0, 4, 150, 150, 0, 100, 1, 10157, 10053, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0); GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Abril 9, 2017 8 anos Autor Sekk, resolvi o erro dos samples, agora só faltam 3 "três" pequenas coisas para por online. 1- to usando o site que vc disponibilizou, Blz, mas quando um player tenta criar guild ele não consegue diz que ele não tem level, ja cheguei no config.php e no config.lua e o level requerido é 8 meu servidor é de war começa lvl 130. 2- instalei a pagina "cast" no site só que os player que abre o cast não aparece nela, executei a query no php mas nada. 3- o último, Kkkk. SAbe aquele "demon" que fica acima da quantidade de players online? Como troca aquilo? Obg, ja vou te encher de rap por me ajudar, mas se tu souber sobre esses últimos 3 ficarei mto grato.
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.