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.
and here is the tp
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