• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [CreatureEvents] (UP-LEVEL) Recompensa al subir de level

    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

    Hoy le traigo un script que al subir un level el player recibe un premio bueno muy sencillo de instalar.

    Nos vamos a :


    data/creaturescripts/scripts


    copiamos cualquier archivo y renombramos por uplevelabsolute.lua y pegamos esto dentro

    Código:
    function onAdvance(cid, skill, oldLevel, newLevel)

    local config = {
    [50] = {item = 2160, count = 5},
    [100] = {item = 2160, count = 15},
    [150] = {item = 2160, count = 20},
    [200] = {item = 2160, count = 25},
    [250] = {item = 2160, count = 30},
    [300] = {item = 2160, count = 50},
    [350] = {item = 4891, count = 1},
    [400] = {item = 4892, count = 1},
    }

    if skill == 8 then
    for level, info in pairs(config) do
    if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then
    doPlayerAddItem(cid, info.item, info.count)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Parabéns, você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".")
    local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'"
    setPlayerStorageValue(cid, 30700, sat)
    end
    end
    end

    return TRUE
    end


    En la misma carpeta

    data/creaturescripts/scripts

    buscamos el srchivo llamado login.lua lo abrimos y añadimos esta linea:

    Código:
    registerCreatureEvent(cid, "UpAbsolute")


    Por ultimo añadimos esta tag en:

    data/creaturescripts/creaturescripts.xml

    Código:
    <event type="advance" name="UpAbsolute" event="script" value="uplevelabsolute.lua"/>

    configuracion:

    local config = {
    [50] = {item = 2160, count = 5},
    [100] = {item = 2160, count = 15},
    [150] = {item = 2160, count = 20},
    [200] = {item = 2160, count = 25},
    [250] = {item = 2160, count = 30},
    [300] = {item = 2160, count = 50},
    [350] = {item = 4891, count = 1},
    [400] = {item = 4892, count = 1},
    }

    [50] <----- es el level donde el player ganara el premio

    item = 2160, <---- item que ganara

    count = 15 <----- cantidad que ganara



    creditos: Absolute



    [CreatureEvents] (UP-LEVEL) Recompensa al subir de level YNU5B25
    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    shuyin

    shuyin
    Miembro
    Miembro
    [Admin] God Maya escribió:Hola Usuarios de TibiaFace

    Hoy le traigo un script que al subir un level el player recibe un premio bueno muy sencillo de instalar.

    Nos vamos a :


    data/creaturescripts/scripts


    copiamos cualquier archivo y renombramos por uplevelabsolute.lua y pegamos esto dentro

    Código:
    function onAdvance(cid, skill, oldLevel, newLevel)

    local config = {
    [50] = {item = 2160, count = 5},
    [100] = {item = 2160, count = 15},
    [150] = {item = 2160, count = 20},
    [200] = {item = 2160, count = 25},
    [250] = {item = 2160, count = 30},
    [300] = {item = 2160, count = 50},
    [350] = {item = 4891, count = 1},
    [400] = {item = 4892, count = 1},
    }

    if skill == 8 then
    for level, info in pairs(config) do
    if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then
    doPlayerAddItem(cid, info.item, info.count)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Parabéns, você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".")
    local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'"
    setPlayerStorageValue(cid, 30700, sat)
    end
    end
    end

    return TRUE
    end


    En la misma carpeta

    data/creaturescripts/scripts

    buscamos el srchivo llamado login.lua lo abrimos y añadimos esta linea:

    Código:
    registerCreatureEvent(cid, "UpAbsolute")


    Por ultimo añadimos esta tag en:

    data/creaturescripts/creaturescripts.xml

    Código:
    <event type="advance" name="UpAbsolute" event="script" value="uplevelabsolute.lua"/>

    configuracion:

    local config = {
    [50] = {item = 2160, count = 5},
    [100] = {item = 2160, count = 15},
    [150] = {item = 2160, count = 20},
    [200] = {item = 2160, count = 25},
    [250] = {item = 2160, count = 30},
    [300] = {item = 2160, count = 50},
    [350] = {item = 4891, count = 1},
    [400] = {item = 4892, count = 1},
    }

    [50] <----- es el level donde el player ganara el premio

    item = 2160, <---- item que ganara

    count = 15 <----- cantidad que ganara



    creditos: Absolute
    buenas es bueno esto, pero funciona en el global v24 10.90?

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes

    Simon Marin

    Simon Marin
    Miembro
    Miembro
    y un mensaje ... es posible en medio del cliente con letras blancas??

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes

    paulina24

    paulina24
    Miembro
    Miembro
    Código:
    Maya tengo este Login.lua pero nose donde meter el "registerCreatureEvent" ayudita porfavor


    local events = {
    'TutorialCockroach',
    'ElementalSpheresOverlords',
    'BigfootBurdenVersperoth',
    'BigfootBurdenWarzone',
    'BigfootBurdenWeeper',
    'BigfootBurdenWiggler',
    'SvargrondArenaKill',
    'NewFrontierShardOfCorruption',
    'NewFrontierTirecz',
    'ServiceOfYalaharDiseasedTrio',
    'ServiceOfYalaharAzerus',
    'ServiceOfYalaharQuaraLeaders',
    'InquisitionBosses',
    'InquisitionUngreez',
    'KillingInTheNameOfKills',
    'MastersVoiceServants',
    'SecretServiceBlackKnight',
    'ThievesGuildNomad',
    'WotELizardMagistratus',
    'WotELizardNoble',
    'WotEKeeper',
    'WotEBosses',
    'WotEZalamon',
    'PlayerDeath',
    'AdvanceSave',
    'AdvanceRookgaard',
    'PythiusTheRotten',
    'DropLoot'
    }

    local function onMovementRemoveProtection(cid, oldPosition, time)
    local player = Player(cid)
    if not player then
    return true
    end

    local playerPosition = player:getPosition()
    if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
    player:setStorageValue(Storage.combatProtectionStorage, 0)
    return true
    end

    addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
    end

    function onLogin(player)
    local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!'
    if player:getLastLoginSaved() <= 0 then
    loginStr = loginStr .. ' Please choose your outfit.'
    player:sendTutorial(1)
    else
    if loginStr ~= '' then
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
    end

    loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved()))
    end
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)

    local playerId = player.uid

    -- Stamina
    Game.getStorageValue("stamina")[playerId] = 0

    -- Promotion
    local vocation = player:getVocation()
    local promoted = player:isPromoted()
    if player:isPremium() then
    local value = player:getStorageValue(Storage.Promotion)
    if promoted and value ~= 1 then
    player:setStorageValue(Storage.Promotion, 1)
    elseif not promoted and value == 1 then
    player:setVocation(vocation:getPromotion())
    end
    elseif promoted then
    player:setVocation(vocation:getDemotion())
    end

    -- Events
    for i = 1, #events do
    player:registerEvent(events[i])
    end

    if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then
    player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10)
    onMovementRemoveProtection(playerId, player:getPosition(), 10)
    end
    return true
    end

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    paulina24 escribió:
    Código:
    Maya tengo este Login.lua pero nose donde meter el "registerCreatureEvent" ayudita porfavor


    local events = {
    'TutorialCockroach',
    'ElementalSpheresOverlords',
    'BigfootBurdenVersperoth',
    'BigfootBurdenWarzone',
    'BigfootBurdenWeeper',
    'BigfootBurdenWiggler',
    'SvargrondArenaKill',
    'NewFrontierShardOfCorruption',
    'NewFrontierTirecz',
    'ServiceOfYalaharDiseasedTrio',
    'ServiceOfYalaharAzerus',
    'ServiceOfYalaharQuaraLeaders',
    'InquisitionBosses',
    'InquisitionUngreez',
    'KillingInTheNameOfKills',
    'MastersVoiceServants',
    'SecretServiceBlackKnight',
    'ThievesGuildNomad',
    'WotELizardMagistratus',
    'WotELizardNoble',
    'WotEKeeper',
    'WotEBosses',
    'WotEZalamon',
    'PlayerDeath',
    'AdvanceSave',
    'AdvanceRookgaard',
    'PythiusTheRotten',
    'DropLoot'
    }

    local function onMovementRemoveProtection(cid, oldPosition, time)
    local player = Player(cid)
    if not player then
    return true
    end

    local playerPosition = player:getPosition()
    if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
    player:setStorageValue(Storage.combatProtectionStorage, 0)
    return true
    end

    addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
    end

    function onLogin(player)
    local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!'
    if player:getLastLoginSaved() <= 0 then
    loginStr = loginStr .. ' Please choose your outfit.'
    player:sendTutorial(1)
    else
    if loginStr ~= '' then
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
    end

    loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved()))
    end
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)

    local playerId = player.uid

    -- Stamina
    Game.getStorageValue("stamina")[playerId] = 0

    -- Promotion
    local vocation = player:getVocation()
    local promoted = player:isPromoted()
    if player:isPremium() then
    local value = player:getStorageValue(Storage.Promotion)
    if promoted and value ~= 1 then
    player:setStorageValue(Storage.Promotion, 1)
    elseif not promoted and value == 1 then
    player:setVocation(vocation:getPromotion())
    end
    elseif promoted then
    player:setVocation(vocation:getDemotion())
    end

    -- Events
    for i = 1, #events do
    player:registerEvent(events[i])
    end

    if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then
    player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10)
    onMovementRemoveProtection(playerId, player:getPosition(), 10)
    end
    return true
    end

    este scripts no es para la version de su ot



    [CreatureEvents] (UP-LEVEL) Recompensa al subir de level YNU5B25
    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    AlanGammer

    AlanGammer
    Nuevo Miembro
    Nuevo Miembro
    una duda y si quiero que sean mas de 1 item que de abajo vuelvo a poner lo mismo el level y abajo otro item y asi?

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes

    lsenturion

    lsenturion
    Miembro
    Miembro
    Para ponerle mas items en un mismo nivel como es?

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://krudaserver.com

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    lsenturion escribió:Para ponerle mas items en un mismo nivel como es?

    Colocarle otra linea:
    Código:
    [150] = {item = 2160, count = 20},

    O colocar otra comilla asi: {item = 2160, 2153, count = 20}

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes

    lsenturion

    lsenturion
    Miembro
    Miembro
    No bro, no funciona con multi recompensas, ya intente y no jala

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://krudaserver.com

    zerochile

    zerochile
    Miembro
    Miembro
    lsenturion escribió:No bro, no funciona con multi recompensas, ya intente y no jala
    Recuerda que debes colocar correctamente el:
    Código:
    registerCreatureEvent(cid, "UpAbsolute")

    Y el:
    Código:
    <event type="advance" name="UpAbsolute" event="script" value="uplevelabsolute.lua"/>

    Ademas, recuerda que este script es para TFS 0.4 y OTX 2.

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://venore-war.sytes.net

    lsenturion

    lsenturion
    Miembro
    Miembro
    Si si ya se, pero me refiero a que como se le coloca 2 o 3 premios de item en un solo nivel, Ejemplo:
    Al llegar a nivel 100 que te de 50 crystal coins, 1 demon armor y 1 golden legs

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://krudaserver.com

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    lsenturion escribió:Si si ya se, pero me refiero a que como se le coloca 2 o 3 premios de item en un solo nivel, Ejemplo:
    Al llegar a nivel 100 que te de 50 crystal coins, 1 demon armor y 1 golden legs

    aqui lo tienes

    Código:

    local rookVocations = { 0 }
    local sorcererVocations = { 1, 5 }
    local druidVocations = { 2, 6 }
    local paladinVocations = { 3, 7 }
    local knightVocations = { 4, 8 }
    local mainVocations = { 1, 2, 3, 4, 5, 6, 7, 8 }
    local allVocations = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }

    local rewardsConfig = {
        -- 2cc and Magic Sword for every 20 level on main
        {
            level = 20,
            vocations = mainVocations,
            storage = 25100,
            items = {
                { 2160, 2 },
                { 2400, 1 },
            }
        },
        -- wand of inferno for 33 sorc
        {
            level = 33,
            vocations = sorcererVocations,
            storage = 25101,
            items = {
                { 2187, 1 },
            }
        },
    }

    function onAdvance(cid, skill, oldLevel, newLevel)

        for i1, rewardConfig in pairs(rewardsConfig) do
            if newLevel >= rewardConfig.level then
                if table.contains(rewardConfig.vocations, player:getVocation():getId()) then
                    if getPlayerStorageValue(cid, rewardConfig.storage) < 1 then
                        setPlayerStorageValue(cid, rewardConfig.storage, 1)
                        for i2, item in pairs(rewardConfig.items) do
                            doPlayerAddItem(cid, item[1], item[2])
                        end
                        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
                        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You received reward for getting " .. rewardConfig.level .. " level.")
                    end
                end
            end
        end

        return true
    end



    [CreatureEvents] (UP-LEVEL) Recompensa al subir de level YNU5B25
    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    lsenturion

    lsenturion
    Miembro
    Miembro
    Muchas gracias manito

    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 participantes
    http://krudaserver.com

    Contenido patrocinado


    +4
    paulina24
    Simon Marin
    shuyin
    [Admin] God Maya
    8 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).