Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Yan Liima

    Hp e mana por porcentagem!

    Fala galera do Xtibia beleza? Alguns meses atrás tinha resolvido um tópico que o membro @julhinhuu tinha pedido Mana e Life por porcentagem para TFS 1.2 Como tem muita gente atrás desse code e não acha em nenhum lugar, resolvi adaptar para TFS 1.x e compartilhar com vocês! Estarei deixando também para as versões anteriores... TFS 1.X Em protocolgame.cpp procure por: msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max())); Troque por isto: if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) { msg.add<uint16_t>(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)); msg.add<uint16_t>(100); } else { msg.add<uint16_t>(0); msg.add<uint16_t>(0); } Depois procure por: msg.add<uint16_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA), std::numeric_limits<uint16_t>::max())); Troque por: if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) { msg.add<uint16_t>(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg.add<uint16_t>(100); } else { msg.add<uint16_t>(0); msg.add<uint16_t>(0); } Pronto depois é só compilar e ser feliz xD Testado em TFS 1.0/1.2 Para as versões anteriores aqui está: Agora inves de ser um número grande --> <-- Irá ser um número pequeno Não se preocupe, isso não altera o health nem a mana do jogador, apenas ficara mais fácil de saber se o player irá morrer sim ou não. Créditos: Yan Liima
    1 ponto
  2. Lordbaxx

    [TFS 0.3.6] Player::canWalkthrough

    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
  3. L3K0T

    Teleporte summon tfs 0.3.6

    TUTORIAL - TELEPORTE SUMMON Introdução: Fala pessoal, hoje vim aqui liberar um código para que futuros criadores de pokemon não usem GLOBALEVENTS ou MOVEMENTS para teleportar seus pokemons a distancia... hoje irei ensinar a você não usar mais esses scripts que aonde da maioria da vezes crash o servidores em WINDOWS em testes. Sobre o Sistema: Esse sistema tem a função de teleportar seu pokemon a certos sqm, tipo assim, você tem um pokemon e a distancia dele é 7 sqm, ao passar os 7 sqm ele teleporta para você, seja em qualquer lugar até de baixo da terra ou lugares super longe (Não se preocupe o problema do pokemon Morrer com source novas será removido e assim ele não vai morrer) Creature.cp Tutorial: Vá em sua source procure por creature.cpp e abra com algum editor de texto e ache: if(!summons.empty()) { std::list<Creature*>::iterator cit; std::list<Creature*> despawnList; for(cit = summons.begin(); cit != summons.end(); ++cit) { const Position pos = (*cit)->getPosition(); if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs(( newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30)) despawnList.push_back((*cit)); } for(cit = despawnList.begin(); cit != despawnList.end(); ++cit) g_game.removeCreature((*cit), true); } Mude para: /*if(!summons.empty()) { std::list<Creature*>::iterator cit; std::list<Creature*> despawnList; for(cit = summons.begin(); cit != summons.end(); ++cit) { const Position pos = (*cit)->getPosition(); if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs(( newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30)) despawnList.push_back((*cit)); } for(cit = despawnList.begin(); cit != despawnList.end(); ++cit) g_game.removeCreature((*cit), true); }*/ Agora salve ctrl+s e feche. Monster.cpp Tutorial: Agora procure por Monster.cpp e ache: void Monster::onThink(uint32_t interval) abaixo de: if(teleportToMaster && doTeleportToMaster()) teleportToMaster = false; coloque: if(getMaster()){ if(!Position::areInRange<6,6,0>(getPosition(), getMaster()->getPosition())) doTeleportToMaster(); } salve ctrl+s e revompila no modo rebuilde não esqueça de habilitar as opções em config.lua -- Summons maxPlayerSummons = 1 teleportAllSummons = true teleportPlayerSummons = true lembre se de remover qualquer scripts que teleporta seu pokemon a distancia. Créditos: By L3K0T
    1 ponto
  4. Administrador

    Xtibia recomenda: poke force

    Fala galera. Você que está sem nada pra fazer e curte jogar um poketibia, não pode perder tempo. Crie uma conta no pokeforce.com. Nós recomendamos este servidor que tem grande capacidade para ser diferente dos outros. Confira algumas informações: Geral Up Regular. Sem lag. Torneios semanais. Fly, ride, surf e teleport FREE. Outland FREE. Novos continentes e ilhas. Novo sistema de clans e shiny exclusivo para cada um. Shinys aleatórios espalhados pelo mapa. Shinys fixo espalhados pelo mapa. Novos sistemas adicionados. Novas outfits. EXP Porcentagem de EXP: 100% Porcentagem de exp perdida com bless: 50% Chance de catch das balls: Poke Ball: 2x Great Ball: 4x Saffari Ball: 5x Super Ball: 7x Ultra Ball: 10x Cadastre-se Aqui Baixe o cliente Aqui E divirta-se !
    1 ponto
  5. Luga03

    Task System 2016

    Ele já tem isso de ganhar XP '-' Só configurar na tabela, e isso de 4 NPC's é só criar um novo NPC.xml e um novo .lua e modificar as tabelas ai funfa normal, mas na parte do creaturescripts coloca uma tabela com todos, TODOS os monstros configurados!
    1 ponto
  6. Poccnn

    [Duvida] Biblioteca OS

    Explicação bem superficial: Os.date, te retorna uma tabela ou uma string contendo a data requerida. Esse número grande, seria o numero da data que é o que os.time faz. Nesse caso os caracteres "*t", fazem com que retorne uma tabela. Nesse outro caso, ele retorna uma string formatada (dia/mes/ano). Lembrando que esse numero grande é facultativo caso você queira saber a data atual. Se você quiser saber uma data específica, deve ser inserido o valor dele no lugar desse numero grande. Os.time, gera esse numero grande, que nada mais é do que a data contada em segundos. Os.clock, gera o tempo em que o programa usou de cpu, basicamente seria o tempo em que o programa está funcionando. Aplicação: Bem, ai vai de sua imaginação. Fazer quests com tempo, eventos que se iniciem em determinados dias etc.
    1 ponto
  7. kttallan

    Bug rme exit house

    Cara eu estava com mesmo erro, eu coloquei uma porta na frente da outra, selecionava o tile da house e colocava o select exit, Depois excluia a porta e removia os tile da house.
    1 ponto
  8. Boas vindas ao miupinho, que agora faz parte da nossa comunidade!
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...