-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Leohige
The Ruby Server - Base Pokémon
Ao olhar as diversas bases que podem ser encontradas aqui no fórum e em outros locais da internet, pude ver que todas elas carecem de qualidade. Todas estas bases são feitas utilizando gambiarras para diversos sistemas funcionarem, e com isso vários problemas surgem, como de sistemas que não funcionam direito, e o mais importante, com um desempenho extremamente baixo, gerando apenas servidores instáveis. Com isso eu decidi que iria começar a desenvolver uma base para servidores relacionados a Pokémon, com dois objetivos. Um dos objetivos é ganhar mais conhecimento em cima da linguagem de programação C++, o outro objetivo é disponibilizar uma base completamente estável, funcional e de fácil configuração e desenvolvimento para servidores de Pokémon, para que mais ótimos trabalhos possam surgir. Este projeto também irá incluir um cliente próprio e estável, junto com um website.
Também planejo criar uma espécie de Wiki para o servidor, cliente e website, com o objetivo de auxiliar quem for desenvolver em cima deste servidor, e também aqueles que pouco entendem do assunto relacionando a criação de escripts, Pokémon, spells e etc.
Alguns poucos sistemas foram implementados no servidor por ora. Sistemas como o de catch e de goback serão implementados mais para frente, quando outros sistemas forem completamente implementados, como o sistema de configuração de Pokeballs, criação de Pokémons e sistema de shinys. Estou visando a qualidade do servidor como um todo, por isso algumas coisas irão demorar para aparecer.
O sistema de Pokeballs e de criação de Pokémon já está bem encaminhado, e um sistema de gêneros também já está pronto com fácil configuração, onde o spawn destes Pokémon com sexo será por % igual aos jogos da franquia. Um sistema de surgimento de Ditto aleatório já está praticamente implementado, onde um Pokémon aleatório pode ser um Ditto disfarçado.
[+] Informações do Servidor
Baseado em: TFS 1.3
Protocolo: 10.98
[+] Informações do Client
Baseado em: otclient 0.6.6
[+] Informações do Website
Baseado em: nenhum
Desenvolvido em: PHP (por ser o mais comum na comunidade)
Como contribuir?
Eu gostaria muito que a comunidade ajudasse no desenvolvimento deste projeto, pois o mesmo será disponibilizado para todos, e para contribuir não necessariamente é preciso entender de programação. Você pode também ajudar testando e reportando os bugs encontrados no repositório do projeto no GitHub, assim como com sugestões e ideias de mudança/implementação no servidor através do próprio repositório ou através do Discord, ou ajudar na criação de guias para o website do projeto.
Links
[+] RubyServer - GitHub
https://github.com/rubyserver/rubyserver
[+] RubyClient - GitHub
https://github.com/rubyserver/rubyclient
[+] RubyServer - Website
https://rubyserver.github.io/rubyserver/
[+] RubyServer - Discord
https://discord.gg/XTrZGpy
Algumas Imagens
-
Por L3K0T
Dragon Ball Evolution
Fala pessoal estava com um projeto DBZ em 2015 porém não deu muito certo e estou aqui para (DOAR) pra vocês! Ainda mais é um projeto feito já pra rodar em maquina usando UBUNTU 12.04, pra ficar melhor ainda eu fiz a source desse DBZ toda e estou liberando junto, ela não contém erros de compilações e também não há erros graves que derruba o servidor, vim aqui em nome do meu projeto que libero a vocês, apenas o mapa não é meu o resto foi tudo editado por mim, fora as magias que existem no servidor, as vocações estão quase todas balanceadas, a config.lua está totalmente configurada como a source e suas funções. o que tem no servidor ?
Informações:
*War System na source
*spoof system player configurado na config.lua
*Source rev 3777 protocolo 8.60. (estável) (bug's fixed)
*Cliente dbz solto OLD.
*Servidor pronto pra por online.
*Muitas transformações.
*bank System dentro do jogo colocado por mim.
*NPC's funcionando perfeitamente.
*Banco de dados juntos.
*Ant push system pela source, que configura no config.lua
*antiPushDelay configurado no config.lua também.
*Ant Divulgação colocada pela source.
*Multi word aonde pode abrir vários mundos diferentes usando uma unica database.
*No salt, pode usar o account Manager junto com mysql que não irá gerar o salt funciona conjunto com o site sem erros.
e muita outra coisas espero que gostem!!!
by L3K0T um servidor parado no pendriver e certamente não vou usar.
Demonstração:
Servidor e Cliente + Source >>> Download DATABASE >>> com account manager já configurado! >> http://www.mediafire.com/download/1in454i49h5o5rj/dbz.sql
DLL Windows >>>dll.zip
Executor Windows:>>> theforgottenserver.zip (para quem não consegue compilar)
Scan dos arquivos >>> Scan
Compilando Ubuntu 12.04:
1° Utilitários - *Se tiver seu Ubuntu Instalado ignore isso
UTorrent pra baixa o S.O (Sistema Operacional) >> http://www.utorrent.com/intl/pt/
Ubuntu LTS 12.04>>> http://releases.ubuntu.com/12.04/ubuntu-12.04.5-alternate-amd64.iso.torrent
2° COMPILAR OTSERV LINUX (UBUNTU)
Lembre-se, eu ensinarei você a compilar seu OTServ em Ubuntu.
Se aparecer algo (Y or N? ou S ou N) digita Y ou S e da enter.
Instalando as lib e boost's no Ubuntu!
Ubuntu:
apt-get update apt-get upgrade apt-get install libboost-all-dev apt-get install subversion autoconf build-essential pkg-config libboost-dev libgmp3-dev libxml2-dev liblua5.1-0-dev libmysqlclient-dev libcrypto++-dev ccache libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev screen libssl-dev apt-get install libcurl4-openssl-dev apt-get install screen Pronto, feito isso você terá tudo configurado para que você possa compilar e botar seu OTServ online!
3° COMPILANDO
cd ..
chmod 777 -R Dragon Ball Evolution
cd /Dragon Ball Evolution/source
sh ./autogen.sh && ./configure --enable-server-diag --enable-mysql --enable-root-permission && make clean && make -j 2
4° Ligando servidor
cd ..
chmod 777 -R Dragon Ball Evolution
cd /Dragon Ball Evolution
./theforgottenserver
FIM tutorial Linux
Agora WINDOWS:
Para compilar em windows use esse dev-CPP que disponibilizei especialmente nos fóruns que frequento:
Dev-CPP>>> http://www.mediafire.com/download/pr41vq9g1u9sudf/dev+ja+configurada.7z
Siga os passo de como você conhece (não precisa configura boost nem nada disso, pois é um dev-CPP pré configurado para esse servidor.
Se gerar um erro no final da compilação (Ignore) você pode compilar dnv sem erros, apenas compila não apague nada.
ai você vai na pasta dev-cpp que o exe ta lá!
As dll tá lá em cima do tópico para você usar.
Entrando
Senha 1/1
ATENÇÃO:
Não USE sqlite para o servidor, pois você não vai conseguir entrar! USE o banco de dados de SITE MYSQL conjunto com account manager (Não tem salt de na criação via account manager e pode ser usado junto com o site sem problema!)
(Não quero gente vendendo em )
Source DBZ.zip
-
Por WhiteBubble
Dragon Ball
Rox
Servidor 100% estável com mais de 200 horas online.
38 Vocações sendo 9 delas vip que são:
Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame
Chilled,C8 e King Vegetta.
Spells de fast attack (Usa uma vez sai 10 hits).
Eventos automaticos como: Castle,Battlefield,Run event.
Reborn level maximo 600.
Vamos aos bugs que eu encontrei:
* Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra.
* Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo.
* Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora.
Update v2
Adicionado 7 novas vocações vips sendo elas:
Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo.
Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black.
Vocações que antes era vip no update v1 agora são free.
Fazer reborn não precisa mais fazer quest das esferas do dragão.
Adicionado cassino que se ganha small diamonds que se troca por:
Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet.
Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama.
Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama.
Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip.
Adicionado 3 bosses espalhados pelo mapa (Earth).
Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno.
Adicionado sistema de upgrade fazendo seu item ficar mais forte.
Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja.
Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars.
Area de evento pvp e dice/bag adicionada no Yama.
Area vip adicionada.
Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip.
Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo.
Algumas modificações no mapa, hunts, quest.
Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico.
Gostou ? Clique em Gostei logo abaixo.
Para consertar o erro da loteria só executar essa query na sua database:
CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
Downloads
Server (Distro para windows e linux já compilada) Scan
Cliente Scan
Sources Scan
Site (Modern Acc) Scan
Database Scan
Creditos server: Kramer, WhiteBubble
Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server
Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
-
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.
-
-
Estatísticas dos Fóruns
96842
Tópicos519599
Posts
Posts Recomendados