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:
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,1012do -- 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.
info
Grupo: Campones
Registrado: 12/02/08
Posts: 23
Reputação: +1
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:
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 Junho 7 por TeruN