Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/06/16 em todas áreas
-
Bom tarde galera, venho por meio deste tópico, anuncar que, estou terminando de desenvolver um ATS derivado de Tibia.. Um pokémon server.. Bom, vou postar ShowOff, apenas dos sistemas no qual tem no servidor.. Irei resolvendo os Bugs, e então, quando achar que está bom, liberarei o Download do servidor, junto com as devidas sources. Eu tambem, colocarei uma lista do que foi feito no servidor.. Desde bugs, até novos sistemas. enfim.. Bom, como todos sabem, esse servidor contem os sistemas básicos.. Mas ainda não parei para mexer nos sistemas mais simples.. Changelog: Adicionado nas sources: - DoCreatureSetNick - AutoStacking - Modificado a função AddItem (estava bugando por causa do autostacking..) - Adicionado todas as races pokémons. - Modificado a cor da fala dos groups nos channels. - Adicionado Passive e Agressive, igual o PokeXGames. - Adicionado OnSpawn - Adicionado Pokémon Ghost System - Adicionado GetCreaturePathTo - Adicionado CastSpell Adicionado no servidor: - Novo NPC de mudança de Nick do pokémon; - Peguei função do PDA para alterar nomes dos pokémons shinys, e deixado normal. Ex: Antes: Shiny Tangela. Agora: Tangela. - Adptado/Adicionado sistema de vantagem e desvantagem do PDA. - Copiei as passives do PDA e adpatei para o servidor. - Copiei sistema de vantagem e desvantagem do PDA e adpatei para o servidor. - Adptado/Adicionado o Clan System do PDA. - Sistema de Icon (acabei de adicionar só adicionei 1 icon pra testar mesmo) ^^ - Retirados o S no final dos pokémons selvagens. - Ao morrer, aparece descrição no corpse, indicando o monstro que matou e o nome de quem morreu. - Sistemas basicos (surf, ride, blink etc.) por order Mudanças nas configurações do servidor: -Adicionar/fazer moves, basta fazer igual o PDA. Porem, se você baixar um servidor PDA e pegar a script de "pokémon moves" da LIB, e jogar nesse servidor, não irá funcionar ^^ -Adicionar pokémons, tambem é só adicionar como se fosse um PDA. -Adicionarfazer novas evoluções igual o PDA. -Adicionar/fazer novas passives igual o PDA. Otclient: Peguei OTClient na versão 0.6.5; - Fiz a barrinha de moves funcionar.. - Não vou adicionar pokebar - Transparency funcionando Obs: O Old cliente ainda está usavel, pois não extendi o cliente, nem pretendo extender.. Faltando/Em andamento: Arrumar alguns moves Refazer nurse joy Configurar todos os pokémons e balancear Configurar o Clan Sistema Configurar Spells Confgurar sistema de ovos Retirar uns duplicad Itens Arrumar os sistemas basicos(hoje ainda deixo 100%) OBSERVAÇÕES: Eu não irei postar ainda, pois o mesmo está em andamento, tem muitos bugs na qual estou resolvendo. ***Se alguem quiser me ajudar, basta deixar seu contato. ** Não me precionem plis. * Sou lindo - Irei atualizar todos os dias, e colocar prints e atualizações e modificar o nome do topico com a data de atualização. - NÃO irei mexer no mapa, se alguma alma quiser ajudar, pois bem, deixe seu contato e.e - NÃO tem level sistema. e NÃO é PDA. CREDITOS: Zipter OrochiElf Arkz Elwyn GabrielTxu Sobre os creditos, *Eu peguei um ou mais sistemas, alguns destes me tiraram duvidas e sou grato*. PRINTS: Estou desenvolvendo esse servidor exclusivamente para o XTIBIA, e tambem porque quero ver a galera sair da mermisse do PDA..Durante muito tempo, vi gente criando topicos, pra geral juntar e fazer os sistemas do PDA, ou fazer um servidor que chegue no rastro do PDA.. Então, se alguem quiser me ajudar.. Basta me comunicar.. OBS: Sempre verifiquem as atualizações abaixo, que é onde eu irei editar sempre e postar atualizações, abram os spoilers. ATUALIZAÇÕES: 11/10/2015 00:16 Parei para mexer no Design do Client. novo entergame: Atualização *11/10/2015* Atualização *12/10/2015* *Vou upar os Prints das atualizações e colocar no tópico*2 pontos
-
Sistema de pokemons iniciais - SHOW OFF
Administrador e um outro reagiu a Lordbaxx por um tópico no fórum
Bom gente este sistema foi desenvolvido propriamente para o servidor Pokemon Imperium, porém devido á chegada de novas ideias o sistema acabou sendo deixado de lado e aqui está a demonstração de seu uso. Provavelmente postarei este sistema logo mais. O DESIGN UTILIZADO FOI O TESTE ENTÃO NÃO REPAREM2 pontos -
[Tutorial] Mudar miniwidow
Rafaelvn10 reagiu a Deadpool por um tópico no fórum
Boa tarde galera, eu mostrei no meu showoff a tela do meu cliente, que pretendo liberar para a galera, porem, recebi mensagens de como fazer aquilo, e como eu vou postar o cliente com o module, resolvi fazer esse tutorial e liberar o module.. Esse module é para mudar a Game Window, para que não conhece, veja um print: Então, vou liberar o entergame já feito, e também vou ensinar como modificar. *Download no fim do topico*, vamos ao tutorial: Tenha em mente a imagem, e então, veja o tamanho dela, feito isso, va no entergame.lua e procure a linha que seta o IP do seu servidor, va está assim: EnterGame.setUniqueServer("127.0.0.1", 7877, 854, 361, 356) Vou explicar a linha toda para que entendam: 127.0.0.1 = IP do server 7877 = port do servidor, no meu caso ta 7877, porque é a porta Linnux. 854 = Versão do cliente/servidor. 361 = Tamanho da game window 356 = largura da game window em outras palavras, 361 e 356 é onde vamos modificar.. Você pega as dimensões da imagem, e coloca no lugar dos mesmos(361 e 356).. Feito isso, salve o entergame.lua e feche. Agora vamos editar a OTUI.. Abra o Entergame.otui e na primeira linha temos isso: EnterGameWindow < MainWindow !text: tr('Enter Game') size: 236 274 Bom, vamos modificar.. Retire essa linha: !text: tr('Enter Game') Nessa função modifique esse tamanho "236 274" para as dimensões da imagem *no caso seria (361 e 356): Antes: size: 236 274 Agora: size: 361 356 Adicione isto em baixo dessa função acima: image-source: enter.png *enter.png é a imagem que estamos usando para colocar no game window, a mesma que a gente pegou as dimensões e modificamos no entergame.lua*, *ela tem que está dentro da pasta onde se localiza o entergame.lua*. pronto, seu cliente já vai ler sua nova window com imagem. *Terá que mudar os lugares de onde coloca senha e conta* É bem simples, basta ir na OTUI e mudar os margin-top* DOWNLOAD ENTERGAME COM NOVA WINDOW: Download OBS: Deixei uns 3 Entergame dentro, se vocês quiserem usar como base, não me importo.. POR FAVOR, NÃO POSTE ESSE TUTORIAL EM OUTRO FÓRUM SEM OS DEVIDOS CRÉDITOS. FUNCIONA EM QUALQUER VERSÃO DO OTCLIENT. OBS: se vocês não souberem editar o entergame, irá bugar. É melhor baixar o que estou disponizilizando, e então mudar somente as dimensões..1 ponto -
[TFS 0.3.6] Player::canWalkthrough
Scizorgame reagiu a Lordbaxx por um tópico no fórum
Bom muita gente procura esse código, e ao olhar na internet só vi disponível em um fórum porém incompleto então decidi pegar o código e postá-lo com oque faltava. Esse código é utilizado para que um player passe por outro player evitando tantas reclamações por "trapar" caminho ou algo parecido, vamos lá! Ah mais uma coisa, para funcionar é preciso que o servidor esteja em NON-PVP. OBS: Testado em tfs 0.3.6 somente! Player.cpp procure por: bool Player::canWalkthrough(const Creature* creature) const Substitua todo o código por: bool Player::canWalkthrough(const Creature* creature) const { if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() || (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster()))) return true; const Player* player = creature->getPlayer(); if(!player) return false; if((((g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() && player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges) || player->getAccess() <= getAccess())) return true; return (player->isGhost() && getGhostAccess() < player->getGhostAccess()) || (isGhost() && getGhostAccess() > player->getGhostAccess()); } Depois vá em const.h e procure por: PlayerCustomFlag_CanWearAllAddons, //2^23 = 8388608 E em baixo coloque: PlayerCustomFlag_IsWalkable, //2^24 = 16777216 PlayerCustomFlag_CanWalkthrough, //2^25 = 33554433 Provavelmente em muitas sources do tfs 0.3.6, dê não exatamente um erro mais um aviso no player.cpp na função: void Player::updateInventoryWeight() Se o aviso ocorrer substitua a função citada acima por essa: void Player::updateInventoryWeight() { inventoryWeight = 0.00; if(!hasFlag(PlayerFlag_HasInfiniteCapacity)){ for(int i = SLOT_FIRST; i < SLOT_LAST; ++i){ Item* item = getInventoryItem((slots_t)i); if(item){ inventoryWeight += item->getWeight(); } } } } Só utilize o código acima se ocorrer o "warning/aviso" sobre a função. Abraço. Os créditos ficam até o momento só ao Bruno Minervino e a fireelement. Qualquer outro envolvido será creditado.1 ponto -
BOAAS galera!!! Então, baixei um Gesior algum tempo atrás(não lembro onde), e vi que faltavam coisas interessantes nele, então resolvi tentar adicionar(tudo isso esse ano kkk) e CONSEGUI! Não quero enrolar, então vamos ao que interessa: Bom, algumas imagens: Latest News com Featured Article: Menu editado: Who is online? MOSTRANDO OUTFIT COM COR ATUAL!!!: Characters mostrando OUTFIT(COR ATUAL DO PLAYER), HP, MP, EXP, LEVEL e ITEMS!!!: Top guilds: Guild Wars: Downloads arrumados: Battlefield: Trade OFF: Zombie Event: Bom galera, eu adicionei: - Zombie Event page - Battlefield page - Trade Off - Arrumei a page Downloads - Featured Article - Top Guilds page - Guild Wars page - Modifiquei Who is online? e characters.php(outfit, mp, hp, exp, level) - Advanced Admin Panel - Background diferente - Menus novos - Arrumei o sistema de enviar e-mails no cadastro e lost account(falta apenas configurar) Download: https://github.com/s3kk/Gesior/archive/master.zip Scan: https://www.virustotal.com/pt/file/571b26e823c8b209daaf603313bee8d0a7dcfb962747e0c19f4f47dd42781e42/analysis/1452061171/ Database TOTALMENTE LIMPA E COMPATÍVEL: https://github.com/s3kk/Heromassa/blob/master/schemas/war_cast_mysql(gesior).sql Bugs: Obs.: Na página Downloads, se você possuir client próprio, edite em downloads.php o link para download do mesmo! Compátivel com OTS 8.6 e TFS 0.4. Créditos:1 ponto
-
Olá Xtibia.com, Estou aqui para-lhes disponibilizar em torno de 120 Sprites BEM desejadas por todos da autoria do Pokexgames,Motivo da liberação? R:Sou uns (Se não o unico) que traz Sprites da Pokexgames,então resolvi traze-las para vocês. Créditos:Kaleudd(Eu): pela descompilação e liberação. Pokexgames:Pela Criação de todas Spr presente dentro desse pacote. Caso postar em algum outro lugar,postar os créditos a min e a pxg,Obg =) O que contém nesse pacote? R:Corpos,Looktypes e alguns Itens do Halloween da pxg. Umas prints de alguns pokemons e corpses. Download + Scan: Gostou Rep+,quem sabe eu traga mais quando sair novas?1 ponto
-
Olá Bem vindo ao tópico de Sprites que eu estarei fazendo (Não tenho projeto confirmado mais se fica bom quem sabe) Não liberarei para uso por inquanto depende se o projeto der certo ou não! As sprites serão TOPDOWN Bom em breve as sprites!1 ponto
-
Sim, só copiar a tabela do monstro, e colocar no final, com uma vírgula separando: {["rat"] = {level = 10, mana = 20}, é só colocar dentro da tabela summons. vou editar um negócio no meu post, é que o script só vai funcionar se o parametro estiver em minúsculo. quando eu editar você substitui lá.1 ponto
-
[OTClient] Reposição no nome das Criaturas e Mudança de Cor no Nome
Luga03 reagiu a NightmareStalker por um tópico no fórum
Eu ja atualizei o tópico, você tem que por o seguinte código dentro do Creature.h também, lá no começo do código junto com os includes #include "creaturePerfectInfo.h"1 ponto -
local storage = 79845 --storage para o exhaustion local tempo = 5 --em segundos local monsters = { [1] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 2 }, [2] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [5] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 4 }, [6] = {summons = {["rat"] = {level = 10, mana = 20}, ["dragon"] = {level = 100, mana = 200} }, maxSummons = 6 }, } function onSay(cid, words, param, channel) if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, 22, "You are exhausted.") return true end --Player Status local playerpos = getPlayerPosition(cid) param = string.lower(param) for k, v in pairs(monsters[getPlayerVocation(cid)].summons) do if (param == k)then if (monsters[getPlayerVocation(cid)]) and #getCreatureSummons(cid) >= monsters[getPlayerVocation(cid)].maxSummons then return doPlayerSendCancel(cid, "Você já tem sumons demais.") else --Summon if getPlayerLevel(cid) < v.level then return doPlayerSendCancel(cid, "Level insuficiente.") elseif getCreatureMana(cid) < k.mana then return doPlayerSendCancel(cid, "Mana insuficiente.") end doConvinceCreature(cid, doCreateMonster(param, playerpos)) doPlayerAddMana(cid, -k.mana, false) exhaustion.set(cid, storage, tempo) doSendMagicEffect(playerpos, 2) return true end else doPlayerSendCancel(cid, "You can't summon this monster.") end end return true end1 ponto
-
Pokemon Dash Evolution ~> Projeto Comunitário <~
Drakopoulos reagiu a Refe por um tópico no fórum
Uma pre-view da update:1 ponto -
[Encerrado] Target Igual PXG
JairKevick reagiu a Developer Berg por um tópico no fórum
http://www.xtibia.com/forum/topic/238641-erro-no-cmake-288-ao-compilar-otclient/ Up1 ponto -
manda eles dao order no char deles1 ponto
-
Faz assim vai na source src/client/creature.cpp e troca int Creature::getStepDuration(bool ignoreDiagonal, Otc::Direction dir) { int speed = m_speed; if(speed < 1) return 0; por int Creature::getStepDuration(bool ignoreDiagonal, Otc::Direction dir) { int speed = m_speed; if(speed < 1) speed = 150; se nao der certo vc tbm tenta mudar void Creature::setSpeed(uint16 speed) { uint16 oldSpeed = m_speed; m_speed = speed; // speed can change while walking (utani hur, paralyze, etc..) if(m_walking) nextWalkUpdate(); callLuaField("onSpeedChange", m_speed, oldSpeed); } por void Creature::setSpeed(uint16 speed) { if(speed < 1) speed = 150; uint16 oldSpeed = m_speed; m_speed = speed; // speed can change while walking (utani hur, paralyze, etc..) if(m_walking) nextWalkUpdate(); callLuaField("onSpeedChange", m_speed, oldSpeed); }1 ponto
-
Obrigado rs, sou fanático por pokemon e músicas eletrônicas ai achei essa. Abrç!1 ponto
-
[Resolvido] Pokémon Morre Depois De Percorrer Uma Longa Distancia
Vasto Lord X reagiu a klipstyle por uma questão
possui a source ? caso possua vá em creature.cpp e remova esse código.1 ponto -
Por quê o Tibia (CipSoft) nunca cresceu?
HeelNox reagiu a Piabeta Kun por um tópico no fórum
falar que o tibia nunca evoluiu ou cresceu eh tipo ignorar toda a histori tibiana, o tibia cresceu tnto que eu nao conseguiria jogar por exemplo um ot 8.6- pq falta coisas!1 ponto -
Que gambiarra de storage o que vei, cria a variavel level dentro da classe Monster, dai faz metodos get/set e faça também uma versao para lua, onde tu possa pegar e definir o level Quando eu fiz um sistema semelhatne a esse eu fiz o seguinte, modifiquei o read do xml do monster, pra colocar uma range de levels para x criatura, dai quando criava ela lia esses dados, fazia um math.random e definia o level ainda na instancia da classe.D Dai com a função lua de pegar o levle do monster, tu pode fazer inclusive as magias variando os damages de acordo com isso, fica bacana1 ponto
-
Me indique sites: Estudando LUA
felzan reagiu a MatheusGlad por uma questão
O certo é Lua não LUA. http://www.lua.org/about.html#name Links: http://lua-users.org/wiki/TutorialDirectory http://www.lua.org/manual/5.1/pt/manual.html1 ponto -
[TFS 0.3.6] Player::canWalkthrough
zNegativeX reagiu a Lordbaxx por um tópico no fórum
Para usar em modo pvp é bem simples ao invés de usar o primeiro código que citei acima, utilize este: bool Player::canWalkthrough(const Creature* creature) const { if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() || (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster()))) return true; const Player* player = creature->getPlayer(); if(!player) return false; if((((g_game.getWorldType() == WORLD_TYPE_PVP && player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() && player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges) || player->getAccess() <= getAccess())) return true; return (player->isGhost() && getGhostAccess() < player->getGhostAccess()) || (isGhost() && getGhostAccess() > player->getGhostAccess()); }1 ponto -
Base Otpokemon V1
Drakopoulos reagiu a Bluester por um tópico no fórum
Aqui está, só extrair e renomear ! Não esquece de olhar o login e senha do GOD no SQLite/MySQL ^^1 ponto -
[TFS 0.3.6] Player::canWalkthrough
zNegativeX reagiu a Lordbaxx por um tópico no fórum
Disponha.. Quanto aos sistemas citados, clãn system já tem no fórum, os demais eu posto outra hora, utilizando a função que o caotic postou para o Nick.1 ponto -
[TFS 0.3.6] Player::canWalkthrough
Storm Night reagiu a Lordbaxx por um tópico no fórum
Dá pra você utilizar a tag walkStack no id do tile no items.xml.. Exemplo: <attribute key="walkStack" value="0" /> Mas antes você precisa modificar mais algumas coisas nas sources: items.cpp procure: moveable = true; Troque por: moveable = walkStack = true; ainda em items.cpp procure: else if(tmpStrValue == "transformto") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.transformToFree = intValue; } Logo embaixo coloque: else if(tmpStrValue == "walkstack") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.walkStack = (intValue != 0); } items.h procure: lookThrough, troque por: lookThrough, walkStack, Na função canWalkThrough no player.cpp troque por: bool Player::canWalkthrough(const Creature* creature) const { if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() || (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster()))) return true; const Player* player = creature->getPlayer(); if(!player) return false; if((((g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() && player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground && Item::items[player->getTile()->ground->getID()].walkStack) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges) || player->getAccess() <= getAccess())) return true; return (player->isGhost() && getGhostAccess() < player->getGhostAccess()) || (isGhost() && getGhostAccess() > player->getGhostAccess()); }1 ponto