EU
suporte scripts

(resolvido)Monster Loot TP

Por euller15, 29 de jul. de 2016 em Resolvidos

tp não some
otserv
18
3.1k
euller15E
29 de julho de 2016 às 10:30

Eai galerinha, então eu estruturei esse script, mas não consigo fazer com que o teleport suma dentro do tempo estipulado.

Alguém pode ajudar?

 

Citar

local tpId = 1387
local tps = {
["Demon X"] = {pos = {x=1044, y=1694, z=9}, toPos = {x=1046, y=1695, z=8}, time = 10},
}
 
function removeTp(tp)
local t = getTileItemById(tp.pos, tpId)
if t then
doRemoveItem(t.uid, 1)
doSendMagicEffect(tp.pos, CONST_ME_POFF)
end
end
 
function onDeath(cid)
local tp = tps[getCreatureName(cid)]
if tp then
doCreateTeleport(tpId, tp.toPos, tp.pos)
doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)
addEvent(removeTp, tp.time*10, tp)
addEvent(removeTp, timeRemove*1000, Tp.Position)
doRemoveTeleport(removeTp, TpPosition)
end
return TRUE

 

 

Editado Setembro 24 por Drazyn

PoccnnP
29 de julho de 2016 às 14:16
3 horas atrás, euller15 disse:

addEvent(removeTp, timeRemove*1000, Tp.Position)

Isso está errado. Remova-o.

3 horas atrás, euller15 disse:

doRemoveTeleport(removeTp, TpPosition)

Denota-se que o teleporte esta sendo removido, logo não existe tp para ser removido.

euller15E
29 de julho de 2016 às 14:39

Não entendi, por favor fale de maneira mais clara.

Eu exclui as duas linhas, mas o Tp ainda não some.

Yan LiimaY
29 de julho de 2016 às 16:25
local tpId = 1387local tps = {["Demon X"] = {pos = {x=1044, y=1694, z=9}, toPos = {x=1046, y=1695, z=8}, time = 10},} function removeTp(tp)local t = getTileItemById(tp.pos, tpId)if t thendoRemoveItem(t.uid, 1)doSendMagicEffect(tp.pos, CONST_ME_POFF)endend function onDeath(cid)local tp = tps[getCreatureName(cid)]if tp thendoCreateTeleport(tpId, tp.toPos, tp.pos)doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)addEvent(removeTp, tp.time*1000, tp)endreturn TRUEend

 

 

euller15E
29 de julho de 2016 às 17:51

@Yan Liima Eu testei o seu script e o erro persiste :/

PoccnnP
30 de julho de 2016 às 09:11

Faz as seguintes modificações:

Muda a função: getTileItemById por getThingFromPosition.

Na estrutura 'pos', adiciona a variavel stackpos atribuida de valor 1 (um).

 

euller15E
30 de julho de 2016 às 10:14

@Poccnn Está correto?

Citar

local tpId = 1387
local tps = {
["Demon X"] = {pos = {x=1044, y=1694, z=9}, toPos = {x=1046, y=1695, z=8}, time = 10},
}
 
function removeTp(tp)
local tp = getThingFromPosition(tp.pos, stackpos 1, uid)
if tp then
doRemoveItem(tp.uid, 1)
doSendMagicEffect(tp.pos, CONST_ME_POFF)
end
end
 
function onDeath(cid)
local tp = tps[getCreatureName(cid)]
if tp then
doCreateTeleport(tpId, tp.toPos, tp.pos)
doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)
addEvent(removeTp, tp.time*1000, tp)
end
return TRUE
end

 

rorixR
30 de julho de 2016 às 12:25

vc tem que registrar o script no monstro e tbm no login.lua

PoccnnP
30 de julho de 2016 às 13:06

Substitui isso:

Citar

getThingFromPosition(tp.pos, stackpos 1, uid)

 

Por este:

Citar

getThingFromPosition(pos)

 

Agora, substitua isso:

Citar

pos = {x=1044, y=1694, z=9}

 

Por isto:

Citar

pos = {x=1044, y=1694, z=9, stackpos = 1}

 

Modifique isso:

Citar

function removeTp(tp)

 

Para isto:

Citar

function removeTp(pos)

 

Mude isso:

Citar

addEvent(removeTp, tp.time*1000, tp)

 

Pra isto:

Citar

addEvent(removeTp, tp.time*1000, tp.pos)

 

euller15E
30 de julho de 2016 às 14:53
1 hora atrás, Poccnn disse:

Substitui isso:

 

Por este:

 

Agora, substitua isso:

 

Por isto:

 

Modifique isso:

 

Para isto:

 

Mude isso:

 

Pra isto:

 

O erro ainda persiste @Poccnn

PoccnnP
30 de julho de 2016 às 15:23

Muda isso:

Citar

doSendMagicEffect(tp.pos, CONST_ME_POFF)

 

Por isto:

Citar

doSendMagicEffect(pos, CONST_ME_POFF)

 

Verifica se sai o efeito.

Se não sair, verifica se a função addEvent funciona.

Yan LiimaY
30 de julho de 2016 às 15:29

Cara acabei de testar aqui a forma que eu te mandei, e funcionou perfeitamente.

euller15E
30 de julho de 2016 às 18:21

@Yan Liima É 8.54 TFS 0.3.6 O teleport em si funciona, no entanto não é removido o teleport.

Yan LiimaY
30 de julho de 2016 às 19:25
1 hora atrás, euller15 disse:

@Yan Liima É 8.54 TFS 0.3.6 O teleport em si funciona, no entanto não é removido o teleport.

 

Ah sim, comigo funcionou normalmente. 8.6 TFS 0.4 e OTX2.

Editado Julho 30 por nedroesdoksdja

euller15E
30 de julho de 2016 às 19:37

@Yan Liima Aqui não está funfando :/