• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [CreatureEvent] SpellUp! Los jugadores saben que nuevos spells aprenden

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

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Aqui le dejo un scrips muy interesante para que los player aprendan la magias que esta en su servidor mientras va levando y suviendo level le va ir enseñando su magias.

    CONFIGURACION

    repeatAfterDeath
    true -> el jugador siempre obtiene el mensaje cada vez que sube de level y hay un nuevo spell disponible
    false -> el jugador solo ve el mensaje la primera vez que obtiene el nuevo level
    detailedInfo
    true -> el jugador obtiene el nombre, las palabras, la mana que gaste o el porcentaje de mana y el ML de los nuevos spells
    false -> el jugador solo obtiene el nombre y las palabras de los nuevos spells
    messageType
    'channel' -> muestra un mensaje en el default channel del jugador con un estilo preconfigurado
    'popUp' -> muestra un dialogo de texto, como si leyeras un libro
    channelClass
    Esta opción solo se aplica cuando messageType está en modo 'channel', el valor normal es MESSAGE_EVENT_ORANGE


    *registrar@creaturescripts/scripts/login.lua.

    Código:
    registerCreatureEvent(cid,'SpellUp')

    *agregar@creaturescripts/creaturescripts.xml

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

    *crear creaturescripts/scripts/spellup.lua

    Código:
      --[[------------------------------------------------<|]
            |* * * * * * * * * * * * * * * * * * * * * * * * * * *|
            |* * * * * * *  [SpellUp! Script] * * * * * * * * * * |
            |* * * * * * * * By: Cybermaster * * * * * * * * * * *|       
            |* * *  Tested on: The Forgotten Server 0.3.6pl1 * * *|
            |* * * * * * * * * * * * * * * * * * * * * * * * * * *| 
            |>---------------------------------------------------]]

    local s = { --SETUP
            repeatAfterDeath = false, -- true -> player will always get the msg at lvlup | false -> player will only get the 1st time the gets the new level
            detailedInfo = true, -- true -> player will get name, words, mana & mana% info of spells | false -> player will only get the name and the words of the spells
    -- storage below is where the newlevel will be stored ONLY IF YOU USE repeatAfterDeath
            Storage = 10000,
            messageType = 'channel', -- options: 'popUp' or 'channel'
    --this one below only used if messageType = channel
            channelClass = MESSAGE_EVENT_ORANGE 
            }

    function onAdvance(cid, skill, oldlevel, newlevel)
            if skill ~= SKILL__LEVEL or not s.repeatAfterDeath and getCreatureStorage(cid, s.Storage) >= newlevel then
                    return true
            end

            local t = {}
            for i = 0, getPlayerInstantSpellCount(cid) - 1 do
                    local spell = getPlayerInstantSpellInfo(cid, i)
                    if(spell.level ~= 0) and spell.level == newlevel then
                            if(spell.manapercent > 0) then
                                    spell.mana = spell.manapercent .. '%'
                            end
                            table.insert(t, spell)
                    end
            end

            table.sort(t, function(a, B) return a.level < b.level end)
            local text, prevLevel = '', -1
            for i, spell in ipairs(t) do
                    local line = ''
                    if(prevLevel ~= spell.level) then
                            if(i ~= 1) then
                                    line = '\n'
                            end

                            line = line .. 'You have just advanced to level '..newlevel..' and learned new spells!\n'
                            prevLevel = spell.level
                    end
                    text = text ..line..' ['..spell.name..'] "'..spell.words..'" '..(s.detailedInfo and 'Mana['..spell.mana..']'..(spell.mlevel > 0 and ' ML['..spell.mlevel..']' or '') or '')..'\n'
            end

            if text == '' then
                    return true
            end

            doCreatureSetStorage(cid, s.Storage, newlevel)
            if s.messageType == 'popUp' then
                    doShowTextDialog(cid, 2175, text)
            elseif s.messageType == 'channel' then
                    doPlayerSendTextMessage(cid, s.channelClass, text)
            end
            return true
    end
    --[[---------------------------------------------------------------------------------------------------<|
    |  * * * * * * * * * * * * * * * * * * * * * E N D * * * * * * * * * * * * * * * * * * * * * * * * * *  | 
    |>=====================================================================================================]]

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

    hashirama

    avatar
    Miembro
    Miembro
    disculpa, una duda, funciona con cualquier version?

    Ver perfil de usuario http://www.google.com.mx/asdg

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    en cualquier version si usas otx y posiblemente te de algunos errores en versiones inferiores si usas tfs



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

    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.