RevScript [TFS] Top 3 Players en el Mapa Position.x.y.z + Outfit y nombre

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Hola a todos, vengo a compartir un script por gazia


Top 3 players en el mapa, modifican positions , y les aparecera el Outfit, el nombre, acomodan un zona para mostrarlos:
Lo mejor es encerrarlos en un sitio, debido a que crea un monstruo fictivo.

1712926984357.png

1712926992285.png

Código Lua:
local testtexttopplayers = GlobalEvent("textfloat")

local positions = {
    {pos = Position(32367, 32241, 7), effect = CONST_ME_MAGIC_GREEN},
    {pos = Position(32369, 32241, 7), effect = CONST_ME_FIREWORK_YELLOW},
    {pos = Position(32371, 32241, 7), effect = CONST_ME_TUTORIALARROW}
}

function testtexttopplayers.onThink(interval)
    local getTopPlayers = function(amount)
        local query = string.format("SELECT `name`, `level`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons` FROM `players` ORDER BY `level` DESC, `experience` DESC LIMIT %d", amount)
        local resultId = db.storeQuery(query)
        local players = {}
        if resultId then
            repeat
                local name = result.getDataString(resultId, "name")
                local level = result.getDataInt(resultId, "level")
                local outfit = {
                    lookBody = result.getDataInt(resultId, "lookbody"),
                    lookFeet = result.getDataInt(resultId, "lookfeet"),
                    lookHead = result.getDataInt(resultId, "lookhead"),
                    lookLegs = result.getDataInt(resultId, "looklegs"),
                    lookType = result.getDataInt(resultId, "looktype"),
                    lookAddons = result.getDataInt(resultId, "lookaddons")
                }
                table.insert(players, {name = name, level = level, outfit = outfit})
            until not result.next(resultId)
            result.free(resultId)
        end
        return players
    end

    local topPlayers = getTopPlayers(3)
    for i, positionData in ipairs(positions) do
        local topPlayer = topPlayers[i]
        if topPlayer then
            local message = string.format("Top Level %d: %s [%d]", i, topPlayer.name, topPlayer.level)
            local spectators = Game.getSpectators(positionData.pos, false, true, 7, 7, 5, 5)
            for _, spectator in ipairs(spectators) do
                if spectator:isPlayer() then
                    spectator:say(message, TALKTYPE_MONSTER_SAY, false, spectator, positionData.pos)
                end
            end
            local dummy = Game.createMonster("rat", positionData.pos, false, true)
            if dummy then
                dummy:setOutfit(topPlayer.outfit)
                dummy:rename(topPlayer.name)
                addEvent(function() dummy:remove() end, 5000)
            end
            positionData.pos:sendMagicEffect(positionData.effect)
        else
            local message = string.format("Top Level %d: None", i)
            positionData.pos:sendMagicEffect(positionData.effect)
            local spectators = Game.getSpectators(positionData.pos, false, true, 7, 7, 5, 5)
            for _, spectator in ipairs(spectators) do
                if spectator:isPlayer() then
                    spectator:say(message, TALKTYPE_MONSTER_SAY, false, spectator, positionData.pos)
                end
            end
        end
    end
    return true
end

testtexttopplayers:interval(5000)
testtexttopplayers:register()
 
Arriba