DE

Funções E Position Recorder

Por Demonbholder, 07 de mar. de 2011 em Actions e Talkactions

script
10
2.4k
07 de março de 2011 às 22:33

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 Março 7 por Demonbholder

HudsinH
07 de março de 2011 às 22:36

Ó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.

 

*--*

ElkilluraE
07 de março de 2011 às 22:41

Boa Leonardo, ótimo sistema, até dava REP+ mas to sem amanha te reputo.

abrasss

BryanModestoB
07 de março de 2011 às 23:29

Ja vi esse esquema feito em outro forum, muito show

07 de março de 2011 às 23:33

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 Março 7 por Demonbholder

BryanModestoB
08 de março de 2011 às 09:06

Nao estou te acusando, tenho certeza que voce fez a sua propia função, o script do qual eu estou me referindo concerteza voce ja viu, é um feito pelo o RAMZA la na OtRealm.

08 de março de 2011 às 16:49

Nossa, cada vez melhor ;D Tava procurando esse script esses dias, Tem um esquema parecido no Talisman Online,

 

Parabéns, rep+

 

Abraços =)

08 de março de 2011 às 17:30

@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.

luizribeiroL
08 de março de 2011 às 17:48

parabéns muito bom principalmente em Quest.

VodkartV
09 de março de 2011 às 13:36

Wow demon já começando a fazer grandes functions xD

parabens velho,continua assim!

rep +