• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    Lvl para Los Monster

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default Lvl para Los Monster el Lun Mar 26, 2018 7:59 pm

    Funay

    avatar
    Miembro
    Miembro
    hola amigos necesito un Script para que los monster tengan lvl yo les pongo los lvl a cada monster pero lo necesito de urgencia por favor quien pueda ayudarme se lo agradecería mucho

    Ver perfil de usuario

    2default Re: Lvl para Los Monster el Lun Mar 26, 2018 10:01 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    bueno para lograr lo que quieres hay que hacer muchas modificaciones en sources y esta solo para tfs 0.3.6



    buscamos monsters.h

    buscamos

    Código:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable,   isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth;

    remplazamos

    Código:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable,   isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel;

    buscamos

    Código:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction,   maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities,   lightLevel, lightColor, changeTargetSpeed, changeTargetChance;

    remplazamos

    Código:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction,   maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities,   lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax;


    Buscamos monsters.cpp

    buscamos

    Código:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false;

    remplazamos

    Código:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false;

    buscamos

    Código:
    baseSpeed = 200;

    agregamos abajo

    Código:
    levelMin = levelMax = 1;

    buscamos esta linea

    Código:
    if(readXMLInteger(p, "max", intValue))            
    mType->healthMax = intValue;         
    else         {            
    SHOW_XML_ERROR("Missing health.max");            
    monsterLoad = false;         
    }      }

    y abajo agregamos esta

    Código:
       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;        }

    buscamos

    Código:
    if(readXMLString(tmpNode, "shield", strValue))   mType->partyShield = getPartyShield(strValue);

    agregamos abajo

    Código:
    if(readXMLString(tmpNode, "hidelevel", strValue))  mType->hideLevel = booleanString(strValue);


    vamos a Monster.h

    buscamos

    Código:
    virtual ~Monster();      
    std::string name, nameDescription;

    abajo agregamos

    Código:
    std::string name, nameDescription;int32_t level;double bonusAttack, bonusDefense;

    buscamos

    Código:
    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 + ".";}

    remplazamos


    Código:
    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 + ".";}

    vamos a Monster.cpp

    buscamos

    Código:
    isIdle = true;

    abajo agregamos

    Código:
    name = _mType->name;nameDescription = _mType->nameDescription;level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL);bonusAttack = 1.0;bonusDefense = 1.0;

    buscamos y eliminamos

    Código:
    Monster::onCreatureAppear

    y agregamos donde eliminamos

    Código:
    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));}

    buscamos

    Código:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE)

    y remplazamos

    Código:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense

    buscamos

    Código:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK)

    y remplzamos

    Código:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack

    vamos a Map.cpp

    buscamos

    Código:
    #include "game.h"

    y abajo agregamos

    Código:
    #include "configmanager.h"

    buscamos

    Código:
    extern Game g_game;

    abajo agregamos

    Código:
    extern ConfigManager g_config;

    buscamos

    Código:
    bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/){

    y abajo del " { " pegamos esto

    Código:
      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) + "]";        }    }

    vamos a configmanager.h

    buscamos

    Código:
    ADDONS_PREMIUM,

    abajo pegamos

    Código:
    MONSTER_HAS_LEVEL,

    vamos a configmanager.cpp

    buscamos

    Código:
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true);

    y abajo pegamos

    Código:
    m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true);


    y en la config.lua agregar

    Código:
    monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level

    agregar esta tag al moustro


    Código:
    <level min="1" max="10"/> -- level minimo, level maximo







    Ver perfil de usuario http://www.tibiaface.com

    3default Re: Lvl para Los Monster el Lun Mayo 07, 2018 6:24 am

    Deget92

    avatar
    Miembro
    Miembro

    ¿Y puedes pedir la versión tfs0.4 tibia 8.6?

    Ver perfil de usuario

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).