Ir para conteúdo

Funções E Position Recorder


Posts Recomendados

Faaala galera! Esses dias um parceiro meu me deu uma idéia e pediu para que eu fizesse um script para ele, assim surgiu o script que irei postar agora.

 

Eu coloquei o nome de Position Recorder porque o script faz jus ao nome; ele funciona da seguinte maneira: Você tem um item, no caso o 2359 e quando você clica nele, a sua posição é gravada e o item se transforma para o 2356. Ai você pode usar o 2356 que você será teleportado para a posição que você estava quando usou o primeiro item.

 

Well, como dito no título, eu fiz duas funções para o script funcionar; claro que não era necessário, mas as funções são úteis para outras coisas também. Darei mais exemplos no final. Bom, vamos as funções:

 

Vá em data/lib, abra o arquivo functions.lua, e cole no final dele estas duas funções:

 

function doMarkPos(cid, posx, posy, posz)

setPlayerStorageValue(cid, 19000, posx)
setPlayerStorageValue(cid, 19001, posy)
setPlayerStorageValue(cid, 19002, posz)
end

 

function getMarkPos(cid)

return {x=getPlayerStorageValue(cid, 19000), y=getPlayerStorageValue(cid, 19001), z=getPlayerStorageValue(cid, 19002)}
end

 

Certo, agora vamos ao script do position recorder.

 

Opção 1: Apenas vips usam, Kydrai System Vip.

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local pos = getCreaturePosition(cid)

if item.itemid == 2359 then
if isVip(cid) == TRUE then
if getMarkPos(cid).x < 1 then
doMarkPos(cid, pos.x, pos.y, pos.z)
doPlayerSendTextMessage(cid, 4, "Você gravou uma posição.")
doTransformItem(item.uid, 2356)
else
doPlayerSendCancel(cid, "Você já gravou posição.")
end
else
doPlayerSendCancel(cid, "Apenas vips podem usar este item.")
end
end

if item.itemid == 2356 then
if isVip(cid) == TRUE then
if getTilePzInfo(getCreaturePosition(cid)) == TRUE then
if getMarkPos(cid).x > 0 then 
doRemoveItem(item.uid, 1)
doTeleportThing(cid, getMarkPos(cid))
doMarkPos(cid, 0, 0, 0)
else
doPlayerSendCancel(cid, "Você não gravou uma posição.")
end
else
doPlayerSendCancel(cid, "Você precisa estar em área pz.")
end
else
doPlayerSencCancel(cid, "Você não é vip.")
end
end

end

 

 

Opção 2: Apenas vips usam, Perfect Vip System.

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local pos = getCreaturePosition(cid)

if item.itemid == 2359 then
if getPlayerStorageValue(cid, 13540) - os.time() > 0 then
if getMarkPos(cid).x < 1 then
doMarkPos(cid, pos.x, pos.y, pos.z)
doPlayerSendTextMessage(cid, 4, "Você gravou uma posição.")
doTransformItem(item.uid, 2356)
else
doPlayerSendCancel(cid, "Você já gravou posição.")
end
else
doPlayerSendCancel(cid, "Apenas vips podem usar este item.")
end
end

if item.itemid == 2356 then
if getPlayerStorageValue(cid, 13540) - os.time() > 0 then
if getTilePzInfo(getCreaturePosition(cid)) == TRUE then
if getMarkPos(cid).x > 0 then 
doRemoveItem(item.uid, 1)
doTeleportThing(cid, getMarkPos(cid))
doMarkPos(cid, 0, 0, 0)
else
doPlayerSendCancel(cid, "Você não gravou uma posição.")
end
else
doPlayerSendCancel(cid, "Você precisa estar em área pz.")
end
else
doPlayerSencCancel(cid, "Você não é vip.")
end
end

end

 

 

Opção 3: Qualquer um usa.

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local pos = getCreaturePosition(cid)

if item.itemid == 2359 then
if getMarkPos(cid).x < 1 then
doMarkPos(cid, pos.x, pos.y, pos.z)
doPlayerSendTextMessage(cid, 4, "Você gravou uma posição.")
doTransformItem(item.uid, 2356)
else
doPlayerSendCancel(cid, "Você já gravou posição.")
end
end

if item.itemid == 2356 then
if getTilePzInfo(getCreaturePosition(cid)) == TRUE then
if getMarkPos(cid).x > 0 then 
doRemoveItem(item.uid, 1)
doTeleportThing(cid, getMarkPos(cid))
doMarkPos(cid, 0, 0, 0)
else
doPlayerSendCancel(cid, "Você não gravou uma posição.")
end
else
doPlayerSendCancel(cid, "Você precisa estar em área pz.")
end
end

end

 

 

Outras possibilidades para as funções adicionadas:

 

~Quest: Terminar a quest e ganhar acesso a um lugar especial.

 

 

function onUse(cid, item)

local posx, posy, posz = ???, ???, ??

if getPlayerStorageValue(cid, 13081) == -1 then
doPlayerSendTextMessage(cid, 4, "Você ganhou acesso ao lugar sagrado.")
setPlayerStorageValue(cid, 13081, 1)
doMarkPos(cid, posx, posy, posz)
doPlayerAddItem(cid, 2356, 1)
else
doPlayerSendCancel(cid, "Você já fez a quest")
end
end

 

 

Lembrando que o lugar fica gravado no jogador, e não no item. Os itens usados foram 2356 e 2359, no caso; você pode troca-los se souber como. É isso, postem o que acharam, até mais.

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

Ótimo item para vips usarem =D

 

Exemplo:

1- Você usa o item para gravá-lo na hunt.

2- Você volta a cidade e vende o loot.

3- Você usa item,em um lugar pz,e é teleportado de volta para a hunt.

 

*--*

Link para o comentário
Compartilhar em outros sites

Não copiei de nenhum outro fórum, aliás, essa idéia era desconhecida por mim até me falarem esses dias. Espero que não esteja me acusando de rippar, porque eu fiz o script.

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

@Bryan Eu já tentei frequentar o otrealm, e nunca vi esse sistema lá. Assim como eu disse anteriormente, quem me deu essa idéia foi o Hudsin, que me pediu para fazer para ele, depois eu só ajeitei para ficar no nível necessário para postar aqui. Até então, esse sistema era desconhecido por mim.

 

@Darkvelocity Valeu parceiro.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...