Esqueceu do CID.
doTeleportThing(parameters.cid, parameters.fromPosition)
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

Esqueceu do CID.
doTeleportThing(parameters.cid, parameters.fromPosition)
info
Grupo: Campones
Registrado: 25/07/08
Posts: 55
Reputação: +2
Char no Tibia: Alex Terceiro

Correto!!
deu certo porem nao era o q eu queria.
era pra pegar a posição dele depois q ele estiver em cima da escada, se souber como fazer me avisa aí ;]
exemplo explicativo:

Editado Janeiro 18 por alex0007
info
Grupo: Campones
Registrado: 19/04/08
Posts: 53
Reputação: +1
Char no Tibia: Akilles Palyy

Correto!!
deu certo porem nao era o q eu queria.
era pra pegar a posição dele depois q ele estiver em cima da escada, se souber como fazer me avisa aí ;]
exemplo explicativo:
Alex , Desculpa , Mais axo que isso ai na img que vc mostrou é Impossivel , Porque quand oele decer nao sera a dereção que ir que vai faser onde ele sai , e sim o sqm da decida , ex : vc dece ali de boae passa em cima dakele SQM , ai vai tar programado pra te mandar -1 andar para baixo e assim visse verça , intaum vc pode só excolher 1 lado pra ele decer e nao varios , bom , é isos qeu axo , Vlw ai. qualquer coisa , Me CORRIJEM
Tente adicionar getPlayerLookDir(cid), certeza que vai funcionar X:
Não vou fazer o script porque tou sem o meu global.lua para pegar as direções =(
info
Grupo: Artesão
Registrado: 30/07/07
Posts: 101
Reputação: +1

Primeiro veja se a posição da escada abaixo está na mesma posição X e Y do buraco.
Caso esteja, olhe o que você tem:
fromPosition.z = fromPosition.z + 1
Mas não tem outra função de mudar o X ou Y.
Então, tente isso:
fromPosition.x = fromPosition.x + 1 fromPosition.y = fromPosition.y + 1
Não sei se vai funcionar =/
info
Grupo: Campones
Registrado: 25/07/08
Posts: 55
Reputação: +2
Char no Tibia: Alex Terceiro

nada disse ta me ajudando, vou postar outra ideia
tipo se pudesse usar IF
exemplo:
if (se estiver acima do buraco da escada) == 1 then
fromPosition.z = fromPosition.z + 1
fromPosition.y = fromPosition.y + 1 ----- isso faria com q ele caisse em cima da escada se estivesse acima do buraco
doTeleportThing(parameters.fromPosition)
elseif (se estiver a direita do buraco da escada) == 1 then
fromPosition.z = fromPosition.z + 1
fromPosition.x = fromPosition.x + 1
doTeleportThing(parameters.fromPosition)
e assim para as outras posições ;]
se alguem puder me ajuda aí
info
Grupo: Artesão
Registrado: 30/07/07
Posts: 101
Reputação: +1

getPlayerLookDir(cid)
NORTH = 0
EAST = 1
SOUTH = 2
WEST = 3
Norte = 0
Leste = 1
Sul = 2
Oeste = 4
Eu acho =X, não sei inglês...
function onStepIn(cid, item, position, fromPosition)
playerdir = getPlayerLookDir(cid)
fromPosition.z = fromPosition.z + 1
if playerdir = 2 then
fromPosition.y = fromPosition.y + 1
elseif playerdir = 4 then
fromPosition.x = fromPosition.x + 1
elseif playerdir = 0 then
fromPosition.y = fromPosition.y - 1
elseif playerdir = 1 then
fromPosition.x = fromPosition.x - 1
end
parameters = {cid = cid, fromPosition = fromPosition}
addEvent(talk, 2000, parameters)
end
function talk(parameters)
doTeleportThing(parameters.fromPosition)
end
Ve se funfa...
;D
info
Grupo: Campones
Registrado: 25/07/08
Posts: 55
Reputação: +2
Char no Tibia: Alex Terceiro

error
Warning: [Event::loadScript] Can not load script. data/movements/scripts/escada. lua data/movements/scripts/escada.lua:4: 'then' expected near '='
AEW galera deixa pra la, axu melhor eu deixa como tava a escada e ir mudar no meu map msm.
vlw aí pra quem tentou me ajudar
Editado Janeiro 18 por alex0007
as comparações com IF devem ser seguidas de dois sinais comparativos:
== igual a
<= menor ou igual a
>= maior ou igual a
<> diferente de
troque todos os if xxxxxx = y then por
if xxxxxxx == y then
Senhor brainless, tem um tutorial de for e do pra mim aí? *-*
Tenho muitos scripts aqui, mas estão gigantes, usando for e do diminuiria e muito meus scripts, tem como me ensinar? Nem que seja por PM/MSN \o/
sinto um tom de ironia na sua msg =P
e abra um tpc pra sua dúvida =P[2]
for
sintaxe for variável = valor inicial, valor final do
{...}
end
traduzindo:
para cada variável = valor inicial, valor final faça
{...}
próximo/fim
assim que o for encontra um end, adiciona automaticamente +1 à variável
na prática:
for a = 1, 3 do
"oi xtibia"
end
saída:
"oi xtibiaoi xtibia
oi xtibia"
para cada a = iniciando em 1, terminando em 3 faça
"oi xtibia"
fim
é mais utilizado quando se precisa encher uma bp ou bag de items
local backpack = doPlayerAddItem(cid, 1998, 1)for a = 1, 20 do
doAddContainerItem(backpack, itemID, itemCount, itemCharges)
end
o comando acima seria executado 20 vezes, adicionando 20 vezes o mesmo item à backpack
o valor da variável também pode ser utilizado dentro da subrotina for quando estivermos trabalhando com índices(arrays)
local items = {2463, 2465, 2466}
local backpack = doPlayerAddItem(cid, 1998, 1)
for a = 1, 3
doAddContainerItem(backpack, items[a], 1)
end
o código acima adiciona uma plate armour, brass armour e golden armour à uma backpack que será entregue ao player
info
Grupo: Campones
Registrado: 25/07/08
Posts: 55
Reputação: +2
Char no Tibia: Alex Terceiro
to fazendo um mapa, e to usando aquela escada em espiral, e descobri q meu mapeamento nao tava compatindo com as posições da escada. ou seja quando sobe ou dece ele entra na parede
, to fazendo esse script pra fazer com q nao saia no lugar errado!!!
O que q eu to fazendo errado?
Mensagem de error: