Ir para conteúdo

Ring Of The Skies Teleport Back


FoReVeR

Posts Recomendados

Ring of the skies teleport back

 

aqui eu tenho uma action que voce vai ligar ao ring of the skies

 

oq ela faz? voce pode gravar uma posição ao ring e quando tu usar ele denovo ele vai te teleportar pra essa posição

 

em que isso vai ser util? pense em quando voce vai entrar em um teleport ou buraco e não tem bem certeza do que vai encontrar lá, com essa action é só você gravar sua posição, entrar no teleport, e dar um simples clique se não gostar do que viu

 

bom, sem mais delongas vamos as instruções

 

crie um arquivo.lua em data/actions/scripts de nome telback, e escreva no arquivo:

function onUse(cid, item, frompos, item2, topos) 
queststatus = getPlayerStorageValue(cid,4000) 
if queststatus == -1 and item.actionid == 0 or item.actionid == 100 then 
telpos = getPlayerPosition(cid) 
doSendMagicEffect(frompos,12) 
doPlayerSendTextMessage(cid, 22, "The ring has recorded your position.") 
doSetItemActionId(item.uid, 200) 
setPlayerStorageValue(cid,4000,1) 
elseif queststatus == -1 and item.actionid < 300 and item.actionid > 101 then 
telpos = getPlayerPosition(cid) 
doSendMagicEffect(frompos,12) 
doPlayerSendTextMessage(cid, 22, "The ring has recorded your position.") 
doSetItemActionId(item.uid, item.actionid-1) 
setPlayerStorageValue(cid,4000,1) 
elseif queststatus == -1 and item.actionid == 101 then 
doPlayerSendTextMessage(cid, 22, "The ring has lost his power, life crystals can recharge it.") 
elseif queststatus == 1 then 
doSendMagicEffect(frompos,2) 
doTeleportThing(cid,telpos) 
doSendMagicEffect(frompos,10) 
setPlayerStorageValue(cid,4000,-1) 
end 
return 1 
end

 

feito isso crie outro arquivo, agora de nome rechargetel e escreva o seguinte

function onUse(cid, item, frompos, item2, topos) 
queststatus = getPlayerStorageValue(cid,4001) 

if queststatus == -1 then 
if item2.itemid == 2177 then 
setPlayerStorageValue(cid,4001,1) 
doSetItemSpecialDescription(item.uid, "it is full.") 
doRemoveItem(item2.uid,1) 
doSendMagicEffect(topos,12) 
end 

elseif queststatus == 1 then 
if item2.itemid == 2357 then 
setPlayerStorageValue(cid,4001,-1) 
doSetItemSpecialDescription(item.uid, "it is empty.") 
doSetItemActionId(item2.uid,0) 
doSendMagicEffect(topos,12) 
end 
end 
return 1 
end

 

esse script é pra poder recarregar o ring of the skies gastando um life crystal, porque se ele não gastasse nada pra usar seria ainda mais cabuloso do que já é, e ficaria sem graça.

 

Obs: pros servers que vão querer adotar essa action, façam a raridade do ring of the skies ainda maior do que já é, pra poder equilibrar e o serv não desvalorizar, se quiserem botem ele ao acesso apenas de gms, ou apenas possível de se adquirir fazendo uma quest, não sei, to só dando idéia porque eu sei que o impacto de um item desses na mão dos lowlevel de um serv pode ser considerávelmente grande

 

ok, pra ele estar pronto e funcionando não se esqueçam de adicionar no actions.xml as seguintes tags:

<action itemid="2357" script="telback.lua" /> 
<action itemid="4869" script="rechargetel.lua" />

Obs2: eu baseei os ids no client 7.81 ao fazer esses scripts, só pra não botarem numa versão 7.6 e depois bugar tudo

 

Missão ring of the skies topic: Concluída

 

Downloads:

-TelbackArquivo-

-Recharge Tel-

 

Creditos: CapaVerde.

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

  • 1 month later...
  • 8 years later...

O prob é que ele usa uma variável global pra armazenar a posição, aí se tiver mais de um player com ring of the skies um vai sobreescrever o outro.

Eu corrigi isso usando doSetItemText e getItemText

Link para o comentário
Compartilhar em outros sites

  • Administrador

O prob é que ele usa uma variável global pra armazenar a posição, aí se tiver mais de um player com ring of the skies um vai sobreescrever o outro.

Eu corrigi isso usando doSetItemText e getItemText

 

@@Capaverde

Este tópico é de 2007, você reviveu. Preste atenção nas datas =)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...