• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Codigo] Passive Monsters (Monster Attack cuando es atacado) TFS 1.3

    Compartir:

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

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Hola usuarios de tibiaface



    bueno aqui les traigo un codigo c++ muy bueno para la cosola tfs 1.x en adelante.

    este codigo trata de que el moustro este pasivo osea que si nosotros no le pegamos al moustro no nos va atacar lo que se conoce como pasive monster


    bueno nos vamos a luascript.cpp

    buscamos

    Código:

    registerMethod("MonsterType", "isHostile", LuaScriptInterface::luaMonsterTypeIsHostile);

    abajo de eso pegamos

    Código:

    registerMethod("MonsterType", "isHostileOnAttack", LuaScriptInterface::luaMonsterTypeIsHostileOnAttack);

    buscamos

    Código:

    int LuaScriptInterface::luaMonsterTypeIsHostile(lua_State* L)
    {
        // monsterType:isHostile()
        MonsterType* monsterType = getUserdata<MonsterType>(L, 1);
        if (monsterType) {
            pushBoolean(L, monsterType->isHostile);
        } else {
            lua_pushnil(L);
        }
        return 1;
    }

    abajo de esto pegamos

    Código:

    int LuaScriptInterface::luaMonsterTypeIsHostileOnAttack(lua_State* L)
    {
        // monsterType:isHostileOnAttack()
        MonsterType* monsterType = getUserdata<MonsterType>(L, 1);
        if (monsterType) {
            pushBoolean(L, monsterType->isHostileOnAttack);
        } else {
            lua_pushnil(L);
        }
        return 1;
    }

    ahora nos vamos a luascript.h

    buscamos

    Código:

    static int luaMonsterTypeIsHostile(lua_State* L);

    esto pegamos abajo

    Código:

    static int luaMonsterTypeIsHostileOnAttack(lua_State* L);

    ahora nos vamos a monster.cpp

    buscamos

    Código:

        if (isHostile() || isSummon()) {
            if (setAttackedCreature(creature) && !isSummon()) {
                g_dispatcher.addTask(createTask(std::bind(&Game::checkCreatureAttack, &g_game, getID())));
            }
        }
        return setFollowCreature(creature);
    }

    y lo remplzamos por esto

    Código:

        if (isHostileOnAttack() && getHealth() >= getMaxHealth()) {
                return false;
        } else if (isHostile() || isSummon()) {
            if (setAttackedCreature(creature) && !isSummon()) {
                g_dispatcher.addTask(createTask(std::bind(&Game::checkCreatureAttack, &g_game, getID())));
            }
        }
        return setFollowCreature(creature);
    }

    ahora nos vamos a monster.h

    buscamos

    Código:

    bool isHostile() const {
                return mType->isHostile;
            }

    abajo pegamos

    Código:

    bool isHostileOnAttack() const {
                return mType->isHostileOnAttack;
            }

    ahora nos vamos a monsters.cpp

    buscamos

    Código:

    isHostile = true;

    esto pegamos abajo

    Código:

    isHostileOnAttack = false;

    buscamos

    Código:

    } else if (strcasecmp(attrName, "hostile") == 0) {
                    mType->isHostile = attr.as_bool();

    y esto pegamos abajo

    Código:

    } else if (strcasecmp(attrName, "hostileonattack") == 0) {
                    mType->isHostileOnAttack = attr.as_bool();       

    ahora nos vamos a monsters.h

    buscamos

    Código:
    bool isHostile;

    y abajo de esto pegamos

    Código:
    bool isHostileOnAttack;

    Edita el archivo xml de cualquier moustro que quieras atacar solo cuando los ataques. Asegúrate de que estas dos banderas estén ahí.

    Código:

    <flag hostile="1"/>
    <flag hostileonattack="1"/>


    creditos: fish04k



    [Codigo] Passive Monsters (Monster Attack cuando es atacado) TFS 1.3 YNU5B25
    http://www.tibiaface.com

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