Ir para conteúdo
  • 0

[Movements] 2 Tiles Especiais...


Newtonnotwen

Pergunta

Irei fazer dois pedidos, cada um com seu REP+.

 

Primeiro:

 

Queria um tile, que quando o player pisar iria ser teleportado para uma pos x, porem existe uma condição, ele necessita ter uma certa storage.

 

Segundo: Queria um tile que ao pisar executaria varias funções, dentre as quais segue abaixo:

 

- Player ficar imóvel.

 

- Player ir perdendo life com um efeito.

 

Ex: a cada segundo perder -100 de life por durante 10 segundos, assim totalizando 1000 de life.

 

- Após esses 10 segundos retirar a função do player ficar imóvel.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Tile1:

local positionGo = {x=123,y=543,z=7} -- posição que vai.
local storageNeed = 4304 -- storage que precisa.

function onStepIn(cid, item, topos)
   if isPlayer(cid) and getPlayerStorageValue(cid, storageNeed) > 0 then
       doTeleportThing(cid, positionGo)
       doSendMagicEffect(positionGo, 10)
   end
return true
end

 

Tile2:

local lifeLoss = 100 -- quanto de life perde por segundo
local secondsLoss = 10 -- quantos segundos vai durar

function onStepIn(cid, item, topos)
if isPlayer(cid) then
	doCreatureSetNoMove(cid, true)
	local tempo = 0
	while (tempo ~= secondsLoss*1000) do
		addEvent(removeLife, tempo, cid, tempo)
		tempo = tempo + 1000
	end
end
return true
end

function removeLife(cid, tempo)
if isPlayer(cid) then
	if getCreatureHealth(cid) < lifeLoss then
		lifeLoss = getCreatureHealth(cid)
	end	
	doCreatureAddHealth(cid, -lifeLoss)
	doSendAnimatedText(getCreaturePosition(cid), lifeLoss, 180)
	doSendMagicEffect(getCreaturePosition(cid), 5) -- efeito ao acertar hit no player
	if tempo == secondsLoss*1000 then
		doCreatureSetNoMove(cid, false)
	end
end
end

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

  • 0
function onStepIn(cid, item, position, fromPosition)
function doHealthSecond(cid, quanty, delay) -- function by vodka
if not isCreature(cid) then return LUA_ERROR end
doCreatureAddHealth(cid, quanty)
if delay ~= 1 then addEvent(doHealthSecond, 1000, cid, quanty, delay -1)
elseif delay == 1 then doCreatureSetNoMove(cid, false) end
end
doCreatureSetNoMove(cid, true)
doHealthSecond(cid, -100, 10)
return true
end

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

  • 0

Junção do Vodkart com o do Jhon992 pra quem quiser:

 

- Vodkart sem efeito

 

- Jhon992 não sai o "no movement" (player fica parado pra sempre)

 

O do Vodkart tá mais simplificado:

 

Junção:

function onStepIn(cid, item, position, fromPosition)

function doHealthSecond(cid, quanty, delay) -- function by vodka

if not isCreature(cid) then return LUA_ERROR end

doCreatureAddHealth(cid, quanty)

doSendMagicEffect(getCreaturePosition(cid), 5)

doSendAnimatedText(getCreaturePosition(cid), -100, 180)

if delay ~= 1 then addEvent(doHealthSecond, 1000, cid, quanty, delay -1)

elseif delay == 1 then doCreatureSetNoMove(cid, false) end

end

doCreatureSetNoMove(cid, true)

doHealthSecond(cid, -100, 10)

return true

end

 

REP+?

 

Sobre o REP+, eu estou do momento "compromissado" com vários.

 

Hoje: 20/08 pela noite irei da um REP+ ao Vodkart por outro script.

 

Amanhã: 21/08 pela noite irei dar um REP+ ao Jhon992 por esse script.

 

Depois de amanhã: 22/08 pela noite irei dar um REP+ ao Jhon992 pelo o outro script desse tópico.

 

Depois de depois de amanha: 23/08 pela noite irei dar um REP+ ao Vodkart por esse script.

 

Obrigado pela compreensão e pela paciência, muito obrigado.

 

Pedido atendido.

 

Por: Jhon992 e Vodkart.

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

×
×
  • Criar Novo...