• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Lms winner boardcast?

matti450

Member
Joined
Apr 13, 2008
Messages
507
Reaction score
24
Hello i am using a script for the lsm and it seems that it's work but it does not have auto boardcast like the winner of the fight, i am wondring if it is possible to add that code in to the scripts?

Using rev version 0.3.6

i hope i get that help from someone.

Code:
local t = {
    tmp = {
        {x = 1127, y = 988, z = 7}, -- northwest corner of area where players must stand in order to join the event
        {x = 1131, y = 990, z = 7} -- south east corner
    },
    arena = {
        {x = 1133, y = 984, z = 7}, -- nw corner of arena
        {x = 1145, y = 994, z = 7}, -- se corner of arena
        {x = 1139, y = 989, z = 7} -- center of arena
    },
  
    from = {x = 1133, y = 984, z = 7}, -- top left cornor of the playground (random players teleportation)
    to = {x = 1145, y = 994, z = 7}, -- bottom right cornor of the playground (random players teleportation)
  
    minPlayers = 2, -- min players required to start the battle
    noPlayers = 1, -- no players
    prize = {6527} -- rewards
}
local kick = 0

function onThink()
    local arenaPlayers = {}

    for x = t.arena[1].x, t.arena[2].x do
        for y = t.arena[1].y, t.arena[2].y do
            for z = t.arena[1].z, t.arena[2].z do
                local pos = {x = x, y = y, z = z}
                local n = getTileInfo(pos).creatures
                if n ~= 0 then
                    pos.stackpos = 1
                    local c = getThingfromPos(pos)
                    while c.uid ~= 0 do
                        if c.itemid == 1 and c.type == 1 then
                            table.insert(arenaPlayers, c.uid)
                            if #arenaPlayers == n then
                                break
                            end
                        end
                        pos.stackpos = pos.stackpos + 1
                        c = getThingfromPos(pos)
                    end
                end
            end
        end
    end

    if #arenaPlayers == 1 then
        local p = getPlayerMasterPos(arenaPlayers[1])
        doTeleportThing(arenaPlayers[1], p)
        doSendMagicEffect(p, CONST_ME_TELEPORT)
        doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You won a battle and received your reward.")
        doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing battle.")
        doPlayerAddItem(arenaPlayers[1], t.prize[math.random(#t.prize)], 10)
        kick = 0
    elseif #arenaPlayers > 1 then
        if kick == 0 then
            kick = os.time()
        else
            if os.time() - kick >= 600 then
                kick = 0
                for i = 1, #arenaPlayers do
                    doTeleportThing(arenaPlayers[i], {x=999, y=998, z=7})
                    doPlayerSendTextMessage(arenaPlayers[i], MESSAGE_STATUS_WARNING, "Too even, try harder next time.")
                end
            end
        end
    elseif #arenaPlayers == 0 then
        kick = 0
      
        local players = {}
        for x = t.tmp[1].x, t.tmp[2].x do
            for y = t.tmp[1].y, t.tmp[2].y do
                for z = t.tmp[1].z, t.tmp[2].z do
                    local c = getTopCreature({x = x, y = y, z = z})
                    if c.type == 1 then
                        table.insert(players, c.uid)
                    end
                end
            end
        end

        if #players >= t.minPlayers then
            for i = 1, #players do
                local p = {x = math.random(t.from.x, t.to.x), y = math.random(t.from.y, t.to.y), z = math.random(t.from.z, t.to.z)}
                doTeleportThing(players[i], p)
                doSendMagicEffect(p, CONST_ME_TELEPORT)
                doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The battle begins. Survive for glory!")
            end
        --[[else
            for i = 1, #players do
                doTeleportThing(players[i], {x=1000, y=998, z=7})
                doPlayerSendTextMessage(players[i], MESSAGE_STATUS_WARNING, "The event didn't start because there isn't enough players in area!")
            end]]
        end
    end
    return true
end

and here is the tp

Code:
local createpos = {x=999,y=1001,z=7}
local topos = {x=1123,y=989,z=7}
local msg = "Last man standing event TP has now closed! It will open again in 1 Hour!"
local timetoclose = 120          -- in second
local function remove()
    local tp = getTileItemById(createpos,1387).uid
    if tp ~= 0 then
        doRemoveItem(tp)
        doBroadcastMessage(msg)
    end
end

function onThink(interval)
    doCreateTeleport(1387, topos, createpos)
    doBroadcastMessage("Last man standing event TP is now open!\nCatch the teleport within "..timetoclose.." seconds quickly! Located in Temple !, reward 10 frag tokens!")
    addEvent(remove,timetoclose*1000)
    return true
end
 
In the code there is already a part that broadcasts the winner:
Code:
doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing battle.")

Are you getting any errors in your console?
 
In the code there is already a part that broadcasts the winner:
Code:
doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing battle.")

Are you getting any errors in your console?
Nope no errors at all witch means that it work without no error
 
doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You won a battle and received your reward.")
doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing battle.")
that's work in mine :)
and i already fix that.
 
doPlayerSendTextMessage(arenaPlayers[1], MESSAGE_STATUS_CONSOLE_BLUE, "You won a battle and received your reward.")
doBroadcastMessage(getCreatureName(arenaPlayers[1]) .." won a Last Man Standing battle.")
that's work in mine :)
and i already fix that.
okey well it did not work for me but its np :)
 
Back
Top