• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [GlobalEvents] Bank Interes % de ganancia

    Compartir:

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

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

    [Admin] God Maya

    [Admin] God Maya
    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"/>



    [GlobalEvents] Bank Interes % de ganancia YNU5B25
    2 participantes
    http://www.tibiaface.com

    cimmeria

    cimmeria
    Miembro
    Miembro
    funciona version 7.4¿

    2 participantes
    http://sayayinz.ddns.net

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

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    cimmeria escribió:funciona version 7.4¿

    es muy posible si usas una platarma otx 2



    [GlobalEvents] Bank Interes % de ganancia YNU5B25
    2 participantes
    http://www.tibiaface.com

    Contenido patrocinado


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