Postado Outubro 8, 2020 4 anos @Mapeador nem todos os ot tem broadcast em laranja, tenta o normal broadcastMessage("O "..config.name.." apareceu, voce tem "..config.time.." para mata-lo.") [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Outubro 11, 2020 4 anos @BangxD Não testei boss_hours = { ["10:00"] = {boss_name = "Demon", pos = {fromPosition = {x=1011, y=910, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 20, extra_time = 10}, ["11:00"] = {boss_name = "Rat", pos = {fromPosition = {x=1011, y=910, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 20, extra_time = 10}, ["12:00"] = {boss_name = "Hydra", pos = {fromPosition = {x=1011, y=910, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 20, extra_time = 10} } function isWalkable(pos) -- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function getPlayersInBossArea(tb) local t = {} for _, pid in pairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), tb.pos.fromPosition, tb.pos.toPosition) then t[#t+1] = pid end end return t end function doRemoveBoss(tb, force) for x = tb.pos.fromPosition.x, tb.pos.toPosition.x do for y = tb.pos.fromPosition.y, tb.pos.toPosition.y do local m = getTopCreature({x=x, y=y, z= tb.pos.fromPosition.z}).uid if m ~= 0 and isMonster(m) then if not force and #getPlayersInBossArea(tb) > 0 then addEvent(doRemoveBoss, tb.extra_time*60*1000, tb, true) return true end doSendMagicEffect(getCreaturePosition(m), 54) -- Efeito no monstro quando for removido doSendMagicEffect(getCreaturePosition(m), 3) -- Efeito no monstro quando for removido doRemoveCreature(m) break end end end end function onThink(interval, lastExecution) hours = tostring(os.date("%X")):sub(1, 5) tb = boss_hours[hours] if tb then local create = true repeat local pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z} if isWalkable(pos) then doCreateMonster(tb.boss_name, pos) doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) doBroadcastMessage("O Boss "..tb.boss_name.." nasceu!") addEvent(doRemoveBoss, tb.time*60*1000, tb, false) create = false end until not create end return true end Editado Outubro 11, 2020 4 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Outubro 11, 2020 4 anos 11 horas atrás, Vodkart disse: @BangxD Não testei boss_hours = { ["10:00"] = {boss_name = "Demon", pos = {fromPosition = {x=1011, y=910, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 20, extra_time = 10}, ["11:00"] = {boss_name = "Rat", pos = {fromPosition = {x=1011, y=910, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 20, extra_time = 10}, ["12:00"] = {boss_name = "Hydra", pos = {fromPosition = {x=1011, y=910, z=7}, toPosition = {x=1024, y=915, z=7}}, time = 20, extra_time = 10} } function isWalkable(pos) -- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function getPlayersInBossArea(tb) local t = {} for _, pid in pairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), tb.pos.fromPosition, tb.pos.toPosition) then t[#t+1] = pid end end return t end function doRemoveBoss(tb, force) for x = tb.pos.fromPosition.x, tb.pos.toPosition.x do for y = tb.pos.fromPosition.y, tb.pos.toPosition.y do local m = getTopCreature({x=x, y=y, z= tb.pos.fromPosition.z}).uid if m ~= 0 and isMonster(m) then if not force and #getPlayersInBossArea(tb) > 0 then addEvent(doRemoveBoss, tb.extra_time*60*1000, tb, true) return true end doSendMagicEffect(getCreaturePosition(m), 54) -- Efeito no monstro quando for removido doSendMagicEffect(getCreaturePosition(m), 3) -- Efeito no monstro quando for removido doRemoveCreature(m) break end end end end function onThink(interval, lastExecution) hours = tostring(os.date("%X")):sub(1, 5) tb = boss_hours[hours] if tb then local create = true repeat local pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z} if isWalkable(pos) then doCreateMonster(tb.boss_name, pos) doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) doBroadcastMessage("O Boss "..tb.boss_name.." nasceu!") addEvent(doRemoveBoss, tb.time*60*1000, tb, false) create = false end until not create end return true end Vou testa, mas ja vou agradecendo. vlw
Postado Março 3, 2021 4 anos Em 05/10/2020 em 20:19, Vodkart disse: @BangxD Então acho que vou fazer melhor, já que dependendo da hora vai ser determinado boss, vou fazer que nem o "arauto" do League of Legends. Se estiverem atacando o arauto os players tem mais "X" minutos para matar ele. Digamos que o "arauto" seja sumonado 02:00 horas e tem até 02:20 para mata-lo, porém se estiver uma equipe lá atacando ele as 2:20, o arauto ficará até 2:30 para dar o tempo necessário de ele ser feito. o que acha dessa ideia? Conseguiu fazer? se sim posta aip por favor? também queria um script assim Ta dando esse erro https://prnt.sc/10bqxlw
Postado Março 3, 2021 4 anos 7 horas atrás, leomacedin disse: Conseguiu fazer? se sim posta aip por favor? também queria um script assim Ta dando esse erro https://prnt.sc/10bqxlw consegui ja está ali no topico, no caso se tiver players na area ele da mais um extra time... poderia me mandar o seu codigo para ver como ficou? ta dizendo que não tem uma função no seu ot... manda o código alterado ai. [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
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.