• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] Pedido Potion Elemental

    Compartir:

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

    1default [Actions] Pedido Potion Elemental Miér Abr 13, 2022 2:39 am

    Morfar

    Morfar
    Miembro
    Miembro
    Descripcion escribió:Que tal grupo solicitaba de su ayuda con un script, espero pueda crearse necesito que al usar "x" item te de proteccion elemental por ejemplo 10 minuto de 15% de proteccion de death o holy o fisico? sera posible?? gracias amigos!
    Imagen Explicativa escribió:Imagen Explicativa: [Actions] Pedido Potion Elemental Tibiaf10
    Version del Scripts: TFs 0.4.0

    2 participantes

    2default Re: [Actions] Pedido Potion Elemental Jue Abr 14, 2022 2:52 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    en game.cpp en combatChangeHealth
    después
    de daño int32_t = -healthChange;
    agregar

    agrega esto

    Código:

    int32_t damage = -healthChange;
        // fire protection
              if(target && target->getPlayer())
              {
                std::string value;
                target->getPlayer()->getStorage(1001, value);
                tmp = (int32_t)(atoi(value.c_str()));
                if(tmp > 0 && combatType == COMBAT_FIREDAMAGE)
                damage = (int64_t)std::floor (damage - damage * tmp /100);
                addAnimatedText("FIRE PROTECT", targetPos, hitColor, buffer);
                else if(tmp > 0 && combatType == COMBAT_FIREDAMAGE)
                    damage = 0;

            }
    //----------------------------------------------------------------------------------------------------------------------------------------------------------------
                // death protection
              if(target && target->getPlayer())
                {
                std::string value;
                target->getPlayer()->getStorage(1002, value);
                tmp = (int32_t)(atoi(value.c_str()));
                if(tmp > 0 && combatType == COMBAT_DEATHDAMAGE)
                damage = (int64_t)std::floor (damage - damage * tmp /100);
                else if(tmp > 0 && combatType == COMBAT_DEATHDAMAGE)
                damage = 0;

            }
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------------
                // ice protection
              if(target && target->getPlayer())
              {
              std::string value;
                target->getPlayer()->getStorage(1003, value);
                tmp = (int32_t)(atoi(value.c_str()));
                if(tmp > 0 && combatType == COMBAT_ICEDAMAGE)
                damage = (int64_t)std::floor (damage - damage * tmp /100);
                else if(tmp > 0 && combatType == COMBAT_ICEDAMAGE)
                damage = 0;
                    }
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------------
                // energy protection
                if(target && target->getPlayer())
                {
                std::string value;
                target->getPlayer()->getStorage(1004, value);
                tmp = (int32_t)(atoi(value.c_str()));
                if(tmp > 0 && combatType == COMBAT_ENERGYDAMAGE)
                damage = (int64_t)std::floor (damage - damage * tmp /100);
                else if(tmp > 0 && combatType == COMBAT_ENERGYDAMAGE)
                damage = 0;
                    }
    //----------------------------------------------------------------------------------------------------------------------------------------------------------------
                // holy protection
              if(target && target->getPlayer())
                {
                std::string value;
                target->getPlayer()->getStorage(1005, value);
                tmp = (int32_t)(atoi(value.c_str()));
                if(tmp > 0 && combatType == COMBAT_HOLYDAMAGE)
                damage = (int64_t)std::floor (damage - damage * tmp /100);
                else if(tmp > 0 && combatType == COMBAT_HOLYDAMAGE)
                damage = 0;
    }
    //-----------------------------------------------------------------------------------------------------------------------------------------------------------------
                // earth protection
                if(target && target->getPlayer())
                {
                std::string value;
                target->getPlayer()->getStorage(1006, value);
                tmp = (int32_t)(atoi(value.c_str()));
                if(tmp > 0 && combatType == COMBAT_EARTHDAMAGE)
                damage = (int64_t)std::floor (damage - damage * tmp /100);
                else if(tmp > 0 && combatType == COMBAT_EARTHDAMAGE)
                damage = 0;
            }


    solo tendras que usar en un objetos los almacenamientos que quieres que ten como ves en esta linea en cada if y elif


    target->getPlayer()->getStorage(1006, value);

    al objeto que uses le tendra que agregar el storage 1006 al player



    [Actions] Pedido Potion Elemental YNU5B25
    2 participantes
    https://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).