• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Talkactions] Quisiera editar el scrip de !guildpoints

    Compartir:

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

    mijail0801

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Quisiera editar el scrip de !guildpoints que cuando se utilize en vez de dar guildpoints de premium points para poder comprar en la shop list. aqui te dejo el scrip que tengo:

    Código:
    GuildPointsConfigs =
    {
            ExecuteIntervalHours = 24,
            NeedPlayersOnline = 1,
            NeedDiferentIps = 1,
            MinLevel = 20,
            AddPointsForAcc = 60
    }

    function getGuildPlayersValidAccIDS(GuildID, MinLevel)
            local RanksIDS = {}
            local AccsID = {}
            local ValidAccsID = {}
            Query1 = db.getResult("SELECT `id` FROM `guild_ranks` WHERE guild_id = '".. GuildID .."'")
            if(Query1:getID() == -1) then
                    return ValidAccsID
            end
            for i = 1, Query1:getRows() do
                    table.insert(RanksIDS, Query1:getDataInt("id"))
                    Query1:next()
            end
            Query2 = db.getResult("SELECT `account_id` FROM `players` WHERE `rank_id` IN (".. table.concat(RanksIDS, ', ') ..") AND `level` >= ".. MinLevel .."")
            if(Query2:getID() == -1) then
                    return ValidAccsID
            end
            for i = 1, Query2:getRows() do
                    local AccID = Query2:getDataInt("account_id")
                    if #AccsID > 0 then
                            for k = 1, #AccsID do
                                    if AccID == AccsID[k] then
                                            AddAccList = false
                                            break
                                    end
                                    AddAccList = true
                            end
                            if AddAccList then
                                    table.insert(AccsID, AccID)
                            end
                    else
                            table.insert(AccsID, AccID)
                    end
                    Query2:next()
            end
            Query3 = db.getResult("SELECT `id` FROM `accounts` WHERE `guild_points_stats` = 0 AND `id` IN (".. table.concat(AccsID, ', ') ..")")
            if(Query3:getID() == -1) then
                    return ValidAccsID
            end
            for i = 1, Query3:getRows() do
                    local AccID = Query3:getDataInt("id")
                    if #ValidAccsID > 0 then
                            for k = 1, #ValidAccsID do
                                    if AccID == ValidAccsID[k] then
                                            AddAccList = false
                                            break
                                    end
                                    AddAccList = true
                            end
                            if AddAccList then
                                    table.insert(ValidAccsID, AccID)
                            end
                    else
                            table.insert(ValidAccsID, AccID)
                    end
                    Query3:next()
            end
            return ValidAccsID
    end

    function onSay(cid, words, param, channel)
            if(getPlayerGuildLevel(cid) == 3) then
                    local GuildID = getPlayerGuildId(cid)
                    Query = db.getResult("SELECT `last_execute_points` FROM `guilds` WHERE id = '".. GuildID .."'")
                    if(Query:getID() == -1) then
                            return true
                    end
                    if Query:getDataInt("last_execute_points") < os.time() then
                            local GuildMembers = {}
                            local GuildMembersOnline = {}
                            local PlayersOnline = getPlayersOnline()
                            for i, pid in ipairs(PlayersOnline) do
                                    if getPlayerGuildId(pid) == GuildID then
                                            if getPlayerLevel(pid) >= GuildPointsConfigs.MinLevel then
                                                    table.insert(GuildMembersOnline, pid)
                                            end
                                    end
                            end
                            if #GuildMembersOnline >= GuildPointsConfigs.NeedPlayersOnline then
                                    local IPS = {}
                                    for i, pid in ipairs(GuildMembersOnline) do
                                            local PlayerIP = getPlayerIp(pid)
                                            if #IPS > 0 then
                                                    for k = 1, #IPS do
                                                            if PlayerIP == IPS[k] then
                                                                    AddIPList = false
                                                                    break
                                                            end
                                                            AddIPList = true
                                                    end
                                                    if AddIPList then
                                                            table.insert(IPS, PlayerIP)
                                                    end
                                            else
                                                    table.insert(IPS, PlayerIP)
                                            end
                                    end
                                    if #IPS >= GuildPointsConfigs.NeedDiferentIps then
                                            local ValidAccounts = getGuildPlayersValidAccIDS(GuildID, GuildPointsConfigs.MinLevel)
                                            db.executeQuery("UPDATE `guilds` SET `premium_points` = ".. os.time() +(GuildPointsConfigs.ExecuteIntervalHours * 3600) .." WHERE `guilds`.`id` = ".. GuildID ..";")
                                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "".. #ValidAccounts .." Players received points")
                                            if #ValidAccounts > 0 then
                                                    db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points` + " ..GuildPointsConfigs.AddPointsForAcc .. ", `guild_points_stats` = ".. os.time() .." WHERE `id` IN (" .. table.concat(ValidAccounts, ',') ..");")
                                                    for i, pid in ipairs(GuildMembersOnline) do
                                                            local PlayerMSGAccID = getPlayerAccountId(pid)
                                                            for k = 1, #ValidAccounts do
                                                                    if PlayerMSGAccID == ValidAccounts[k] then
                                                                            doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "You received "..GuildPointsConfigs.AddPointsForAcc .." guild points.")
                                                                            break
                                                                    end
                                                            end
                                                    end
                                            end
                                    else
                                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only ".. #IPS .." players are valid, you need ".. GuildPointsConfigs.NeedDiferentIps .." players with different ips.")
                                    end
                            else
                                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Has only ".. #GuildMembersOnline .." players online you need ".. GuildPointsConfigs.NeedPlayersOnline .." players online at least from level ".. GuildPointsConfigs.MinLevel ..".")
                            end
                    else
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The command can only be run once every "..GuildPointsConfigs.ExecuteIntervalHours .." hours.")
                    end
            else
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.")
            end
            return true
    end

    Ver perfil de usuario

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Código:
    db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points` + " ..GuildPointsConfigs.AddPointsForAcc .. ", `guild_points_stats` = ".. os.time() .." WHERE `id` IN (" .. table.concat(ValidAccounts, ',') ..");")

    por


    Código:
    db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points` + " ..GuildPointsConfigs.AddPointsForAcc .. ", `guild_points_stats` = ".. os.time() .." WHERE `id` IN (" .. table.concat(ValidAccounts, ',') ..");")



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

    mijail0801

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Gracias te amo men

    Ver perfil de usuario

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