• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Aporte] Traspasar player dentro de PZ zone

    Compartir:

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

    1default [Aporte] Traspasar player dentro de PZ zone el Vie Ago 19, 2016 2:27 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola gente tibiaface

    bueno aqui les traigo el codigo c++ para taspasar a la gente dentro del dp o proteccion zone o pz

    testeado en: tfs 0.3.6

    buscan esta linea en player.cpp :


    Código:
    bool Player::canWalkthrough(const Creature* creature) const
    {
      if(!creature)
          return true;

      if(creature == this)
          return false;

      const Player* player = creature->getPlayer();
      if(!player)
          return false;

      if(g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getTile()->ground
          && player->getTile()->ground->getID() != ITEM_GLOWING_SWITCH)
          return true;

      return player->isGhost() && getGhostAccess() < player->getGhostAccess();
    }


    y la remplazan por esta linea:

    Código:
    bool Player::canWalkthrough(const Creature* creature) const
    {
     if(creature == this || creature->isWalkable() ||
            (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster())))
            return true;

        const Player* player = creature->getPlayer();
        if(!player)
            return false;

        if(
            (
                (
                    (
                        (
                            player->getVocation()->isAttackable() &&
                            player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL)
                        )
                        || (
                            player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) &&
                            !player->getTile()->hasFlag(TILESTATE_HOUSE)
                        )
                    )
                ) && player->getTile()->ground &&
                    player->getTile()->ground->getID() != 11063
            ) && (
                !player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges)
                || player->getAccess() <= getAccess()
            )
        ) return true;

        return (player->isGhost() && getGhostAccess() < player->getGhostAccess())
            || (isGhost() && getGhostAccess() > player->getGhostAccess());
    }



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

    jorge.o.osuna

    avatar
    Nuevo Miembro
    Nuevo Miembro
    gracias maya rep

    Ver perfil de usuario

    Invitado

    avatar
    Invitado
    Ayuda mano, use esto y me funciona pero ahora tengo un problema es que se traspasan de modo que pueden entrar 2 en el sqm del depot y quiero cambiar eso.. como hago

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    utiliza los tieles especiales donde se paran los player para solo aceptar un player por sqm



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

    alvaro007

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Una pregunta, yo quiero corregir eso, que no se puedan traspasar nunca unos a otros y el codigo que yo tenia de c++ en mi server, era el que tu subiste que pueden traspasar a las personas, que tengo que cambiar para que ami en mi server no traspasen nunca en ninguno de los casos.

    Ver perfil de usuario

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Una pregunta, yo quiero corregir eso, que no se puedan traspasar nunca unos a otros y el codigo que yo tenia de c++ en mi server, era el que tu subiste que pueden traspasar a las personas, que tengo que cambiar para que ami en mi server no traspasen nunca en ninguno de los casos.

    pero ahi esta la repuesta haces lo mismo pero reves



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

    alvaro007

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Ya lo arregle, lo que hice fue en el mismo codigo :

    Código:
    bool Player::canWalkthrough(const Creature* creature) const
    {
     if(creature == this || creature->isWalkable() ||
            (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster())))
            return true;

        const Player* player = creature->getPlayer();
        if(!player)
            return false;

        if(
            (
                (
                    (
                        (
                            player->getVocation()->isAttackable() &&
                            player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL)
                        )
                        || (
                            player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) &&
                            !player->getTile()->hasFlag(TILESTATE_HOUSE)
                        )
                    )
                ) && player->getTile()->ground &&
                    player->getTile()->ground->getID() != 11063
            ) && (
                !player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges)
                || player->getAccess() <= getAccess()
            )
        )[color=#ff3333]return false[/color];

        return (player->isGhost() && getGhostAccess() < player->getGhostAccess())
            || (isGhost() && getGhostAccess() > player->getGhostAccess());
    }

    Fue cambiar donde dice return true, a false, para que no me devuelva la ejecucion en cuestion que hace el codigo la de traspasar a gente

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