Ir para conteúdo
  • Cadastre-se

[SCRIPT] Stadium tipo MuOnline


Posts Recomendados

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:


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:


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:
tkFok.png 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: sioUp.png 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!



<!-- 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 por dezon (veja o histórico de edições)

rxtoGjF.jpg 

Link para o post
Compartilhar em outros sites

Solucionado, por favor Administradores, recoloquem o post na seção de scripts pois aqui mesmo liberei a solução.

Obrigado !

Editado por dezon (veja o histórico de edições)

rxtoGjF.jpg 

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo