• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Ayuda] Reset System

    Compartir:

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

    1default [Ayuda] Reset System Mar Mayo 11, 2021 5:06 am

    Mezzony

    Mezzony
    Miembro
    Miembro
    Descripcion escribió:Hola Amigos De TF Quiero Pedirles un script que sea como este en esta pagina a continuacion.

    [Tienes que estar registrado y conectado para ver este vínculo]
    Imagen Explicativa escribió:Imagen Explicativa: [Ayuda] Reset System Tibiaf10
    Version del Scripts: OTx Old Version(0.3.7)

    2default Re: [Ayuda] Reset System Mar Mayo 11, 2021 3:53 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    hasta lo que he visto solo es en tfs 1.2

    [Tienes que estar registrado y conectado para ver este vínculo]

    a no ser que ellos lo hallan sacado del tfs 1.2 y lo hayan colocando en un tfs 1.2 compatible con 8.60



    [Ayuda] Reset System YNU5B25
    https://www.tibiaface.com

    3default Re: [Ayuda] Reset System Mar Mayo 11, 2021 11:52 pm

    Touch Me

    Touch Me
    Miembro
    Miembro
    ejecutas esto en tu phpmyadmin
    Código:
    ALTER TABLE `players` ADD `resets` INT NOT NULL DEFAULT 0;

    luego vas a talkactions.xml
    Código:
    <talkaction words="!reset" event="script" value="reset.lua"/>

    luego creas en talkaction reset.lua

    Código:

    --- Script made 100% by Nogard and Night Wolf.

    local config = {
        minlevel = 1000, --- level inical para resetear
        price = 0, --- precio por reset
        newlevel = 8, --- level despues de reset
        priceByReset = 0, --- incremento de precio por cada reset
        percent = 100, ---- porcentaje de hp y mana que se quedara despues de reset
        maxresets = 40,
        levelbyreset = 1000 --- incremento de level por cada reset
    }

    local function getResets(cid)
        local query = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
        return query:getDataInt("resets") <= 0 and 0 or query:getDataInt("resets")
    end
    local function addReset(cid)
        local resets = getResets(cid)
        local hp = getCreatureMaxHealth(cid)
        local resethp = hp*(config.percent/100)
        setCreatureMaxHealth(cid, resethp)
        local differencehp = (hp - resethp)
        doCreatureAddHealth(cid, -differencehp)
        local mana = getCreatureMaxMana(cid)
        local resetmana = mana*(config.percent/100)
        setCreatureMaxMana(cid, resetmana)
        local differencemana = (mana - resetmana)
        doCreatureAddMana(cid, -differencemana)
        local guid = getPlayerGUID(cid)
        doRemoveCreature(cid)
        local description = resets+1
       db.query("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. guid)
        db.query("UPDATE `players` SET `level` = "..config.newlevel..", `experience`= 0, `resets`= "..description.." WHERE `players`.`id`= ".. guid)
        return true
    end

    function onSay(cid, words, param, channel)
                 if not HaveCharaterAcess(cid) then
                 return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"You need to be a vip player to use this item.")
                 end
        local var = getResets(cid)
        local newPrice = config.price + (var * config.priceByReset)
        local newminlevel = config.minlevel + (var * config.levelbyreset)
        if param == "quantity" then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You have a total of '..var..' reset(s).')
        end
        if var >= config.maxresets then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'You already have reached the maximum of '.. config.maxresets.. ' resets!')
        elseif getPlayerMoney(cid) < newPrice then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'Its necessary to have at least '..newPrice..' gp\'s for reseting!')
        elseif getPlayerLevel(cid) < newminlevel then
            return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,'The minimum level for reseting is '..newminlevel..'!')

        end
        doPlayerRemoveMoney(cid,newPrice)
        addEvent(function()
            if isPlayer(cid) then
                addReset(cid)
            end
        end, 2000)
        local number = var+1
        local msg ="---[Reset: "..number.."]-- You have reseted! You'll be disconnected in 2 seconds."
        doPlayerPopupFYI(cid, msg)
        return true
    end

    luego en creaturescript.xml
    Código:
       <event type="advance" name="bonus" script="bonus.lua"/>
    <event type="login" name="bonusexp" script="bonusexp.lua"/>

    luego creas en creaturescript script bonus.lua
    este no lo testie el setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 5 * bonus
    el 5 es lo que se supone que gana de hp o mana la profesion en vocation.xml asi que lo ajustas igual a lo que tienes ahi
    Código:
    local function getResets(cid)
        local query = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
        return query:getDataInt("resets") <= 0 and 0 or query:getDataInt("resets")
    end
    local bonus = getResets(cid) * 5 / 100
    function onAdvance(cid, skill, oldLevel, newLevel)
    if(not getResets(cid) > 0) then
    return true
    end
    if skill == SKILL__LEVEL then
    if(getplayervocation(cid) == 1 or getplayervocation(cid) == 2 or getplayervocation(cid) == 5 or getplayervocation(cid) == 6) then -- magos
    setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 5 * bonus) -- si esto no da el porcentage cambialo a minimo 15 y en tu vocation xml tambien cambia el hpgain a minimo 15
    setCreatureMaxMana(cid, getCreatureMaxMana(cid) + 30 * bonus)
    elseif(getplayervocation(cid) == 3 or getplayervocation(cid) == 7) then -- paly
    setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 10 * bonus) -- si esto no da el porcentage cambialo a minimo 15 y en tu vocation xml tambien cambia el hpgain a minimo 15
    setCreatureMaxMana(cid, getCreatureMaxMana(cid) + 15 * bonus)
    elseif(getplayervocation(cid) == 4 or getplayervocation(cid) == 8) then -- kina
    setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 15 * bonus)
    setCreatureMaxMana(cid, getCreatureMaxMana(cid) + 5 * bonus) --si esto no da el porcentage cambialo a minimo 15 y en tu vocation xml tambien cambia el managain a minimo 15
    end
    end
    return true
    end

    en login.lua agregas
    Código:
    registerCreatureEvent(cid, "bonus")
    registerCreatureEvent(cid, "bonusexp")

    creas en creaturescript bonusexp.lua

    Código:
    local function getResets(cid)
        local query = db.getResult("SELECT `resets` FROM `players` WHERE `id`= "..getPlayerGUID(cid))
        return query:getDataInt("resets") <= 0 and 0 or query:getDataInt("resets")
    end
    local rate = getPlayerRates(cid) + getPlayerRates(cid) * getResets(cid) * 25 / 100
    function onLogin(cid)
    if(not getResets(cid) > 0) then
    return true
    end
    if isPlayer(cid) then
    doPlayerSetRate(cid, SKILL__LEVEL, rate)
    end
    return true
    end


    no probé que funcionaran correctamente así que pueden fallar.

    http://google.com

    4default Re: [Ayuda] Reset System Miér Mayo 12, 2021 7:40 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    muy excelente sistema que publicaste [Tienes que estar registrado y conectado para ver este vínculo] pero el tema aqui es que el quiere que lo otorgue esto +2.5% de dano, +5% de vida e mana e +25% de XP.

    al daño le entiendo que mientras mas reset mas duro pegara y eso esta modificado en el tfs 1.2 que publique ahi en game.cpp

    la vida y mana esta en player.cpp

    para lograr estos cambios si o si ay que tocar las sources para poder lograr estos cambios y se tendria que jugar con storages aunque no lo veo tan covenitente usar storage seria mas bien una funcion interna que verifique en el player x cantidad de reset en la phpadmin para que asi no haya problema de sobre cargar la tabla storage.



    [Ayuda] Reset System YNU5B25
    https://www.tibiaface.com

    5default Re: [Ayuda] Reset System Miér Mayo 12, 2021 8:07 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    estuve mirando esto

    para aumentar el daño para el jugador, agregue esto en combat.cpp
    en CombatHealthFunc y CombatManaFunc

    Código:

    if(caster && caster->getPlayer())
            {
                std::string value;
                caster->getStorage(170298, value);
                int32_t plus  = (int32_t)(atoi(value.c_str()));
                if(plus  > 0 && params.combatType != COMBAT_HEALING )
                  change  = (int32_t)std::ceil (change  + change  * plus  /100);
            }

    esta verificano un storage

    caster->getStorage(170298, value);

    pero solo funciona en valor unico obteniendo aquel almacenamiento habria que ver como modificarlo para darle un daño en porcentaje



    [Ayuda] Reset System YNU5B25
    https://www.tibiaface.com

    6default Re: [Ayuda] Reset System Miér Mayo 12, 2021 11:09 am

    Touch Me

    Touch Me
    Miembro
    Miembro
    Código:
    if(caster && caster->getPlayer())
            {
                std::string value;
                caster->getStorage("170298", value);
                int32_t plus  = (int32_t)(atoi(value.c_str()));
              int32_t power =plus *2.5 ;
                if(plus  > 0 && params.combatType != COMBAT_HEALING )
                  change  = (int32_t)std::ceil (change  + change  * power /100);
            }

    este seria 2.5% de daño extra por storage, solo seria agregarle al script de reset abajo
    de local function addReset(cid)
    Código:
    setPlayerStorageValue(cid, 170298, resets+1)

    http://google.com

    7default Re: [Ayuda] Reset System Jue Mayo 13, 2021 2:09 am

    Mezzony

    Mezzony
    Miembro
    Miembro
    Gracias, Testeare!



    Maya Y Donde puedo conseguir un TFS 1.2? Compilado? ó para compilar en windows 10 32bits

    8default Re: [Ayuda] Reset System Jue Mayo 13, 2021 8:02 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Gracias, Testeare!



    Maya Y Donde puedo conseguir un TFS 1.2? Compilado? ó para compilar en windows 10 32bits

    [Tienes que estar registrado y conectado para ver este vínculo]

    revisa aqui si este servidor contiene sus fuentes



    [Ayuda] Reset System YNU5B25
    https://www.tibiaface.com

    9default Re: [Ayuda] Reset System Jue Mayo 13, 2021 3:59 pm

    Mezzony

    Mezzony
    Miembro
    Miembro
    Oigan no me sirvieron los scripts. por que me confundi, no es Otx 0.3.7 si no 2.90 ayuda plis



    Maya Como hago apra colocar esos scripts que me diste en mi tfs 1.2 consegui uno ahora como lo instalo? y me das una gesior y database sin bugs? tfs 1.2

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