Ir para conteúdo

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


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:

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

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!

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

O Script não está funcionando :X

 

Plx alguem poste esse script de uma outra forma para ver se funciona !

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

#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

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

A tag é igual às anteriores, mas o problema é o seu servidor, que é antigo e ainda não possui suporte para as funções novas de hoje em dia.

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 !

Há maneira, se eu não me engano a função mudou que era de onWalkIn para onStepIn, muitas coisas mudaram, mas um scripter das antigas pode te ajudar, vou ver se acho alguém aqui rsrs...

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