Ir para conteúdo
  • 0

[Resolvido][Action] Item Que Cria Portal.


Hudsin

Pergunta

Item de algum id qualquer,qu quando usa,cria um teleport(id: 1387) na frente do player e quando o player entrar,ser teleportado para o templo Position: [X: 32360] [Y: 31782] [Z: 7].

 

Dificuldade do script: Tenso

 

Condições:

Não pode estar com battle ou pz locked para usar.

Após o teleport aparecer deverá sumir em 15 segundos.

Apenas players que não estejam com pz locked podem entrar nesse portal.

 

 

:XTibia_smile:

Editado por Hudsin
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

No caso deveria ser apenas em lugar não-pz e com as condições que disse...

pois seria tipo um item para se salvar entende?

Exemplo: Estou no meio de uma quest muito foda e todo meu time fica sem potions,sd,etc...

para não precisar me matar,o cara que tiver este item,deverá estar sem battle nem pz locked para poder entrar,assim ele cria o teleport e entra e salva seu time.

outros que não sejam o criador do teleport pode entrar com battle,mas não com pz locked.

Link para o comentário
Compartilhar em outros sites

  • 0

ve se é isso,

 

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

local tpId = 1387
local p = getCreaturePosition(cid)
local tps = {
pos = {x=p.x, y=p.y, z=p.z},
toPos = {x=32360, y=32360, z=7},
time = 15, -- remove teleport
exausted = 60, -- in seconds
storage1 = 18370, -- dont edit
storage2 = 97854 -- dont edit
}
function removeTp()
local t = getTileItemById(tps.pos, tpId)
if t then
	doRemoveItem(t.uid, 1)
	doSendMagicEffect(tps.pos, CONST_ME_POFF)
end
end
function doTPSecond(cid,delay)
local seconds = math.floor((getPlayerStorageValue(cid, tps.storage1) - os.time())) 
local msg = ''.. (seconds < 0 and 0 or seconds) ..''   
doSendAnimatedText(tps.pos, msg, math.random(1,140)) 
if delay ~= 1 then
addEvent(doTPSecond, 1000,cid, delay -1)
end
end
if getCreatureCondition(cid, CONDITION_INFIGHT) then
return true,doPlayerSendTextMessage(cid,22,"Sorry,you cannot use this item with battle.")
elseif (getPlayerStorageValue(cid, tps.storage2) >= os.time()) then
return true,doPlayerSendCancel(cid, "wait " .. getPlayerStorageValue(cid, tps.storage2) - os.time() .. " seconds to use this item again.")
end
doCreateTeleport(tpId, tps.toPos, tps.pos)
setPlayerStorageValue(cid, tps.storage1, os.time()+tps.time)
doTPSecond(cid, tps.time)
addEvent(removeTp, tps.time*1000)
setPlayerStorageValue(cid,tps.storage2,os.time()+tps.exausted)
doRemoveItem(item.uid, 1) 
return false
end

 

obs: Fiz uma function que fica aparecendo em cima do teleport qntos segundos faltam pra ele fechar :p

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0

claro meu gatanhão

 

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

local tpId = 1387 
local p = getCreaturePosition(cid)
local x = {
[0] = {x=p.x, y=p.y-1, z=p.z},
[1] = {x=p.x+1, y=p.y, z=p.z},
[2] = {x=p.x, y=p.y+1, z=p.z},
[3] = {x=p.x-1, y=p.y, z=p.z}
}
local tps = { 
pos = x[getCreatureLookDirection(cid)], 
toPos = {x=32360, y=32360, z=7}, 
time = 15, -- remove teleport 
exausted = 60, -- in seconds 
storage1 = 18370, -- dont edit 
storage2 = 97854 -- dont edit 
} 
function removeTp() 
       local t = getTileItemById(tps.pos, tpId) 
       if t then 
               doRemoveItem(t.uid, 1) 
               doSendMagicEffect(tps.pos, CONST_ME_POFF) 
       end 
end 
function doTPSecond(cid,delay) 
local seconds = math.floor((getPlayerStorageValue(cid, tps.storage1) - os.time()))  
local msg = ''.. (seconds < 0 and 0 or seconds) ..''    
doSendAnimatedText(tps.pos, msg, math.random(1,140))  
if delay ~= 1 then 
addEvent(doTPSecond, 1000,cid, delay -1) 
end 
end 
if getCreatureCondition(cid, CONDITION_INFIGHT) then 
return true,doPlayerSendTextMessage(cid,22,"Sorry,you cannot use this item with battle.") 
elseif (getPlayerStorageValue(cid, tps.storage2) >= os.time()) then 
return true,doPlayerSendCancel(cid, "wait " .. getPlayerStorageValue(cid, tps.storage2) - os.time() .. " seconds to use this item again.") 
end 
doCreateTeleport(tpId, tps.toPos, tps.pos) 
setPlayerStorageValue(cid, tps.storage1, os.time()+tps.time) 
doTPSecond(cid, tps.time) 
addEvent(removeTp, tps.time*1000) 
setPlayerStorageValue(cid,tps.storage2,os.time()+tps.exausted)  
return false 
end

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...