-
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 tiroleivi
Global v30 - OTX - 10.99
Especificações :
- Warzone 1, 2 e 3
- Task system, com bosses e ranks;
- Bank System
- Gray Beach City completa 100% (incluindo Subsolo)
- NewVenore 100%
- New AB 100%
- Monstros 100%
- Trainer Offline 100%
- Trainer Online 100%
- Todas montarias;
- Taming system funcionando 100%;
- Database completa
- Wrath of Emperor Quest
- War System 100%
- Market System 100%
- Roshamull Completa100% (incluindo subsolo)
- Oramond Full
- Zao 100%
- Sem bug de pegar items com o browse field
- POI 100%
- Varios bugs de mapas removidos
- Blood Herb Quest 100%
- Npc Addoner, (e tem os npc originais fica a seu critério)
- Chayenne Realm Quest
- Pythius The Rotten Quest 100%
OBs: é o mesmo ot Global TFS 1.2 v30 do : Qwizer, a diferença é que esse aqui está em OTX na Vs.10.99, foi removido erros da Database, e esta sem erro na distro rodando 99,9%.
Imagens :
Downloads :
OTServ + Database : Download // Scann
Xampp 1.7.3 : Download // Scann
Web_Site : Download // Scann
Source : Download // Scann
Tibia Clientes : Download
Remere's Map Editor : Download // Scann
Créditos :
Tiroleivi
TibiaStaff
Qwizer (pelo OT)
-
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 xWhiteWolf
Bom galera, tem uma coisa bem simples que nem o tibia global fez e que eu to trazendo aqui pra vocês. Trata-se de um pequeno sistema que fará você sempre virar pra direção do seu target ao atacar.
Testado em TFS 0.3.6 Cliente 8.54.
Imagem auto explicativa:
Chega de atacar de costas!
Agora pra instalar é bem tranquilo. Abra um arquivo .lua em data\creaturescripts\scripts chamado target e coloque o seguinte conteudo dentro dele:
Feito isso adicione essa linha no creaturescripts.xml:
<event type="attack" name="targetCreature" script="target.lua"/> E para finalizar adicione a seguinte tag em creaturescripts\scripts\login.lua:
registerCreatureEvent(cid, "targetCreature") Espero que vcs tenham curtido, é algo bem simples mas ninguém havia pensado nisso antes (nem o próprio Tibia), é uma coisa bem básica e que torna o jogo bem mais importante e sério.
EDIT:: Usem essa versão que está mais completa, na anterior se o target estivesse na diagonal ele não virava.
-
Por Under
ATENÇÃO, DESENVOLVEDORES DE OTSERV!
Uma nova era está chegando — e você vai fazer parte dela desde o começo!
Ferramentas de IA + Formação Completa
Estamos finalizando ferramentas exclusivas de inteligência artificial que vão revolucionar a forma como você cria e gerencia servidores de Tibia.
E pra abrir com estilo, chegou a primeira etapa da nossa formação completa:
Curso de Pixel Art para Tibia e Derivados
Instrutor: Brendon Nogard, fundador da Pixel Art School
Uma das maiores referências em arte para servidores de tibia no Brasil!
Quem é o Nogard? @Nogard
video-de-apresent.mp4
Criador das primeiras remakes gráficas da PXG
Mais de 10 anos de experiência com Pixel Art
Conduziu a evolução da perspectiva GBA para um visual moderno e imersivo
Influenciou uma geração inteira de criadores na comunidade OTServer no Brasil.
O que você vai aprender nesse curso?
Compre Aqui!
Perspectiva 45° para Tibia e derivados
Criação de itens: pokébolas, loots, mochilas, poções
Personagens animados com variações de cabelo
Criaturas como Wolf, Werewolf, Snake, Horse e Centauro
Cenários: paredes, cortinas, troféus
Texturas: folhas, rochas
Fundamentos de estilo, coerência e construção de sprites profissionais
Duração: 12 horas
VALOR : R$250,00
BÔNUS POR R$50,00
Também está disponível o Curso de Pixel Art Top Down, ideal pra quem quer começar do zero absoluto:
Crie personagens, inimigos, chefes
Monte todo o ambiente do seu jogo
Duração: 3 horas
Por que isso é importante pra você?
Esse é o primeiro passo pra criar um OTServer com:
Identidade visual única
Alto nível gráfico
Suporte de ferramentas de IA exclusivas
E um método claro, testado e acessível!
Nas próximas 4 semanas...
Vamos liberar novos cursos sobre:
Criação de mapas
Desenvolvimento de sistemas e scripts
IA aplicada ao design de jogo (desenvolvimento)
Balanceamento, mecânicas e muito mais!
Garanta sua vaga agora!
Comece hoje mesmo com o pé direito.
Compre Aqui!
-
-
Estatísticas dos Fóruns
96844
Tópicos519597
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.