MY

[movement] - Piso Com Storage Values.

Por Myself, 05 de jan. de 2009 em Archived

tibia
script
otserv
6
1.6k
MyselfM
05 de janeiro de 2009 às 23:58

Olá pessoal, gostaria que os bons scripters do fórum me dessem uma mãozinha.

 

Trabalho com um OT 8.1 XML, Aries 0.4.0. Estou tendo problemas com minha PoI quest, pois criei o sistema de tronos igual do Tibia Global, no qual tem que se passar por 5 tronos antes de poder ir para a last room.

 

Bom, eu criei um movement no qual checa se o player tem as 5 storage values (dos 5 tronos) e, se o player tiver, ele pode passar pro outro lado do tile. Só que ele não está passando, mesmo tendo todos. Alguém poderia me ajudar?

 

poifinal.lua

function onStepIn(cid, item, pos)

 

-- teleports config

teleport1 ={x=278, y=33, z=11}

teleport2 ={x=278, y=35, z=11}

 

if isPlayer(cid) then

 

if item.actionid == 22222 then

 

if getPlayerStorageValue(cid,10001) == 1 and getPlayerStorageValue(cid,10002) == 1 and getPlayerStorageValue(cid,10003) == 1 and getPlayerStorageValue(cid,10004) == 1 and getPlayerStorageValue(cid,10005) == 1 then

doTeleportThing(cid,teleport1)

doCreatureSay(cid, "Congratulations! You did all the seals and now you are able to pass and get your reward.", TALKTYPE_ORANGE_1)

else

doTeleportThing(cid,teleport2)

doPlayerSendCancel(cid,"You need to complete all seals to pass.")

 

 

end

end

end

end

 

As storage values estão certas, não está dando erro no console, nem nada. Ele só não passa pro outro lado, e sempre da a mensagem de que precisa completar todos os seals. E sim, no tile que quero que funcione o movement eu coloquei a ActionID 22222.

 

~

Editado Janeiro 5 por Myself

tibiaa4eT
06 de janeiro de 2009 às 05:11

So um erro q vc fez simples

 

function onStepIn(cid, item, pos)

local storage1 = 
local storage2 =
local storage3 =
local storage4 =
local storage5 =

-- teleports config
local teleport1 ={x=278, y=33, z=11}
local teleport2 ={x=278, y=35, z=11}

if item.actionid == 22222 then
	if getPlayerStorageValue(cid,storage1) == 1 and getPlayerStorageValue(cid,storage2) == 1 and getPlayerStorageValue(cid,storage3) == 1 and getPlayerStorageValue(cid,storage4) == 1 and getPlayerStorageValue(cid,storage5) == 1 then
		doTeleportThing(cid,teleport1)
		doCreatureSay(cid, "Congratulations! You did all the seals and now you are able to pass and get your reward.", TALKTYPE_ORANGE_1)
	else
		doTeleportThing(cid,teleport2)
		doPlayerSendCancel(cid,"You need to complete all seals to pass.")
	end
end
end

 

Adicione os storages nessas variaveis storage1, storage2 e talz

 

Se sanou sua duvida reporte o topico como Dúvida Sanada

noobinhuN
06 de janeiro de 2009 às 14:02

@tibia~

Cara, o que você fez não mudou em nada o script, só em vez de adicionar logo o getPlayerStorageValue, adicionou uma variável antes com o número do getPlayerStorage~...

 

@topic

Cheque se os valores quando você completa um seal é 1 mesmo, testa este script aqui para ver se o valor no storage 10001 é 1 mesmo:

 

function onStepIn(cid, item, pos)

 

doCreatureSay(cid, "Storage 10001 = ".. getPlayerStorageValue(cid,10001).."", TALKTYPE_ORANGE_1)

end

MyselfM
07 de janeiro de 2009 às 13:35

Edit: Dúvida sanada, obrigado ao noobinhu e ao tibiaa4e pela ajuda.

 

~

Editado Janeiro 7 por Myself

noobinhuN
07 de janeiro de 2009 às 13:44

Exato myself.

2 semanas depois...
DaNDaNrOxXD
16 de janeiro de 2009 às 10:03

Dúvida Sanada

:button_cancel: Tópico Fechado