Ir para conteúdo

Last man standing problema.


Andreselos

Posts Recomendados

Bom galera vou tentar explicar o que ta acontecendo, ando procurando por eventos pra colocar no meu servidor faz 3 dias e não axo nada pra tfs 1.0 mas enfim acabei encontrando esse evento que é o last man standing que é do nevix la do otland, o problema é que ele não colocou nenhum mapa então eu adaptei um mapa aqui e queria que fosse bem grande a area de combate, e não só uma arena, então eu criei essa arena do meu jeito:

 

 

fG4tWUx.jpg

 

 

A principio funcionou tudo tranquilo, mas tem um bug que anda me incomodando por exemplo, o evento começa e todos são teletransportados para o meio desse mapa que eu criei, fiz o teste com 2 players, quando um sai e deixa o outro no centro do combate, por exemplo se afasta pros cantos seja esquerda direita cima ou baixo e fica sozinho o evento termina e da o premio pros dois e as vezes pra um só, sem ao menos ter morrido ninguém.
eu queria que não tivesse isso, que desse o premio pra apenas 1 independente se ele saiu e ficou sozinho por um tempo (fugindo do outro player), queria que desse o premio pro único sobrevivente que restar segue os scripts do evento:

 

Globalevents lms.lua

 

local centeroffight = {x=24553,y=23720,z=7}

local waitingplace = {x=24554,y=23720,z=6}
local depotcenter = {x=32345,y=32223,z=7}
local MinimumPlayers = 2
local rewardpoints = 2
local function lmsclosed1()
-- broadcastMessage("Last Man Standing event will start in 1 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING)
end
local function lmsclosed()
count = 0
local spectators = getSpectators(waitingplace, 10, 10, false)
if spectators ~= nil then
for _, spectator in ipairs(spectators) do
if isPlayer(spectator) then
count = count + 1
end
end
end
if (count >= MinimumPlayers) then
broadcastMessage("Last Man Standing event portal closed and event started!", MESSAGE_STATUS_WARNING)
for _, pid in ipairs(getOnlinePlayers()) do
if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
doTeleportThing(playerids,centeroffight)
doSendMagicEffect(center, CONST_ME_TELEPORT)
end
end
else
broadcastMessage("Not enough players to start Last man Standing event! Minimum: "..MinimumPlayers.." players. We have "..count.."!", MESSAGE_STATUS_WARNING)
setGlobalStorageValue(25002, 0)
for _, pid in ipairs(getOnlinePlayers()) do
if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
doTeleportThing(playerids,depotcenter)
doSendMagicEffect(depotcenter, CONST_ME_TELEPORT)
setPlayerStorageValue(pid, 25001, 0)
end
end
end
return true
end
local function lmscheck()
count = 0
local spectators = getSpectators(centeroffight, 10, 10, false)
if spectators ~= nil then
for _, spectator in ipairs(spectators) do
if isPlayer(spectator) then
count = count + 1
end
end
end
if count == 1 then
for _, pid in ipairs(getOnlinePlayers()) do
if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
setPlayerStorageValue(playerids, 25001, 0)
end
end
local spectators = getSpectators(centeroffight, 100, 100, false)
if spectators ~= nil then
for _, spectator in ipairs(spectators) do
if isPlayer(spectator) then
doTeleportThing(spectator,depotcenter)
doSendMagicEffect(depotcenter, CONST_ME_TELEPORT)
broadcastMessage("LMS ended winner is: "..getPlayerName(spectator)..", reward is 2 premium points.", MESSAGE_STATUS_WARNING)
local accid = Player(spectator):getAccountId()
local points = rewardpoints
db.query("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. accid)
end
end
end
for _, pid in ipairs(getOnlinePlayers()) do
if getPlayerStorageValue(pid, 25001) == 1 then
local playerids = getPlayerByName(pid)
setPlayerStorageValue(pid, 25001, 0)
end
end
stopEvent(lmscheck)
else
addEvent(lmscheck, 10*1000)
end
end
local function lms()
broadcastMessage("Last Man Standing event will start in 2 minutes. Portal is opened in depot", MESSAGE_STATUS_WARNING)
portalwhere = {x= 32349, y=32222, z=7}
local portal = doCreateItem(11796,1,portalwhere)
doSetItemActionId(portal, 25001)
doSendMagicEffect(portalwhere, CONST_ME_TELEPORT)
iteminfo = {x= 32348, y=32222, z=7}
local item = doCreateItem(1431,1,iteminfo)
doSetItemActionId(item, 25002)
doSendMagicEffect(iteminfo, CONST_ME_TELEPORT)
addEvent(function() doRemoveItem(getTileItemById(portalwhere, 11796).uid) end, 120 * 1000)
addEvent(function() doSendMagicEffect(portalwhere, CONST_ME_TELEPORT) end, 120 * 1000)
addEvent(function() doRemoveItem(getTileItemById(iteminfo, 1431).uid) end, 120 * 1000)
addEvent(function() doSendMagicEffect(iteminfo, CONST_ME_TELEPORT) end, 120 * 1000)
addEvent(lmsclosed, 2*60*1000)
addEvent(lmsclosed1, 1*60*1000)
addEvent(lmscheck, 130*1000)
return true
end
function onThink(interval)
broadcastMessage("Last Man Standing event will start in 3 minutes.", MESSAGE_STATUS_WARNING)
addEvent(lms, 60*1000)
return true
end

movements lmsjoin.lua

local t = {
waitingroom = {x=24554,y=23720,z=6},
}
function onStepIn(cid, item, position, lastPosition)
doTeleportThing(cid, t.waitingroom)
doSendMagicEffect(t.waitingroom, CONST_ME_TELEPORT)
if (getGlobalStorageValue(25002) < 0) then
setGlobalStorageValue(25002,1)
setPlayerStorageValue(cid, 25001, 1)
broadcastMessage("Player "..getCreatureName(cid).." joined Last man standing event!", MESSAGE_STATUS_WARNING)
else
setGlobalStorageValue(25002,getGlobalStorageValue(25002)+1)
setPlayerStorageValue(cid, 25001, 1)
broadcastMessage("Player "..getCreatureName(cid).." joined Last man standing event!", MESSAGE_STATUS_WARNING)
end
end

movements lmsleave.lua

local t = {
depot = {x = 32346, y = 32223, z = 7},
}
function onStepIn(cid, item, position, lastPosition)
doTeleportThing(cid, t.depot)
doSendMagicEffect(t.depot, CONST_ME_TELEPORT)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You leaved last man standing event!!")
setPlayerStorageValue(cid, 25001, 0)
setGlobalStorageValue(25002,getGlobalStorageValue(25002)-1)
end

Eu espero a ajuda de vocês pra resolver esse problema, agradeço desde já.
todos que tentarem me ajudar darei rep+
Link para o comentário
Compartilhar em outros sites

  • 2 months later...

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...