• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Problema] AYUDA! "You may not attack this creature".

    Compartir:

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

    lsenturion

    lsenturion
    Miembro
    Miembro
    Descripcion escribió:(Tengo la Tibiaface v6 (TFS0.4) )

    Hola chicos, acabo de compilar el ejecutable y cuando enciendo mi servidor, me doy cuenta de que ningún monstruo puede ser atacado, tengo esto en config.lua:

    Código:
    worldType = "open"
       protectionLevel = 20
       pvpTileIgnoreLevelAndVocationProtection = true
       pzLocked = 30 * 1000
       huntingDuration = 2 * 60 * 1000
       criticalHitChance = 7
       criticalHitMultiplier = 1
       displayCriticalHitNotify = true
       removeWeaponAmmunition = true
       removeWeaponCharges = true
       removeRuneCharges = true
       whiteSkullTime = 15 * 60 * 1000
       noDamageToSameLookfeet = false
       showHealingDamage = true
       showHealingDamageForMonsters = true
       healthHealingColor = COLOR_GREEN
       manaHealingColor = COLOR_DARKPURPLE
       fieldOwnershipDuration = 30 * 1000
       stopAttackingAtExit = true
       loginProtectionPeriod = 5 * 1000
       deathLostPercent = 10
       stairhopDelay = 2 * 1000
       pushCreatureDelay =  2 * 1000
       deathContainerId = 1987
       gainExperienceColor = 215
       addManaSpentInPvPZone = true
       squareColor = 0
       allowFightback = true
       fistBaseAttack = 7
       optionalWarAttackableAlly = false

    y tengo esto en combat.cpp:

    Código:
    else if(target->getMonster())
        {
            if(!target->isAttackable())
                return RET_YOUMAYNOTATTACKTHISCREATURE;

            const Player* attackerPlayer = NULL;
            if((attackerPlayer = attacker->getPlayer()) || (attackerPlayer = attacker->getPlayerMaster()))
            {
                if(attackerPlayer->hasFlag(PlayerFlag_CannotAttackMonster))
                    return RET_YOUMAYNOTATTACKTHISCREATURE;

                if(target->isPlayerSummon())
                {
                    checkZones = true;
                    if(g_game.getWorldType() == WORLDTYPE_OPTIONAL && !Combat::isInPvpZone(attacker, target)
                        && !attackerPlayer->isEnemy(target->getPlayerMaster(), true)
                    )
                        return RET_YOUMAYNOTATTACKTHISCREATURE;
                }
            }
        }

        return checkZones && (target->getTile()->hasFlag(TILESTATE_OPTIONALZONE) ||
            (attacker->getTile()->hasFlag(TILESTATE_OPTIONALZONE)
            && !target->getTile()->hasFlag(TILESTATE_OPTIONALZONE) &&
            !target->getTile()->hasFlag(TILESTATE_PROTECTIONZONE))) ?
            RET_ACTIONNOTPERMITTEDINANOPVPZONE : RET_NOERROR;
    }

    ReturnValue Combat::canTargetCreature(const Player* player, const Creature* target)
    {
        if(player == target)
            return RET_YOUMAYNOTATTACKTHISPLAYER;
       


        Player* tmpPlayer = const_cast<Player*>(player);
        CreatureEventList targetEvents = tmpPlayer->getCreatureEvents(CREATURE_EVENT_TARGET);

        bool deny = false;
        for(CreatureEventList::iterator it = targetEvents.begin(); it != targetEvents.end(); ++it)
        {
            if(!(*it)->executeTarget(tmpPlayer, const_cast<Creature*>(target)))
                deny = true;
        }

        if(deny)
            return RET_DONTSHOWMESSAGE;

        if(!player->hasFlag(PlayerFlag_IgnoreProtectionZone))
        {
            if(player->getZone() == ZONE_PROTECTION)
                return RET_YOUMAYNOTATTACKAPERSONWHILEINPROTECTIONZONE;

            if(target->getZone() == ZONE_PROTECTION)
                return RET_YOUMAYNOTATTACKAPERSONINPROTECTIONZONE;

            if(target->getPlayer() || target->isPlayerSummon())
            {
                if(player->getZone() == ZONE_OPTIONAL)
                    return RET_ACTIONNOTPERMITTEDINANOPVPZONE;

                if(target->getZone() == ZONE_OPTIONAL)
                    return RET_YOUMAYNOTATTACKAPERSONINPROTECTIONZONE;
            }
        }

        if(player->hasFlag(PlayerFlag_CannotUseCombat) || !target->isAttackable())
            return target->getPlayer() ? RET_YOUMAYNOTATTACKTHISPLAYER : RET_YOUMAYNOTATTACKTHISCREATURE;

        if (!target->getNpc())
                    return RET_YOUMAYNOTATTACKTHISCREATURE;

        if(target->getPlayer() && !Combat::isInPvpZone(player, target) && player->getSkullType(target->getPlayer()) == SKULL_NONE)
        {
            if(player->getSecureMode() == SECUREMODE_ON)
                return RET_TURNSECUREMODETOATTACKUNMARKEDPLAYERS;

            if(player->getSkull() == SKULL_BLACK)
                return RET_YOUMAYNOTATTACKTHISPLAYER;
        }

        return Combat::canDoCombat(player, target);
    }

    bool Combat::isInPvpZone(const Creature* attacker, const Creature* target)
    {
        return attacker->getZone() == ZONE_HARDCORE && target->getZone() == ZONE_HARDCORE;
    }

    bool Combat::isProtected(Player* attacker, Player* target)
    {
        if(attacker->hasFlag(PlayerFlag_CannotAttackPlayer) || !target->isAttackable())
            return true;

        if(attacker->getZone() == ZONE_HARDCORE && target->getZone() == ZONE_HARDCORE && g_config.getBool(ConfigManager::PVP_TILE_IGNORE_PROTECTION))
            return false;

        if(attacker->hasCustomFlag(PlayerCustomFlag_IsProtected) || target->hasCustomFlag(PlayerCustomFlag_IsProtected))
            return true;

        uint32_t protectionLevel = g_config.getNumber(ConfigManager::PROTECTION_LEVEL);
        if(target->getLevel() < protectionLevel || attacker->getLevel() < protectionLevel)
            return true;

        if(!attacker->getVocation()->isAttackable() || !target->getVocation()->isAttackable())
            return true;

        return attacker->checkLoginDelay(target->getID());
    }
    Captura del Error escribió:Imagen del error: [Problema] AYUDA! "You may not attack this creature". Empty
    El error radica en: Consola

    2 participantes
    http://krudaserver.com

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Cada vez salen mas errores, es mejor pasarse a un 1.X y evitarse todos esos problemas.

    Es solo una sugerencia.

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

    Código:
    .\vcpkg install --triplet x64-windows fmt
    .\vcpkg install fmt

    2 participantes

    lsenturion

    lsenturion
    Miembro
    Miembro
    las funciones son las mismas o tengo que traspasar todos los scripts?

    2 participantes
    http://krudaserver.com

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    [quote="lsenturion"]las funciones son las mismas o tengo que traspasar todos los scripts?[/quote

    eso lleva un archivo llamado compat.lua ahi se encuentra todas las funciones de un 0.4, puedes pasarlos sin problemas.

    Ya mismo subire un post de como compilar para la gente nueva.

    2 participantes

    lsenturion

    lsenturion
    Miembro
    Miembro
    No me funciona, sigue sin atacar monsters y players, ya movi todo y nada. Intente con el God y con un player normal y nada ;/

    2 participantes
    http://krudaserver.com

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    lsenturion escribió:No me funciona, sigue sin atacar monsters y players, ya movi todo y nada. Intente con el God y con un player normal y nada ;/

    Pero compilastes el tfs 1.5? en otro caso, comprueba si traes un creaturescripts o mod, verifica si tienes el puño activo para atacar.


    Por si acaso te dejo esto:
    [Tienes que estar registrado y conectado para ver este vínculo]

    2 participantes

    Contenido patrocinado


    2 participantes

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