Postado Junho 21, 2012 12 anos Mostrar conteúdo oculto Pedido Bom pessoal, Eu tentei fazer eu mesmo mas sinceramente, como estou muito enferrujado com os scripts de OTServer (faz uns 3 anos que não mecho), então tive muito problema ao desenvolver esse treco kkk! O que eu gostaria é, um sistema bem simples que ao entrar num Spot (uma área determinada de X sqm's), começa a contar um tempo e a cada X tempo aparecer um monstro, exemplo: O player entra no spot (poderá ter vários spots) Abre a contagem em segundos A cada 10 segundo um Dragon nasce Quando morrerem 10 Dragons o player será expulso automaticamente daquele spot Bem é mais ou menos assim, quem já Jogou muonline já viu que em Stadium tem os Spots que nascem monstros lá, a minha ideia é quase a mesma coisa, claro com um pouco de diferença. De qualquer forma eu agradeço! Consegui fazer de uma forma diferente, mas funcionou como eu até queria! Bom se alguém quiser, use em seus OT's pois não sei se já existe algo como esse script, e como fui eu quem desenvolveu ele, não tenho problema em compartilhar com meus amigos aqui do Tibia King !!! [+] Info Esse script faz com que tenha uma entrada, um "spot" para pisar, um "spawn" para o monstro e uma contagem que quando chega a 10, o cara será "expulso" do lugar que está caçando e essa contagem será reiniciada do zero. [+] Arquivos Como é baseado somente em movement's, vá até a pasta data/movements/ e crie 2 arquivos: stadium.lua stadium_tp.lua Dentro do arquivo stadium.lua cole esse conteúdo: Mostrar conteúdo oculto local config = { -- Spot de hunt 1 spot1 = {x=32231, y=32189, z=7, stackpos=253}, -- onde precisa pisar para sumonar o monstro spawn1 = {x=32241, y=32199, z=7, stackpos=253}, -- onde nascerá o monstro saida1 = {x=32232, y=32202, z=7, stackpos=253}, -- local que o cara será enviado conta1 = 0, -- contagem de monstros -- Spot de hunt 2 spot2 = {x=32249, y=32189, z=7, stackpos=253}, spawn2 = {x=32259, y=32199, z=7, stackpos=253}, saida2 = {x=32250, y=32202, z=7, stackpos=253}, conta2 = 0, -- Spot de hunt 3 spot3 = {x=32267, y=32189, z=7, stackpos=253}, spawn3 = {x=32277, y=32199, z=7, stackpos=253}, saida3 = {x=32268, y=32202, z=7, stackpos=253}, conta3 = 0, -- Spot de hunt 4 spot4 = {x=32231, y=32207, z=7, stackpos=253}, spawn4 = {x=32241, y=32217, z=7, stackpos=253}, saida4 = {x=32232, y=32220, z=7, stackpos=253}, conta4 = 0, -- Spot de hunt 5 spot5 = {x=32249, y=32207, z=7, stackpos=253}, spawn5 = {x=32259, y=32217, z=7, stackpos=253}, saida5 = {x=32250, y=32220, z=7, stackpos=253}, conta5 = 0, -- Spot de hunt 6 spot6 = {x=32267, y=32207, z=7, stackpos=253}, spawn6 = {x=32277, y=32217, z=7, stackpos=253}, saida6 = {x=32268, y=32220, z=7, stackpos=253}, conta6 = 0, -- Spot de hunt 7 spot7 = {x=32231, y=32225, z=7, stackpos=253}, spawn7 = {x=32241, y=32235, z=7, stackpos=253}, saida7 = {x=32232, y=32238, z=7, stackpos=253}, conta7 = 0, -- Spot de hunt 8 spot8 = {x=32249, y=32225, z=7, stackpos=253}, spawn8 = {x=32259, y=32235, z=7, stackpos=253}, saida8 = {x=32250, y=32238, z=7, stackpos=253}, conta8 = 0, -- Spot de hunt 9 spot9 = {x=32267, y=32225, z=7, stackpos=253}, spawn9 = {x=32277, y=32235, z=7, stackpos=253}, saida9 = {x=32268, y=32238, z=7, stackpos=253}, conta9 = 0, -- Monstros sumonados monstro1 = "Dragon", monstro2 = "Dragon Lord", monstro3 = "Frost Dragon", monstro4 = "Hydra", monstro5 = "Behemoth", monstro6 = "Warlock", monstro7 = "Draken Elite", monstro8 = "Ghastly Dragon", monstro9 = "Demon", -- Mensagem quando completar msg = "Você completou sua caçada, volte sempre que puder!" } function onStepIn(cid, item, position, fromPosition) local p1 = getThingfromPos(config.spot1) local p2 = getThingfromPos(config.spot2) local p3 = getThingfromPos(config.spot3) local p4 = getThingfromPos(config.spot4) local p5 = getThingfromPos(config.spot5) local p6 = getThingfromPos(config.spot6) local p7 = getThingfromPos(config.spot7) local p8 = getThingfromPos(config.spot8) local p9 = getThingfromPos(config.spot9) if(isPlayer(cid)) then -- spot 1 if(p1.itemid > 0) then if(config.conta1 < 10) then doCreateMonster(config.monstro1, config.spawn1, false) config.conta1 = config.conta1 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida1) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta1 = 0 end end -- spot 2 if(p2.itemid > 0) then if(config.conta2 < 10) then doCreateMonster(config.monstro2, config.spawn2, false) config.conta2 = config.conta2 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida2) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta2 = 0 end end -- spot 3 if(p3.itemid > 0) then if(config.conta3 < 10) then doCreateMonster(config.monstro3, config.spawn3, false) config.conta3 = config.conta3 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida3) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta3 = 0 end end -- spot 4 if(p4.itemid > 0) then if(config.conta4 < 10) then doCreateMonster(config.monstro4, config.spawn4, false) config.conta4 = config.conta4 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida4) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta4 = 0 end end -- spot 5 if(p5.itemid > 0) then if(config.conta5 < 10) then doCreateMonster(config.monstro5, config.spawn5, false) config.conta5 = config.conta5 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida5) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta5 = 0 end end -- spot 6 if(p6.itemid > 0) then if(config.conta6 < 10) then doCreateMonster(config.monstro6, config.spawn6, false) config.conta6 = config.conta6 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida6) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta6 = 0 end end -- spot 7 if(p7.itemid > 0) then if(config.conta7 < 10) then doCreateMonster(config.monstro7, config.spawn7, false) config.conta7 = config.conta7 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida7) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta7 = 0 end end -- spot 8 if(p8.itemid > 0) then if(config.conta8 < 10) then doCreateMonster(config.monstro8, config.spawn8, false) config.conta8 = config.conta8 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida8) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta8 = 0 end end -- spot 9 if(p9.itemid > 0) then if(config.conta9 < 10) then doCreateMonster(config.monstro9, config.spawn9, false) config.conta9 = config.conta9 + 1 else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg) doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1) doTeleportThing(cid, config.saida9) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED) config.conta9 = 0 end end end end Está comentado então fica fácil entender !!! Agora no arquivo stadium_tp.lua cole esse conteúdo aqui: Mostrar conteúdo oculto local config = { -- TP 1 tp1 = {x=32231, y=32202, z=7, stackpos=253}, -- local do spot 1 onde o cara vai pisar e entrar entrada1 = {x=32231, y=32200, z=7, stackpos=253}, -- local do spot 1 onde será enviado o cara quando pisar no tp -- TP 2 tp2 = {x=32249, y=32202, z=7, stackpos=253}, entrada2 = {x=32249, y=32200, z=7, stackpos=253}, -- TP 3 tp3 = {x=32267, y=32202, z=7, stackpos=253}, entrada3 = {x=32267, y=32200, z=7, stackpos=253}, -- TP 4 tp4 = {x=32231, y=32220, z=7, stackpos=253}, entrada4 = {x=32231, y=32218, z=7, stackpos=253}, -- TP 5 tp5 = {x=32249, y=32220, z=7, stackpos=253}, entrada5 = {x=32249, y=32218, z=7, stackpos=253}, -- TP 6 tp6 = {x=32267, y=32220, z=7, stackpos=253}, entrada6 = {x=32267, y=32218, z=7, stackpos=253}, -- TP 7 tp7 = {x=32231, y=32238, z=7, stackpos=253}, entrada7 = {x=32231, y=32236, z=7, stackpos=253}, -- TP 8 tp8 = {x=32249, y=32238, z=7, stackpos=253}, entrada8 = {x=32249, y=32236, z=7, stackpos=253}, -- TP 9 tp9 = {x=32267, y=32238, z=7, stackpos=253}, entrada9 = {x=32267, y=32236, z=7, stackpos=253} } function onStepIn(cid, item, position, fromPosition) local p1 = getThingfromPos(config.tp1) local p2 = getThingfromPos(config.tp2) local p3 = getThingfromPos(config.tp3) local p4 = getThingfromPos(config.tp4) local p5 = getThingfromPos(config.tp5) local p6 = getThingfromPos(config.tp6) local p7 = getThingfromPos(config.tp7) local p8 = getThingfromPos(config.tp8) local p9 = getThingfromPos(config.tp9) if(isPlayer(cid)) then if(p1.itemid > 0) then doTeleportThing(p1.uid, config.entrada1) elseif(p2.itemid > 0) then doTeleportThing(p2.uid, config.entrada2) elseif(p3.itemid > 0) then doTeleportThing(p3.uid, config.entrada3) elseif(p4.itemid > 0) then doTeleportThing(p4.uid, config.entrada4) elseif(p5.itemid > 0) then doTeleportThing(p5.uid, config.entrada5) elseif(p6.itemid > 0) then doTeleportThing(p6.uid, config.entrada6) elseif(p7.itemid > 0) then doTeleportThing(p7.uid, config.entrada7) elseif(p8.itemid > 0) then doTeleportThing(p8.uid, config.entrada8) elseif(p9.itemid > 0) then doTeleportThing(p9.uid, config.entrada9) end end end Também está comentado para fácil entendimento!!! Agora no seu mapa, você deve inserir as actions ids para que funcione corretamente quando o player pisar, então, abra seu mapa com o seu mapeditor de preferência (usei remere's map editor 3.0 beta), e então, para cada lugar onde será o teleport para entrar no spot de caça, você colocará da seguinte forma: Lembrando que, eu fiz assim, são 9 spots então são 9 teleports de entrada, como eu usei a action 30900 no primeiro teleport, segui a ordem: 30900, 30901, 30902, etc. Agora faça o mesmo com o spot que o player deverá pisar para criar o monstro, faça como a iamgem: Da mesma forma que eu fiz com os teleports de entrada, fiz com os spots que criam os monstros, também segui a ordem de action: 40900, 40901, 40902, etc, você deve fazer o mesmo. Agora no arquivo data/movements/movements.xml adicione estas linhas: Dessa forma, se vocês entenderam como eu fiz e fizeram igual e certinho, vocês não irão ter erros e irá funcionar tranquilamente. Se alguém quiser aperfeiçoar o script e postar para nós aqui no Tibia king, também será de muito bom agrado!!! Espero que tenham gostado! Mostrar conteúdo oculto <!-- stadium tp's --> <movevent type="StepIn" actionid="30900" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30901" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30902" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30903" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30904" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30905" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30906" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30907" event="script" value="stadium_tp.lua" /> <movevent type="StepIn" actionid="30908" event="script" value="stadium_tp.lua" /> <!-- stadium --> <movevent type="StepIn" actionid="40900" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40901" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40902" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40903" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40904" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40905" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40906" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40907" event="script" value="stadium.lua" /> <movevent type="StepIn" actionid="40908" event="script" value="stadium.lua" /> Editado Junho 22, 2012 12 anos por dezon (veja o histórico de edições)
Postado Junho 22, 2012 12 anos Autor Solucionado, por favor Administradores, recoloquem o post na seção de scripts pois aqui mesmo liberei a solução. Obrigado ! Editado Junho 22, 2012 12 anos por dezon (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.