• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [CreatureEvents] [Pedido] preparedeath PVP-Enforce con protección de lvl

    Compartir:

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

    eduardobon

    eduardobon
    Nuevo Miembro
    Nuevo Miembro
    Servidor : the forgotten server tibia 0.3.6
    Versión :  8.54
    Server war: Enforce

    Tengo un servidor WAR en el cual quiero una protección de muerte para player bajo lvl 500. tengo este scripts preparedeath en el cual si el jugador muere por monster o por player(PVP enforce) te teletransporta al templo y te regenera full vida y mana. pero no da level al player que lo mato

    Código:
    deadProtection = 500 -- max lvl in protection
     deadProtectionBy = "all" -- works when killer: all/monster/players
     deadProtectionExpLose = 0 -- % of exp lose

    Código:
    local config = {
        deathListEnabled = getBooleanFromString(getConfigInfo('deathListEnabled')),
        sqlType = getConfigInfo('sqlType'),
        maxDeathRecords = getConfigInfo('maxDeathRecords'),
        deadProtection = getConfigInfo('deadProtection'),
        fragTime =  getConfigInfo('timeToDecreaseFrags'),
        deadProtectionBy = getConfigInfo('deadProtectionBy'),
        deadProtectionExpLose = getConfigInfo('deadProtectionExpLose')
    }
    config.sqlType = config.sqlType == "sqlite" and DATABASE_ENGINE_SQLITE or DATABASE_ENGINE_MYSQL







    function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
        if(isPlayer(cid))then
            if(math.abs(config.deadProtection) >= getPlayerLevel(cid)) and (string.lower(config.deadProtectionBy) == "all" or (string.lower(config.deadProtectionBy) == "monster" and not(isPlayer(lastHitKiller))) or (string.lower(config.deadProtectionBy) == "player" and isPlayer(lastHitKiller))) then
                doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))

     doHealthChange(cid, getCreatureMaxHealth(cid))
                doCreatureAddMana(cid, (getCreatureMaxMana(cid) - getCreatureMana(cid)))
                doSendMagicEffect(getCreaturePosition(cid), 37)
                doRemoveCondition(cid, CONDITION_INFIGHT)
            else
                if(config.deathListEnabled ~= TRUE) then
                    return TRUE
                end

                local hitKillerName = "field item"
                local damageKillerName = ""
                if(lastHitKiller ~= FALSE) then
                    if(isPlayer(lastHitKiller) == TRUE) then
                        hitKillerName = getPlayerGUID(lastHitKiller)
                        doPlayerSetRedSkullTicks(lastHitKiller, getPlayerRedSkullTicks(lastHitKiller) - config.fragTime)
                    else
                        hitKillerName = getCreatureName(lastHitKiller)
                    end

                    if(mostDamageKiller ~= FALSE and mostDamageKiller ~= lastHitKiller and getCreatureName(mostDamageKiller) ~= getCreatureName(lastHitKiller)) then
                        if(isPlayer(mostDamageKiller) == TRUE) then
                            damageKillerName = getPlayerGUID(mostDamageKiller)
                            doPlayerSetRedSkullTicks(mostDamageKiller, getPlayerRedSkullTicks(mostDamageKiller) - config.fragTime)
                        else
                            damageKillerName = getCreatureName(mostDamageKiller)
                        end
                    end
                end
                db.executeQuery("INSERT INTO `player_deaths` (`player_id`, `time`, `level`, `killed_by`, `altkilled_by`) VALUES (" .. getPlayerGUID(cid) .. ", " .. os.time() .. ", " .. getPlayerLevel(cid) .. ", " .. db.escapeString(hitKillerName) .. ", " .. db.escapeString(damageKillerName) .. ");")
                local rows = db.getResult("SELECT `player_id` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. ";")
                if(rows:getID() ~= -1) then
                    local amount = rows:getRows(true) - config.maxDeathRecords
                    if(amount > 0) then
                        if(config.sqlType == DATABASE_ENGINE_SQLITE) then
                            for i = 1, amount do
                            db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")
                            end
                        else
                        db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")
                        end
                    end
                end
                return TRUE
            end
        end
    end





    Adjunto un video de como debería ser el script Fuente : malboro







    (Cuando el player me mato , le dio experiencia)
    [quote="Imagen Explicativa"]Imagen Explicativa: [CreatureEvents] [Pedido] preparedeath PVP-Enforce con protección de lvl Tibiaf10
    Version del Scripts: TFs 0.3.7

    2 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    seguramente es por que le stas elinando la muerte

    Código:

      if(config.sqlType == DATABASE_ENGINE_SQLITE) then
                            for i = 1, amount do
                            db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")
                            end
                        else
                        db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")
                        end
                    end



    [CreatureEvents] [Pedido] preparedeath PVP-Enforce con protección de lvl YNU5B25
    2 participantes
    https://www.tibiaface.com

    eduardobon

    eduardobon
    Nuevo Miembro
    Nuevo Miembro
    [Admin] God Maya escribió:seguramente es por que le stas elinando la muerte

    Código:

       if(config.sqlType == DATABASE_ENGINE_SQLITE) then
                            for i = 1, amount do
                            db.executeQuery("DELETE FROM `player_deaths` WHERE `rowid` = (SELECT `rowid` FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT 1);")
                            end
                        else
                        db.executeQuery("DELETE FROM `player_deaths` WHERE `player_id` = " .. getPlayerGUID(cid) .. " ORDER BY `time` LIMIT " .. amount .. ";")
                        end
                    end

    Si le quito eso [CreatureEvents] [Pedido] preparedeath PVP-Enforce con protección de lvl WiSqcjm
    me muero y el player killer no recibe experiencia ni tampoco el frag
    y el player que el objetivo es proteger,
    muere y pierde set

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