• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Estadisticas por Puntos (Skill, Mana, Health, etc)

    Compartir:

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

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Descripcion escribió:Buenas, andaba buscando un sistema que cuando vas subiendo de level vas obteniendo unos puntos y esos puntos te los puedes gastar en mejorar la vida, mana, skill, speed, etc. Y no se si la tengan para un Otx2 ya que la he visto para TFS 1.3 y es una pena no obtenerla en versiones antiguas.

    Estaria agradecido obtenerla para seguir avanzando en mi proyecto y que sea un proyecto muy completo.
    Imagen Explicativa escribió:Imagen Explicativa: [Sistema] Estadisticas por Puntos (Skill, Mana, Health, etc) Tibiaf10
    Version del Scripts: OTx Old Version(0.3.7)

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador

    Creaturescripts Vaya a data / Creaturescripts / scripts y busque un archivo LUA llamado login.lua, luego agregue esto:

    Código:

    registerCreatureEvent(cid, "PointSystem")

    Después de eso, vaya a data / Creaturescripts / scripts , copie un archivo LUA, cámbiele el nombre a PointsSystem.lua . Ingrese el archivo y elimine el contenido. Luego copia y pega esto:

    Código:

    local VocPoints = {
            [1] = 3,
            [2] = 3,
            [3] = 3,
            [4] = 5,
            [5] = 5,
            [6] = 5,
            [7] = 5,
            [8] = 8,
            }
    function onAdvance(cid, skill, oldlevel, newlevel)
            if not (VocPoints[getPlayerVocation(cid)]) then
                    return true
            end
            if (skill == 8) then
                    if (getPlayerStorageValue(cid, 14573) < newlevel) then
                            if (getPlayerStorageValue(cid, 14574) < 0) then
                                    setPlayerStorageValue(cid, 14574, 0)
                                    setPlayerStorageValue(cid, 14573, 0)
                            end

                            setPlayerStorageValue(cid, 14573, newlevel)
                            setPlayerStorageValue(cid, 14574, getPlayerStorageValue(cid, 14574) + (newlevel - oldlevel) * (VocPoints[getPlayerVocation(cid)]))
                            doSendAnimatedText(getThingPos(cid), "+" .. (newlevel - oldlevel) * (VocPoints[getPlayerVocation(cid)]), 18)
                    end
            end

            return true
    end

    ¡Ahora ve a data / Creaturescripts y abre Creaturescripts.xml ! Luego agrega esto:

    Código:

    <event type="advance" name="PointSystem" event="script" value="PointsSystem.lua"/>

    Talkaction


    Vaya a data / talkactions / scripts y copie un archivo LUA y cámbiele el nombre a PointsSystem . Luego ábrelo, elimina el contenido y copia y pega esto:

    Código:


    local VocPoints = {
        [1] = 3,
        [2] = 3,
        [3] = 3,
        [4] = 5,
        [5] = 5,
        [6] = 5,
        [7] = 5,
        [8] = 8,
        }
    function onSay(cid, words, param)
        if not (VocPoints[getPlayerVocation(cid)]) then
            return false
        end

        local param = param:lower()
        local p2 = string.explode(param, ",")
        if (getPlayerStorageValue(cid, 14574) < 0) then
            setPlayerStorageValue(cid, 14574, 0)
        end

        local skillids = {
            ["shielding"] = 5,
            ["sword"] = 2,
            ["axe"] = 3,
            ["club"] = 1,
            ["distance"] = 4
            }

        local attributes = {
            ["vitality"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Need to use two points to add 10 hp
            ["energy"] = {np = 4, vl = 2, nm = "Mana Points"},
            ["magic"] = {np = 30, vl = 1, nm = "Magic Level"},
            ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"},
            ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"},
            ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"},
            ["club"] = {np = 20, vl = 1, nm = "Club Skill"},
            ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"},
            }
        if (param == "check") then
            doPlayerPopupFYI(cid, "Level Points System\n\nPoints available: ".. getPlayerStorageValue(cid, 14574) .."\nPoints per level: ".. VocPoints[getPlayerVocation(cid)])
        elseif (p2[1] and p2[1] == "add") and (attributes[p2[2]]) and (tonumber(p2[3])) then
            if (getPlayerStorageValue(cid, 14574) < tonumber(p2[3]) * attributes[p2[2]].np) then
                doPlayerSendCancel(cid, "You do not have enough points to distribute!")
                return doSendMagicEffect(getThingPos(cid), 2)
            end

            if (p2[2] == "vitalidade") then
                setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + attributes[p2[2]].vl * tonumber(p2[3]))
                doCreatureAddHealth(cid, attributes[p2[2]].vl * tonumber(p2[3]))
            elseif (p2[2] == "energy") then
                setCreatureMaxMana(cid, getCreatureMaxMana(cid) + attributes[p2[2]].vl * tonumber(p2[3]))
                doCreatureAddMana(cid, attributes[p2[2]].vl * tonumber(p2[3]))
            elseif(skillids[p2[2]]) then
                for a = 1, tonumber(p2[3]) do
                    doPlayerAddSkillTry(cid, skillids[p2[2]], getPlayerRequiredSkillTries(cid, skillids[p2[2]], getPlayerSkillLevel(cid, skillids[p2[2]]) + 1) - getPlayerSkillTries(cid, skillids[p2[2]]), false)
                end
            end


            doSendMagicEffect(getThingPos(cid), 29)
            doSendMagicEffect(getThingPos(cid), 30)
            doSendAnimatedText(getThingPos(cid), "-" .. tonumber(p2[3]) * attributes[p2[2]].np, 180)
            setPlayerStorageValue(cid, 14574, getPlayerStorageValue(cid, 14574) - tonumber(p2[3]) * attributes[p2[2]].np)
        else
            local msgx = ""
            for i, v in pairs(attributes) do
                local add = (v.np > 1) and "s" or ""
                msgx = msgx .. string.upper(i:sub(1,1)) .. i:sub(2, #i) .. " - ".. v.np .. " point".. add .. " ~ " .. v.vl .. " ".. v.nm .. "\n"
            end
            doPlayerPopupFYI(cid, "Level Points System\n\nPoints needed to increase stats:\n\n".. msgx .. "\nExample of use: ".. words .." add, vitality, 5\n\nPoints available: ".. getPlayerStorageValue(cid, 14574))
        end

        return true
    end

    ¡Ahora vaya a data / talkactions y abra talkactions.xml ! Luego agrega esto:

    Código:

    <talkaction words="!points" event="script" value="PointsSystem.lua"/>

    #Configuration



    En el archivo PointsSystem.lua , data / Creaturescripts / scripts :

    Código:

    local VocPoints = {
            [1] = 3,
            [2] = 3,
            [3] = 3,
            [4] = 5,
            [5] = 5,
            [6] = 5,
            [7] = 5,
            [8] = 8,
            }

    Entre paréntesis está la identificación de la vocación, y los números junto a la identificación de la vocación son la cantidad de puntos que los jugadores ganan por nivel.

    En el archivo PointsSystem.lua , data / talkactions / scripts :


    Código:

    local VocPoints = {
            [1] = 3,
            [2] = 3,
            [3] = 3,
            [4] = 5,
            [5] = 5,
            [6] = 5,
            [7] = 5,
            [8] = 8,
            }

    Entre paréntesis está la identificación de la vocación, y los números junto a la identificación de la vocación son la cantidad de puntos que los jugadores ganan por nivel.

    Código:

    local attributes = {
                    ["vitality"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Need to use two points to add 10 hp
                    ["energy"] = {np = 4, vl = 2, nm = "Mana Points"},
                    ["magic"] = {np = 30, vl = 1, nm = "Magic Level"},
                    ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"},
                    ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"},
                    ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"},
                    ["club"] = {np = 20, vl = 1, nm = "Club Skill"},
                    ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"},
                    }

    np - la cantidad de puntos que necesita gastar
    vl - cuánto sanará

    Ejemplo:

    Código:

    ["vitality"] = {np = 2, vl = 5, nm = "Hit Points"}


    listo aqui esta el sistema espero que te sea compatible con tu distribucion




    [Sistema] Estadisticas por Puntos (Skill, Mana, Health, etc) YNU5B25
    https://www.tibiaface.com

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Gracias, me ha funcionado a la perfeccion. Smile

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Tema solucionado



    [Sistema] Estadisticas por Puntos (Skill, Mana, Health, etc) YNU5B25
    https://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.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).