Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Groove

    View Equipments - System

    Seria muito útil para mim, agradeço !
    2 pontos
  2. Groove

    View Equipments - System

    @Jakson Souza Você vai liberar esse sistema?
    2 pontos
  3. Groove

    [Erro] Desconhecido

    Olá Comunidade do EKZ, Hoje eu venho pedir ajuda com um erro será que alguem pode me ajudar esse erro é totalmente desconhecido para mim, agradeço deis de já PRINT DO ERRO REP+ pra quem me ajudar
    2 pontos
  4. Groove

    [Erro] Desconhecido

    Como Coloco esse evento?
    2 pontos
  5. Groove

    [Erro] Desconhecido

    TFS 0.3.6 Zerado
    2 pontos
  6. Groove

    [Erro] Desconhecido

    Obrigado eu tentei mais não deu certo mais topa 1 rep+ por tentar me ajudar.
    2 pontos
  7. VIDEO EM HD NO YOUTUBE Bom galera se gostarem da um Rep++ ia pra me ajudar nao custa nada hahaha
    1 ponto
  8. Deadpool

    [C ] Level System in monster [0.3.6]

    Boa tarde, venho compartilhar o código feito por @Oneshot, com adaptação para tfs 0.3.6 (854). Bem, ele postou para tfs 0.4 (860), dai eu só mexi em umas linhas parar funcionar no tfs 0.3.6(854), dai vou compartilhar com vocês. Com o monster level system, o monstro passa a ter level e ganha mais HP, dá mais dano, tem mais defesa, dependendo dele. monsters.h procure por: bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth; Substitua por: bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel; Procure por: int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance; Substitua por: int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax; monsters.cpp Procure por: canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false; Substitua por: canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false; Procure por: baseSpeed = 200; Logo abaixo, adicione: levelMin = levelMax = 1; Localize: if(readXMLInteger(p, "max", intValue)) mType->healthMax = intValue; else { SHOW_XML_ERROR("Missing health.max"); monsterLoad = false; } } abaixo adicione: else if(!xmlStrcmp(p->name, (const xmlChar*)"level")) { if(!readXMLInteger(p, "max", intValue)) mType->levelMax = 1; else mType->levelMax = intValue; if(!readXMLInteger(p, "min", intValue)) mType->levelMin = mType->levelMax; else mType->levelMin = intValue; } procure por: if(readXMLString(tmpNode, "shield", strValue)) mType->partyShield = getPartyShield(strValue); logo baixo adicione: if(readXMLString(tmpNode, "hidelevel", strValue)) mType->hideLevel = booleanString(strValue); Monster.h Procure: virtual ~Monster(); std::string name, nameDescription; abaixo adicione: std::string name, nameDescription;int32_t level;double bonusAttack, bonusDefense; Procure: virtual const std::string& getName() const {return mType->name;}virtual const std::string& getNameDescription() const {return mType->nameDescription;}virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} Substitua por: virtual const std::string& getName() const {return name;}virtual const std::string& getNameDescription() const {return nameDescription;}virtual std::string getDescription(int32_t) const {return nameDescription + ".";} Monster.cpp Logo abaixo de: isIdle = true; Adicione: name = _mType->name;nameDescription = _mType->nameDescription;level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL);bonusAttack = 1.0;bonusDefense = 1.0; Procure por está função: Monster::onCreatureAppear Apague e coloque está função: void Monster::onCreatureAppear(const Creature* creature){ Creature::onCreatureAppear(creature); if(creature == this) { //We just spawned lets look around to see who is there. if(isSummon()) { std::string value;// this->master->getStorage((uint32_t)"1996", value); this->master->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; isMasterInRange = canSee(master->getPosition()); } if(g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { this->healthMax = std::floor(this->getMaxHealth() * (1. + (0.1 * (level - 1)))); this->health = this->healthMax; this->bonusAttack += (0.01 * (level - 1)); this->bonusDefense += (0.005 * (level - 1)); } updateTargetList(); updateIdleStatus(); } else onCreatureEnter(const_cast<Creature*>(creature));} Substitua todos: g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) Por: g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense Substitua todos: g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) Por: g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack Map.cpp Procure por: #include "game.h" Adicione em baixo: #include "configmanager.h" Procure por: extern Game g_game; Adicione em baixo: extern ConfigManager g_config; Procure por está função: bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/){ Abaixo do " { " adicione: Monster* monster = creature->getMonster(); if(monster && g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { uint8_t level; if(!monster->getMonsterType()->hideLevel) { if(monster->isSummon()) { std::string value;// monster->getMaster()->getStorage((uint32_t)"1996", value); monster->getMaster()->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; } else level = monster->level; char buffer [10]; monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; } } configmanager.h Procure por: ADDONS_PREMIUM, e abaixo adicione logo em baixo: MONSTER_HAS_LEVEL, configmanager.cpp procure por: m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true); e logo em baixo adicione: m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true); no Config.lua adicione: monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level São muitas modificações para fazer, mas o resultado é garantido e é uma funcionalidade a mais para seu servidor. Como está programado, a cada level, monstros ganham 10% de HP, 1% de dano e 0.5% de defesa. Para configurar level mínimo e máximo, é só adicionar no XML do monstro: <level min="1" max="10"/> -- level minimo, level maximo E alterar a seu gosto. Se você fizer certo irá ficar assim: Créditos: @Oneshot
    1 ponto
  9. Alphapetboy

    Sprite icon system sem pokémon

    Olá Poketibianos! Venho aqui facilitar a vida de quem utiliza o famoso "Icon System". Trago aqui a sprite do ícone sem pokémon para criar novos pokemon no seu servidor , espero que gostem! Rep+ se curtir pfvr <3
    1 ponto
  10. Deadpool

    Pokemon Mythology RPG!

    Caro membro, seu tópico foi movido de Download Otserv > Otserv > Otserv Derivado para Soluções > Recepção Xtibia > Lixeira Pública.
    1 ponto
  11. DuuhCarvalho

    Survival of the Fittest

    Survival of the Fittest O que é ? Como funciona ? Como configurar ? "Mensagens" Instalando : É isso
    1 ponto
  12. Caro membro, seu tópico foi movido de Otserv > Notícias e Debates para Notícias e Debates > Otserv > Formação de Equipes.
    1 ponto
  13. Groove

    [DXP] PokeAlpha OpenSource

    Se quiser continuar seu projeto me avisa que eu junto com você sou scripter
    1 ponto
  14. Groove

    [DXP] PokeAlpha OpenSource

    .-. Não é á Alpha ;-;
    1 ponto
  15. Groove

    [DXP] PokeAlpha OpenSource

    Qual o Bug do Surf? Essa base é á PokeAlpha Oficial? como conseguiu ela? Tem como postar á source do OTCliente?
    1 ponto
  16. Groove

    [DXP] PokeAlpha OpenSource

    Falta Crédito do Smix
    1 ponto
  17. Groove

    [DXP] PokeAlpha OpenSource

    MITOOOOOOOOOOOOOOOOOOOOOOO Você é uma Lenda um Mito.
    1 ponto
  18. Nada se puder me dar um REP+ pela resposta eu ficaria grato existe tutoriais de compilação aqui no xtibia basta procurar.
    1 ponto
  19. É SÓ COMPILAR Á SOURCE QUE APARECE O .EXE ae como vc pediu um servidor 10.90
    1 ponto
  20. Durante esses anos que o Tibia evoluiu eu não vi mudança na questão de IP de Testes OFFLINE Tenta mudar no seu config.lua o IP pode ser que você tenha esquecido isso troca pra 127.0.0.1 Caso Não funcionar eu não sei oque pode ser verifica se o cliente e o servidor está com o IP 127.0.0.1
    1 ponto
  21. nociam

    Loot do autoloot na tela

    a hora que tiver tempo posto.
    1 ponto
  22. Qual a função disso? Você fala com o npc, o npc sumona um monstro e após matar este monstro, ele te dá uma recompensa. Tutorial: Vá em data/creaturescripts/creaturescripts.xml e adicione esse código: <event type="death" name="NPC" event="script" value="npcquest.lua"/> Agora vá em creaturescripts/scripts e crie um novo arquivo com o nome npcquest.lua e bote isto dentro: function onDeath(cid, corpse, killer) local monstName = "Monk" -- nome do monstro local Storage = 9755 -- nao mude if isMonster(cid) then if string.lower(getCreatureName(cid)) == string.lower(monstName) then setPlayerStorageValue(killer[1], Storage, 1) doCreatureSay(killer[1],'Você completo sua tarefa.',TALKTYPE_ORANGE_1) end end return TRUE end Vá no xml do monstro que você escolheu e lá no final do script antes do </monster>, você adiciona: <script> <event name="NPC"/> </script> Vá em data/npc, crie um novo arquivo com o nome Jhow.xml e bote isto dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Jhow" script="data/npc/scripts/jhow.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="138" head="96" body="95" legs="0" feet="95" addons="0"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|, voce quer testar suas habilidades?" /> <parameter key="module_keywords" value="1" /> </parameters> </npc> Vá em npc/script e crie um novo arquivo com o nome de jhow.lua e bote isto dentro: local nomeMonst = "Monk" -- Nome do mosntro que ele vai sumonar local itemid = 2150 local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if getPlayerStorageValue(cid, 9755) == -1 then if(msgcontains(msg, 'yes')) then selfSay('Mate este monstro para completar sua tarefa.', cid) doCreateMonster(nomeMonst,getThingPos(cid)) talkState[talkUser] = 1 end return true end if getPlayerStorageValue(cid, 9755) == 1 then selfSay('Você matou o monstro e ganhou um item.', cid) doPlayerAddItem(cid, itemid,1) setPlayerStorageValue(cid, 9755,2) talkState[talkUser] = 0 return true end if getPlayerStorageValue(cid, 9755) == 2 then selfSay('Você já fez esta tarefa.', cid) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora, volte lá em creaturescripts/scripts/ e procure por login.lua, e antes do último return true, adicione isto: registerCreatureEvent(cid, "NPC") Pronto, NPC criado. Créditos: thalia
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...