Ir para conteúdo

Duvida Outra De Tile [Script Do Vodka]


Terun

Posts Recomendados

Boa tarde,

 

 

Bom, o caso é similar ao pedido que foi atendido pelo Vodka, caso seja constatado como duplo pode fechar. Neste link: Link.

 

 

O script escrito pelo Vodka é o seguinte:

 

function onStepIn(cid, item, position, fromPosition)

 

if (item.actionid == 13731) then

for check_forjax = 217,223 do -- check X começo e final da sala

for check_forjay = 64,65 do -- check Y começo e final da sala

forjapos = {x=check_forjax, y=check_forjay, z=7, stackpos=253}

room_forja = getThingfromPos(forjapos )

if room_forja.itemid > 0 then

doTeleportThing(cid, fromPosition, true)

doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)

doPlayerSendCancel(cid,"Espere o Jogador sair da forja.")

return TRUE

end

end

end

 

elseif (item.actionid == 13732) then

 

local function SecondForja(cid)

pos = {x = 222, y = 65, z = 7} -- Coordenadas da onde vai subir o tempo

storage = 18370 -- não mexa aqui

local seconds = math.floor((getGlobalStorageValue(storage) - os.time()))

local msg = ''.. (seconds < 0 and 0 or seconds) ..''

if isCreature(cid) == TRUE then

doSendAnimatedText(pos, msg, math.random(1,140))

second = addEvent(SecondForja, 1000, cid)

end

end

 

teleport = {x=160, y=54, z=7} -- para onde o player vai se nao sair em 10 minutos

time = 1 -- em minutos

storage = 18370 -- não mexa aqui

if isPlayer(cid) == TRUE and getGlobalStorageValue(storage) <= os.time() then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. getCreatureName(cid) .. " você tem " .. time .. " minutos dentro da sala.")

kick = addEvent(doTeleportThing, time*60*1000, cid, teleport)

kick2 = addEvent(doPlayerSendTextMessage, time*60*1000, cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você saiu da sala de forja!")

second = addEvent(SecondForja, 1000, cid)

setGlobalStorageValue(storage, os.time()+time*60)

end

 

elseif (item.actionid == 13733) then

storage = 18370 -- não mexa aqui

if isPlayer(cid) == TRUE and getGlobalStorageValue(storage) >= os.time() then

setGlobalStorageValue(storage, -1)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você saiu da sala de forja!")

stopEvent(kick)

stopEvent(kick2)

stopEvent(second)

end

end

 

end

 

 

 

Mas tenho algumas duvidas:

 

1° variavel stackpos faz o que?

 

2° Tile de entrada é 13731 certo?

 

 

 

 

Segue o q preciso, segue mapa:

questd.jpg

 

O player entra no Tile e é teleportado para area 1.

 

O script q faz isso ta tudo ok, ele pisa lah no tile e vai para area 1 e é teleportado para a 2 dps de resolver um enigma, assim sucessivamente até chegar na area 6 e ser teleportado para area de premio. (isso funciona)

 

Mas o problema é que essa "quest" só será executada por 1 player por vez (mas pode ser repitida).

 

se o player tentar passar no tile 1 e tiver alguem na area amarela ele não poderá ser teletransportado para area 1.

Se o Player demorar mais de 15 min para chegar a area de premiação ele é teleportado para outra posição.

 

 

 

pelo que entendi do código a area coberta no meu mapa é:

 

for check_forjax = 963,1012 do -- check X começo e final da "ilha"

for check_forjay = 726,770 do -- check Y começo e final da "ilha"

 

 

Coloquei o script na pasta movements e setei o novo movements no xml correto, coloquei o actionid no tile pelo RM, mas não consegui fazer funfar.

 

 

 

 

 

 

 

 

 

 

agradeço muito

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

×
×
  • Criar Novo...