Ir para conteúdo
  • 0

Dano por segundo


GniusP

Pergunta

Pessoal, eu tenho um script que ela da % de dano no player se ele passar por cima do tile, funciona perfeitamente, ele passa por cima e toma % de dano, porém se ele ficar em cima do piso ele não toma mais dano, eu queria que ele tomasse hit a cada 2 segundos, por exemplo:

Player pisa no tile e tomou 5% de dano, ai ele fica em cima do tile e toma +5% de dano a cada 2 segundos

Script:

Citar

local danos = { {5, 5, 5}, {5, 5, 5}, {5, 5, 5}} -- {Porcentagem, effect1 e effect2} 

function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then 
        return true
    end
    
    local dmg = danos[math.random(1, #danos)]
    local damage = math.ceil((tonumber(dmg[1])* 0.01) * getCreatureMaxHealth(cid))
    
    doSendMagicEffect(getThingPos(cid), dmg[2])
    doSendMagicEffect(getThingPos(cid), dmg[3])
    doSendAnimatedText(getThingPos(cid), '-' ..dmg[1].. '%', TEXTCOLOR_LIGHTBLUE)
    doCreatureAddHealth(cid, - damage)
    doPlayerSendTextMessage(cid, 25, "Você esta tomando 5% de dano por estar na safe, vá para um lugar protegido!")
    doPlayerSendTextMessage(cid, 20, "Você esta tomando 5% de dano por estar na safe, vá para um lugar protegido!")
    return true
end

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1
20 minutos atrás, GniusP disse:
Versão do Servidor: TFS - 0.3.5
Tipo de Script: moveevent
Código:
  Mostrar conteúdo oculto



 

Pessoal, eu tenho um script que ela da % de dano no player se ele passar por cima do tile, funciona perfeitamente, ele passa por cima e toma % de dano, porém se ele ficar em cima do piso ele não toma mais dano, eu queria que ele tomasse hit a cada 2 segundos, por exemplo:

Player pisa no tile e tomou 5% de dano, ai ele fica em cima do tile e toma +5% de dano a cada 2 segundos

Script:

 

Teste ae, não esqueça de fazer a tag do stepOut

local danos = { {5, 5, 5}, {5, 5, 5}, {5, 5, 5}} -- {Porcentagem, effect1 e effect2} 
local temp = 1 -- a cada 1 segundo ele toma dano
local storage = 3459491

function tileDamange(cid, pos)
    local dmg = danos[math.random(1, #danos)]
    local damage = math.ceil((tonumber(dmg[1])* 0.01) * getCreatureMaxHealth(cid))
	
if getPlayerStorageValue(cid, storage) == 0 then
return true
end
if (isCreature(cid) == TRUE) then
npos = getThingPos(cid)
    doSendMagicEffect(getThingPos(cid), dmg[2])
    doSendMagicEffect(getThingPos(cid), dmg[3])
    doSendAnimatedText(getThingPos(cid), '-' ..dmg[1].. '%', TEXTCOLOR_LIGHTBLUE)
    doPlayerSendTextMessage(cid, 25, "Você esta tomando 5% de dano por estar na safe, vá para um lugar protegido!")
    doPlayerSendTextMessage(cid, 20, "Você esta tomando 5% de dano por estar na safe, vá para um lugar protegido!")
		addEvent(tileDamange, temp*1000, cid, npos)
end

function onStepIn(cid, item, position, fromPosition, pos)
    if not isPlayer(cid) then 
        return true
    end
	
	setPlayerStorageValue(cid, storage, 1)
	addEvent(tileDamange, temp*1000, cid, pos)

    return true
end

function onStepOut(cid, item, position, fromPosition)
    if not isPlayer(cid) then 
        return true
    end
	
	setPlayerStorageValue(cid, storage, 0)
	addEvent(tileDamange, temp*1000, cid, pos)

    return true
end

 

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

  • 0
12 horas atrás, Marshmello disse:

Teste ae, não esqueça de fazer a tag do stepOut


local danos = { {5, 5, 5}, {5, 5, 5}, {5, 5, 5}} -- {Porcentagem, effect1 e effect2} 
local temp = 1 -- a cada 1 segundo ele toma dano
local storage = 3459491

function tileDamange(cid, pos)
    local dmg = danos[math.random(1, #danos)]
    local damage = math.ceil((tonumber(dmg[1])* 0.01) * getCreatureMaxHealth(cid))
	
if getPlayerStorageValue(cid, storage) == 0 then
return true
end
if (isCreature(cid) == TRUE) then
npos = getThingPos(cid)
    doSendMagicEffect(getThingPos(cid), dmg[2])
    doSendMagicEffect(getThingPos(cid), dmg[3])
    doSendAnimatedText(getThingPos(cid), '-' ..dmg[1].. '%', TEXTCOLOR_LIGHTBLUE)
    doPlayerSendTextMessage(cid, 25, "Você esta tomando 5% de dano por estar na safe, vá para um lugar protegido!")
    doPlayerSendTextMessage(cid, 20, "Você esta tomando 5% de dano por estar na safe, vá para um lugar protegido!")
		addEvent(tileDamange, temp*1000, cid, npos)
end

function onStepIn(cid, item, position, fromPosition, pos)
    if not isPlayer(cid) then 
        return true
    end
	
	setPlayerStorageValue(cid, storage, 1)
	addEvent(tileDamange, temp*1000, cid, pos)

    return true
end

function onStepOut(cid, item, position, fromPosition)
    if not isPlayer(cid) then 
        return true
    end
	
	setPlayerStorageValue(cid, storage, 0)
	addEvent(tileDamange, temp*1000, cid, pos)

    return true
end

 

Funcionou, porém faltou um and, mesmo assim obrigado :)

+REP

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...