• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Monster Level (TFS Y OTX)

    Compartir:

    Ir a la página : 1, 2  Siguiente

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

    1[Sistema] Monster Level (TFS Y OTX) Empty [Sistema] Monster Level (TFS Y OTX) Vie Jul 27, 2018 9:40 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    hola usuarios de tibiaface


    bueno aqui les traigo el level monster compatible para The Forgotten Server 0.4_SVN r3777

    nos vamos a las sources y buscamos

    monsters.h


    buscamos

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

    reemplazamos


    aqui no es remplazar por remplazar aqui solo se añade esta tag hideLevel

    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;

    y reemplazamos

    aqui igual no se reemplaza por reemplzas aqui solo se añade dos tag levelMin, levelMax

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

    monsters.cpp

    buscamos


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

    y reemplazamos

    aqui tambien no es reemplzar por reemplazar  aqui se añade una tag hideLevel

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

    buscamos

    Código:
    baseSpeed = 200;

    y agregamos

    Código:
    levelMin = levelMax = 1;

    buscamos

    Código:
    bool Monsters::loadMonster

    dentro de aquella funcion encontramos

    Código:
    for(xmlNodePtr p = root->children; p; p = p->next)
       {
          if(p->type != XML_ELEMENT_NODE)
             continue;

          if(!xmlStrcmp(p->name, (const xmlChar*)"health"))
          {
             if(!readXMLInteger(p, "max", intValue))
             {
                SHOW_XML_ERROR("Missing health.max");
                monsterLoad = false;
                break;
             }

             mType->healthMax = intValue;
             if(!readXMLInteger(p, "now", intValue))
                mType->health = mType->healthMax;
             else
                mType->health = intValue;
          }

    debajo agregamos

    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, "emblem", strValue))
       mType->guildEmblem = getEmblems(strValue);

    agregamos

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

    monster.h

    buscamos

    Código:
    class Monster : public Creature
    {

    y luego abajo de esto

    Código:
    public:
    #ifdef __ENABLE_SERVER_DIAGNOSTIC__
          static uint32_t monsterCount;
    #endif
          virtual ~Monster();

    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 + ".";}

    y reemplazamos

    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 + ".";}

    monster.cpp


    buscamos

    Código:
    Monster::Monster(MonsterType* _mType):

    y abajo de esto

    Código:
    isIdle = true;

    pegamos esto

    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

    Código:
    Monster::onCreatureAppear

    y reemplazamos toda la funcion

    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((std::string)"monster_level", 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)

    reemplazamos

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

    buscamos

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

    reemplazamos

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

    map.cpp

    buscamos

    Código:
    #include "game.h"

    agregamos

    Código:
    #include "configmanager.h"

    buscamos

    Código:
    extern Game g_game;

    agregamos

    Código:
    extern ConfigManager g_config;

    buscamos


    Código:
    bool Map::placeCreature
    {

    y despues de eso agregamos

    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((std::string)"monster_level", 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

    buscamos

    Código:
    MONSTER_SPAWN_WALKBACK,

    y agregamos

    Código:
    MONSTER_HAS_LEVEL,

    configmanager.cpp

    buscamos

    Código:
    m_loaded = true;

    y agregamos

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

    en config.lua agregamos


    Código:
    monsterHasLevel = true

    Son muchas modificaciones para hacer, pero el resultado está garantizado y es una funcionalidad más para su servidor.

    Como está programado, a cada nivel, monstruos ganan el 10% de HP, el 1% de daño y el 0.5% de defensa.



    Para configurar nivel mínimo y máximo, sólo se agrega en el XML del monstruo:

    <level min="1" max="10"/>


    y eso es todo



    Última edición por [Admin] God Maya el Miér Oct 10, 2018 9:29 am, editado 2 veces



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    2[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Oct 10, 2018 7:50 am

    Deget92

    Deget92
    Miembro
    Miembro
    Hola, Hay un error durante la compilación
    [Tienes que estar registrado y conectado para ver este vínculo]

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    3[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Oct 10, 2018 9:13 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Deget92 escribió:Hola, Hay un error durante la compilación
    [Tienes que estar registrado y conectado para ver este vínculo]

    me muestra un captura de su consola y version y distribucion



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    4[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Oct 10, 2018 9:26 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    dejo aqui ya un tfs con los cambios realizados [Tienes que estar registrado y conectado para ver este vínculo]



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    5[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Oct 10, 2018 12:32 pm

    Deget92

    Deget92
    Miembro
    Miembro
    map.cpp:205:79: error: ‘itoa’ was not declared in this scope

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    6[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Oct 10, 2018 12:33 pm

    Deget92

    Deget92
    Miembro
    Miembro
    Tengo linux

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    7[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Oct 10, 2018 12:56 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    hideLevel


    aqui puede ver la modificaciond e cada linea en cada cpp y en cada h que se a realizado y compare en cual ha fallado

    [Tienes que estar registrado y conectado para ver este vínculo]



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    8[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Lun Ago 19, 2019 1:52 am

    gzdiaz20

    gzdiaz20
    Miembro
    Miembro
    no tienes un tuto para tfs 1.3

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    9[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Lun Ago 19, 2019 8:01 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    gzdiaz20 escribió:no tienes un tuto para tfs 1.3

    [Tienes que estar registrado y conectado para ver este vínculo]



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    10[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Jue Ene 09, 2020 3:42 pm

    Raken

    Raken
    Nuevo Miembro
    Nuevo Miembro
    Maya con que compilaste esto
    trunk.r3777 monster level

    [Tienes que estar registrado y conectado para ver este vínculo]

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    11[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Vie Ene 10, 2020 2:32 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Raken escribió:Maya con que compilaste esto
    trunk.r3777 monster level

    [Tienes que estar registrado y conectado para ver este vínculo]
    [/quote]

    [Tienes que estar registrado y conectado para ver este vínculo]



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    12[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Jue Ago 20, 2020 9:40 pm

    elnelson

    elnelson
    Nuevo Miembro
    Nuevo Miembro
    Hola, que tal. Pude compilar y todo bien sin errores, pero hay un grave detalle.

    El nivel del monstruo no afecta en nada las estadísticas del mosntruo (asi es, puede ser nivel 1000 y es igual solo tiene el numero 1000)

    Estoy usando la misma distro que tu (TFS 0.4 3777)

    podrias apoyarme en eso profavor?

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    13[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Lun Ago 16, 2021 2:24 pm

    devilmass

    devilmass
    Nuevo Miembro
    Nuevo Miembro
    elnelson escribió:Hola, que tal. Pude compilar y todo bien sin errores, pero hay un grave detalle.

    El nivel del monstruo no afecta en nada las estadísticas del mosntruo (asi es, puede ser nivel 1000 y es igual solo tiene el numero 1000)

    Estoy usando la misma distro que tu (TFS 0.4 3777)

    podrias apoyarme en eso profavor?

    Same problem ;(
    Any Idea ?

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    14[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Mar Ago 17, 2021 10:19 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    devilmass escribió:
    elnelson escribió:Hola, que tal. Pude compilar y todo bien sin errores, pero hay un grave detalle.

    El nivel del monstruo no afecta en nada las estadísticas del mosntruo (asi es, puede ser nivel 1000 y es igual solo tiene el numero 1000)

    Estoy usando la misma distro que tu (TFS 0.4 3777)

    podrias apoyarme en eso profavor?

    Same problem ;(
    Any Idea ?

    esta es la parte donde el monster a ganar level agana cierto bonus para glopear mas o ganar vida

    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((std::string)"monster_level", 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));
    }


    habria que ver que es lo que sucede ahi



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    15[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Mar Ago 17, 2021 12:35 pm

    devilmass

    devilmass
    Nuevo Miembro
    Nuevo Miembro
    [Admin] God Maya escribió:
    devilmass escribió:
    elnelson escribió:Hola, que tal. Pude compilar y todo bien sin errores, pero hay un grave detalle.

    El nivel del monstruo no afecta en nada las estadísticas del mosntruo (asi es, puede ser nivel 1000 y es igual solo tiene el numero 1000)

    Estoy usando la misma distro que tu (TFS 0.4 3777)

    podrias apoyarme en eso profavor?

    Same problem ;(
    Any Idea ?

    esta es la parte donde el monster a ganar level agana cierto bonus para glopear mas o ganar vida

    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((std::string)"monster_level", 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));
    }


    habria que ver que es lo que sucede ahi

    Thanks for the clarification. And tell me how to change it so that summons do not have 255 level?

    (google translate)
    Obrigado pelo esclarecimento. E me diga como alterá-lo para que as convocações não tenham o nível 255?

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    16[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Mar Ago 17, 2021 5:58 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    devilmass escribió:
    [Admin] God Maya escribió:
    devilmass escribió:
    elnelson escribió:Hola, que tal. Pude compilar y todo bien sin errores, pero hay un grave detalle.

    El nivel del monstruo no afecta en nada las estadísticas del mosntruo (asi es, puede ser nivel 1000 y es igual solo tiene el numero 1000)

    Estoy usando la misma distro que tu (TFS 0.4 3777)

    podrias apoyarme en eso profavor?

    Same problem ;(
    Any Idea ?

    esta es la parte donde el monster a ganar level agana cierto bonus para glopear mas o ganar vida

    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((std::string)"monster_level", 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));
    }


    habria que ver que es lo que sucede ahi

    Thanks for the clarification. And tell me how to change it so that summons do not have 255 level?

    (google translate)
    Obrigado pelo esclarecimento. E me diga como alterá-lo para que as convocações não tenham o nível 255?

    aqi este problema se da por no agregando una linea map.cpp donde usted a crear un summon le va salir directamente 255 en pocas palabra el problema estaria en map.cpp



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    17[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Ago 18, 2021 7:22 am

    devilmass

    devilmass
    Nuevo Miembro
    Nuevo Miembro
    aqi este problema se da por no agregando una linea map.cpp donde usted a crear un summon le va salir directamente 255 en pocas palabra el problema estaria en map.cpp

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

    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() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }
       

    Se ve así, pero no funciona

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    18[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Ago 18, 2021 10:46 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    devilmass escribió:
    aqi este problema se da por no agregando una linea map.cpp donde usted a crear un summon le va salir directamente 255 en pocas palabra el problema estaria en map.cpp

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

    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() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }
       

    Se ve así, pero no funciona


    si se fija bien en el sistema que esta en el tema principal

    no hace cuenta ani una storage


    Código:
    monster->getMaster()->getStorage((std::string)"monster_level", value);

    y en el scripts que me muestra hace refencia a uno

    Código:
    monster->getMaster()->getStorage((uint32_t)"1996", value);


    voy revisar en mi lapto tengo la solucion para este sistema para que lo sommoun no salgan level 255 esto lo hare de que salga del trabajo una 5 horas



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    19[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Ago 18, 2021 2:01 pm

    devilmass

    devilmass
    Nuevo Miembro
    Nuevo Miembro
    [Admin] God Maya escribió:
    devilmass escribió:
    aqi este problema se da por no agregando una linea map.cpp donde usted a crear un summon le va salir directamente 255 en pocas palabra el problema estaria en map.cpp

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

    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() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }
       

    Se ve así, pero no funciona


    si se fija bien en el sistema que esta en el tema principal

    no hace cuenta ani una storage


    Código:
    monster->getMaster()->getStorage((std::string)"monster_level", value);

    y en el scripts que me muestra hace refencia a uno

    Código:
    monster->getMaster()->getStorage((uint32_t)"1996", value);


    voy revisar en mi lapto tengo la solucion para este sistema para que lo sommoun no salgan level 255 esto lo hare de que salga del trabajo una 5 horas

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

    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);

                    uint8_t intValue = atoi(value.c_str());
                    if(intValue > 0 && value != "-1")
                        level = intValue;
                    else
                        level = 1;
                }
                else
                    level = monster->level;

                char buffer [10];
                monster->name = monster->getName() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }

    and monster.cpp:
    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 > 0 && value != "-1")
                        level = intValue;
                    level = 1;
             isMasterInRange = canSee(master->getPosition());
          }

    Esto resolvió el problema, pero no sé si el código es estable

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    20[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Miér Ago 18, 2021 2:39 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    devilmass escribió:
    [Admin] God Maya escribió:
    devilmass escribió:
    aqi este problema se da por no agregando una linea map.cpp donde usted a crear un summon le va salir directamente 255 en pocas palabra el problema estaria en map.cpp

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

    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() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }
       

    Se ve así, pero no funciona


    si se fija bien en el sistema que esta en el tema principal

    no hace cuenta ani una storage


    Código:
    monster->getMaster()->getStorage((std::string)"monster_level", value);

    y en el scripts que me muestra hace refencia a uno

    Código:
    monster->getMaster()->getStorage((uint32_t)"1996", value);


    voy revisar en mi lapto tengo la solucion para este sistema para que lo sommoun no salgan level 255 esto lo hare de que salga del trabajo una 5 horas

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

    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);

                    uint8_t intValue = atoi(value.c_str());
                    if(intValue > 0 && value != "-1")
                        level = intValue;
                    else
                        level = 1;
                }
                else
                    level = monster->level;

                char buffer [10];
                monster->name = monster->getName() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }

    and monster.cpp:
    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 > 0 && value != "-1")
                        level = intValue;
                    level = 1;
             isMasterInRange = canSee(master->getPosition());
          }

    Esto resolvió el problema, pero no sé si el código es estable


    el codigo que publicas es plano no causaría ni un problema solo ahi colocas que toda invocación sea level 1 me parece bien e injusto por que sabemos que si sacas un sumon es para ayudarte seria bueno hecharle mano y que el summon clone tu level o salga un nivel random




    no se si aceptaria esto pero podriamos agregarle esto

    math.random(0, maxValue)

    aqui tienes

    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 > 0 && value != "-1")
                        level = intValue;
                    level = math.random(1, 50);
            isMasterInRange = canSee(master->getPosition());
          }

    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    21[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Jue Ago 19, 2021 8:20 am

    devilmass

    devilmass
    Nuevo Miembro
    Nuevo Miembro
    [Admin] God Maya escribió:
    devilmass escribió:
    [Admin] God Maya escribió:
    devilmass escribió:
    aqi este problema se da por no agregando una linea map.cpp donde usted a crear un summon le va salir directamente 255 en pocas palabra el problema estaria en map.cpp

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

    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() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }
       

    Se ve así, pero no funciona


    si se fija bien en el sistema que esta en el tema principal

    no hace cuenta ani una storage


    Código:
    monster->getMaster()->getStorage((std::string)"monster_level", value);

    y en el scripts que me muestra hace refencia a uno

    Código:
    monster->getMaster()->getStorage((uint32_t)"1996", value);


    voy revisar en mi lapto tengo la solucion para este sistema para que lo sommoun no salgan level 255 esto lo hare de que salga del trabajo una 5 horas

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

    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);

                    uint8_t intValue = atoi(value.c_str());
                    if(intValue > 0 && value != "-1")
                        level = intValue;
                    else
                        level = 1;
                }
                else
                    level = monster->level;

                char buffer [10];
                monster->name = monster->getName() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }

    and monster.cpp:
    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 > 0 && value != "-1")
                        level = intValue;
                    level = 1;
             isMasterInRange = canSee(master->getPosition());
          }

    Esto resolvió el problema, pero no sé si el código es estable


    el codigo que publicas es plano no causaría ni un problema solo ahi colocas que toda invocación sea level 1 me parece bien e injusto por que sabemos que si sacas un sumon es para ayudarte seria bueno hecharle mano y que el summon clone tu level o salga un nivel random




    no se si aceptaria esto pero podriamos agregarle esto

    math.random(0, maxValue)

    aqui tienes

    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 > 0 && value != "-1")
                        level = intValue;
                    level = math.random(1, 50);
             isMasterInRange = canSee(master->getPosition());
          }

    Código:
    1>ClCompile:
    1>  monster.cpp
    1>..\monster.cpp(181): error C2065: 'math' : undeclared identifier
    1>..\monster.cpp(181): error C2228: left of '.random' must have class/struct/union
    1>          type is ''unknown-type''
    Esta es una buena idea, pero hay algunos errores de compilación.

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    22[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Jue Ago 19, 2021 10:33 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    devilmass escribió:
    [Admin] God Maya escribió:
    devilmass escribió:
    [Admin] God Maya escribió:
    devilmass escribió:
    aqi este problema se da por no agregando una linea map.cpp donde usted a crear un summon le va salir directamente 255 en pocas palabra el problema estaria en map.cpp

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

    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() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }
       

    Se ve así, pero no funciona


    si se fija bien en el sistema que esta en el tema principal

    no hace cuenta ani una storage


    Código:
    monster->getMaster()->getStorage((std::string)"monster_level", value);

    y en el scripts que me muestra hace refencia a uno

    Código:
    monster->getMaster()->getStorage((uint32_t)"1996", value);


    voy revisar en mi lapto tengo la solucion para este sistema para que lo sommoun no salgan level 255 esto lo hare de que salga del trabajo una 5 horas

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

    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);

                    uint8_t intValue = atoi(value.c_str());
                    if(intValue > 0 && value != "-1")
                        level = intValue;
                    else
                        level = 1;
                }
                else
                    level = monster->level;

                char buffer [10];
                monster->name = monster->getName() + " [LVL " + itoa(level, buffer, 10) + "]";
            }
        }

    and monster.cpp:
    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 > 0 && value != "-1")
                        level = intValue;
                    level = 1;
             isMasterInRange = canSee(master->getPosition());
          }

    Esto resolvió el problema, pero no sé si el código es estable


    el codigo que publicas es plano no causaría ni un problema solo ahi colocas que toda invocación sea level 1 me parece bien e injusto por que sabemos que si sacas un sumon es para ayudarte seria bueno hecharle mano y que el summon clone tu level o salga un nivel random




    no se si aceptaria esto pero podriamos agregarle esto

    math.random(0, maxValue)

    aqui tienes

    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 > 0 && value != "-1")
                        level = intValue;
                    level = math.random(1, 50);
             isMasterInRange = canSee(master->getPosition());
          }

    Código:
    1>ClCompile:
    1>  monster.cpp
    1>..\monster.cpp(181): error C2065: 'math' : undeclared identifier
    1>..\monster.cpp(181): error C2228: left of '.random' must have class/struct/union
    1>          type is ''unknown-type''
    Esta es una buena idea, pero hay algunos errores de compilación.


    A VER PRUEBA DE ESTA MANERA


    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 > 0 && value != "-1")
                        level = intValue;
                    level = random_range(1, 100);
            isMasterInRange = canSee(master->getPosition());
          }



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    23[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Jue Ago 19, 2021 10:42 am

    devilmass

    devilmass
    Nuevo Miembro
    Nuevo Miembro
    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 > 0 && value != "-1")
                        level = intValue;
                    level = random_range(1, 100);
             isMasterInRange = canSee(master->getPosition());
          }
    Ahora funciona, pero aún necesitas cambiar el nombre para mostrar del monstruo en map.cpp

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    24[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Jue Ago 19, 2021 10:51 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    devilmass escribió:
    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 > 0 && value != "-1")
                        level = intValue;
                    level = random_range(1, 100);
             isMasterInRange = canSee(master->getPosition());
          }
    Ahora funciona, pero aún necesitas cambiar el nombre para mostrar del monstruo en map.cpp

    por que lo necesita me podria explicar por que quieres ese otro cambio



    [Sistema] Monster Level (TFS Y OTX) YNU5B25
    +2
    Deget92
    [Admin] God Maya
    6 participantes
    http://www.tibiaface.com

    25[Sistema] Monster Level (TFS Y OTX) Empty Re: [Sistema] Monster Level (TFS Y OTX) Jue Ago 19, 2021 10:53 am

    devilmass

    devilmass
    Nuevo Miembro
    Nuevo Miembro
    por que lo necesita me podria explicar por que quieres ese otro cambio
    Solo para saber qué nivel del monstruo invocamos.

    +2
    Deget92
    [Admin] God Maya
    6 participantes

    Contenido patrocinado


    +2
    Deget92
    [Admin] God Maya
    6 participantes

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

    Ir a la página : 1, 2  Siguiente

    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).