Ir para conteúdo
  • 0

Tem Como Fazer Esse Script?


MonsterOt

Pergunta

(porvafor precisando mt disso.. =)

 

Eu quero um "script" que marque uma area onde os player só vao poder ficar por 3 min. ( após os players sairem dessa area e depois voltar, o tempo começa a contar denovo)

 

pode ser um globalevent ou creaturescript, nao sei..

 

usando isso no script para marca a area!

 

Quote

 

local area1 = {x = 126, y = 46, z = 1} -- Ponta de cima na esquerda na area

local area2 = {x = 128, y = 50, z = 1} -- Ponta de baixo na direita na area

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

é uma movements, você fez um pedido similar há um tempo aí e eu respondi pra você com as tags direitinho e como instalar, eu não vou repetir aqui...

você pediu pra readaptar a script colocando um check pra ver se o player estava dentro da area e o pessoal começou a postar talkaction, globalevent e mais outras coisas nada a ver (não sei porquê), vou passar somente a script:

 

 

local tempo = 180 * 1000 -- em ms, 180 * 1000 = 3 min
local area1 = {x = 126, y = 46, z = 1} -- Ponta de cima na esquerda na area
local area2 = {x = 128, y = 50, z = 1} -- Ponta de baixo na direita na area
local teleportar_para = {x = 1, y = 1, z = 1} -- onde o player irá após o tempo acabar

local function doMovePlayerBack(cid)
   scriptTiming[cid] = nil
   if not isCreature(cid) then return end
   if not isInArea(getThingPos(cid), area1, area2) then return end
   doTeleportThing(cid, teleportar_para, false)
   if getThingPos(cid).x ~= teleportar_para.x or getThingPos(cid).y ~= teleportar_para.y then
    doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)
   end
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

   if scriptTiming[cid] then
    stopEvent(scriptTiming[cid])
    scriptTiming[cid] = nil
   end

   scriptTiming[cid] = addEvent(doMovePlayerBack, tempo, cid)

end

local scriptTiming = {} -- não modifique
local function isInArea(a, b, c)
return a.x >= b.x and a.x <= c.x and a.y >= b.y and a.y <= c.y and a.z == b.z and a.z == c.z
end

 

Link para o comentário
Compartilhar em outros sites

  • 0

@brun123, concordo com vc, tb n tinha entendido o pq de talkaction e etc, mais vocÊ se esqueceu do mais importante, que é o time.

 

Na parte do time, ele quer que quando o player entre nessa area, comece a contar e depois de 3 minutos ele seja teleportada, OU se o player sair da área antes de ser teleportado o tempo pare de contar, e se ele entrar de volta na área comece a contar do 0.

Link para o comentário
Compartilhar em outros sites

  • 0

Assim então:

 

local tempo = 180 * 1000 -- em ms, 180 * 1000 = 3 min
local area1 = {x = 126, y = 46, z = 1} -- Ponta de cima na esquerda na area
local area2 = {x = 128, y = 50, z = 1} -- Ponta de baixo na direita na area
local teleportar_para = {x = 1, y = 1, z = 1} -- onde o player irá após o tempo acabar
local scriptTiming = {} -- não modifique
local function isInArea(a, b, c)
return a.x >= b.x and a.x <= c.x and a.y >= b.y and a.y <= c.y and a.z == b.z and a.z == c.z
end
local function doMovePlayerBack(cid)
scriptTiming[cid] = nil
if not isCreature(cid) then return end
if not isInArea(getThingPos(cid), area1, area2) then return end
doTeleportThing(cid, teleportar_para, false)
if getThingPos(cid).x ~= teleportar_para.x or getThingPos(cid).y ~= teleportar_para.y then
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)
end
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

if scriptTiming[cid] then
		stopEvent(scriptTiming[cid])
		scriptTiming[cid] = nil
end

scriptTiming[cid] = addEvent(doMovePlayerBack, tempo, cid)

end

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

×
×
  • Criar Novo...