Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/21/18 em todas áreas

  1. 1 ponto
    Fala aí pessoal! Curse Tibia Server é um servidor para amantes de RPG, de rates baixas e onde a exploração é muito bem recompensada. Além disso, temos como foco fazer patchs frequentemente, sempre adicionando novos conteúdos e proporcionando novos desafios aos jogadores. Informações Gerais - A experiência é stagiada em torno de 5x até 1.5x. - O mapa é uma mistura de áreas e modificações próprias + global + partes de servidores que nunca foram lançados. - O servidor tem base na versão 9.6, mas adicionamos algumas criaturas e alguns itens de versões posteriores. Principais Mudanças - Em vez de poções recuperarem vida/mana instantaneamente, elas recuperam ao longo de 3 segundos. - O server tem Training Monk, porém, você só pode ficar neles durante 1 hora, para regenerar esse tempo é preciso caçar bastante. - Andar de barco é uma tarefa um pouco mais complexa, com um custo bastante elevado e algumas passagens precisando de uma pequena quest ou alguns itens. Vocações - 5 novas classes, além das existentes terem sido reformuladas. - Uma promoção a mais para cada classe. - Todas classes ganharam várias magias novas. - Uma das classes novas é o famoso Necromancer: Atributos Atributos são pontos escolhidos pelo jogador para melhorar o desempenho de seus personagens e desenvolvê-los de uma maneira pessoal. Eles também servem para poder conjurar algumas magias e fazer algumas interações com o mapa (Puxar uma alavanca emperrada exige força, por exemplo). Árvore de Skills A árvore de skills te permite distribuir pontos para liberar novas magias e personificar ainda mais seu personagem o deixando mais versátil de acordo com sua preferência. - Cada classe tem dois caminhos na árvore, cada um deles é voltado para uma jogabilidade diferente. - Quase todas magias são liberadas pela árvore. Prévia do Necromancer: Caminho da morte Caminho de summons Sistema de Raridade Todos equipamentos tem uma pequena chance de serem dropados como um item raro, épico ou lendário. - Quanto melhor a qualidade do item, melhor será os bônus, porém será mais difícil de encontrá-lo. Existem ainda alguns outros sistemas e as telas são mais um protótipo, mas acho que da pra ter uma ideia do objetivo do servidor. O que acham? Jogariam? Gostaria muito de ouvir críticas e opiniões! (:
  2. Magnus Task System 1.2

    KrzysiekTIBIA reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    Fala galera, pra quem não sabe eu fiz um novo task system pro meu servidor pessoal Empire e por isso decidi publicar a versão antiga dele já que não temos nenhuma intenção de usá-la mais. ele é muito similar a um sistema que eu já havia compartilhado aqui, só que pras versões 0.X. O que é: um npc que te dá pequenas missões de matar monstros, qnd você terminar ele te paga uma recompensa pré definida. O que ele tem de melhor comparado com a versão 0.4: Basicamente ele permite vc definir qualquer hierarquia entre as tasks, permite que tasks deem diversas formas de recompensas (isso era bem engessado no modelo antigo) porém ele não aceita tasks de coletar itens, nem tem dificuldades diferentes com premiações multiplicadas (ao menos não explicitamente). Aqui tá a hierarquia que ele segue atualmente. Ou seja, para fazer task de Tarantula você precisa fazer Rat, depois Spider e por fim Tarantula. O sistema é muito completo e eu vou postá-lo da exata forma que usávamos então prestem bastante atenção nos detalhes. Já aviso de antemão que eu não darei muito suporte aqui e que não irei explicar muita coisa, o sistema funciona e foi usado por uns 2 anos sem nenhum problema com o tfs original. crie um arquivo em data/lib chamado tasklib.lua e coloque isso dentro dele: Aqui temos todas as tasks e storages. Se você quiser adicionar recompensas novas vc só precisa fazer um elseif na função de getRewards. Siga o exemplo dos comentários para as rewards e se quiser todas as tasks liberadas sem precisar seguir uma ordem é só colocar needed = 0 para todas. Agora crie um arquivo em creaturescripts/scripts chamado killtasksystem.lua e coloque isso dentro dele: Tirando as mensagens, não acho que tenha nada que você possa editar aqui. Essa tabela racetypes eu coloquei pq queria fazer task de criaturas de um mesmo tipo: fire, undead, poison. Ele puxa esse valor de dentro do race definido no xml do monstro. (Veja a undead monsters como exemplo.) em creaturescripts.xml coloque: <event type="kill" name="tasksystem" script="killtasksystem.lua"/> E em creaturescripts/scripts/login.lua antes do ultimo return true: player:registerEvent("tasksystem") Agora criaremos o npc chamado tasksystem.xml na pasta data/npcs: E o script dele em data/npcs/scripts chamado tasksystem.lua: (sim, eu não sou criativo com nomes) Por fim insira essa talkaction aqui no seu server, ela serve para gerar um arquivo chamado orderedtask.html na pasta do seu servidor (a mesma do executavel) com o código html do sistema de task (sim, eu tenho preguiça de escrever as coisas no site) Coloque o nome que vc quiser e depois coloque a tag em talkactions.xml: <talkaction words="/generatehtml" script="nome que vc quiser.lua" /> Note que o arquivo pode levar um tempinho para aparecer, até pq ele tá percorrendo toda a tabela pegando todas as informações e criando um arquivo html disso, é um processo que pode levar alguns segundos. Se você quiser ser hackudo e pegar o html direto do meu site, seja livre: https://www.empirebr.com/tasks Bom uso, se tiver qualquer dúvida ou comentário ou sugestão diz aí.
  3. (Resolvido)New Pokemon Bar OTCLIENT

    Hadggar reagiu a chavoz por uma resposta no tópico

    1 ponto
    Oi galera! Primero que nada me disculpo mi portugués (traductor) Eu to creando isso: Mas eu nao consigo fazer que o "Health Bars" tenha funcao... eu ja crei um comando pra ver % de vida no pokemon do jogador Eu não tenho conhecimento suficiente da OTC para fazer isso. Me Pregunto sí alguien me entendio, y si es asi, por favor ayudeme.
  4. [10.35] Carlin Revamp 1.0

    pedro0226 reagiu a Cat por uma resposta no tópico

    1 ponto
    NOVO! Versão 10.98 Carlin Revamp 2.0! Olá pessoal, estou repostando esse mapa antigo, façam bom uso! (Mais imagens: http://www.tibiaking.com/forum/forums/topic/12386-daniel-mapping-art/?do=findComment&comment=225207 ) Download: Mediafire: http://www.mediafire.com/file/8fcf3jkomimvjiu/uMapinha+-+Carlore+[10.35]+(Daniel).rar TibiaKing: uMapinha - Carlore [10.35] (Daniel).rar Scan: https://www.virustotal.com/#/file/54110214a4491a65059fda793ebdb5c86c19ac23767e5719a18957d3620299d8/detection
  5. 1 ponto
    Particularmente eu jogaria e muito! Os sistemas que citou são os que sempre busquei em outros servidores. Tem previsão de BETA ou estão precisando de alguém pra testar? Parabéns pelo projeto e não desistam.
  6. Best Baiak Completo

    ernaix69 reagiu a Micheel15 por uma resposta no tópico

    1 ponto
    sim, mais essa distro TFS que você está usando está dando load nos items, você teria que ter a Source dessa Distro, para poder remover esse "LOAD" nos items na hora de compilar, aqui no forum , você axa tutoriais de como remover esse "LOAD" na Hora de compilar a distro ajudei ? REP +
  7. 1 ponto
    como corrigir bug da loteria executa 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;
  8. (Resolvido)Modificação de script

    xWhiteWolf reagiu a MaTTch por uma resposta no tópico

    1 ponto
  9. (Resolvido)Modificação de script

    xWhiteWolf reagiu a MaTTch por uma resposta no tópico

    1 ponto
    Em luascript.cpp, você adiciona no final do arquivo: no mesmo arquivo, procure por: luaL_register(m_luaState, "std", LuaInterface::luaStdTable); e abaixo dele adicione: Agora em luascript.h, procure por: static int32_t luaStdSHA512(lua_State* L); e abaixo adicione: Agora só compilar.
  10. Old Tibia tirando limite de 255 efeitos

    braianlomas reagiu a BrunoMaia por uma resposta no tópico

    1 ponto
    Foi testado no TheForgottenServer 0.3.6 no Tibia 8.54 Como o client já está modificado, precisamos modificar a parte do servidor que envia os dados para o client. Vamos modificar dois métodos, addMagicEffect e sendMagicEffect. Entre na sua source 0.3.6 Encontre o arquivo protocolgamer.cpp Você vai encontrar esse código void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint8_t type) { msg->AddByte(0x83); msg->AddPosition(pos); msg->AddByte(type + 1); } Percebeu esse parametro uint8_t type? Vamos modificar para uint16_t type. Mas isso não vai adiantar nada se o msg->AddByte(type + 1) continuar desse jeito... Modifique ele para msg->AddU16(type + 1). O código modificado deve ficar desse jeito void ProtocolGame::AddMagicEffect(NetworkMessage_ptr msg,const Position& pos, uint16_t type) { msg->AddByte(0x83); msg->AddPosition(pos); msg->AddU16(type + 1); } Você já deve ter pegado a lógica... Onde tiver um método addMagicEffect com o parametro uint8_t type, tem que trocar por uint16_t type, o mesmo serve para sendMagicEffect. Mas como sei que tem pessoas que não gostam de trabalhar um pouco, vamos continuar com os arquivos para modificar. No mesmo arquivo procure por esse código void ProtocolGame::sendMagicEffect(const Position& pos, uint8_t type) { if(type > MAGIC_EFFECT_LAST || !canSee(pos)) return; NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); AddMagicEffect(msg, pos, type); } } Temos alguém conhecido nos parametros, o uint8_t type, já sabemos o que devemos fazer, modifique ele para uint16_t type, Código deve está desse jeito void ProtocolGame::sendMagicEffect(const Position& pos, uint16_t type) { if(type > MAGIC_EFFECT_LAST || !canSee(pos)) return; NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); AddMagicEffect(msg, pos, type); } } As alterações desse arquivos terminaram, salva as alterações. Vamos para outro arquivo, o protocolgamer.h Procure por esse código void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint8_t type); Novamente troque o uint8_t type por uint16_t type Código devera ficar desse jeito void AddMagicEffect(NetworkMessage_ptr msg, const Position& pos, uint16_t type); Procure por esse código void sendMagicEffect(const Position& pos, uint8_t type); Troque o uint8_t type por uint16_t type Código devera ficar desse jeito void sendMagicEffect(const Position& pos, uint16_t type); Salve as alterações e vamos para o outro arquivo, está cançado de modificar os códigos? é assim mesmo, se quer alguma coisa tem que se esforçar por ela. Vamos para o arquivo game.cpp Procure por esses códigos void Game::addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode /* = false */) { if(ghostMode) return; const SpectatorVec& list = getSpectators(pos); addMagicEffect(list, pos, effect); } void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, bool ghostMode/* = false*/) { if(ghostMode) return; Player* player = NULL; for(SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) { if((player = (*it)->getPlayer())) player->sendMagicEffect(pos, effect); } } Troque os parametros uint8_t effect por uint16_t effect Dexando-os assim void Game::addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode /* = false */) { if(ghostMode) return; const SpectatorVec& list = getSpectators(pos); addMagicEffect(list, pos, effect); } void Game::addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, bool ghostMode/* = false*/) { if(ghostMode) return; Player* player = NULL; for(SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) { if((player = (*it)->getPlayer())) player->sendMagicEffect(pos, effect); } } Salve as alterações e vamos para o outro arquivo, game.h Procure por esse códigos, está ficando repetitivo, mas é assim mesmo void addMagicEffect(const Position& pos, uint8_t effect, bool ghostMode = false); void addMagicEffect(const SpectatorVec& list, const Position& pos, uint8_t effect, bool ghostMode = false); Troque o uint8_t effect por uint16_t effect Código tem que ficar desse jeito void addMagicEffect(const Position& pos, uint16_t effect, bool ghostMode = false); void addMagicEffect(const SpectatorVec& list, const Position& pos, uint16_t effect, bool ghostMode = false); Essa foi rápido, salve as alterações e vamos para o outro arquivo, player.h Procure por esse código void sendMagicEffect(const Position& pos, uint8_t type) const Troque por esse código void sendMagicEffect(const Position& pos, uint16_t type) const Salve as alterações, esse foi o último arquivo Agora compile! Uma coisa que você deve saber, se você tentar entrar com o client que não esteja esperando valores do tipo uint16 e algum efeito for executado, vai da um erro no client, não da para jogar... Vamos baixar o client modificado. Download cliente com as seguintes configurações. Port: 7171 IP: 127.0.0.1 Version: 8.54 Clique aqui para baixar esse cliente Virus total desse client Download cliente com as seguintes configurações. Port: 7272 IP: 127.0.0.1 Version: 8.54 Clique aqui para baixar esse cliente Virus total desse client Modificações dos clientes foram feitos por mim. Reporte qualquer bug que ocorrer. Esse tutorial ensina como tirar o limite de 255 efeitos do tibia, se você não tiver mais de 255 efeitos colocados em sua source, então coloque para testar, não precisa colocar agora, e se você quiser pode colocar depois e já deixar seu client preparado para suporta mais de 255 efeitos. Tutorial para adicionar efeitos na sua source. Não deixe de agradecer...
  11. NpC Travel

    samuelandrade45 reagiu a poko360 por uma resposta no tópico

    1 ponto
    ola, Crie um arquivo lua em (data/npc) e coloque isso <npc name="Capitain Johnny" script="data/npc/scripts/captain free.lua" walkinterval="1000" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="96" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. ! Eu posso te levar para {central}, {yalahar}, {carlin} Onde deseja ir?" /> <parameter key="message_decline" value="Vai custar |TOTALCOST| gold coins. Vai viajar?!"/> </parameters> </npc> Após fazer isso crie um arquivo em ( data/npc/script ) e cole isso: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) -- OTServ event handling functions start function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -- OTServ event handling functions end -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'central'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para central por 0 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = false, level = 1, cost = 0, destination = {x=114, y=12, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'yalahar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para yalahar por 0 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = false, level = 50000, cost = 0, destination = {x=2097, y=2749, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) -- Makes sure the npc reacts when you say hi, bye etc. npcHandler:addModule(FocusModule:new()) Cidade Position frase editavel caso queira adicionar mais uma cidade é só copiar essa linha e botar abaixo da outra -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'yalahar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para yalahar por 0 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = false, level = 50000, cost = 0, destination = {x=2097, y=2749, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})
  12. [Função] getPlayersInArea

    Storm reagiu a grafit por uma resposta no tópico

    1 ponto
    Função que retorna os players que estão numa área específica function getPlayersInArea(fromPos, toPos) -- function by amoeba13 playersInArea = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do totalArea = {x=x, y=y, z=z} playerz = getTopCreature(totalArea) if isPlayer(playerz.uid) then table.insert(playersInArea, playerz.uid) end end end end return playersInArea end Exemplo de uso: function onSay(cid, words, param, channel) local area = getPlayersInArea({x = 153, y = 50, z = 7}, {x = 156, y = 53, z = 7}) if area then for i = 1, (#area) do doTeleportThing(area[i], {x = 160, y = 51, z = 7}, false) end end return true end Créditos: Killua
  13. CreatureScript

    Warzinhuw reagiu a xWhiteWolf por uma resposta no tópico

    1 ponto
    depende doque vc quiser, onAdvance acho que serve só pra skills/ml/level, se fizer com storage vc vai ter que upar pra ele checar o storage e ativar o dano por segundo. Se fizer por login, o player ganha o storage mas só vai tomar o dano quando relogar. Eu faria por onThink que é uma função que fica se repetindo de 1 em 1 segundo a checagem mas dá pra vc mudar esse intervalo. aqui nesse link dá pra vc checar todos os callbacks de acordo com o tipo de script, espero que te ajude: http://www.tibiaking.com/forum/topic/8603-callbacks edit2: aqui eu vou te dar um exemplo de como utilizar por onThink (esse script eu fiz prum amigo mas ele me deu permissão pra postar) Funciona assim: vc clica no escudo da medusa e ativa essa skill (quem olhar pra medusa vira pedra), só que enquanto vc tiver utilizando a skill vc fica perdendo 20 de vida por segundo. Perceba que no meu caso eu não precisei mudar o interval, eu só coloquei interval e foi o tempo padrão, que é 1 segundo. Espero que vc consiga fazer esse script que vc quer, e se possível, compartilhe ele conosco! Seu server não vai deixar de ser original só porque outras pessoas irão utilizar um script feito por você, lembre-se disso.
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo