[Movements] 2 Tiles Especiais...

Newtonnotwen
em Scripts

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

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.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

MatrixOrg

Veja meu topico de formaçao de equipe.
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/08/12Posts: 7Char no Tibia: Deleted

É, bem dificil fazer este script eu acho,mas vou tentar depois edito o post.

Até.

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

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

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino
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

bossisg.png

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

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.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

jhon992

Dono JhonBot
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/06/11Posts: 631Char no Tibia: Warrior of Mort

Pra arrumar meu segundo script, basta trocar essa parte:

if tempo == secondsLoss*1000 then                         
	 doCreatureSetNoMove(cid, false)                
end

 

por:

if tempo == secondsLoss*1000-1000 then                         
	 doCreatureSetNoMove(cid, false)                
end

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Compreendo, mas creio que o seu com o do Vodkart seja mais simples.

 

Obrigado.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif