15
pedido

Passar E Não Poder Voltar Sem Level, Apareçer Seta Pela Primera Vez Ao Passar

Por 1579091, 08 de out. de 2012 em Scripts

script
11
1.3k
15790911
08 de outubro de 2012 às 17:30

Hoje, venho aqui pedir 2 scripts:

 

1º - Passar em um local e não poder voltar sem o level requerido:

Gostaria de um script que quando o player passasse por cima do tile, saisse aquele effect sobre ele como se foce exura (numero 12). E depois que ele passasse ele não poderia voltar mais, ele só poderia voltar novamente quando atingisse o level:

Knights (4) - Level 50

Druid (1) / Sorcerers (2) - Level 42

Paladin (3) - Level 65

 

Depois que ele voltar, ele nunca mais poderia acessar aquela area novamente Nunca mais!

Resumo: Ele podia passar pelo lugar mais não podia passar novamente sem o level requerido.

O numero em parentes [ex. (4)] é o número da vocação!

_______________________________________

 

2º - Ao passar pelo local apareçer seta em certo lugar do mapa e mensagem:

Bom pessoal, nesse segundo script terá que funcionar assim: Quando o player passar em cima do tile, apareçera uma seta em uma pos do mapa [165 70 8], e apareçesse uma mensagem pro player dizendo:

- Desca o bueiro e encontrará rotworms, caçe la até achar que ja pode conheçer o mundo a fora, lembrando que você não será enterrompido por pk's ali em baixo!

 

Complemento: Gostaria que aquele tile, que eu dechei em negrito, por ser 3 tiles de espaço, gostaria de que tivesse de colocar uniqueids nesses tiles e que só funcionasse uma vez. Tipo se o player passasse em um desses tiles ja apareçesse a tela, e se ele pisasse nos outros 3 tiles, não acontecesse mais nada.

 

Lembrando, que a mensagem só apareçerá uma vez, apenas a primeira vez que o player passar sobre aqueles tiles.

 

-- Caso não tenha entendido alguns dos pedidos esclareça que eu estarei explicando melhor a parte que você não entendeu.

Muito grato a quem ajudar!

Editado Outubro 8 por GuizitoG

LuckOakeL
08 de outubro de 2012 às 20:01

Tá ai. Vê se os dois tão 100%.

 

Primeiro:

 

function onStepIn(cid, position, fromPosition)

local a = {

[1] = 42,

[2] = 42,

[3] = 65,

[4] = 50

}

 

local b = a[getPlayerVocation(cid)]

 

if not b then

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "Sorry, your vocation cannot pass.") return true

elseif getPlayerStorageValue(cid, 38471) == -1 then

doMoveCreature(cid, getCreatureLookDir(cid))

setPlayerStorageValue(cid, 38471, 1) return true

elseif getPlayerStorageValue(cid, 38471) == 1 and getPlayerLevel(cid) < b then

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "Sorry, you must be level "..b.." to leave.") return true

elseif getPlayerStorageValue(cid, 38471) == 1 and getPlayerLevel(cid) >= b then

setPlayerStorageValue(cid, 38471, 2)

doMoveCreature(cid, getCreatureLookDir(cid))

doSendMagicEffect(getCreaturePos(cid), 12)

elseif getPlayerStorageValue(cid, 38471) == 2 then

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "Sorry, you cannot pass anymore.") return true

end

return true

end

 

 

Segundo:

 

function onStepIn(cid)

local posef = {x = 165, y = 70, z = 8} -- Position do efeito

local eff = 55 -- Efeito da seta

 

if getPlayerStorageValue(cid, 12891) == 1 then return true

end

 

doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Desça o bueiro e encontrará rotworms, cace lá até achar que já pode conhecer o mundo, lembrando que você não será interrompido por PKs ali em baixo!")

doSendMagicEffect(posef, eff)

setPlayerStorageValue(cid, 12891, 1)

return true

end

 

 

Use a tag de movement que quiser.

Editado Outubro 8 por LuckOake

SlicerS
08 de outubro de 2012 às 20:01

sobre o 2* pedido...

e exatamente como seria essa seta? tem algum item ou tile q se pareça com uma? to por fora hehe

Editado Outubro 8 por Slicer

15790911
08 de outubro de 2012 às 21:12

@Slicer --

 

local eff = 55 -- Efeito da seta

Esse é o efeito da seta como visto no script do luck

Bom vou testar o script dele qualquer coisa eu edito aki!

 

___________________________________

 

@LuckOak -- No primeiro ele passa pelo tile e a mensagem fala que ele nao pode passar mais ele pode passar do mesmo jeito. e da o seguinte erro no the forgot:

 

[08/10/2012 21:13:13] [Error - MoveEvents Interface]

[08/10/2012 21:13:13] data/movements/scripts/firsthunt.lua:onStepIn

[08/10/2012 21:13:13] Description:

[08/10/2012 21:13:13] (luaDoPlayerSendCancel) Player not found

 

e no segundo eu puis a tag assim:

<movevent type="StepIn" actionid="15768" event="script" value="firsthunt.lua"/>

e nao funfo...

 

Se você puder arrumar os scripts e passar a tag...

Editado Outubro 8 por GuizitoG

LuckOakeL
08 de outubro de 2012 às 21:20

Primeiro:

 

function onStepIn(cid, position, fromPosition)

local a = {

[1] = 42,

[2] = 42,

[3] = 65,

[4] = 50,

}

 

local b = a[getPlayerVocation(cid)]

 

if not b then

doPlayerSendCancel(cid, "Sorry, your vocation cannot pass.")

return doTeleportThing(cid, fromPosition) end

if getPlayerStorageValue(cid, 38471) == -1 and b then

doMoveCreature(cid, getCreatureLookDir(cid))

setPlayerStorageValue(cid, 38471, 1) return true

elseif getPlayerStorageValue(cid, 38471) == 1 and getPlayerLevel(cid) < b then

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "Sorry, you must be level "..b.." to leave.") return true

elseif getPlayerStorageValue(cid, 38471) == 1 and getPlayerLevel(cid) >= b then

setPlayerStorageValue(cid, 38471, 2)

doMoveCreature(cid, getCreatureLookDir(cid))

doSendMagicEffect(getCreaturePos(cid), 12)

elseif getPlayerStorageValue(cid, 38471) == 2 then

doTeleportThing(cid, fromPosition)

doPlayerSendCancel(cid, "Sorry, you cannot pass anymore.") return true

end

return true

end

 

 

Testado e funcionando.

 

O segundo tá funcionando normal aqui. Testa ai direito.

Editado Outubro 8 por LuckOake

15790911
08 de outubro de 2012 às 21:24

Passa as tags!

LuckOakeL
08 de outubro de 2012 às 21:26

A tag que eu usei pras duas foi essa:

 

<movevent type="StepIn" actionid="6320" script="testarea.lua"/>

 

Mas isso não muda muito.

15790911
08 de outubro de 2012 às 21:34

o 1º continua dando no mesmo, apareçe a msg mais o player pode ir e voltar normalemente!

O segundo tipo quando o bixo passa a seta apareçe... teria como não acontecer com bixos?? porque se nao os bixo fica passando la e a seta apareçe!

 

 

Erro apontado:

[08/10/2012 21:36:49] [Error - MoveEvents Interface]

[08/10/2012 21:36:49] data/movements/scripts/firsthunt I.lua:onStepIn

[08/10/2012 21:36:49] Description:

[08/10/2012 21:36:49] (luaDoPlayerSendTextMessage) Player not found

Editado Outubro 8 por GuizitoG

LuckOakeL
08 de outubro de 2012 às 21:36

Tó o segundo corrigido:

 

 

function onStepIn(cid)

local posef = {x = 165, y = 70, z = 8} -- Position do efeito

local eff = 55 -- Efeito da seta

 

if getPlayerStorageValue(cid, 12891) == 1 then return true

end

 

if not isMonster(cid) then

doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Desça o bueiro e encontrará rotworms, cace lá até achar que já pode conhecer o mundo, lembrando que você não será interrompido por PKs ali em baixo!")

doSendMagicEffect(posef, eff)

setPlayerStorageValue(cid, 12891, 1)

end

return true

end

 

 

O primeiro eu não sei qual é o problema, aqui funcionou.

15790911
08 de outubro de 2012 às 21:43

Slicer se puder desenvolver o outro.. Rep pro luck hj!

SlicerS
08 de outubro de 2012 às 22:03

mano.. aparentemente ta tudo certo com o script do luck ;/ n sei oq pode ser.. mas tem algu estranhu ae na real ;x

o script dele n tem nenhum 'DoPlayerSendTextMessage' mas ms assim ta dando debug nisso o.O ;x

tenta usar isso.. mas achu q n vai mudar nd.. sorry..

 

function onStepIn(cid, position, fromPosition)

local a = {

[1] = 42,

[2] = 42,

[3] = 65,

[4] = 50,

}

 

local b = a[getPlayerVocation(cid)]

 

if not b then

doPlayerSendCancel(cid, "Sorry, your vocation cannot pass.")

doTeleportThing(cid, fromPosition)

return false

end

 

if getPlayerStorageValue(cid, 38471) == -1 then

doMoveCreature(cid, getCreatureLookDir(cid))

setPlayerStorageValue(cid, 38471, 1)

return false

elseif getPlayerStorageValue(cid, 38471) == 1 and getPlayerLevel(cid) < b then

doPlayerSendCancel(cid, "Sorry, you must be level "..b.." to leave.")

doTeleportThing(cid, fromPosition)

return false

elseif getPlayerStorageValue(cid, 38471) == 1 and getPlayerLevel(cid) >= b then

setPlayerStorageValue(cid, 38471, 2)

doMoveCreature(cid, getCreatureLookDir(cid))

doSendMagicEffect(getPlayerPosition(cid), 12)

elseif getPlayerStorageValue(cid, 38471) == 2 then

doPlayerSendCancel(cid, "Sorry, you cannot pass anymore.")

doTeleportThing(cid, fromPosition)

return false

end

 

return true

end