Oi, tudo bom pessoal?
Bom, estou desenvolvendo um event, mas falta nele algo essencial que não sei como fazer ainda...
Queria poder usar o doBroadcastMessage(message, type), mas que não fosse pro servidor inteiro, já q o intervalo seria de 2 em 2 minutos, e ia encher o saco de muita gente.
Tem que ser apenas para os players que estiverem em uma determinada área, parecido com a função getSpectators(centerPos, rangex, rangey[, multifloor = false]) que eu encontrei, mas não precisa ser essa.
Vou deixar meu código aqui pra terem uma ideia melhor. (obs: não manjo mt de c++, então se tiver algo errado e quiser corrigir, agradeço se o fizer e tbm explicar porque ta errado)
globalevents.xml
<!-- Airplane Schedule -->
<globalevent name="airplane" interval="120000" event="script" value="schedule.lua"/>
schedule.lua
local config = {
city = 1, -- Agenda: [1] Prontera, [2] Alberta
landing1 = {x=1644,y=1570,z=0}, -- Local de desembarque do aeroplano
landing2 = {x=1645,y=1570,z=0}, -- Local de desembarque do aeroplano
toProntera1 = {x=1486,y=1525,z=7}, -- Coordenadas de Prontera
toProntera2 = {x=1486,y=1526,z=7}, -- Coordenadas de Prontera
toAlberta1 = {x=1492,y=1522,z=7}, -- Coordenadas de Alberta
toAlberta2 = {x=1492,y=1523,z=7}, -- Coordenadas de Alberta
}
function onThink(cid, interval, lastExecution) -- Talvez não seja a função correta (?)
if (config.city == 1) then -- Cria o portal para Prontera
doCreateTeleport(1387, config.toProntera1, config.landing1)
doCreateTeleport(1387, config.toProntera2, config.landing2)
doBroadcastMessage("O aeroplano pousou na cidade de Prontera, mas partira novamente em 20 segundos.")
addEvent(deleteTp, 20000) -- Remove o portal em 20 segundos
addEvent(leftProntera, 20000)
config.city = config.city + 1 -- Avança a agenda
elseif (config.city == 2) then -- Cria o portal para Alberta
doCreateTeleport(1387, config.toAlberta1, config.landing1)
doCreateTeleport(1387, config.toAlberta2, config.landing2)
doBroadcastMessage("O aeroplano pousou na cidade de Alberta, mas partira novamente em 20 segundos.")
addEvent(deleteTp, 20000) -- Remove o portal em 20 segundos
addEvent(leftAlberta, 20000)
config.city = 1 -- Retorna a agenda para o início
end
return true
end
function deleteTp()
local delete1 = getTileItemById(config.landing1, 1387)
local delete2 = getTileItemById(config.landing2, 1387)
doRemoveItem(delete1.uid, 1)
doRemoveItem(delete2.uid, 1)
doSendMagicEffect(config.landing1, CONST_ME_TELEPORT)
doSendMagicEffect(config.landing2, CONST_ME_TELEPORT)
end
function leftProntera()
doBroadcastMessage("O aeroplano partiu. Proximo destino: Alberta")
end
function leftAlberta()
doBroadcastMessage("O aeroplano partiu. Proximo destino: Prontera")
end