Postado Fevereiro 19, 2015 10 anos Olá galera da Tk, tive uma ideia meio louca para uma quest que dá vida a estátuas Sem mais delongas, vamos a quest. Bom, a quest é constituída por uma sala com uma alavanca, que é rodeada por estátuas, ao puxar esta alavanca as estátuas "ganhariam" vida . Imagem da quest em sí: Minha ideia está nesta imagem, como vocês podem notar o outfit do meu char é igual as estátuas Eis que surge o meu pedido: Um script que ao puxar a alavanca ou passar pelo tile antes da alavanca (o que for mais fácil de fazer) as estátuas virassem monstros (qualquer um, eu mudo a outifit), e depois que todos fossem mortos um portal surgisse no tile central. ID das estátuas: 3705 (Virada para o \/ Sul ) 3706 ( Leste >) 3707 ( Norte /\) 3708 ( Oeste <) ID da Outfit: (345) Ot Versão 8.6 Agradeço dês de já! Editado Fevereiro 19, 2015 10 anos por eviltox (veja o histórico de edições)
Postado Fevereiro 19, 2015 10 anos Fazendo... Lembre-se de criar o monstro com esta outfit já. Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Fevereiro 19, 2015 10 anos Solução Desculpe a demora, tive visitas em casa... Enfim, testei e funcionou perfeitamente. A tag em movements.xml será: <movevent type="StepIn" actionid="12129" event="script" value="SurvivalStatues.lua"/> SurvivalStatues.lua, na pasta Movements/scripts: local monster = 'Lizard Sentinel' -- Nome do Monstro que Aparecerá local gstrg = 12130 -- Não precisa mexer local effct = 38 -- Efeito nas státuas ao se transformarem local tempo = 15 -- em segundos para checar se pode reativar as estatuas local pos = { [1] = {{x=992, y=1050, z=7}, 3707}, -- Posição, ID da Estátua [2] = {{x=990, y=1048, z=7}, 3706}, [3] = {{x=990, y=1046, z=7}, 3706}, [4] = {{x=990, y=1044, z=7}, 3706}, [5] = {{x=993, y=1041, z=7}, 3705}, [6] = {{x=997, y=1041, z=7}, 3705}, [7] = {{x=1000, y=1044, z=7}, 3708}, [8] = {{x=1000, y=1046, z=7}, 3708}, [9] = {{x=1000, y=1048, z=7}, 3708}, [10] = {{x=997, y=1050, z=7}, 3707} } ----------- FIM DAS CONFIGURAÇÕES ----------- function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) then if getGlobalStorageValue(gstrg) < 1 then for x = 1, #pos do doRemoveItem(getTileItemById(pos[x][1], pos[x][2]).uid) doSendMagicEffect(pos[x][1], effct) doCreateMonster(monster, pos[x][1]) end addEvent(ReAddStatues, tempo * 1000) setGlobalStorageValue(gstrg, 1) else doPlayerSendCancel(cid, "Missão em andamento.") end end return true end function ReAddStatues() if getGlobalStorageValue(gstrg) == 2 then for i = 1, #pos do doCreateItem(pos[i][2], 1, pos[i][1]) end setGlobalStorageValue(gstrg, 0) else addEvent(ReAddStatues, tempo * 1000) end return true end Agora vamos em CreatureScripts.xml e registre a tag abaixo: <event type="kill" name="FinalBattle_Kill" event="script" value="SurvivalStatues.lua"/> E em login.lua, registre a tag abaixo, junto com as do gênero: registerCreatureEvent(cid, "FinalBattle_Kill") E agora crie o arquivo SurvivalStatues.lua na mesma pasta: local gstrg = 12130 -- Não precisa mexer local tempo = 10 -- Tempo em Segundos que o teleport ficará ativo local posarea = {{x=988, y=1040, z=7}, {x=1004, y=1050, z=7}} -- Área inicial e final da Sala do Evento local tp = {1387, {x=995, y=1048, z=7}, {x=995, y=1052, z=7}} -- ID, PosCreate, PosDestino local msgfinal = "Meus parabéns, você completou a missão." -- Mensagem Ao Concluir local monsters = {"Lizard Sentinel"} -- que serão criados na missão ----------------- FIM DAS CONFIGURAÇÕES ----------------- function onKill(cid, target, lastHit) if isMonster(target) then if isInArray(monsters, getCreatureName(target)) then if getCreatureFinalBattle() > 0 then doSendAnimatedText(getThingPos(cid), "restam "..getCreatureFinalBattle()..".", 100) else doCreateTeleport(tp[1], tp[3], tp[2]) doPlayerSendTextMessage(cid, 4, msgfinal) setGlobalStorageValue(gstrg, 2) doSendAnimatedText(getThingPos(cid), "Parabéns.", 205) addEvent(function () doRemoveItem(getTileItemById(tp[2], tp[1]).uid) end, tempo * 1000) end end end return true end function getCreatureFinalBattle() -- Função que Criei para Checar Se Há Monsters na Área (Ignorando Players e Summons) local mtab = {} for xx = posarea[1].x, posarea[2].x do for yy = posarea[1].y, posarea[2].y do get_top = getTopCreature({x=xx, y=yy, z=7}).uid if get_top > 0 then if isMonster(get_top) and not isPlayer(getCreatureMaster(get_top)) then table.insert(mtab, get_top) end end end end local ret1 = #mtab - 1 return ret1 end Lembre-se de configurar tudo no início dos scripts. Volte para dizer como foi. Boa sorte. Editado Fevereiro 19, 2015 10 anos por Adriano SwaTT (veja o histórico de edições) Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Fevereiro 19, 2015 10 anos Autor #Edite Então, funcinou perfeitamente, só tem um probleminha, quando você mata qualquer lizard, o portal se abre e diz que você completou a missão '-' Uma pergunta: local posarea = {{x=10879, y=993, z=7}, {x=1088, y=1000, z=7}} -- Área inicial e final da Sala do Evento Essas seriam as bordas Cima esquerda e baixo direita né? Editado Fevereiro 19, 2015 10 anos por eviltox (veja o histórico de edições)
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.