• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [GlobalEvents] Bank Interes % de ganancia

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

    1default [GlobalEvents] Bank Interes % de ganancia el Mar Nov 14, 2017 12:06 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Con este script, los jugadores recibirán un interés en su cuenta bancaria cada mes (30, 27 ).

    • Puede configurar la cantidad de intereses ganados para las cuentas gratuitas y premium.
    • La información sobre cada interés dado puede leerse en un archivo de registro, declarado por usted mismo.


    La secuencia de comandos funciona en un evento global con un intervalo de dos horas, pero relájate, los jugadores no recibirán intereses cada 2 horas, solo una vez al día y al mes.

    Primero, ejecuta esto en MySQL

    Código:
    CREATE TABLE IF NOT EXISTS `bank_interest` (
      `id` INT(11) NOT NULL AUTO_INCREMENT,
      `day` INT(11) NOT NULL DEFAULT '0',
      `month` INT(10) UNSIGNED NOT NULL DEFAULT '0',
      `year` INT(11) NOT NULL DEFAULT '0',
      `given` INT(11) NOT NULL DEFAULT '0',
      `highest` INT(11) NOT NULL DEFAULT '0',
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;


    Data/globalevents/scripts

    Código:
    local minBalance = 100 --min balance required to gain interest.
    local interest =
    {
        free = 2, --2%
        premmy = 2.2 --2.2%
    }
    local day = 30
    local log = --save info in a log file?
    {
        enabled = true,
        dir = "data/logs/bankInterest.txt"
    }
     
    function onThink(interval, lastExecution, thinkInterval)
        local t = os.date('*t')
        if t.month == 2 then --February
            day = 27
        end
        local total = 0
        local highest = {}
        local l = db.getResult("select * from bank_interest order by id desc;")
        local checkMonth = false
        if l:getID() ~= -1 and l:getRows() > 0 then
            checkMonth = true
        end
        if t.day == day then
            if checkMonth and t.month == l:getDataInt("month") then
                return true
            end
            local f = io.open(log.dir, "a+")
            local query = db.getResult("select * from players;")
            if log.enabled and f ~= nil then
                f:write("\n\n---------------------------------------------------", "\nStartup at " .. os.date() .. ":\n\n")
            end
            if query:getID() ~= -1 then
                while(true) do
                    local balance = query:getDataInt("balance")
                    if balance >= minBalance then
                        total = total + 1
                        local st = db.getResult("select * from accounts where id = " .. query:getDataInt("account_id") .. ";"):getDataInt("premdays")
                        if log.enabled and f ~= nil then
                            f:write("\n>> Added " .. math.floor((query:getDataInt("balance") * (st > 0 and interest.premmy or interest.free) / 100)) .. " gold to the account balance of " .. query:getDataString("name"))
                        end
                        table.insert(highest, math.floor((query:getDataInt("balance") * (st > 0 and interest.premmy or interest.free) / 100)))
                        db.executeQuery("update players set balance = balance + " .. math.floor((query:getDataInt("balance") * (st > 0 and interest.premmy or interest.free) / 100)) .. " where id = " .. query:getDataInt("id") .. ";")
                    end
                    if not query:next() then break end
                end
                table.sort(highest, function(a, b) return a > b end)
                db.executeQuery("insert into bank_interest values (null, " .. t.day .. ", " .. t.month .. ", " .. t.year .. ", " .. total .. ", " .. highest[1] .. ");")
            end
            if log.enabled and f ~= nil then
                f:write("\n---------------------------------------------------")
                f:close()
            end
        end
        return true
    end

    Data/globalevents/globalevents.xml

    Código:
    <globalevent name="bankInterest" interval="7200" event="script" value="bankInterest.lua"/>



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

    2default Re: [GlobalEvents] Bank Interes % de ganancia el Miér Nov 15, 2017 8:53 am

    cimmeria

    avatar
    Miembro
    Miembro
    funciona version 7.4¿

    Ver perfil de usuario

    3default Re: [GlobalEvents] Bank Interes % de ganancia el Miér Nov 15, 2017 10:04 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:funciona version 7.4¿

    es muy posible si usas una platarma otx 2



    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.