Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 10/06/16 em todas áreas

  1. Drakopoulos

    World of Piece v2 Completo

    Olá galerinha... bom, tinha editado o client do World of Piece removendo o bloqueio de login da source e módulos do mesmo só que o servidor estava utilizando uma distro antiga compilada, então compilei a atual refazendo tudo novamente e algumas outras coisas na source do servidor que impedia a comunicação entre servidor/client. O que foi modificado? Alguns módulos editados que bloqueava o login. Vários protocolos na source de ambos editados que bloqueava o login. Removido a proteção das sprites na source do client, está funcionando com as sprites desbloqueadas agora. Download Server - MEGA Server Source - MEGA Client - MEGA Client Source - MEGA Scans Server Server Source Client Client Source Imagens Obs. Ele funciona tanto em sqlite quanto em mysql mas recomendo utilizar mysql para funcionar tudo corretamente. Conta god/god. Servidor e client 100% sem erros e creio que não tenha bugs pois o mesmo já esteve online. Créditos World Of Piece Team Green Animal Pak Drakopoulos
    5 pontos
  2. Luga03

    Programas utilizados no PokéLight

    Olá ekz tibianos, tranquilo? Eu vim mostrar uma lista de programas utilizados pelos desenvolvedores do PokéLight! Lua Auto Indent Descrição: Com este programa você pode identar seus códigos com apenas 1 clique! Download: LuaAutoIndent.rar Scan Remere's Map Editor Descrição: Editar mapa do servidor com client estendido e com transparência. Download: Remere's Map Editor.rar Scan Stian's Repack Dev-Cpp Descrição: IDE para compilar servidores como o PokéLight e outros. Download: Stian's Repack Dev-Cpp.rar Scan Deve instalar junto no Dev o OpenSSL: openssl-0.9.8-1cm.rar Pessoal, com mais tempo eu posto outros que nós utilizando... Valeu ae e espero que façam bom uso! Observação, Os créditos são exclusivamente dos seus desenvolvedores, colaboradores e outras pessoas. Segunda observação, Os vírus encontrados são inofensivos, então baixe por conta própria. openssl-0.9.8-1cm.rar LuaAutoIndent.rar Remere's Map Editor.rar
    4 pontos
  3. POKÉMON LIGHT Olá Xtibianos, esta é a apresentação 3 do evento Maratona de Projetos. Peço humildemente que leia a apresentação que o projeto preparou e contribua comentando a respeito, saiba que devemos apoiar nossos desenvolvedores BR para que nossa comunidade cresça mais forte, faça sua parte! Lembro que no final das apresentações haverá uma votação, onde os membros avaliaram e escolherão o projeto desenvolvedor vencedor da maratona! Nossa equipe do PokéLight já está desenvolvendo o servidor á alguns meses, mas ainda falta muita coisa para por em prática. Nós temos a ideia de diferenciar dos outros servidores ao máximo que conseguirmos sem fugir da ideia principal do poketibia. Desenvolvimento Nós nos organizamos utilizando o Trello para organizar ideias, desenvolvimento do servidor e tópicos que precisam ser abordados futuramente. Qual quer ideia em que apresenta-se ao servidor, nós olhamos os prós e contras para saber se vale a pena. Nós, estamos com a ideia de reestruturar o servidor inteiro mudando a sua versão de TFS, que atualmente é 0.4 para 1.2, para que isso aconteça corretamente, nós estamos refazendo tudo pensando em possíveis erros, para que eles não possam ocorrer. Áreas do Projeto Scripting Bom, em questão de sistemas, nós já desenvolvemos muitos deles. Vários são os de "sempre", mas nós sabemos que a mesmice não nos diferencia de nada, então estamos tentando sempre buscar se diferenciar e melhorar para sair do "padrão pxg". Eu vou listar para você, alguns dos sistemas únicos e originais nossos: Cut at distance Este sistema, permite você cortar um arbusto sem precisar está perto dele. Como no exemplo do vídeo, o Charmander utiliza o Ember no arbusto e caso ele esteja perto do arbusto, ele usa suas garras. Hobbie System Este sistema é parecido com o sistema de profissão da pokexgames, com ele você pode aproveitar o jogo da melhor forma, por exemplo, eu gosto de capturar pokémon para subir de nível, já outros gostam de ficar em hunts e outros preferem ficar pescando. O vídeo mostra apenas uma pequena parte do sistema. Two pokémon to use Já este sistema, se resume em você poder utilizar mais de um pokemon, enquanto você utiliza ele enquanto está montado ou voando, você pode utilizar outro como "Battle-Pokémon" que seria o pokémon de batalha. Estes são apenas alguns dos nossos sistemas, você pode ver mais clicando aqui. Mapping Nós começamos o mapa com o continente principal sendo Kanto, mas com a reestruturação iremos começar com Johto. Você, desenvolvedor, não deve esquecer que fazer igual só vira mais um entre diversos outros no mundo... Spriting Atualmente, está difícil encontrar spriters decentes que estejam interessado em entrar no projeto, mas já temos muitas sprites únicas feitas por amigos nossos, sendo possível vê-las aqui CONTRIBUIÇÃO DO PROJETO PARA O XTIBIA
    3 pontos
  4. Night Wolf

    [0.36~0.4] Slot Cassino

    Olá pessoas, hoje vim trazer pra vocês um script que inicialmente fiz prum trabalho mas acabei gostando muito dele e decidi postar. To meio que indo dormir porque daqui a pouquinho tenho aula então vai ser tudo bem rapido e se vcs tiverem alguma dúvida comentem aqui. Primeiramente façam uma sala parecida com essa aqui: Não precisa ser necessariamente assim, mas ela deve ter as 3 bolas, uma alavanca e um local pra botar o dinheiro pras apostas. O sistema é baseado naqueles jogos de slot nos cassinos onde você aposta uma quantidade de dinheiro e se tirar 3 peças iguais você recebe o dobro do dinheiro apostado. em actions/scripts crie um arquivo chamado cassino.lua e adicione o seguinte dentro dele: Agora em data/actions/actions.xml adicione: <action actionid="16541" script="cassino.lua"/> Agora só botar a actionid na lever e configurar tudo de acordo com seu sv (as posições ali em pieces são as posições de cada peça, ou cada bola, se preferir.) se quiser fazer várias salas é só copiar o código pra um cassino2.lua e registrar outra tag <action actionid="16542" script="cassino2.lua"/>; Tá tudo comentado no código então acho que dispensa uma explicação formal de como editar, espero que vocês gostem e se alguém quiser/puder grave um gif/video do sistema e me manda que eu edito o tópico. Abraços do Lobo!
    2 pontos
  5. Bruno

    Servidor Completo 10.90

    Galera, Há muito tempo eu havia sumido do mundo de tibia e otserv devido a vida profissional ter tomado muito de meu tempo. Durante este tempo que fiquei por aqui trabalhei em um projeto em cima do servidor opensource que eu mantinha (Vanaheim) e fiz uma versão onde tirei todas as missions e implementei alguns sistemas e paguei um desenvolvedor para fazer outros. Alguns sistemas: - Reward Chest - Equip Hotkey - Blessings - Citywars (War Antientrosa) - Tibia Store Acho um desperdício isto estar como conteúdo privado então vou disponibilizar na comunidade todo o conteúdo. Mapa global completo com sistemas integrados e Dawnport: https://github.com/brunominervino/Lucera Repositório com sistemas separados: https://github.com/brunominervino/tfs_systems Creio que não precise de scan pois os projetos estão no Github. OBS: Não atenderei nenhum pedido de suporte, até porque não tenho tempo, minha intenção é que alguém dê seguimento
    2 pontos
  6. Furabio

    Maratona de Projetos - Pokemon Light

    Bem massa o sistema de cath, gostei dos sistemas apresentados.
    2 pontos
  7. Luga03

    [Download] Pokémon Light (Com level)

    Pessoal, acabo de postar um tópico com alguns programas utilizados pela equipe do PokéLight. Inclusive o compilador que funciona na source do PokéLight! @vudi, sim o Ghost System é pela source. Mas com algumas funções em LUA.
    2 pontos
  8. Vou citar só algumas coisas... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ADICIONAR POKEMONS Muito mais prático, não precisa configurar a mesma coisa em mais de um lugar, por exemplo: Se já foi colocado o ID do corpse do pokemon no xml com o nome do mesmo, não é necessário colocar o ID do Corpse na tabela de catch no "configuration.lua" Resumindo: Adicionei todos 151 pokemons da 1ª geração em 2 dias, e terminei de configura-los completamente em mais 2 dias e meio. OBS: Em nossa tabela de status, existem mais status como sp.defense e todos eles foram reconfigurados com os valores oficiais da pokedex de cada pokemon, essa é uma versão antiga, não lembro o quão está configurado os pokemons e algumas outras coisas, porém todos estão funcionando. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BASE/SCRIPTS TOTALMENTE LIMPOS Lembrando que a base começou do 0 a partir do TFS 0.4, apesar de não ter muita coisa além do básico, está totalmente limpa, sem erro na distro, server fica online em média de 10 segundos na distro atual com muito mais coisa, essa postada deve ligar mais rapido ainda... Códigos limpos, sem erros na distro, praticidade e rapidez imensa em adicionar e configurar novos pokemons, magias e outras coisas além de ser open source, só baixar e conferir...
    2 pontos
  9. Aberos

    LAUNCHER OTCLIENT

    Eae Galera da Ekz Entao fiz um launcher em c# e queria compartilhar com a comunidade, o launcher e simples e serve para otclient porem tem as sources e se vc quiser editar para usar o old client fique a vontade. Link Download Launcher+Source Scan tbm fiz um video explicando como funciona obs: Para o Launcher funcionar vc prescisa por na pasta do client o .exe do launcher, o config.ini e a dll , todos estao no winrar do link de download.
    1 ponto
  10. Luga03

    [Download] Pokémon Light (Com level)

    Contribuição do PokéLight Pessoal, essa é uma old version do servidor PokéLight. Comparada a versão atual ela está bem ruim, mas comparada a 90% dos outros OTs ela está perfeita haha. Está não é uma base que você baixa e deixa online, como ela está meio old, não tem certas configurações como o XML não estão 100% corretos (spells, loot, etc), está faltando spells, as tabelas de pokémon não estão prontas e muitas outras coisas.... Lembrando, está versão TEM level system no pokémon! Sistemas Mapa O mapa não foi liberado ainda, mas possivelmente iremos liberar ele mais para frente. Sprites Nenhuma das sprites exclusivas do PLight será liberada pela equipe. Imagens Downloads: Server e Source: https://mega.nz/#!e9FWkbLR!y3khwXsA3BFzCDFIyVK-lVQEQTdOgLXarieXYEFupDM Client: https://mega.nz/#!P8tzBZST!2KsMzr5jdRVMdcXako2p85uu6-skTfsU_WguECwUR8k Estou sem tempo para fazer scan, caso alguém possa fazer para min, agradeço Links Extras:
    1 ponto
  11. POKÉMON GLOBAL Olá Xtibianos, esta é a apresentação 1 do evento Maratona de Projetos. Peço humildemente que leia a apresentação que o projeto preparou e contribua comentando a respeito, saiba que devemos apoiar nossos desenvolvedores BR para que nossa comunidade cresça mais forte, faça sua parte! Lembro que no final das apresentações haverá uma votação, onde os membros avaliaram e escolherão o projeto desenvolvedor vencedor da maratona! Olá pessoal do XTibia. Meu nome é Tony e eu faço parte da UXPrimo Team, junto ao meu primo João P. Araújo. Venho por meio dessa maratona de projetos, apresentar-lhes o nosso xodó Pokémon Global, desenvolvido por nós da UXPrimo Team. Nossa equipe desenvolvedora, conta com vários amigos e contribuidores que estão nos ajudando, e o mais interessante, estão fazendo por amor ao projeto, pois estamos trazendo uma ideia antiga e que conquistou os corações de milhares de jogadores. Nosso projeto, como dito anteriormente, conta comigo (Tony) na programação em geral (Sistemas em LUA, C++ e Desenvolvimento do Cliente), João P. no desenvolvimento do mapa, que por sua vez fez praticamente 90% do mapa atual, Avronex que também contribui com o desenvolvimento do mapa e Lua, nosso amigo KalvinKarl é de suma importância em uma das áreas mais difíceis do projeto, onde consiste em balanceamento de pokémons, configurações, gráficas e desenvolvimento web e por último mas não menos importante, nosso querido amigo Gustavo Batista que também contribui no desenvolvimento gráfico e web tanto no servidor quanto no site. O código fonte do nosso projeto foi totalmente reconstruído a fins de ser utilizado exclusivamente para pokémon, assim retirando todo o código inútil podendo então aumentar o seu desempenho, diminuir o tamanho e o tempo de processamento pela máquina resultado em um jogo com maior estabilidade sem 'freezes', 'lags' e 'bugs'! O Servidor conta com inúmeras inovações, tanto em reconstruções de códigos, quanto de sistemas novos. Irei citar alguns, explica-los e mostrar algumas fotos logo abaixo. Nossos sistemas também conta com os mecanismos maravilhosos do OLDClient, que também proporciona aos nossos jogadores mais estabilidade e leveza pois nosso client pesará em seu download apenas 10MB. Wild Caught Mark - Este sistema tende a marcar todos os pokémons selvagens capturados pelo jogador, utilizando um ícone específico. Este ícone variará de acordo com a pokebola que o jogador utilizou para capturar o pokémon, ou seja, se o jogador captura o pokémon com uma PokeBall, o mesmo ficará marcado abaixo do seu nome com o ícone de uma Pokeball. Party System - Este sistema foi refeito utilizando a ideia de "dois em um", pois utiliza o private channel que por sua vez já traz uma comunicação mais facilitada a todos os membros desta parceria. Seu convite pode ser feito usando também o mecanismo proposto pelo chat. Moves Bar - Este sistema foi feito para aumentar a jogabilidade, assim fazendo com que o jogador tenha o conhecimento de em quanto tempo ele poderá reutilizar o movimento de seu pokémon. Market System - Um sistema que visa a praticidade no comércio de items e pokémons, podendo um jogador, anunciar seus próprios pertences à venda e/ou comprar de outros jogadores que anunciaram. Ainda não foi finalizado. Como anteriormente citado, estamos construindo nosso servidor tendo como base uma ideia antiga e que deixou boas lembranças na memória de cada um que teve sua vivência no jogo. Abaixo mostrarei uma pouquinho do mapa, para não acabar com as surpresas. CONTRIBUIÇÃO DO PROJETO PARA O XTIBIA
    1 ponto
  12. Administrador

    Tibia Ot Client

    OT CLIENT Otclient é um cliente de Tibia alternativo para usar em Otserv. É um client flexível e completo, usa escrita .lua para toda a interface do game e suas funcionalidades/arquivos de configuração. Funciona com sistema modular, significa que cada funcionalidade é um módulo separado, dando possibilidade aos usuários mudificarem e customizarem qualquer coisa facilmente. Usuários também podem criar novos mods e extender a interface do game para seus próprios propósitos. Otclient é escrito em C++2011, e levemente escrito em lua. Últimos Commits compilados para Windows 10.82 Commit: 0d8791e (24/08/2015) Bot Proteção: OFF Download: [10.82] OT Client - Xtibia.com.zip 10.76 Commit: fcd481ee15 (09/03/2015) Download: [10.76] Ot Client - Xtibia.com.zip 10.41 Commit: fe585d27d8 (30/07/2014) Download: [10.41] Ot Client Xtibia.com.zip Aqui está o último release v0.6.5 compilado para ambos i686(32 bit) e x86_64(64 bit). Este release é compatível com protocolos 7.60 à 10.31. Para Windows Para Linux NOTA: Você terá que baixar o spr/dat por sua conta e colocar eles em data/things/VERSÃO/ (ex:data/things/1041/tibia.spr) FUNCIONALIDADES Por trás da flexibilidade com scripts, o otc vem com algumas outras funcionalidades que tornam possivel a criação de um novo client com coisas novas, um novo client jamais visto antes. Isto inclui, sistema de sons, efeitos de gráfico com sombras, módulos/sistemas de addons, texturas animadas, interface personalizável, transparencia, multi-linguagem, in-game lua terminal, um engine OpenGL 1.1/2.0 que torna possível compatibilidade com plataformas mobile. Otclient também é flexível o bastante para criar ferramentas como map editores, apenas usando scripts. Porque nao foi desenhado para ser apenas um cliente, o OTC em si fora desenhado para ser uma combinação de framework e APIs de Tibia. WINDOWS - Como Compilar? LINUX - Como Compilar? OS X - Como Compilar? [10.82] OT Client - Xtibia.com.zip [10.76] Ot Client - Xtibia.com.zip [10.41] Ot Client Xtibia.com.zip
    1 ponto
  13. Marce Loko

    creature:moveTo(pos)

    Bom dia! Esse código faz a creature (NPC, monster ou player) andar até a posição desejada. Notas: Não use para longas distâncias. Crie um sistema de waypoints para isso. A creature não para exatamente na posição desejada. (caso alguém se interesse em corrigir, eu anexarei ao tópico) Utiliza grande poder de processamento. Use de forma sábia. Testado apenas em TFS 1.2 Coloque em luascript.cpp registerMethod("Creature", "moveTo", LuaScriptInterface::luaCreatureMoveTo); int32_t LuaScriptInterfaceluaCreatureMoveTo(lua_State* L){ //creature:moveTo(pos) Creature* creature = getUserdata<Creature>(L, 1); if (!creature) { lua_pushnil(L); return 1; } const Position& position = getPosition(L, 2); FindPathParams fpp; fpp.minTargetDist = getNumber<int32_t>(L, 3, 0); fpp.maxTargetDist = getNumber<int32_t>(L, 4, 1); fpp.fullPathSearch = getBoolean(L, 5, fpp.fullPathSearch); fpp.clearSight = getBoolean(L, 6, fpp.clearSight); fpp.maxSearchDist = getNumber<int32_t>(L, 7, 150); stdforward_list<Direction> dirList; if (creature->getPathTo(position, dirList, fpp)) { creature->hasFollowPath = true; creature->startAutoWalk(dirList); pushBoolean(L, true); } else { pushBoolean(L, false); } return 1;} Coloque em luascript.h static int luaCreatureMoveTo(lua_State* L); Substitua a função original em creature.cpp bool CreaturesetFollowCreature(Creature* creature){ if (creature) { if (followCreature == creature) { return true; } const Position& creaturePos = creature->getPosition(); FindPathParams fpp; fpp.minTargetDist = 0; fpp.maxTargetDist = 1; fpp.fullPathSearch = true; fpp.clearSight = true; fpp.maxSearchDist = 150; stdforward_list<Direction> dirList; if (creaturePos.z != getPosition().z || !canSee(creaturePos) || !getPathTo(creaturePos, dirList, fpp)) { followCreature = nullptr; return false; } if (!listWalkDir.empty()) { listWalkDir.clear(); onWalkAborted(); } hasFollowPath = false; forceUpdateFollowPath = false; followCreature = creature; isUpdatingPath = true; } else { isUpdatingPath = false; followCreature = nullptr; } onFollowCreature(creature); return true;} Substitua a função original em monster.cpp bool MonstergetNextStep(Direction& dir, uint32_t& flags){ if (getHealth() <= 0) { //we dont have anyone watching might aswell stop walking eventWalk = 0; return false; } bool result = false; if (hasFollowPath) return CreaturegetNextStep(dir, flags); else if ((!followCreature || !hasFollowPath) && !isSummon()) { if ((followCreature || getTimeSinceLastMove() > 1000) && !hasFollowPath && !isIdle) { //choose a random direction result = getRandomStep(getPosition(), dir); } } else if (isSummon() || followCreature) { result = CreaturegetNextStep(dir, flags); if (result) { flags |= FLAG_PATHFINDING; } else { //target dancing if (attackedCreature && attackedCreature == followCreature) { if (isFleeing()) { result = getDanceStep(getPosition(), dir, false, false); } else if (mType->staticAttackChance < static_cast<uint32_t>(uniform_random(1, 100))) { result = getDanceStep(getPosition(), dir); } } } } if (result && (canPushItems() || canPushCreatures())) { const Position& pos = SpellsgetCasterPosition(this, dir); Tile* tile = g_game.map.getTile(pos); if (tile) { if (canPushItems()) { MonsterpushItems(tile); } if (canPushCreatures()) { MonsterpushCreatures(tile); } } } return result;} Aproveitem! Abraço.
    1 ponto
  14. Deadpool

    [Daily Catch]

    removidp
    1 ponto
  15. Data/talkactions talkactions.xml Adiciona essa linha: <talkaction words="/abrirevento;/irevento" event="script" value="eventoo.lua"/> data/talkactions/scripts crie um arquivo eventoo.lua e adicione o seguinte: function onSay(cid, words, param) function acabar() setGlobalStorageValue(8445601, 0) doBroadcastMessage("Acabou o tempo! A entrada para o evento foi bloqueada!") return TRUE end if words == "/abrirevento" and getPlayerAccess(cid) >= 4 then local t = string.explode(param, ",") if param == "" or (t[1] and not tonumber(t[1])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite por quantos segundos o comando /irevento vai ficar ativo.") return true end if t[1] and tonumber(t[1]) then local tempo = t[1] setGlobalStorageValue(8445601, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Comando /irevento ativo por ".. t[1] .." segundos.") doBroadcastMessage("Evento Aberto! Diga /irevento para entrar! [O evento fecha em ".. t[1] .." segundos]") addEvent(acabar, tempo * 1000) end return true end if words == "/irevento" then if getGlobalStorageValue(8445601) == 1 then local pos = {x=1096, y=924, z=8} doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) return true else doPlayerSendCancel(cid,"Evento nao esta aberto!") return true end return true endend Dentro do script, na parte local pos = {x=1096, y=924, z=8}, modifique com a coordenada do seu evento. Se ajudei REP+
    1 ponto
  16. Luga03

    [Download] Pokémon Light (Com level)

    Eu posso tentar fazer um tutorial postando com o sistema de Ghost em funcionamento... Por que ele não é 100% autoria minha, algumas coisas eu achei de outros servers em que eu tava olhando rsrs Ele é versão antiga COMPARADA a versão ATUAL do meu projeto. E eu recomendo utiliza-la, comparada ao DXP, não em questão de QUANTIDADE de sistemas, mas sim em QUALIDADE ela é muito melhor. Bom, digo isso já que fui eu que desenvolvi eles (sem querer me gabar), e já mexi muito no DXP então eu posso afirmar isso. Nada, espero que gostem haha
    1 ponto
  17. Mano, eu fiz a spell aqui, tem certeza que você quem fez essa sprite do Magmortar com os Flamethrowers? Eu achei em um client essa sprite ontem... Gif da Spell funcionando
    1 ponto
  18. ferreira998

    [8.60+] Rutted Stone Tile

    Rutted Stone Tile Imagem: RME/data/versão/grounds.xml Antes da linha: </materials> Adicione: <brush name="Rutted Stone Tile" type="ground" server_lookid="12234" z-order="5000"> <item id="12234" chance="25"/> <item id="12235" chance="24"/> <item id="12236" chance="23"/> <item id="12237" chance="22"/> <border align="outer" id="559"/> <border align="inner" to="none" id="0"/> </brush> RME/Data/10.31/borders.xml <border id="559"> -- Rutted Stone Tile Willian -- <borderitem edge="n" item="12255"/> <borderitem edge="e" item="12256"/> <borderitem edge="s" item="12254"/> <borderitem edge="w" item="12257"/> <borderitem edge="cnw" item="12264"/> <borderitem edge="cne" item="12265"/> <borderitem edge="csw" item="12263"/> <borderitem edge="cse" item="12262"/> <borderitem edge="dnw" item="12260"/> <borderitem edge="dne" item="12261"/> <borderitem edge="dsw" item="12259"/> <borderitem edge="dse" item="12258"/> </border> RME/Data/10.31/tilesets.xml Dê CTRL + F e digite <tileset name="Cave">, em baixo de: <terrain> adicione: <brush name="Rutted Stone Tile"/> Se Gostou deixe aquele like . Créditos : William Ferreira
    1 ponto
  19. disso

    [8.60+] Rutted Stone Tile

    Eu quando vejo algo que nunca ví, sempre entro pra ver a descrição do conteudo. pena ai não ter explicando pra que serve isso .
    1 ponto
  20. Hi im Mell

    Voltei haha

    SAJKSJAJ BORA
    1 ponto
  21. bianco001

    Voltei haha

    vamos divulgar nosso relacionamento serio aqui no xtibia <3
    1 ponto
  22. Hi im Mell

    Voltei haha

    Bem vindo de volta mano! <3
    1 ponto
  23. Bruno

    [0.36~0.4] Slot Cassino

    Anderson e suas contas bizarras kkkkk Bom saber que ainda está ativo, curti a ideia. Parabéns!
    1 ponto
  24. Night Wolf

    [0.36~0.4] Slot Cassino

    a idéia não é dar dinheiro de graça e quebrar a economia do server. É ser um jogo de azar, sem falar que há diversas maneiras de lucrar em cassinos. Uma das técnicas é sempre apostar o dobro quando perder: aposto 100 gps - se eu ganho, ganho 200 gps (100 gps de lucro) se eu perco, aposto 200 gps - se eu ganho ganho 400 gps (100 gps de lucro) se eu perco, aposto 400 gps - se eu ganho, ganho 800 gps (100 gps de lucro) . . . se eu perco, aposto 2 * a antiga aposta, se eu ganho, ganho 4 * a antiga aposta (4 * antiga aposta - todas as apostas anteriores de lucro). PS: Sem falar que sua conta tá errada, vc ganha com 3 X ou 3 O, logo não seria 12,5%. 1 slot = qlqer coisa. 2 slot = tem que ser igual ao primeiro (50%) 3 slot = tem que ser igual ao primeiro (50%). A chance total é 0.5 * 0.5 que é 0.25, ou 25%.
    1 ponto
  25. Tu certamente criou o script no linux, ai ele encheu de lixo de caracter invalido, roda esse comando aqui pra limpar: sed -i -e 's/\r$//' restarter.sh
    1 ponto
  26. FireShok

    [Download] Pokémon Light (Com level)

    se e versao antiga nem vale muito apena investir nela , o dxp ainda continua sendo o melhor para min e mais atualizado , mas isso e minha opiniao nao levem ao lado negativo.
    1 ponto
  27. E muito simples, é basicamente um shellscript que tu roda um loop infinito chamando o server, ele nao vai abrir varios servers porque ele so passa pra outra iteração quando o server fecha # restarter.sh #!/bin/bashwhile true; do ./theforgottenserver; done # ./restarter.sh&
    1 ponto
  28. Boa ideia, vou fazer a sprite do arbusto queimado! Vai ficar mais realista, aquele efeito do ember é para os pokemons de fogo, o Farfetch'd por exemplo, lança o "boomerang" dele p/ cortar a distância EDITED: Fiz aqui a sugestão do @Caronte, olhem como ficou
    1 ponto
  29. Então acho que o @dalvorsn vai poder lhe ajudar melhor que eu, pois os métodos que eu estou falando são meio que gambiarras, porque não são soluções muito boas de usar. o onMoveItem deixa brecha para a função addItem entrar dentro da bag, pois a função do onMoveItem é para quando alguém troca a posição do item, seja no slot ou seja no chão. A minha solução era ver a posição do item, pois até mesmo nos slots o item tem posição, assim você poderia permitir que o item fosse adicionado só na primeira bag, mas mesmo assim se o player colocasse a bag no slot da bag poderia burlar, mas tem como você verificar o nome/id da bag antes de adicionar, é só usar uns ifs, mas criar um script para fazer isso toda vez, não sei se vai sobrecarregar seu ot, mas vai ajudar a não ficar organizado como tem que ser. Mas também não sei se alterar a função addItem seria inteligente também.
    1 ponto
  30. Caronte

    [Arquivado]Tibia Harry Potter

    É , eu acho que os OTservers que o pessoal cria fora pokemon e dbz são muito cagados (uma parte dos poke e dbz são cagados mesmo), é difícil ver um OTserver promissor progredir, eu tinha visto umas sprites de hp uma vez, mas nunca mais vi o projeto. As sprites tavam ficando legais Verdade, não tinha pensado nisso realmente se formos aprofundar nesse npc seria interessante fazer desse jeito, quanto mais diferencial melhor! Obrigado, apesar que o que falta hoje nem é só criatividade, mas também compromisso, as pessoas vão fazer otserver só para zuar, não pensam que podem ganhar alguma coisa mais que entretenimento fazendo o OTServer.
    1 ponto
  31. Ah desculpe e obrigado! Muito tempo sem frequentar o fórum e não tinha conhecimento sobre.
    1 ponto
  32. Complicado brow, geralmente essa função adiciona com a flag no_limit, isso fode com o __queryAdd, bypassa um monte de verificação x= Qual distro tu ta usando?
    1 ponto
  33. Drakopoulos

    World of Piece v2 Completo

    Está funcionando sim http://i.imgur.com/psFHIH9.gifv Para compilar o servidor eu uso o Dev-Cpp e pro client o CodeBlocks
    1 ponto
  34. UP é considerado flood. Use a opção que possui um sino, no seu tópico.
    1 ponto
  35. dalvorsn

    Lib NetworkMessage

    NetworkMessage Autor: DalvoDescrição: Lib direcionada a manipulação de bytes, feita com intuito de auxiliar nos opcodes para otclient, porém tem uma vasta gama de utilidades. NetworkMessage = {}function NetworkMessage.create(pdata) -- NetworkMessage.create([pdata]) -- @params -- 'pdata': string -- Instancia a classe NetworkMessage, se pdata é fornecido é definido o atributo data igual a pdata e size igual a #pdata return setmetatable({ data = pdata or "", size = pdata and #pdata or 0, pos = 1}, { __index = NetworkMessage })endfunction NetworkMessage:reset() -- NetworkMessage.reset(self) -- self:reset() -- @params -- 'self': table -- Reinicia os atributos do objeto self.data = "" self.size = 0 self.pos = 1endfunction NetworkMessage:setBuffer(buffer) -- NetworkMessage.setBuffer(self, buffer) -- self:setBuffer(buffer) -- @params -- 'self': table -- 'buffer': string -- Define 'buffer' como atributo data if not type(buffer) == "string" then return false end self.data = buffer self.size = #buffer self.pos = 1endfunction NetworkMessage:getBuffer() -- NetworkMessage.getBuffer(self) -- self:getBuffer() -- @params -- 'self': table -- Retorna o atributo 'data' return self.dataendfunction NetworkMessage:getSize() -- NetworkMessage.getSize(self) -- self:getSize() -- @params -- 'self': table -- Retorna o atributo 'size' return self.sizeendfunction NetworkMessage:getRanges(byteCount, signed) -- NetworkMessage.getRanges(self, byteCount, signed) -- self:getRanges(byteCount, signed) -- @params -- 'self': table -- 'byteCount': number -- 'signed': boolean -- Função interna usada para calcular o limite do valor de 'byteCount' bytes, se signed é true reajusta seu valor para signed local min, max = 0, ((256^byteCount) -1) if(signed)then max = math.floor(max/2) min = -max-1 end return -min, maxendfunction NetworkMessage:canRead(size) -- NetworkMessage.canRead(self, size) -- self:canRead(size) -- @params -- 'self': table -- 'size': number -- Verifica se pode ser lido o numero 'size' de bytes, retorna um booleano return (self.pos + size) > (self.size + 1)endfunction NetworkMessage:readBytes(byteCount, signed) -- NetworkMessage.readBytes(self, byteCount, signed) -- self:readBytes(byteCount, signed) -- @params -- 'self': table -- 'byteCount': number -- 'signed': boolean -- Tenta ler 'byteCount' numero de bytes, retorna o valor numerico dos bytes -- se possivel a leitura, e false se não. Se signed é true reajusta valor para signed if self:canRead(byteCount) then return false end local min, _ = self:getRanges(byteCount, signed) local value = 0 for byte = 1, byteCount do value = value + ( self.data:byte(self.pos) * (256^(byte-1)) ) self.pos = self.pos + 1 end return value + minendfunction NetworkMessage:addBytes(value, count, signed) -- NetworkMessage.addBytes(self, value, count, signed) -- self:addBytes(value, count, signed) -- @params -- 'self': table -- 'value': number -- 'count':number -- 'signed':boolean -- Tenta escrever 'value' em 'count' bytes, se 'value' for maior que o numero de bytes -- suporta retorna false. Se signed é true reajusta valor para signed if signed then value = value * 2 end if value >= (256^count) then return false end for byte = count, 1, -1 do local power = (256 ^ (byte-1)) self.data = self.data .. string.char( math.floor(value/power) ) value = value % power end self.size = self.size + count self.pos = self.pos + count return trueend-- Metodos para pegar valoresfunction NetworkMessage:getU8() return self:readBytes(1, false)endfunction NetworkMessage:getU16() return self:readBytes(2, false)endfunction NetworkMessage:getU32() return self:readBytes(4, false)endfunction NetworkMessage:getU64() return self:readBytes(8, false)endfunction NetworkMessage:getI8() return self:readBytes(1, true)endfunction NetworkMessage:getI16() return self:readBytes(2, true)endfunction NetworkMessage:getI32() return self:readBytes(4, true)endfunction NetworkMessage:getI64() return self:readBytes(8, true)end-- Metodos para adição de valoresfunction NetworkMessage:addU8(value) return self:addBytes(value, 1, false)endfunction NetworkMessage:addU16(value) return self:addBytes(value, 2, false)endfunction NetworkMessage:addU32(value) return self:addBytes(value, 4, false)endfunction NetworkMessage:addU64(value) return self:addBytes(value, 8, false)endfunction NetworkMessage:addI8(value) return self:addBytes(value, 1, true)endfunction NetworkMessage:addI16(value) return self:addBytes(value, 2, true)endfunction NetworkMessage:addI32(value) return self:addBytes(value, 4, true)endfunction NetworkMessage:addI64(value) return self:addBytes(value, 8, true)endfunction NetworkMessage:addString(str) -- NetworkMessage.addString(self, str) -- self:addString(str) -- @params -- 'self': table -- 'str': string -- Tenta adicionar 'str', se o tamanho supera dois bytes, retorna false if not self:addU16(#str) then return false end self.data = self.data .. str self.size = self.size + #str self.pos = self.pos + #str return trueendfunction NetworkMessage:getString() -- NetworkMessage.getString(self) -- self:getString() -- @params -- 'self': table -- Tenta ler a string e retorna-la em caso de sucesso, se falho retorna false local size = self:getU16() if not (size and self:canRead(size)) then return false end local str = "" for byte=0, size-1 do str = str .. string.char(self.data:byte(self.pos + byte)) end self.pos = self.pos + size return strend Link da lib
    1 ponto
  36. Administrador

    [Arquivado]Tibia Harry Potter

    Idéias/tópico muito bons. E da pra aproveitar muita coisa do tibia em um projeto como este.
    1 ponto
  37. Administrador

    SHOWOFF

    A dica é praticar amigo, você já está se e expressando claramente no mapa, agora pratique, pratique e pratique. Veja outros mapas e tente copiar, faça temas diferentes, arrisque-se.
    1 ponto
  38. BrunooMaciell

    [Arquivado]Tibia Harry Potter

    Bacana as ideias porem o 1 acho que seria melhor ter um npc task como vc disse porem o treinamento podia ter um X level 1 e ter uma quest pra ganha a scroll da magia algo do tipo pra depois ele desbloquia o npc contendo nele uma linha de tasks como se fosse algo pra aprimorar a magia! 1 - quest pra ele ganha uma scroll algo do tipo(Desbloqueio da magia) 2 - Npc(Task) pro aprimoramento da magia porem contando um X level acho que ficaria melhor ^^ mais em si boas ideias!!
    1 ponto
  39. Deadpool

    [Arquivado]Tibia Harry Potter

    Bem, são ótimas ideias. Eu particulamente gostei. Só falta uma alma que goste de HP, aparecer e vê o que desenrola, seguindo seus pensamentos. Eu não gosto de tanto de HP, se não, iria tentar produzir algo, nem que fosse pra disponibilizar para a comunidade.
    1 ponto
  40. Heeey Carontee!! E as aulas, como estão? Huahuahua, tenho estudado bastante Lua! ( suas primeiras aulas abriram minha mente! ) Espero que esteja bem! Abraçoos
    1 ponto
  41. Caronte

    Maratona de Projetos - Pokemon Light

    Algumas coisas ficaram simples mas criativas e outras ficaram um pouco mais trabalhosas. O Cut a distância deveria ter outra sprite, como uma arvore queimada ou algo assim, dependendo de que tipo de pokemon que cortou.
    1 ponto
  42. Administrador

    Procuro um Mapa

    Caro membro, seu tópico foi movido de Notícias e Debates > Otserv > Formação de Equipes para Otserv > Suporte Otserv. Procure ler a descrição das seções antes de criar um tópico, pois criando um tópico na área errada, além de receber um alerta chatinho como este, você pode não obter respostas por causa da incoerência do tópico com a seção em que este foi publicado. Se tiver dúvidas a respeito de postagens, mande uma mensagem pra mim que eu irei orientá-lo. Atenciosamente, Xtibia.com.
    1 ponto
  43. Global FULL [10.94] V1.0 - Task system - Market System 100% - Bank System - No Map bugs - NewVenore 100% - New AB 100% - Browse Field OK - Pythius The Rotten Quest 100% - Trainer Offline 100% - Trainer Online 100% - Todas mounts - Chayenne Realm Quest - Taming system 100% - Database completa - Warzone 1, 2 e 3 - Wrath of Emperor Quest - War System 100% - Gray Beach City 100% - Monstros 100% - Roshamull Completa100% (com subsolos) - Oramond Full - Zao 100% - POI 100% - Npc Addoner (optional) Download/Scan SCAN DOWNLOAD Global FULL 10.94 - V1.0 - by Exhon.rar
    1 ponto
  44. Se você usa global 10.96 ele já vem instalado no seu servidor, se encontra em globalevents/scripts/serversave.lua, caso não tenha estarei deixando ele aqui. local shutdownAtServerSave = truelocal cleanMapAtServerSave = truelocal function serverSave() if shutdownAtServerSave then Game.setGameState(GAME_STATE_SHUTDOWN) else Game.setGameState(GAME_STATE_NORMAL) end if cleanMapAtServerSave then cleanMap() end saveServer()endlocal function secondServerSaveWarning() Game.broadcastMessage('Server is saving game in one minute. Please go to a safe place.', MESSAGE_STATUS_WARNING) addEvent(serverSave, 60000)endlocal function firstServerSaveWarning() Game.broadcastMessage('Server is saving game in 3 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING) addEvent(secondServerSaveWarning, 120000)endfunction onTime(interval) Game.broadcastMessage('Server is saving game in 5 minutes. Please go to a safe place.', MESSAGE_STATUS_WARNING) Game.setGameState(GAME_STATE_STARTUP) addEvent(firstServerSaveWarning, 120000) return not shutdownAtServerSaveend tag <globalevent name="ServerSave" time="04:55:00" script="serversave.lua" /> PS: Sempre coloque 5 minutos antes do horário que você quer que o server caia, se quer que caia as 14:00, coloque 13:55.
    1 ponto
  45. Conteudo Retirado.
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...