Postado Outubro 19, 2022 2 anos .Qual servidor ou website você utiliza como base? Provavelmente TFS 0.4 ou 1.0 (Digo isso pois não aparece na distro devido a um "bug" acredito. Qual o motivo deste tópico? Pedido de SCRIPT para realização de uma SALA BOSS personalizada. -> Acesso a Sala da Boss Room via porta magica (que consumirá 1 ticket para entrar e terá um cooldown de 4 horas para poder entrar novamente) -> Acesso a boss Room via Alavanca como a da anihi de 3 a 6 players. -> Ao clicar na alavanca, os players serão teleportados para o boss room e o boss será sumonado no centro dela com tempo de 10 minutos para ser morto. (caso não seja morto no tempo ele sumirá e os players voltaram para o sqm fora da boss room e terão que aguardar o cooldown para retomar. -> Assim que o boss morrer, aparecerá um TP que duraria 30 segundos para o salão de recompensas. -> No salão de recompensas terá um bau magico que dará recompensas baseada em sorte ou seja sorteará dentre 10 itens 1 deles como recompensa para o boss feito que poderá ser repedito novamente a cada 4 horas mantendo a mesma probabilidade de sorte para receber itens aleatórios dentre os configurados no script. Está surgindo algum erro? Se sim coloque-o aqui. Citar Todos scripts que testei até agora, tecnicamente eram incompletos, em relação a todas funções que queria, e também não chegavam a dar erro, porém não funcionavam ao ser colocados para rodar. A alavanca balançava de um lado para o outro mais não ativava a função desejada. OBS: Foram testados pelo menos 9 scrips diferentes e modificados para tentar fazer a idéia acontecer. Mais não sou programador, e sou amador nesse ramo. Você tem o código disponível? Se tiver publique-o aqui: Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Outubro 19, 2022 2 anos Tipo assim? Mostrar conteúdo oculto videoDemo.mp4Unavailable Configuração: para facilitar na manutenção, crie um arquivo em data > lib > configBossRoom.lua: -- made by Imperius -- == Configurações - BOSS ROOM === configBossRoom = { name = "Dragon Lord", -- nome do boss. minPlayers = 3, -- Quantidade Min de players para participar. timeToKill = 10, -- Tempo (em minutos) que os players terão para matar o boss. timeOpenTP = 30, -- Tempo (em segundos) que o teleport do salão de recompensas ficará aberto após matar o boss. -- Coloque abaixo ID de todas as recompensas que serão sorteadas ao clicar no bau (somente uma será entregue) -- recompensasID = {2494, 2195, 2400, 7708}, portaMagica = { storage = 1234569, -- Responsável por verificar o cooldown. ticketID = 10306, -- ID do ticket que o player precisará para passar pela porta. cooldown = 4 -- Tempo em horas. }, alavanca = { -- Coloque as posições dos sqm que os players precisará estar pisando para usar a alavanca. (estilo a ahini quest). {x = 32346, y = 31940, z = 8}, -- player 1 {x = 32347, y = 31940, z = 8}, -- player 2 {x = 32348, y = 31940, z = 8}, -- player 3 {x = 32349, y = 31940, z = 8}, -- player 4 {x = 32350, y = 31940, z = 8}, -- player 5 {x = 32351, y = 31940, z = 8} -- player 6 }, areaSalaBoss = {{x = 32310, y = 31930, z = 8}, {x = 32319, y = 31937, z = 8}}, -- Canto superior esquerdo | Canto inferior direito. (Sala do Boss) positionKickPlayer = {x = 32354, y = 31940, z = 8}, -- Position onde os players serão teleportados caso não tenha matado o boss em 10 minutos. positionSalaAlavanca = {x = 32351, y = 31940, z = 8}, -- Position onde o player será teleportado ao clicar na porta. (igual o do vídeo). positionSalaBoss = {x = 32314, y = 31931, z = 8}, -- Position onde os players irão ser teleportados ao usar a alavanca. positionSpawnBoss = {x = 32315, y = 31936, z = 8}, -- Position onde o boss irá aparecer. positionSalaRecompensas = {{x = 32319, y = 31937, z = 8}, {x = 32318, y = 31930, z = 5}} -- onde o TP vai abrir após matar o boss | onde o TP vai levar os players. } em data > actions > actions.xml: <!-- Porta Magica (Boss Room) --> <action uniqueid="65000" event="script" value="portaBossRoom.lua"/> <!-- Alavanca (Boss Room)--> <action uniqueid="65001" event="script" value="alavancaBossRoom.lua"/> <!-- bau recompensa (Boss Room) --> <action uniqueid="65002" script="bauBossRoom.lua" /> aviso: Não se esqueça de adicionar a uniqueid lá no Remere's Map Editor. actions > scripts > portaBossRoom.lua: Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) -- Caso o player não tenha o ticket -- if getPlayerItemCount(cid, configBossRoom.portaMagica.ticketID) < 1 then doPlayerSendCancel(cid, "You need at least one "..getItemNameById(configBossRoom.ticketID).." to be able to go through the door.") return true end -- function de tempo by (FeeTads) local function getTimeString(self) local format = { {'day', self / 60 / 60 / 24}, {'hour', self / 60 / 60 % 24}, {'minute', self / 60 % 60}, {'second', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end -- Caso não tenha passado o tempo do cooldown -- if getPlayerStorageValue(cid, configBossRoom.portaMagica.storage) - os.time() >= 1 then --doPlayerSendCancel(cid, "Voce precisa aguardar "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." para poder entrar novamente.") doPlayerSendCancel(cid, "You need to wait "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." to get through the door.") return true end -- Caso esteja tudo certo -- doPlayerRemoveItem(cid, configBossRoom.portaMagica.ticketID, 1) doTeleportThing(cid, configBossRoom.positionSalaAlavanca) doSendMagicEffect(getPlayerPosition(cid), 10) setPlayerStorageValue(cid, configBossRoom.portaMagica.storage, os.time() + (configBossRoom.portaMagica.cooldown)*3600) -- Seta o Cooldown (em horas). return true end actions > scripts > alavancaBossRoom.lua: Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for i = 1, #configBossRoom.alavanca do local v = getTopCreature(configBossRoom.alavanca[i]).uid players[i] = isPlayer(v) and v or nil end function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss. local player_room = 0 for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 and isPlayer(thing.uid) == true then player_room = player_room+1 end end end end return player_room end if #players < configBossRoom.minPlayers then doPlayerSendCancel(cid, "You need at least "..configBossRoom.minPlayers.." players to enter.") return true end if checkPlayersInRoom() >= 1 then doPlayerSendTextMessage(cid,19, "There is already a team in the boss room.") return true end function playersTP(position) -- Responsável por teleportar os jogadores for i = 1, 6 do if players[i] then doTeleportThing(players[i], position) doSendMagicEffect(position, CONST_ME_TELEPORT) end end end function removeBoss() -- Responsavel por Remover o BOSS da sala (caso os players nao tenham matado) for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then doRemoveCreature(creature) end end end end end function checkBossTime() -- Responsável por verificar se os jogadores matou ou não o boss após 10 minutos. for x = configBossRoom.areaSalaBoss[1].x - 1, configBossRoom.areaSalaBoss[2].x + 1 do for y = configBossRoom.areaSalaBoss[1].y - 1, configBossRoom.areaSalaBoss[2].y + 1 do local pos = {x=x, y=y, z=configBossRoom.areaSalaBoss[1].z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) and isInArray(configBossRoom.name, getCreatureName(m)) then playersTP(configBossRoom.positionKickPlayer) removeBoss() end end end return false end playersTP(configBossRoom.positionSalaBoss) doCreateMonster(configBossRoom.name, configBossRoom.positionSpawnBoss) addEvent(checkBossTime, configBossRoom.timeToKill*60*1000) return true end actions > scripts > bauBossRoom.lua: Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local randomItem = configBossRoom.recompensasID[math.random(1, #configBossRoom.recompensasID)] doPlayerAddItem(cid, randomItem) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 49) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomItem).." for killing the boss!") -- Mensagem que o player vai receber quando clicar no bau. return true end agora em creaturescripts > creaturescripts.xml: <!-- Boss Room --> <event type="death" name="bossTeleport" script="bossTeleport.lua"/> creaturescripts > scripts > bossTeleport.lua: Mostrar conteúdo oculto function onDeath(cid) registerCreatureEvent(cid, "bossTeleport") function removeTeleporte() local tp = getTileItemById(configBossRoom.positionSalaRecompensas[1], 5023).uid doRemoveItem(tp, 1) doSendMagicEffect(configBossRoom.positionSalaRecompensas[1], CONST_ME_POFF) end if getCreatureName(cid) == configBossRoom.name then doCreatureSay(cid, "A new teleporter has been created. You have "..configBossRoom.timeOpenTP.." seconds to leave this room.", TALKTYPE_ORANGE_1) doCreateTeleport(5023, configBossRoom.positionSalaRecompensas[2], configBossRoom.positionSalaRecompensas[1]) addEvent(removeTeleporte, configBossRoom.timeOpenTP*1000) end return true end por fim, vá até em data > monster > abra o arquivo do seu boss. ex: "NomeDoBoss.xml" e adicione a tag abaixo: <script> <event name="bossTeleport"/> </script> Editado Outubro 20, 2022 2 anos por Imperius (veja o histórico de edições)
Postado Outubro 20, 2022 2 anos Autor Solução Em 19/10/2022 em 22:42, Imperius disse: Tipo assim? Mostrar conteúdo oculto Mostrar conteúdo oculto videoDemo.mp4 45 MB · 0 downloads Configuração: para facilitar na manutenção, crie um arquivo em data > lib > configBossRoom.lua: -- made by Imperius -- == Configurações - BOSS ROOM === configBossRoom = { name = "Dragon Lord", -- nome do boss. minPlayers = 3, -- Quantidade Min de players para participar. timeToKill = 10, -- Tempo (em minutos) que os players terão para matar o boss. timeOpenTP = 30, -- Tempo (em segundos) que o teleport do salão de recompensas ficará aberto após matar o boss. -- Coloque abaixo ID de todas as recompensas que serão sorteadas ao clicar no bau (somente uma será entregue) -- recompensasID = {2494, 2195, 2400, 7708}, portaMagica = { storage = 1234569, -- Responsável por verificar o cooldown. ticketID = 10306, -- ID do ticket que o player precisará para passar pela porta. cooldown = 4 -- Tempo em horas. }, alavanca = { -- Coloque as posições dos sqm que os players precisará estar pisando para usar a alavanca. (estilo a ahini quest). {x = 32346, y = 31940, z = 8}, -- player 1 {x = 32347, y = 31940, z = 8}, -- player 2 {x = 32348, y = 31940, z = 8}, -- player 3 {x = 32349, y = 31940, z = 8}, -- player 4 {x = 32350, y = 31940, z = 8}, -- player 5 {x = 32351, y = 31940, z = 8} -- player 6 }, areaSalaBoss = {{x = 32310, y = 31930, z = 8}, {x = 32319, y = 31937, z = 8}}, -- Canto superior esquerdo | Canto inferior direito. (Sala do Boss) positionKickPlayer = {x = 32354, y = 31940, z = 8}, -- Position onde os players serão teleportados caso não tenha matado o boss em 10 minutos. positionSalaAlavanca = {x = 32351, y = 31940, z = 8}, -- Position onde o player será teleportado ao clicar na porta. (igual o do vídeo). positionSalaBoss = {x = 32314, y = 31931, z = 8}, -- Position onde os players irão ser teleportados ao usar a alavanca. positionSpawnBoss = {x = 32315, y = 31936, z = 8}, -- Position onde o boss irá aparecer. positionSalaRecompensas = {{x = 32319, y = 31937, z = 8}, {x = 32318, y = 31930, z = 5}} -- onde o TP vai abrir após matar o boss | onde o TP vai levar os players. } em data > actions > actions.xml: <!-- Porta Magica (Boss Room) --> <action uniqueid="65000" event="script" value="portaBossRoom.lua"/> <!-- Alavanca (Boss Room)--> <action uniqueid="65001" event="script" value="alavancaBossRoom.lua"/> <!-- bau recompensa (Boss Room) --> <action uniqueid="65002" script="bauBossRoom.lua" /> aviso: Não se esqueça de adicionar a uniqueid lá no Remere's Map Editor. actions > scripts > portaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) -- Caso o player não tenha o ticket -- if getPlayerItemCount(cid, configBossRoom.portaMagica.ticketID) < 1 then doPlayerSendCancel(cid, "You need at least one "..getItemNameById(configBossRoom.ticketID).." to be able to go through the door.") return true end -- function de tempo by (FeeTads) local function getTimeString(self) local format = { {'day', self / 60 / 60 / 24}, {'hour', self / 60 / 60 % 24}, {'minute', self / 60 % 60}, {'second', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end -- Caso não tenha passado o tempo do cooldown -- if getPlayerStorageValue(cid, configBossRoom.portaMagica.storage) - os.time() >= 1 then --doPlayerSendCancel(cid, "Voce precisa aguardar "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." para poder entrar novamente.") doPlayerSendCancel(cid, "You need to wait "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." to get through the door.") return true end -- Caso esteja tudo certo -- doPlayerRemoveItem(cid, configBossRoom.portaMagica.ticketID, 1) doTeleportThing(cid, configBossRoom.positionSalaAlavanca) doSendMagicEffect(getPlayerPosition(cid), 10) setPlayerStorageValue(cid, configBossRoom.portaMagica.storage, os.time() + (configBossRoom.portaMagica.cooldown)*3600) -- Seta o Cooldown (em horas). return true end actions > scripts > alavancaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for i = 1, #configBossRoom.alavanca do local v = getTopCreature(configBossRoom.alavanca[i]).uid players[i] = isPlayer(v) and v or nil end function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss. local player_room = 0 for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 and isPlayer(thing.uid) == true then player_room = player_room+1 end end end end return player_room end if #players < configBossRoom.minPlayers then doPlayerSendCancel(cid, "You need at least "..configBossRoom.minPlayers.." players to enter.") return true end if checkPlayersInRoom() >= 1 then doPlayerSendTextMessage(cid,19, "There is already a team in the boss room.") return true end function playersTP(position) -- Responsável por teleportar os jogadores for i = 1, 6 do if players[i] then doTeleportThing(players[i], position) doSendMagicEffect(position, CONST_ME_TELEPORT) end end end function removeBoss() -- Responsavel por Remover o BOSS da sala (caso os players nao tenham matado) for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then doRemoveCreature(creature) end end end end end function checkBossTime() -- Responsável por verificar se os jogadores matou ou não o boss após 10 minutos. for x = configBossRoom.areaSalaBoss[1].x - 1, configBossRoom.areaSalaBoss[2].x + 1 do for y = configBossRoom.areaSalaBoss[1].y - 1, configBossRoom.areaSalaBoss[2].y + 1 do local pos = {x=x, y=y, z=configBossRoom.areaSalaBoss[1].z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) and isInArray(configBossRoom.name, getCreatureName(m)) then playersTP(configBossRoom.positionKickPlayer) removeBoss() end end end return false end playersTP(configBossRoom.positionSalaBoss) doCreateMonster(configBossRoom.name, configBossRoom.positionSpawnBoss) addEvent(checkBossTime, configBossRoom.timeToKill*60*1000) return true end actions > scripts > bauBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local randomItem = configBossRoom.recompensasID[math.random(1, #configBossRoom.recompensasID)] doPlayerAddItem(cid, randomItem) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 49) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomItem).." for killing the boss!") -- Mensagem que o player vai receber quando clicar no bau. return true end agora em creaturescripts > creaturescripts.xml: <!-- Boss Room --> <event type="death" name="bossTeleport" script="bossTeleport.lua"/> creaturescripts > scripts > bossTeleport.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onDeath(cid) registerCreatureEvent(cid, "bossTeleport") function removeTeleporte() local tp = getTileItemById(configBossRoom.positionSalaRecompensas[1], 5023).uid doRemoveItem(tp, 1) doSendMagicEffect(configBossRoom.positionSalaRecompensas[1], CONST_ME_POFF) end if getCreatureName(cid) == configBossRoom.name then doCreatureSay(cid, "A new teleporter has been created. You have "..configBossRoom.timeOpenTP.." seconds to leave this room.", TALKTYPE_ORANGE_1) doCreateTeleport(5023, configBossRoom.positionSalaRecompensas[2], configBossRoom.positionSalaRecompensas[1]) addEvent(removeTeleporte, configBossRoom.timeOpenTP*1000) end return true end por fim, vá até em data > monster > abra o arquivo do seu boss. ex: "NomeDoBoss.xml" e adicione a tag abaixo: <script> <event name="bossTeleport"/> </script> Funcionou perfeitamente! MATOU O MEU PROBLEMA que eu estava tendo fazia 3 DIAS JESUIS!!!!!! MAIS QUE UM REP+ O CARA MERECE UM PIXzão de R$250,00 FIQUEI 1 semana para tentar achar scripts pra essa boss room. me Adiciona no discord depois moço! Faço questão de pagar por script.
Postado Outubro 22, 2022 2 anos Em 19/10/2022 em 22:42, Imperius disse: Tipo assim? Mostrar conteúdo oculto Mostrar conteúdo oculto videoDemo.mp4 45 MB · 0 downloads Configuração: para facilitar na manutenção, crie um arquivo em data > lib > configBossRoom.lua: -- made by Imperius -- == Configurações - BOSS ROOM === configBossRoom = { name = "Dragon Lord", -- nome do boss. minPlayers = 3, -- Quantidade Min de players para participar. timeToKill = 10, -- Tempo (em minutos) que os players terão para matar o boss. timeOpenTP = 30, -- Tempo (em segundos) que o teleport do salão de recompensas ficará aberto após matar o boss. -- Coloque abaixo ID de todas as recompensas que serão sorteadas ao clicar no bau (somente uma será entregue) -- recompensasID = {2494, 2195, 2400, 7708}, portaMagica = { storage = 1234569, -- Responsável por verificar o cooldown. ticketID = 10306, -- ID do ticket que o player precisará para passar pela porta. cooldown = 4 -- Tempo em horas. }, alavanca = { -- Coloque as posições dos sqm que os players precisará estar pisando para usar a alavanca. (estilo a ahini quest). {x = 32346, y = 31940, z = 8}, -- player 1 {x = 32347, y = 31940, z = 8}, -- player 2 {x = 32348, y = 31940, z = 8}, -- player 3 {x = 32349, y = 31940, z = 8}, -- player 4 {x = 32350, y = 31940, z = 8}, -- player 5 {x = 32351, y = 31940, z = 8} -- player 6 }, areaSalaBoss = {{x = 32310, y = 31930, z = 8}, {x = 32319, y = 31937, z = 8}}, -- Canto superior esquerdo | Canto inferior direito. (Sala do Boss) positionKickPlayer = {x = 32354, y = 31940, z = 8}, -- Position onde os players serão teleportados caso não tenha matado o boss em 10 minutos. positionSalaAlavanca = {x = 32351, y = 31940, z = 8}, -- Position onde o player será teleportado ao clicar na porta. (igual o do vídeo). positionSalaBoss = {x = 32314, y = 31931, z = 8}, -- Position onde os players irão ser teleportados ao usar a alavanca. positionSpawnBoss = {x = 32315, y = 31936, z = 8}, -- Position onde o boss irá aparecer. positionSalaRecompensas = {{x = 32319, y = 31937, z = 8}, {x = 32318, y = 31930, z = 5}} -- onde o TP vai abrir após matar o boss | onde o TP vai levar os players. } em data > actions > actions.xml: <!-- Porta Magica (Boss Room) --> <action uniqueid="65000" event="script" value="portaBossRoom.lua"/> <!-- Alavanca (Boss Room)--> <action uniqueid="65001" event="script" value="alavancaBossRoom.lua"/> <!-- bau recompensa (Boss Room) --> <action uniqueid="65002" script="bauBossRoom.lua" /> aviso: Não se esqueça de adicionar a uniqueid lá no Remere's Map Editor. actions > scripts > portaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) -- Caso o player não tenha o ticket -- if getPlayerItemCount(cid, configBossRoom.portaMagica.ticketID) < 1 then doPlayerSendCancel(cid, "You need at least one "..getItemNameById(configBossRoom.ticketID).." to be able to go through the door.") return true end -- function de tempo by (FeeTads) local function getTimeString(self) local format = { {'day', self / 60 / 60 / 24}, {'hour', self / 60 / 60 % 24}, {'minute', self / 60 % 60}, {'second', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end -- Caso não tenha passado o tempo do cooldown -- if getPlayerStorageValue(cid, configBossRoom.portaMagica.storage) - os.time() >= 1 then --doPlayerSendCancel(cid, "Voce precisa aguardar "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." para poder entrar novamente.") doPlayerSendCancel(cid, "You need to wait "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." to get through the door.") return true end -- Caso esteja tudo certo -- doPlayerRemoveItem(cid, configBossRoom.portaMagica.ticketID, 1) doTeleportThing(cid, configBossRoom.positionSalaAlavanca) doSendMagicEffect(getPlayerPosition(cid), 10) setPlayerStorageValue(cid, configBossRoom.portaMagica.storage, os.time() + (configBossRoom.portaMagica.cooldown)*3600) -- Seta o Cooldown (em horas). return true end actions > scripts > alavancaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for i = 1, #configBossRoom.alavanca do local v = getTopCreature(configBossRoom.alavanca[i]).uid players[i] = isPlayer(v) and v or nil end function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss. local player_room = 0 for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 and isPlayer(thing.uid) == true then player_room = player_room+1 end end end end return player_room end if #players < configBossRoom.minPlayers then doPlayerSendCancel(cid, "You need at least "..configBossRoom.minPlayers.." players to enter.") return true end if checkPlayersInRoom() >= 1 then doPlayerSendTextMessage(cid,19, "There is already a team in the boss room.") return true end function playersTP(position) -- Responsável por teleportar os jogadores for i = 1, 6 do if players[i] then doTeleportThing(players[i], position) doSendMagicEffect(position, CONST_ME_TELEPORT) end end end function removeBoss() -- Responsavel por Remover o BOSS da sala (caso os players nao tenham matado) for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then doRemoveCreature(creature) end end end end end function checkBossTime() -- Responsável por verificar se os jogadores matou ou não o boss após 10 minutos. for x = configBossRoom.areaSalaBoss[1].x - 1, configBossRoom.areaSalaBoss[2].x + 1 do for y = configBossRoom.areaSalaBoss[1].y - 1, configBossRoom.areaSalaBoss[2].y + 1 do local pos = {x=x, y=y, z=configBossRoom.areaSalaBoss[1].z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) and isInArray(configBossRoom.name, getCreatureName(m)) then playersTP(configBossRoom.positionKickPlayer) removeBoss() end end end return false end playersTP(configBossRoom.positionSalaBoss) doCreateMonster(configBossRoom.name, configBossRoom.positionSpawnBoss) addEvent(checkBossTime, configBossRoom.timeToKill*60*1000) return true end actions > scripts > bauBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local randomItem = configBossRoom.recompensasID[math.random(1, #configBossRoom.recompensasID)] doPlayerAddItem(cid, randomItem) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 49) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomItem).." for killing the boss!") -- Mensagem que o player vai receber quando clicar no bau. return true end agora em creaturescripts > creaturescripts.xml: <!-- Boss Room --> <event type="death" name="bossTeleport" script="bossTeleport.lua"/> creaturescripts > scripts > bossTeleport.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onDeath(cid) registerCreatureEvent(cid, "bossTeleport") function removeTeleporte() local tp = getTileItemById(configBossRoom.positionSalaRecompensas[1], 5023).uid doRemoveItem(tp, 1) doSendMagicEffect(configBossRoom.positionSalaRecompensas[1], CONST_ME_POFF) end if getCreatureName(cid) == configBossRoom.name then doCreatureSay(cid, "A new teleporter has been created. You have "..configBossRoom.timeOpenTP.." seconds to leave this room.", TALKTYPE_ORANGE_1) doCreateTeleport(5023, configBossRoom.positionSalaRecompensas[2], configBossRoom.positionSalaRecompensas[1]) addEvent(removeTeleporte, configBossRoom.timeOpenTP*1000) end return true end por fim, vá até em data > monster > abra o arquivo do seu boss. ex: "NomeDoBoss.xml" e adicione a tag abaixo: <script> <event name="bossTeleport"/> </script> tfs 1.0 ou 0.4 ? queria adicionar no meu 0.4 teste e funcionou .04tfs. PARABENS CARA TO A ANOS AQUI NO TK PEDINDO UM SCRIPT DESSE, SO NAO TE PAGO PQ CE SABE QUE CRIADO DE OT QUE AINDA N COMEÇOU NAO TEM GRANA Em 19/10/2022 em 22:42, Imperius disse: Tipo assim? Mostrar conteúdo oculto Mostrar conteúdo oculto videoDemo.mp4 45 MB · 0 downloads Configuração: para facilitar na manutenção, crie um arquivo em data > lib > configBossRoom.lua: -- made by Imperius -- == Configurações - BOSS ROOM === configBossRoom = { name = "Dragon Lord", -- nome do boss. minPlayers = 3, -- Quantidade Min de players para participar. timeToKill = 10, -- Tempo (em minutos) que os players terão para matar o boss. timeOpenTP = 30, -- Tempo (em segundos) que o teleport do salão de recompensas ficará aberto após matar o boss. -- Coloque abaixo ID de todas as recompensas que serão sorteadas ao clicar no bau (somente uma será entregue) -- recompensasID = {2494, 2195, 2400, 7708}, portaMagica = { storage = 1234569, -- Responsável por verificar o cooldown. ticketID = 10306, -- ID do ticket que o player precisará para passar pela porta. cooldown = 4 -- Tempo em horas. }, alavanca = { -- Coloque as posições dos sqm que os players precisará estar pisando para usar a alavanca. (estilo a ahini quest). {x = 32346, y = 31940, z = 8}, -- player 1 {x = 32347, y = 31940, z = 8}, -- player 2 {x = 32348, y = 31940, z = 8}, -- player 3 {x = 32349, y = 31940, z = 8}, -- player 4 {x = 32350, y = 31940, z = 8}, -- player 5 {x = 32351, y = 31940, z = 8} -- player 6 }, areaSalaBoss = {{x = 32310, y = 31930, z = 8}, {x = 32319, y = 31937, z = 8}}, -- Canto superior esquerdo | Canto inferior direito. (Sala do Boss) positionKickPlayer = {x = 32354, y = 31940, z = 8}, -- Position onde os players serão teleportados caso não tenha matado o boss em 10 minutos. positionSalaAlavanca = {x = 32351, y = 31940, z = 8}, -- Position onde o player será teleportado ao clicar na porta. (igual o do vídeo). positionSalaBoss = {x = 32314, y = 31931, z = 8}, -- Position onde os players irão ser teleportados ao usar a alavanca. positionSpawnBoss = {x = 32315, y = 31936, z = 8}, -- Position onde o boss irá aparecer. positionSalaRecompensas = {{x = 32319, y = 31937, z = 8}, {x = 32318, y = 31930, z = 5}} -- onde o TP vai abrir após matar o boss | onde o TP vai levar os players. } em data > actions > actions.xml: <!-- Porta Magica (Boss Room) --> <action uniqueid="65000" event="script" value="portaBossRoom.lua"/> <!-- Alavanca (Boss Room)--> <action uniqueid="65001" event="script" value="alavancaBossRoom.lua"/> <!-- bau recompensa (Boss Room) --> <action uniqueid="65002" script="bauBossRoom.lua" /> aviso: Não se esqueça de adicionar a uniqueid lá no Remere's Map Editor. actions > scripts > portaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) -- Caso o player não tenha o ticket -- if getPlayerItemCount(cid, configBossRoom.portaMagica.ticketID) < 1 then doPlayerSendCancel(cid, "You need at least one "..getItemNameById(configBossRoom.ticketID).." to be able to go through the door.") return true end -- function de tempo by (FeeTads) local function getTimeString(self) local format = { {'day', self / 60 / 60 / 24}, {'hour', self / 60 / 60 % 24}, {'minute', self / 60 % 60}, {'second', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end -- Caso não tenha passado o tempo do cooldown -- if getPlayerStorageValue(cid, configBossRoom.portaMagica.storage) - os.time() >= 1 then --doPlayerSendCancel(cid, "Voce precisa aguardar "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." para poder entrar novamente.") doPlayerSendCancel(cid, "You need to wait "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." to get through the door.") return true end -- Caso esteja tudo certo -- doPlayerRemoveItem(cid, configBossRoom.portaMagica.ticketID, 1) doTeleportThing(cid, configBossRoom.positionSalaAlavanca) doSendMagicEffect(getPlayerPosition(cid), 10) setPlayerStorageValue(cid, configBossRoom.portaMagica.storage, os.time() + (configBossRoom.portaMagica.cooldown)*3600) -- Seta o Cooldown (em horas). return true end actions > scripts > alavancaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for i = 1, #configBossRoom.alavanca do local v = getTopCreature(configBossRoom.alavanca[i]).uid players[i] = isPlayer(v) and v or nil end function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss. local player_room = 0 for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 and isPlayer(thing.uid) == true then player_room = player_room+1 end end end end return player_room end if #players < configBossRoom.minPlayers then doPlayerSendCancel(cid, "You need at least "..configBossRoom.minPlayers.." players to enter.") return true end if checkPlayersInRoom() >= 1 then doPlayerSendTextMessage(cid,19, "There is already a team in the boss room.") return true end function playersTP(position) -- Responsável por teleportar os jogadores for i = 1, 6 do if players[i] then doTeleportThing(players[i], position) doSendMagicEffect(position, CONST_ME_TELEPORT) end end end function removeBoss() -- Responsavel por Remover o BOSS da sala (caso os players nao tenham matado) for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then doRemoveCreature(creature) end end end end end function checkBossTime() -- Responsável por verificar se os jogadores matou ou não o boss após 10 minutos. for x = configBossRoom.areaSalaBoss[1].x - 1, configBossRoom.areaSalaBoss[2].x + 1 do for y = configBossRoom.areaSalaBoss[1].y - 1, configBossRoom.areaSalaBoss[2].y + 1 do local pos = {x=x, y=y, z=configBossRoom.areaSalaBoss[1].z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) and isInArray(configBossRoom.name, getCreatureName(m)) then playersTP(configBossRoom.positionKickPlayer) removeBoss() end end end return false end playersTP(configBossRoom.positionSalaBoss) doCreateMonster(configBossRoom.name, configBossRoom.positionSpawnBoss) addEvent(checkBossTime, configBossRoom.timeToKill*60*1000) return true end actions > scripts > bauBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local randomItem = configBossRoom.recompensasID[math.random(1, #configBossRoom.recompensasID)] doPlayerAddItem(cid, randomItem) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 49) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomItem).." for killing the boss!") -- Mensagem que o player vai receber quando clicar no bau. return true end agora em creaturescripts > creaturescripts.xml: <!-- Boss Room --> <event type="death" name="bossTeleport" script="bossTeleport.lua"/> creaturescripts > scripts > bossTeleport.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onDeath(cid) registerCreatureEvent(cid, "bossTeleport") function removeTeleporte() local tp = getTileItemById(configBossRoom.positionSalaRecompensas[1], 5023).uid doRemoveItem(tp, 1) doSendMagicEffect(configBossRoom.positionSalaRecompensas[1], CONST_ME_POFF) end if getCreatureName(cid) == configBossRoom.name then doCreatureSay(cid, "A new teleporter has been created. You have "..configBossRoom.timeOpenTP.." seconds to leave this room.", TALKTYPE_ORANGE_1) doCreateTeleport(5023, configBossRoom.positionSalaRecompensas[2], configBossRoom.positionSalaRecompensas[1]) addEvent(removeTeleporte, configBossRoom.timeOpenTP*1000) end return true end por fim, vá até em data > monster > abra o arquivo do seu boss. ex: "NomeDoBoss.xml" e adicione a tag abaixo: <script> <event name="bossTeleport"/> </script> nao sei se fiz algo de errado, mas nao esta expulsando da sala nem abrindo tp quando a criatura morre Editado Outubro 22, 2022 2 anos por Carlinhous1996 (veja o histórico de edições)
Postado Outubro 25, 2022 2 anos Em 19/10/2022 em 22:42, Imperius disse: Tipo assim? Mostrar conteúdo oculto Mostrar conteúdo oculto videoDemo.mp4 45 MB · 0 downloads Configuração: para facilitar na manutenção, crie um arquivo em data > lib > configBossRoom.lua: -- made by Imperius -- == Configurações - BOSS ROOM === configBossRoom = { name = "Dragon Lord", -- nome do boss. minPlayers = 3, -- Quantidade Min de players para participar. timeToKill = 10, -- Tempo (em minutos) que os players terão para matar o boss. timeOpenTP = 30, -- Tempo (em segundos) que o teleport do salão de recompensas ficará aberto após matar o boss. -- Coloque abaixo ID de todas as recompensas que serão sorteadas ao clicar no bau (somente uma será entregue) -- recompensasID = {2494, 2195, 2400, 7708}, portaMagica = { storage = 1234569, -- Responsável por verificar o cooldown. ticketID = 10306, -- ID do ticket que o player precisará para passar pela porta. cooldown = 4 -- Tempo em horas. }, alavanca = { -- Coloque as posições dos sqm que os players precisará estar pisando para usar a alavanca. (estilo a ahini quest). {x = 32346, y = 31940, z = 8}, -- player 1 {x = 32347, y = 31940, z = 8}, -- player 2 {x = 32348, y = 31940, z = 8}, -- player 3 {x = 32349, y = 31940, z = 8}, -- player 4 {x = 32350, y = 31940, z = 8}, -- player 5 {x = 32351, y = 31940, z = 8} -- player 6 }, areaSalaBoss = {{x = 32310, y = 31930, z = 8}, {x = 32319, y = 31937, z = 8}}, -- Canto superior esquerdo | Canto inferior direito. (Sala do Boss) positionKickPlayer = {x = 32354, y = 31940, z = 8}, -- Position onde os players serão teleportados caso não tenha matado o boss em 10 minutos. positionSalaAlavanca = {x = 32351, y = 31940, z = 8}, -- Position onde o player será teleportado ao clicar na porta. (igual o do vídeo). positionSalaBoss = {x = 32314, y = 31931, z = 8}, -- Position onde os players irão ser teleportados ao usar a alavanca. positionSpawnBoss = {x = 32315, y = 31936, z = 8}, -- Position onde o boss irá aparecer. positionSalaRecompensas = {{x = 32319, y = 31937, z = 8}, {x = 32318, y = 31930, z = 5}} -- onde o TP vai abrir após matar o boss | onde o TP vai levar os players. } em data > actions > actions.xml: <!-- Porta Magica (Boss Room) --> <action uniqueid="65000" event="script" value="portaBossRoom.lua"/> <!-- Alavanca (Boss Room)--> <action uniqueid="65001" event="script" value="alavancaBossRoom.lua"/> <!-- bau recompensa (Boss Room) --> <action uniqueid="65002" script="bauBossRoom.lua" /> aviso: Não se esqueça de adicionar a uniqueid lá no Remere's Map Editor. actions > scripts > portaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) -- Caso o player não tenha o ticket -- if getPlayerItemCount(cid, configBossRoom.portaMagica.ticketID) < 1 then doPlayerSendCancel(cid, "You need at least one "..getItemNameById(configBossRoom.ticketID).." to be able to go through the door.") return true end -- function de tempo by (FeeTads) local function getTimeString(self) local format = { {'day', self / 60 / 60 / 24}, {'hour', self / 60 / 60 % 24}, {'minute', self / 60 % 60}, {'second', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end -- Caso não tenha passado o tempo do cooldown -- if getPlayerStorageValue(cid, configBossRoom.portaMagica.storage) - os.time() >= 1 then --doPlayerSendCancel(cid, "Voce precisa aguardar "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." para poder entrar novamente.") doPlayerSendCancel(cid, "You need to wait "..getTimeString((getPlayerStorageValue(cid, configBossRoom.portaMagica.storage)-os.time())).." to get through the door.") return true end -- Caso esteja tudo certo -- doPlayerRemoveItem(cid, configBossRoom.portaMagica.ticketID, 1) doTeleportThing(cid, configBossRoom.positionSalaAlavanca) doSendMagicEffect(getPlayerPosition(cid), 10) setPlayerStorageValue(cid, configBossRoom.portaMagica.storage, os.time() + (configBossRoom.portaMagica.cooldown)*3600) -- Seta o Cooldown (em horas). return true end actions > scripts > alavancaBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for i = 1, #configBossRoom.alavanca do local v = getTopCreature(configBossRoom.alavanca[i]).uid players[i] = isPlayer(v) and v or nil end function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss. local player_room = 0 for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 and isPlayer(thing.uid) == true then player_room = player_room+1 end end end end return player_room end if #players < configBossRoom.minPlayers then doPlayerSendCancel(cid, "You need at least "..configBossRoom.minPlayers.." players to enter.") return true end if checkPlayersInRoom() >= 1 then doPlayerSendTextMessage(cid,19, "There is already a team in the boss room.") return true end function playersTP(position) -- Responsável por teleportar os jogadores for i = 1, 6 do if players[i] then doTeleportThing(players[i], position) doSendMagicEffect(position, CONST_ME_TELEPORT) end end end function removeBoss() -- Responsavel por Remover o BOSS da sala (caso os players nao tenham matado) for x = configBossRoom.areaSalaBoss[1].x, configBossRoom.areaSalaBoss[2].x do for y = configBossRoom.areaSalaBoss[1].y, configBossRoom.areaSalaBoss[2].y do for z = configBossRoom.areaSalaBoss[1].z, configBossRoom.areaSalaBoss[2].z do local area = {x = x, y = y, z = z} local creature = getTopCreature(area).uid if isCreature(creature) then doRemoveCreature(creature) end end end end end function checkBossTime() -- Responsável por verificar se os jogadores matou ou não o boss após 10 minutos. for x = configBossRoom.areaSalaBoss[1].x - 1, configBossRoom.areaSalaBoss[2].x + 1 do for y = configBossRoom.areaSalaBoss[1].y - 1, configBossRoom.areaSalaBoss[2].y + 1 do local pos = {x=x, y=y, z=configBossRoom.areaSalaBoss[1].z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) and isInArray(configBossRoom.name, getCreatureName(m)) then playersTP(configBossRoom.positionKickPlayer) removeBoss() end end end return false end playersTP(configBossRoom.positionSalaBoss) doCreateMonster(configBossRoom.name, configBossRoom.positionSpawnBoss) addEvent(checkBossTime, configBossRoom.timeToKill*60*1000) return true end actions > scripts > bauBossRoom.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onUse(cid, item, fromPosition, itemEx, toPosition) local randomItem = configBossRoom.recompensasID[math.random(1, #configBossRoom.recompensasID)] doPlayerAddItem(cid, randomItem) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 49) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomItem).." for killing the boss!") -- Mensagem que o player vai receber quando clicar no bau. return true end agora em creaturescripts > creaturescripts.xml: <!-- Boss Room --> <event type="death" name="bossTeleport" script="bossTeleport.lua"/> creaturescripts > scripts > bossTeleport.lua: Mostrar conteúdo oculto Mostrar conteúdo oculto function onDeath(cid) registerCreatureEvent(cid, "bossTeleport") function removeTeleporte() local tp = getTileItemById(configBossRoom.positionSalaRecompensas[1], 5023).uid doRemoveItem(tp, 1) doSendMagicEffect(configBossRoom.positionSalaRecompensas[1], CONST_ME_POFF) end if getCreatureName(cid) == configBossRoom.name then doCreatureSay(cid, "A new teleporter has been created. You have "..configBossRoom.timeOpenTP.." seconds to leave this room.", TALKTYPE_ORANGE_1) doCreateTeleport(5023, configBossRoom.positionSalaRecompensas[2], configBossRoom.positionSalaRecompensas[1]) addEvent(removeTeleporte, configBossRoom.timeOpenTP*1000) end return true end por fim, vá até em data > monster > abra o arquivo do seu boss. ex: "NomeDoBoss.xml" e adicione a tag abaixo: <script> <event name="bossTeleport"/> </script> sumiu
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.