[script De Tile ]

Khost
Por Khost
em Lixeira Pública
  • 1
  • 2

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

um Movement em um item 1397 aonde tipo uma pessoa entre nesse teleport só que necessite de um item para poder entrar e remova 5 dias de premium account e também só uma pessoa entrar nesse teleport por vez, tipo depois que outra pessoa entrar só depois que ela sair que outro player poderá entrar...

Só sendo permitido a entrada de um por vez...

 

Obrigado!

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

desafio?? eu que nem sou profissional consegui :party: ve se da certim ae:

 

local newpos = {x=XXX, y=YYY, z=Z}

local diaspa = 5

local requitem = ID DO ITEM

 

function onStepIn(cid, item, position, fromPosition)

 

if item.itemid == 1397 and getPlayerItemCount(cid,requitem) >= 1 then

if doPlayerRemovePremiumDays(cid, diaspa) then

for arenax = XxX1, XxX2 do

for arenay = YyY1, YyY2 do

arenapos = {x=arenax, y=arenay, z=ZzZ, stackpos=253}

arenacreature = getThingfromPos(arenapos)

 

if arenacreature.itemid > 0 then

doPlayerSendCancel(cid,"Wait for current people exit the room.")

return 1

end

end

end

 

doTeleportThing(cid, newpos)

doSendMagicEffect(newpos,10)

else

doPlayerSendTextMessage(cid,22,"You do not have the required premium days.")

end

else

doPlayerSendTextMessage(cid,22,"You do not have the required item.")

end

return TRUE

end

 

legenda:

newpos é onde o player vai ser teleportado

diaspa são os dias que vai tirar

requitem é onde c por o id do item que precisa

e onde tem XxX1, XxX2 e tal é os tiles que vai checar se tem alguem.

 

testei em TFS (do darkness) e deu certim.

 

a tag xml é

<movement type="StepIn" itemid="1397" event="script" value="NOME.lua"/>

 

acho que é isso.

flw

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

Apocarai eu acho que falta uma função ifisplayer == TRUE pq eu vo botar monstros pra passar em cima desses tiles ....

 

obrigado...

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

sabe por ela ou quer que eu coloque??

 

acho q eh soh trocar as linhas de comando ae:

 

 

if item.itemid == 1397 and getPlayerItemCount(cid,requitem) >= 1 then

 

por

 

if item.itemid == 1397 and getPlayerItemCount(cid,requitem) >= 1 and isPlayer(cid) == TRUE then

 

e

 

if arenacreature.itemid > 0 then

 

por

 

if arenacreature.itemid > 0 and isPlayer(arenacreature) == TRUE then

 

se n funcionar tenta tirar os == TRUE

 

flw

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

deu erro e eu não botei a parada do ifisplayer == TRUE ....

 

 

deu esse erro ::

 

 

[11/09/2009 16:33:08] Lua Script Error: [MoveEvents Interface] 
[11/09/2009 16:33:08] data/movements/scripts/corredor.lua:onStepIn

[11/09/2009 16:33:08] data/movements/scripts/corredor.lua:9: 'for' initial value must be a number
[11/09/2009 16:33:08] stack traceback:
[11/09/2009 16:33:08] 	data/movements/scripts/corredor.lua:9: in function <data/movements/scripts/corredor.lua:5>

 

Obrigado!

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

voce trocou os valores que eu falei? eu testei aki sem e com o isPlayer e funcionou sem erro nenhum. esse erro que deu ae foi no 1º FOR onde XxX1 é a pos.x do tile1 e XxX2 é do tile2. exemplo:

 

 

Tile1 vazio vazio

vazio vazio vazio

vazio vazio Tile2

 

formando um quadrado com as posições. caso continue o erro, mande o script do jeito que esta no seu ot e vejo o que tem de errado

 

flw

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

Bota ae com o script certo com o ifIsPlayer == TRUE e oque faltou eu configurar...

 

Obrigado!

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

é esse ae:

 

local newpos = {x=XXX, y=YYY, z=Z}

local diaspa = 5

local requitem = ID DO ITEM

 

function onStepIn(cid, item, position, fromPosition)

 

if item.itemid == 1397 and getPlayerItemCount(cid,requitem) >= 1 and isPlayer(cid) == TRUE then

if doPlayerRemovePremiumDays(cid, diaspa) then

for arenax = XxX1, XxX2 do

for arenay = YyY1, YyY2 do

arenapos = {x=arenax, y=arenay, z=ZzZ, stackpos=253}

arenacreature = getThingfromPos(arenapos)

 

if arenacreature.itemid > 0 and isPlayer(arenacreature) == TRUE then

doPlayerSendCancel(cid,"Wait for current people exit the room.")

return 1

end

end

end

 

doTeleportThing(cid, newpos)

doSendMagicEffect(newpos,10)

else

doPlayerSendTextMessage(cid,22,"You do not have the required premium days.")

end

else

doPlayerSendTextMessage(cid,22,"You do not have the required item.")

end

return TRUE

end

 

segue a legenda la de cima.

 

flw

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

Oque eu boto aqui ???

 

for arenax = XxX1, XxX2 do
for arenay = YyY1, YyY2 do
arenapos = {x=arenax, y=arenay, z=ZzZ, stackpos=253}

 

oque eu boto no

 

for arenax ??

e no y

da um exemplo ae ...

 

 

Obrigado!

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

são as coordenadas da sua "arena". Se a arena tiver 9 sqm por exemplo:

 

Tile1 Tile2 Tile3

Tile4 Tile5 Tile6

Tile7 Tile8 Tile9

 

aí voce vai pegar as coordenadas do Tile1 e do Tile9 e colocar nos XxX e YyY.

supondo que as coordenadas dos tiles sejam:

tile1 = {x=123, y=321, z=7}

tile9 = {x=456, y=654, z=7}

 

ficaria assim:

 

 

for arenax = 123, 456 do

for arenay = 321, 654 do

arenapos = {x=arenax, y=arenay, z=7, stackpos=253}

 

entendeu? XxX1 -> coordenada X do tile1 XxX2 -> coordenada X do tile9

YyY1 -> coordenada Y do tile1 YyY2 -> coordenada Y do tile9

ZzZ -> coordenada Z de todos os tiles

 

meio complicado mas da pra entender.

 

flw

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

kra no meu ot quando eu entro no tp da uma travada , eu tenho que fechar o tibia e abrir de novo ae eu encontro o char na cordena que eu botei pro tp teleportar...

 

oque pode ser isso??

 

 

olha como está o script :

 

local newpos = {x=262, y=1568, z=7}
local diaspa = 5
local requitem = 2210

function onStepIn(cid, item, pos, position, fromPosition)

if item.itemid == 1397 and getPlayerItemCount(cid,requitem) >= 1 and isPlayer(cid) == TRUE then
if doPlayerRemovePremiumDays(cid, diaspa) then
for arenax = 220, 1567 do
for arenay = 305, 1569 do
arenapos = {x=arenax, y=arenay, z=7, stackpos=253}
arenacreature = getThingfromPos(arenapos)

if arenacreature.itemid > 0 and isPlayer(arenacreature) == TRUE then
doPlayerSendCancel(cid,"Wait for current people exit the room.")
doSendMagicEffect(pos, 2)
pos.y = pos.y-1
doTeleportThing(cid, pos)
return 1
end
end
end

doTeleportThing(cid, newpos)
doSendMagicEffect(newpos,10)
else
doPlayerSendTextMessage(cid,22,"Voce nao tem dias suficientes,volte quando os tiver.")
doSendMagicEffect(pos, 2)
pos.y = pos.y-1
doTeleportThing(cid, pos)
end
else
doPlayerSendTextMessage(cid,22,"Precisa ter xp ring para entrar no corredor.")
doSendMagicEffect(pos, 2)
pos.y = pos.y-1
doTeleportThing(cid, pos)
end
return TRUE
end

 

 

 

Obrigado!

 

EDITED :

 

Olha o erro que ta dando ,sinistro!

erro.bmp

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

que variavel é essa que c pos ae? 'pos'. n precisa colocar o script pra mandar o player pra tras jah que se ele n tiver as coisas ele n passa. ele fica onde está.

local newpos = {x=262, y=1568, z=7}

local diaspa = 5

local requitem = 2210

 

function onStepIn(cid, item, position, fromPosition)

 

if item.itemid == 1397 and getPlayerItemCount(cid,requitem) >= 1 and isPlayer(cid) == TRUE then

if doPlayerRemovePremiumDays(cid, diaspa) then

for arenax = 220, 1567 do

for arenay = 305, 1569 do

arenapos = {x=arenax, y=arenay, z=7, stackpos=253}

arenacreature = getThingfromPos(arenapos)

 

if arenacreature.itemid > 0 and isPlayer(arenacreature) == TRUE then

doPlayerSendCancel(cid,"Wait for current people exit the room.")

doSendMagicEffect(getPlayerPosition(cid), 2)

return 1

end

end

end

 

doTeleportThing(cid, newpos)

doSendMagicEffect(newpos,10)

else

doPlayerSendTextMessage(cid,22,"Voce nao tem dias suficientes,volte quando os tiver.")

doSendMagicEffect(getPlayerPosition(cid), 2)

end

else

doPlayerSendTextMessage(cid,22,"Precisa ter xp ring para entrar no corredor.")

doSendMagicEffect(getPlayerPosition(cid), 2)

end

return TRUE

end

 

flw

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

è que eu quero que jogue ele para traz...

eu puz essa variavel pra do o efeito...

vo testa agora , posto se houver algum erro...

 

 

 

Obrigado!

 

ele não ta dizendo que esta ocupado...

:cry:

qualquer pessoa consegue entrar , se ja estiver uma pessoa usando...

 

tipo a area é assim:

vo posta uma foto :

erro2.bmp

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

agora não sei mais o que eh não. eu testei aqui e deu td certo. botei npc na area e deu pra teleportar, botei outro player e não deu. apareceu a mensagem que tava ocupado e tal e n deu erro nenhum no console... o jeito agora é postar em dúvidas de scripts e ver se alguem acha algo errado. eu acho que seu erro ta em :

 

for arenax = 220, 1567 do

for arenay = 305, 1569 do

 

pq onde tem 1567 era pra estar a coordenada "X" e onde tem 305 era a coordenada "Y". eu expliquei td la em cima pra vc:

XxX1 -> coordenada X do tile1 XxX2 -> coordenada X do tile9

YyY1 -> coordenada Y do tile1 YyY2 -> coordenada Y do tile9

ZzZ -> coordenada Z de todos os tiles

 

deveria ficar assim:

for arenax = 220, 305 do

for arenay = 1567, 1569 do

 

ve se o seu erro foi esse.

 

flw

Khost

~~ Khost ~~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/08Posts: 23

kra , que cordenadas eu tenho que pega ??? o respawn não é quadrado não....

se viu a foto do respawn???

eu ja olhei tudo e eu ainda consigo entrar no respawn com um player dentro dele....

 

Obrigado!

  • 1
  • 2