13.x TFS 1.3 / Otx3 | Otg Server Global - 11x - 12.40 (SPRITES 13.40) (Updates Diarios)
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Johncore
Open Source MMORPG emulador de Tibia escrito em C++.
Baseado no TFS 1.3 e Otx3.2
Otg Server é uma Datapack limpa sem mapa / scripts do tibia global,
Base ideal pra quem gosta de customizar
Loga no clientes: 1100, Otcv8, Otc Menah e 12.40
Informações:
- MAPA TFS Clean
- Imbuements
- Prey
- Reward Daily
- Boosted Creature
- Auto Loot
- Store
Imagens :
Downloads
Servidor + Database + Source:
»» PROJETO OFFICIAL:
https://github.com/otg-br/otg-server
GRUPO WHATSAPP OTG SERVER:
https://chat.whatsapp.com/EWV3dVvS6nt1em7q23FGu7
Créditos :
The Forgotten Server
Otg contribuidores
Johncore
Erick Nunes
Mattyx
Matheus Roberto
Cjaker
Leu
Marson Schneider
Rafhael Oliveira
-
Por Johncore
Open Source MMORPG emulador de Tibia escrito em C++.
Servidor Global 12.85 Oficial para o Tibiaking!
Baseado no TFS 1.3
Novidades!
- Protocolo 12.85
- Bestiary
- Charms
- Boosted Creature
- Quick Loot
- Supply Stash
- Event Schedule
- GLOBAL MAP FULL
- Quests com Quest Log 100%
- Bounac
- Wherehyenas
- Mirrored Nightmare
Imagens :
THAIS TEMPLE
Downloads
Servidor + Database + Source:
»» PROJETO OFFICIAL:
https://github.com/otg-br/global1285
GRUPO WHATSAPP OTG SERVER:
https://chat.whatsapp.com/EWV3dVvS6nt1em7q23FGu7
Créditos :
The Forgotten Server
Otg contribuidores
Johncore
Erick Nunes
Mattyx
Cjaker
Leu
Marson Schneider
Rafhael Oliveira
-
Por L3K0T
Bom, como todos sabem, existe o shop.lua em servidores 0.4 para receber itens. Muitos deles têm loops infinitos ou fazem uma varredura completa no banco de dados, o que pode deixá-los instáveis. Isso ocorre principalmente quando o script não verifica adequadamente se há itens para processar ou se o banco de dados está sobrecarregado com consultas desnecessárias.
No entanto, com algumas melhorias, podemos otimizar esse processo, garantindo que o servidor se mantenha estável e eficiente. No nosso exemplo, aplicamos algumas mudanças importantes:
Checagem eficiente de itens pendentes: A consulta ao banco de dados foi otimizada para verificar se existem realmente itens pendentes para o jogador. Se não houver itens, o script termina sua execução rapidamente, evitando sobrecarga.
Evitar loops infinitos: O loop foi ajustado para garantir que, se não houver mais itens para processar, o script saia sem continuar verificando o banco de dados, prevenindo loops desnecessários.
Logs: Foi adicionado um sistema de logs, onde cada transação bem sucedida do jogador é registrada com data e hora, além de informações sobre o jogador e os itens recebidos.
Execução controlada com intervalos: Ao invés de fazer consultas contínuas ao banco de dados, o script executa checagens de tempos em tempos, configuráveis pelo parâmetro SQL_interval. Isso distribui as verificações ao longo do tempo e evita que o servidor fique sobrecarregado com solicitações simultâneas.
Segue o scripts:
data/globalevents/scripts/shop.lua
function getCurrentDateTime() local currentDateTime = os.date("%Y-%m-%d %H:%M:%S") return currentDateTime end function createDirectoryIfNotExists(dir) local command = "mkdir -p " .. dir os.execute(command) end function saveLog(message) local logFilePath = "data/logs/shop/shop.txt" local logDir = "data/logs/shop/" createDirectoryIfNotExists(logDir) local currentDateTime = getCurrentDateTime() local logMessage = string.format("[%s] %s\n", currentDateTime, message) local file = io.open(logFilePath, "a") if file then file:write(logMessage) file:close() else print("Erro ao tentar escrever no arquivo de log.") end end SHOP_MSG_TYPE = 19 SQL_interval = 5 function onThink(interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';") if result_plr:getID() == -1 then return true end local hasMoreItems = false while true do local id = tonumber(result_plr:getDataInt("id")) local cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) then hasMoreItems = true local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local add_item_name = tostring(result_plr:getDataString("param6")) local received_item = 0 local full_weight = 0 if isItemRune(itemtogive_id) then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) received_item = doPlayerAddItemEx(cid, new_item) if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, string.format("Você recebeu >> %s << da loja.", add_item_name)) doPlayerSave(cid) db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.executeQuery("UPDATE `z_shop_history` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") saveLog(string.format("[%s] %s (ID: %d), Você recebeu >> %s << da loja.", getCurrentDateTime(), tostring(result_plr:getDataString("name")), id, add_item_name)) end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, string.format("Você não tem capacidade suficiente para >> %s <<. Necessário: %.2f oz. Disponível: %.2f oz.", add_item_name, full_weight, free_cap)) saveLog(string.format("[%s] %s (ID: %d), Tentou comprar >> %s <<, mas não tinha capacidade suficiente. Necessário: %.2f oz. Disponível: %.2f oz.", getCurrentDateTime(), tostring(result_plr:getDataString("name")), id, add_item_name, full_weight, free_cap)) end end if not result_plr:next() then break end end result_plr:free() if not hasMoreItems then return false end return true end
data/globalevents/globalevents.xml
<globalevent name="shop" interval="30000" script="shop.lua"/>
*Testado em Myaac
*Testado em OTX2 8.60
*Testado em Ubuntu 20.04
*Não precisa criar pasta, ele mesmo cria.
Com essas melhorias, a performance do servidor foi significativamente melhorada, garantindo que o sistema de loja funcione de forma mais estável e eficiente, sem sobrecarregar o banco de dados ou causar lags. Agora, a transação de itens na loja ocorre de forma mais controlada e com menos chance de erros ou travamentos. by @L3K0T
-
Por .brunofiorillo
Boa noite, não sei se essa é a area correta, se não for, peço desculpas...
Gostaria de saber se existe a possibilidade de adicionar novas novações no servidor Canary versão 3.1.2
Se tiver a possibilidade de fazer sem precisar recompilar seria otimo. Pode ser por Npc, ItemUse ou quest.
Pretendo usar o cliente 13x e OTClient.
Gostaria de saber em quais arquivos preciso mudar para que funcione, Incluindo no Otserv e nos Clientes citados.
Cheguei a incluir no XML do ot porem crashou o cliente 13x. Alterei o nome das vocações padrões e tambem crashou.
Se alguem puder me ajudar. Desde ja agradeço!
-
Por BTitan
Reviva a nostalgia do Tibia 8.6 com um toque das novidades modernas, mantendo a essência clássica que você ama. Nosso mapa é limpo e otimizado, perfeito para wars intensas e estratégicas.
Com mais de 100 áreas de caça, vocações equilibradas e eventos automáticos diários, garantimos diversão sem limites para todos os jogadores.
ACC Manager: 1/1
IP: go.baiaktitan.com
https://www.baiaktitan.com
Principais informações:
Dedicado 24 horas sem lag Attack Speed moderado Cast System DODGE! CRITICAL! REFLECT! Upgrade Weapon Forge System Autoloot Anti Rollbacks Eventos exclusivos (Battle Royale, DOTA, Team Battle, entre outros...) Servidor integrado com Telegram (Contato direto com ADM) Cliente próprio (com novos itens, montarias e outfits) Mapa Baiak, modificado exclusivamente para o PvP Servidor otimizado, suportando mais de 1.000 players online
»» EXP Rate: 200x
»» Skill Rate: 20x
»» Magic Rate: 10x
»» Loot Rate: 3x
Aguardamos por você!
-
-
Estatísticas dos Fóruns
96846
Tópicos519601
Posts
Posts Recomendados
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.