Ir para conteúdo

Preciso De Um Script Que Quando Um Player Passar Em Determinado Sqm, Uma "barreira" Seja Criada


delirous400

Posts Recomendados

Bom, estou fazendo uma quest no meu OT, numa determinada sala existem alavancas que tiram pedras q estão bloqueando o caminho, o problema é que quando o primeiro player conseguir retirar todas as pedras outros players que forem fazer a quest passam sem dificuldade alguma ...

 

Agora o pedido, eu pesquisei e vi que é possivel fazer com que um determinado sqm crie "obstaculos" em determinado lugar, porém, não encontrei o script ... Eu preciso dum script que quando o player passar por determinado sqm seja criada uma pedra em quatro lugares diferentes.

 

Bom, é isso.

 

Orbigado des de já :smile_positivo:

Link para o comentário
Compartilhar em outros sites

Me levou 30 minutos.

Qualquer dúvida poste aqui mesmo.

Nesse script as pedras sumiram depois de 5 minutos, se voce nao quiser isso, avisa que eu tiro.

 

Script:

function onStepIn(cid, item, pos)
posp1 = {x=1024, y=1027, z=7, stackpos=1}
posp2 = {x=1025, y=1026, z=7, stackpos=1}
posp3 = {x=1026, y=1027, z=7, stackpos=1}
posp4 = {x=1025, y=1028, z=7, stackpos=1}

doCreateItem(1304, 1, posp1)
doCreateItem(1304, 1, posp2)
doCreateItem(1304, 1, posp3)
doCreateItem(1304, 1, posp4)

local remove = {cid=cid, item=item, pos=pos, posp1=posp1, posp2=posp2, posp3=posp3, posp4=posp4}
addEvent(onTime,5*60*1000,remove)

return TRUE
end

function onTime(remove)
getp1 = getThingfromPos(remove.posp1)
getp2 = getThingfromPos(remove.posp2)
getp3 = getThingfromPos(remove.posp3)
getp4 = getThingfromPos(remove.posp4)
doRemoveItem(getp1.uid, 1)
doRemoveItem(getp2.uid, 1)
doRemoveItem(getp3.uid, 1)
doRemoveItem(getp4.uid, 1)
end

Parâmetros a editar:

- posp1, posp2, posp3 e posp4 (posição das pedras que seram criadas)

- se quiser trocar a pedra, troque o "1304" pelo id da pedra que voce queira

 

Tag:

<movevent event="StepIn" uniqueid="6000" script="exemplo.lua"/>

Editado por Notorious
Link para o comentário
Compartilhar em outros sites

Mtu obrigado !

 

Ajudou MTUUU, soh q eu to com uma duvida ainda, vc fez coisa a mais ... pq tpw, a quest é o seguinte, os players terão que puxar as alavancas certas, pq se puxarem erradas serão criados monstros ao invez de tirar as pedras q fexam o caminho ...

 

Tpw, digamos que o player conseguiu puxar as alavancas certas e abriu o caminho, dai ele passa e o caminho continua aberto para outros players, esse eh o grande problema, eu não queria que depois de cinco minutos as pedras saicem, eh justamento o contrario, elas tireiam que ficar para outros players que viessem fazer a quest terem que retira-las com as alavancas, entendeu?

 

Script não eh meu forte. Eu creio q possa aproveitar seu script para oq eu qro, apenas retirando o tempo, certo?

 

 

E novamente MTU OBRIGADO!

Link para o comentário
Compartilhar em outros sites

Bom, só lembrando, pros players tirarem as pedras com a alavanca, voce tera que criar

uma action para isso ...

 

Script Atualizado (sem tempo de remoção)

function onStepIn(cid, item, pos)

posp1 = {x=1024, y=1027, z=7, stackpos=1}
posp2 = {x=1025, y=1026, z=7, stackpos=1}
posp3 = {x=1026, y=1027, z=7, stackpos=1}
posp4 = {x=1025, y=1028, z=7, stackpos=1}

doCreateItem(1304, 1, posp1)
doCreateItem(1304, 1, posp2)
doCreateItem(1304, 1, posp3)
doCreateItem(1304, 1, posp4)

return TRUE
end

Editado por Notorious
Link para o comentário
Compartilhar em outros sites

ve se esse vai :

function onStepIn(cid, item, pos)

 

if item.actionid == 10150 and isPlayer(cid) == TRUE then

 

posp1 = {x=1024, y=1027, z=7, stackpos=1}

posp2 = {x=1025, y=1026, z=7, stackpos=1}

posp3 = {x=1026, y=1027, z=7, stackpos=1}

posp4 = {x=1025, y=1028, z=7, stackpos=1}

 

doCreateItem(1304, posp1)

doCreateItem(1304, posp2)

doCreateItem(1304, posp3)

doCreateItem(1304, posp4)

 

end

return TRUE

end

 

a base do script foi do notorius. . a tag xml é essa:

 

<movement type="StepIn" actionid="10150" event="script" value="Arquivo.lua"/>

 

ve se vai agora ae.

 

flw

Editado por apocarai
Link para o comentário
Compartilhar em outros sites

#delirous:

Você foi reportado por post duplo(double post).

 

Os scripts do apocarai e do Notorious estão semi-certos.

 

#apocarai:

Já que você define no movevents.xml o action ID do piso, não é necessário checar isso no script.

 

Já que usaram a função doCreateItem(), ela deve conter posições, ID e quantidade.O seu está sem a quantidade.

 

Se o script não funcionar, transforme as variáveis que estão definidas como globais para locais, colocando um local na frente.

Editado por iRockStar
Link para o comentário
Compartilhar em outros sites

Não precisa não ._."

 

--Posições, efeito, id e quantidade(você pode adicionar quantos quiser)
Pos = {
[1] = {pos = {x=1, y=1, z=1}, id = 1304, amount = 1, effect = CONST_ME_POFF},
[2] = {pos = {x=1, y=1, z=1}, id = 1304, amount = 1, effect = CONST_ME_POFF},
[3] = {pos = {x=1, y=1, z=1}, id = 1304, amount = 1, effect = CONST_ME_POFF},
[4] = {pos = {x=1, y=1, z=1}, id = 1304, amount = 1, effect = CONST_ME_POFF}
}
function onStepIn()
for _, i in ipairs(Pos) do
	doCreateItem(i.id, i.amount, i.pos)
	doSendMagicEffect(i.pos, i.effect)
end
return true
end

 

Esse script é bem mais configurável, eu achei melhor :)

Editado por iRockStar
Link para o comentário
Compartilhar em outros sites

Eh msm, o grande problema a versão do meu OT =x

 

Que pena, eu precisava mtu de uma maneira para resolver isso, será que num tem um script que quando o player puxar a alavanca(1946) saia a pedra, mas dpois de um certo tempo a pedra volte e a alavanca volte a ser 1946.

 

Mas vlw aew gente, brigadão msm !

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...