Postado Outubro 11, 2016 8 anos Tenho um script da quest anihi, mas nessa script só pode ir players na quest, queria que mosntros sumonados pelos player pudessem ir também ou seja completar as positions que faltam, PORQUE QUANDO EU VOU LEVAR OS SUMONADOS NA QUEST FALA QUE NÃO TEM O TANTO NESCESSARIO PARA IR. Ajudem Por Favor ! Mostrar conteúdo oculto function isOnSameFloor(fromPos, toPos) return fromPos.z == toPos.z and true or false end function isEven(arg) return arg % 2 == 0 and true or false end function getMiddlePos(fromPos, toPos) if not isOnSameFloor(fromPos, toPos) then return false end local middle = {x = 0, y = 0, z = 0} middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1 middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1 middle.z = fromPos.z or toPos.z return middle end function getDistanceRadius(fromPos, toPos) if not isOnSameFloor(fromPos, toPos) then return false end local distance = getDistanceBetween(fromPos, toPos) return isEven(distance) and (distance/2) or math.floor(distance/2) + 1 end function clearArea(middlePos, rangex, rangey) local final = {x=1072, y=1164, z=6} -- Posição onde será teleportado quando acabar o tempo for i = -rangex, rangex do for j = -rangey, rangey do pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z} creature = getTopCreature(pos).uid if isMonster(creature) then doSendMagicEffect(getThingPos(creature), 14) doRemoveCreature(creature) elseif isPlayer(creature) then doSendMagicEffect(getThingPos(creature), 10) doTeleportThing(creature, final) end end end setGlobalStorageValue(sto, -1) return true end local t = { lvl = 120, entrada = { {x = 1125, y = 1152, z = 7}, -- pos players {x = 1124, y = 1152, z = 7}, -- pos players {x = 1123, y = 1152, z = 7}, -- pos players {x = 1122, y = 1152, z = 7}, -- pos players {x = 1121, y = 1152, z = 7}, -- pos players }, saida = { {x = 1127, y = 1153, z = 8}, -- pos para onde eles irão {x = 1126, y = 1153, z = 8}, -- pos para onde eles irão {x = 1125, y = 1153, z = 8}, -- pos para onde eles irão {x = 1124, y = 1153, z = 8}, -- pos para onde eles irão {x = 1123, y = 1153, z = 8}, -- pos para onde eles irão }, monstros = { {{x = 1122, y = 1153, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1121, y = 1151, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1121, y = 1155, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1128, y = 1153, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1129, y = 1151, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1129, y = 1155, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes } } function onUse(cid, item, fromPosition, itemEx, toPosition) local configure = { fromPos = {x=1121, y=1150, z=8}, -- posição superior esquerda do mapa, da area em que esta mapeado a area. toPos = {x=1129, y=1156, z=8}, -- posição inferior direita do mapa, da area em que esta mapeado a area. boss = "Anihilation" -- Aqui você bota o nome do monstro que você quer remover } local config = { position = {x=1126, y=1152, z=7}, -- Contagem position1 = {x=1121, y=1150, z=8}, -- Contagem position2 = {x=1121, y=1156, z=8}, -- Contagem position3 = {x=1129, y=1150, z=8}, -- Contagem position4 = {x=1129, y=1156, z=8}, -- Contagem fromPosition = {x=1121, y=1150, z=8}, toPosition = {x=1129, y=1156, z=8}, id = 1498, time = 2 -- tempo que o teleport ira sumir em minutos } local time = 120 local check = {} for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa de 5 jogadores para entrar na quest.") return true end if getGlobalStorageValue(sto) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde até que a sala seja liberada.") return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doTeleportThing(tid, t.saida, false) doSendMagicEffect(t.saida, 10) doTransformItem(item.uid, item.itemid == 9893 and 9893 or 9893) end for i = 1,time do formula = time - 1*i addEvent(doSendAnimatedText, i*1000, config.position, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position1, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position2, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position3, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position4, formula, TEXTCOLOR_RED) end setGlobalStorageValue(sto, 1) local rx = getDistanceRadius(configure.fromPos, configure.toPos) addEvent(clearArea, config.time * 60 * 1000, getMiddlePos(configure.fromPos, configure.toPos), rx, rx) return true end
Postado Outubro 12, 2016 8 anos Esta é uma mensagem automática! Este tópico foi movido para a área correta.Pedimos que você leia as regras do fórum. Mostrar conteúdo oculto This is an automated message! This topic has been moved to the correct area.Please read the forum rules. ➥ Regras | Seções OTServ | Seções BOT
Postado Outubro 12, 2016 8 anos function isOnSameFloor(fromPos, toPos) return fromPos.z == toPos.z and true or false end function isEven(arg) return arg % 2 == 0 and true or false end function getMiddlePos(fromPos, toPos) if not isOnSameFloor(fromPos, toPos) then return false end local middle = {x = 0, y = 0, z = 0} middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1 middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1 middle.z = fromPos.z or toPos.z return middle end function getDistanceRadius(fromPos, toPos) if not isOnSameFloor(fromPos, toPos) then return false end local distance = getDistanceBetween(fromPos, toPos) return isEven(distance) and (distance/2) or math.floor(distance/2) + 1 end function clearArea(middlePos, rangex, rangey) local final = {x=1072, y=1164, z=6} -- Posição onde será teleportado quando acabar o tempo for i = -rangex, rangex do for j = -rangey, rangey do pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z} creature = getTopCreature(pos).uid if isMonster(creature) or isPlayer(creature) then doSendMagicEffect(getThingPos(creature), 10) doTeleportThing(creature, final) end end end setGlobalStorageValue(sto, -1) return true end local t = { lvl = 120, entrada = { {x = 1125, y = 1152, z = 7}, -- pos players {x = 1124, y = 1152, z = 7}, -- pos players {x = 1123, y = 1152, z = 7}, -- pos players {x = 1122, y = 1152, z = 7}, -- pos players {x = 1121, y = 1152, z = 7}, -- pos players }, saida = { {x = 1127, y = 1153, z = 8}, -- pos para onde eles irão {x = 1126, y = 1153, z = 8}, -- pos para onde eles irão {x = 1125, y = 1153, z = 8}, -- pos para onde eles irão {x = 1124, y = 1153, z = 8}, -- pos para onde eles irão {x = 1123, y = 1153, z = 8}, -- pos para onde eles irão }, monstros = { {{x = 1122, y = 1153, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1121, y = 1151, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1121, y = 1155, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1128, y = 1153, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1129, y = 1151, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes {{x = 1129, y = 1155, z = 8}, "Anihilation"}, -- defina pos dos montros e nomes } } function onUse(cid, item, fromPosition, itemEx, toPosition) local configure = { fromPos = {x=1121, y=1150, z=8}, -- posição superior esquerda do mapa, da area em que esta mapeado a area. toPos = {x=1129, y=1156, z=8}, -- posição inferior direita do mapa, da area em que esta mapeado a area. boss = "Anihilation" -- Aqui você bota o nome do monstro que você quer remover } local config = { position = {x=1126, y=1152, z=7}, -- Contagem position1 = {x=1121, y=1150, z=8}, -- Contagem position2 = {x=1121, y=1156, z=8}, -- Contagem position3 = {x=1129, y=1150, z=8}, -- Contagem position4 = {x=1129, y=1156, z=8}, -- Contagem fromPosition = {x=1121, y=1150, z=8}, toPosition = {x=1129, y=1156, z=8}, id = 1498, time = 2 -- tempo que o teleport ira sumir em minutos } local time = 120 local check = {} for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você precisa de 5 jogadores para entrar na quest.") return true end if getGlobalStorageValue(sto) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde até que a sala seja liberada.") return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doTeleportThing(tid, t.saida, false) doSendMagicEffect(t.saida, 10) doTransformItem(item.uid, item.itemid == 9893 and 9893 or 9893) end for i = 1,time do formula = time - 1*i addEvent(doSendAnimatedText, i*1000, config.position, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position1, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position2, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position3, formula, TEXTCOLOR_RED) addEvent(doSendAnimatedText, i*1000, config.position4, formula, TEXTCOLOR_RED) end setGlobalStorageValue(sto, 1) local rx = getDistanceRadius(configure.fromPos, configure.toPos) addEvent(clearArea, config.time * 60 * 1000, getMiddlePos(configure.fromPos, configure.toPos), rx, rx) return true end Script meio completo "de mais" kkk Se ajudei, REP+ Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Outubro 14, 2016 8 anos Autor Ainda não deu cara aparece a mensagem que precisa de 5 players.
Postado Outubro 14, 2016 8 anos Em 14/10/2016 em 00:15, lucas2324 disse: Ainda não deu cara aparece a mensagem que precisa de 5 players. E todos os campos estão preenchidos com criaturas? (players/monstro) Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
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.