Ir para conteúdo

[Encerrado] [PEDIDO]Alavanca que teleporta


Drk Shadow

Posts Recomendados

Bom eu não sei se ja tem, mais eu nao achei, eu queria o seguinte:

 

uma alavanca tipo a da annihilator, porem, queria que só 4 players fossem teletransportados, 1 para cada lugar diferente, e que só pudesse entrar 1 time por dia.

 

Eu ja achei varios scripts de Annihilator mais nenhum funciona para poketibia. alguem poderia ajudar ? obrigado ;x

Link para o comentário
Compartilhar em outros sites

Tirei como base esse tpc aqui: http://www.xtibia.com/forum/topic/37212-fazendo-2-annihilator-no-ot/

Ai você muda as coisas q não estiverem completas e talz (posições, ids do items, storages, etc). Não sei se funciona, mas se quiser tentar: Fiz rapidin também ._.

 

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

if item.uid == 7005 and item.itemid == 1945 then
player1pos = {x=, y=, z=, stackpos=253} --"Colocando aqui aonde o player 1 estara antes de puchar a alavanca"
player1 = getThingfromPos(player1pos)
player2pos = {x=, y=, z=, stackpos=253} --"Colocando aqui aonde o player 2 estara antes de puchar a alavanca"
player2 = getThingfromPos(player2pos)
player3pos = {x=, y=, z=, stackpos=253} --"Colocando aqui aonde o player 3 estara antes de puchar a alavanca"
player3 = getThingfromPos(player3pos)
player4pos = {x=, y=, z=, stackpos=253} --"Colocando aqui aonde o player 4 estara antes de puchar a alavanca"
player4 = getThingfromPos(player4pos)
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
queststatus1 = getPlayerStorageValue(player1.uid,7005)
queststatus2 = getPlayerStorageValue(player2.uid,7005)
queststatus3 = getPlayerStorageValue(player3.uid,7005)
queststatus4 = getPlayerStorageValue(player4.uid,7005)
if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 and getGlobalStorageValue(102176) < 1 then
nplayer1pos = {x=, y=, z=} --"Colocando aqui a posiçao q o player 1 ira apos puchar a alavanca"
nplayer2pos = {x=, y=, z=} --"Colocando aqui a posiçao q o player 2 ira apos puchar a alavanca"
nplayer3pos = {x=, y=, z=} --"Colocando aqui a posiçao q o player 3 ira apos puchar a alavanca"
nplayer4pos = {x=, y=, z=} --"Colocando aqui a posiçao q o player 4 ira apos puchar a alavanca"
doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)
doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)
setGlobalStorageValue(102176, 1)
addEvent(setGlobalStorageValue, 1000*60*60*24, 102176, -1) --Não sei direito de como fazer um addevent por 1 dia (s, sou burro), deve estar errado, mas pelo menos a base tae
doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid, "Alguém da sua equipe já completou a quest, ou a quest já foi terminada hoje.")
end
else
doPlayerSendCancel(cid,"You need four players for this quest.")
end
elseif item.uid ==7005 and item.itemid == 1946 then
if getPlayerAccess(cid) > 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
return false
end
return true
end

Outra tentativa, suponho que falha. LIB:
function getRecorderPlayer(pos, cid)
local ret = 0
if cid and isPosEqual(getThingPos(cid), pos) then   
  return cid
end
local s = {}
s.x = pos.x
s.y = pos.y
s.z = pos.z
for a = 0, 255 do
s.stackpos = a
local b = getTileThingByPos(s).uid
if b > 1 and isPlayer(b) and getCreatureOutfit(b).lookType ~= 814 then
ret = b
end
end
return ret
end
Action: -Esse não é por alavanca, mas se quiser tentar mesmo assim ;/
function onUse(cid, item, frompos, item2, topos)
 
local posis = {
posone = {x=1081, y=1712, z=10}},
postwo = {x=1085, y=1710, z=10}},
posthree = {x=1085, y=1716, z=10}},
posfour = {x=1083, y=1710, z=10}},
}
 
local posfinal = {
posonea = {x= xxx, y = yyy, z = zzz},
postwoq = {x= xxx, y = yyy, z = zzz},
posthreea = {x= xxx, y = yyy, z = zzz},
posfoure = {x= xxx, y = yyy, z = zzz},
}
 
player1 = getThingfromPos(posis.posone)
player2 = getThingfromPos(posis.postwo)
player3 = getThingfromPos(posis.posthree)
player4 = getThingfromPos(posis.posfour)
 
for _, array in ipairs(posis) do
local p = getRecorderPlayer(array[2])
if not isPlayer(p) or getGlobalStorageValue(102176) >= 1 then
doPlayerSendTextMessage(cid, 27, "Há alguém fora do lugar, ou a quest já foi completa hoje.")
return true
end
end
for _, array in ipairs(posis) do
local p = getRecorderPlayer(array[2])
if isPlayer(p) then
doTeleportThing(player1, posfinal.posonea)
doTeleportThing(player2, posfinal.postwoq)
doTeleportThing(player3, posfinal.posthreea)
doTeleportThing(player4, posfinal.posfoure)
setGlobalStorageValue(102176, 1)
addEvent(setGlobalStorageValue, 1000*60*60*24, 102176, -1)                 --Não sei direito de como fazer um addevent por 1 dia (s, sou burro), deve estar errado, mas pelo menos a base tae
end 
end 
return true 
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...