NA
dúvida

Door So Abre Com Key, Erro

Por Nathan96, 23 de jun. de 2012 em Scripts

script
17
2.3k
Nathan96N
23 de junho de 2012 às 14:28

Estou com um probleminha aqui i gostaria que alguém pudesse mi ajudar, Rep + claro ;s

 

 

 

function onUse(cid, item, frompos, item2, topos)

 

 

local pausa = 30000

 

local door = {x=687, y=1266, z=8, stackpos=1}

local ddoor = getThingfromPos(door)

 

 

local open_door = 5734

 

local itemU = 24004

 

local verify = 0

 

 

 

if item2.uid == itemU then

if ddoor.itemid ~= verify then

doTransformItem(ddoor.uid,open_door)

addEvent(close,pausa,door)

end

else

doPlayerSendCancel(cid,"Esta chave nao pode ser usado aqui")

end

return 1

end

 

function close(door)

 

 

local to_close_door = 5733

 

 

local the_close_door = getThingfromPos(door)

doTransformItem(the_close_door.uid,to_close_door)

end

 

<action itemid="2088" script="tools/chaveanfallas3.lua" />

 

 

 

Eu vou no map editor i coloco la na porta action 2088 i unique 24004. ai nao da certo ai entao pelo jogo eu apago a porta crio outra de mesmo id i fasso as mesmas coisas com /attr ai a porta si abre...Si alguém puder ajudar desde já grato.

milbradtM
24 de junho de 2012 às 14:21

Tenho esse mesmo script seu.. no caso se não me engano deu a mesma coisa comigo, fas tempo ja não lembro muito bem oq fis pra arrumar...

 

mas tente arrumar no map editor primeiro..

 

Em Tools no map editor tente alternar para NORMAL DOOR, MAGIC DOOR, QUEST DOOR, e vai testando em quais dela vc vai conseguir,

se não me engano eu tinha colocado QUEST DOOR.

 

Eu tambem notava que alguns IDS de portas não dava certo então primeiro testa oq falei acima e depois tente alterar a porta para esse id:

 

Porta Aberta: local open_door = 9280

 

Porta Fechada: local to_close_door = 9279

 

Lembrando que no map editor vc coloca o ID da porta fechada "local to_close_door = 9279" e tenta fazer o esquema que te falei de colocar MAGIC DOOR

Editado Junho 24 por milbradt

Nathan96N
24 de junho de 2012 às 14:25

Vo testar aqui vlw pela dica.

milbradtM
24 de junho de 2012 às 15:17

Apenas para minha curiosidade se você conseguiu em alguma das dicas acima me fale qual é... mdr.gif

Nathan96N
24 de junho de 2012 às 15:23

Deu errado ;/ não funcionou também

milbradtM
24 de junho de 2012 às 16:12

POuxa vida.. pior que usa script eh a mesma minha =S

 

não faço ideia o pq esta acontecendo isso.. mas pode ter certeza que eh um detalhezinho.. kkkkk

 

Aqui esta minha script:

 

function onUse(cid, item, frompos, item2, topos)
-------- Pausa --------
local pausa = 5000 -------- Cordenadas --------
local door = {x=369, y=1918, z=7, stackpos=1}
local ddoor = getThingfromPos(door)
-------- ITEM --------
local open_door = 9280
local itemU = 24000
local verify = 0 --- NÃO MEXA AQUI
-------- PRIMEIRO SISTEMA --------

if item2.uid == itemU then
if ddoor.itemid ~= verify then
doTransformItem(ddoor.uid,open_door)
addEvent(close,pausa,door)
end
else
doPlayerSendCancel(cid,"This key can not be used here")
end
return 1
end
function close(door)
-------- ITEM --------
local to_close_door = 9279
------- SEGUNDO SISTEMA --------
local the_close_door = getThingfromPos(door)
doTransformItem(the_close_door.uid,to_close_door)
end

Nathan96N
24 de junho de 2012 às 16:19

mais a sua funciona ?

milbradtM
24 de junho de 2012 às 16:27

se você perceber é a mesma sua.. apenas a minha script esta organizada.

 

Tipo eu fis aki e funcionou perfeitamente, abre a porta normal, e assim que o player que abriu a porta passar por ela ela fecha automaticamente.

 

Tentou fazer oq te falei?

Tenta pegar minha script e fas o seguinte, pega o ID da porta 9279 e coloca no lugar da sua la, detalhe, cuidado para nao colocar em cima de uma parede.. kkkkk

depois salva o map e testa.. se não der tente coloca o efeito de QUEST DOOR em cima desta porta 9279, salva o map e testa novamente.

 

O id da sua chave no caso é 2088, ou seja, a Chave para abrir a porta é a do ID 2088.

 

Tenta ver ae ^^

 

Nesse momento vou sair de casa, vou visitar meus pais, então boa sorte ae, e até mais tarde.. kkkkk

Editado Junho 24 por milbradt

Nathan96N
24 de junho de 2012 às 16:31

Man mais é o seguinte eu fiz essa mesma script em 7 portas tudo certinho ai 4 funcionarão i 3 não isso ta mi matando de raiva já, 3 portas não funcionam i o pior que nem erro no distro da ;s

milbradtM
24 de junho de 2012 às 16:35

HSUhausuhSA.. os Id das portas são os mesmo?? se for o mesmo pega e copia as portas que estão funcionando e substitui no lugar das que não funfa =P

As vezes umas coisas sem lógica acaba dando certo ^^

Nathan96N
24 de junho de 2012 às 16:37

isso que eu fiz man so mudei a tag para ser com keys diferentes mais 3 estáo dando erro ;s, eu já fiz, refiz i nada dela funcionar

Editado Junho 24 por Nathan96

milbradtM
24 de junho de 2012 às 16:43

Cara, se umas funcionarão você deve estar fazendo alguma coisa piquinininha errada nas outras.. não deve ser algo muito abominavel não.

 

Quando eu voltar da casa dos meus pais eu te dou uma mão, eu ajudo você a coloca as portas e as keys nos lugares.

 

As vezes é detalhes piquenos.. porem importantes para o script funcionar ^^

 

Ja fui Ot-Admin a um tempão.. ai passei em um concurso andei muito tempo afastado.. agora estou mechendo denovo mas me lembro de muitas coisas ^^

 

Posso dizer até que de acordo com alguns tutoriais ja sei editar e acrescentar algumas coisas em varias scripts, pois estou lendo algumas apostila de linguagem lua.

 

Então um abração e até mais tarde.

Nathan96N
24 de junho de 2012 às 16:48

Quando você voltar mi adicione msn para gente conversar melhor, nathanfm2010@hotmail.com

LeoxtibiaL
27 de junho de 2012 às 09:17

Pelo que eu sei, acho que você só precisa da actionid na porta ser igual ao número da key, não precisa de uniqueid. Fiz um script rapidinho aqui, você só precisa trocar as coordenadas para onde o player será teleportado. Em actions>scripts crie um arquivo e cole isto dentro:

 

function onUse(cid, item, fromPosition, item2, toPosition)
local teleport = {x=1, y=1, z=1}  -- posição do teleport
if(item.actionid == item2.actionid and item2.uid ~= item.uid) then
doTeleportThing(cid, teleport)
doSendMagicEffect(getPlayerPosition(cid), 10)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce foi teleportado para ali.")
end
return true
end

 

Em actions.xml coloque a tag: <action actionid="ACTIONIDDAPORTA" event="script" value="NOMEDOSEUARQUIVO.lua"/>

Nathan96N
27 de junho de 2012 às 09:33

Muito obrigado man, mais eu já resolvi o problema, era o piso de baixo da porta que estava a bugando. Mais vlw a intensão !

Por favor fechem o topico.