Só uma idéia, já penso em por um item que desse esse regen, e com o level o player troca-se de item?
Só uma idéia, já penso em por um item que desse esse regen, e com o level o player troca-se de item?
info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

Ele so fica se regenerando quando ta em combate que nem aquele outro script ou assim que logar começa a se regenera.
precisa ter feito alguma coisa para começar a regenera.
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

Exatamente, eu tentei usar o sistema de passiva, mas só se regenera em combate, não tem como por no creaturescripts alguma função que checa o tempo? ou até então um looping infinito assim quando o player logar?
Da até para usar o sistema de passiva, caso tiver essa função de ficar repetindo o tempo ou então ativar de 5 em 5 segundos
Editado Junho 30 por Fjinst
info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

Exatamente, eu tentei usar o sistema de passiva, mas só se regenera em combate, não tem como por no creaturescripts alguma função que checa o tempo? ou até então um looping infinito assim quando o player logar?
Da até para usar o sistema de passiva, caso tiver essa função de ficar repetindo o tempo ou então ativar de 5 em 5 segundos
Mudei para ativa em 5 em 5 segundos quando tiver em combate, so basta criar uma magia de se healar
pera erei uma parada
#pronto ai
local magia = "blood rage" -- magia que ele ira solta, tem que ser o nome da magia e não a palavra magica
local storage = 5834843857 -- storage que vai ser usada, o valor é 1 para ser ativado
local hps = 5 -- 5 em 5 vai acontecer
function onCombat(cid, target)
if isPlayer(cid) then
if getPlayerStorageValue(cid, storage) == 1 then
if getPlayerStorageValue(cid, 5345435432534543) < os.time() then
doCreatureCastSpell(cid, magia)
setPlayerStorageValue(cid, 5345435432534543, os.time() + hps)
end
end
end
return true
end
function onStatsChange(cid, attacker, type, combat, value)
if isPlayer(cid) then
if getPlayerStorageValue(cid, storage) == 1 then
if getPlayerStorageValue(cid, 5345435432534543) < os.time() then
doCreatureCastSpell(cid, magia)
setPlayerStorageValue(cid, 5345435432534543, os.time() + hps)
end
end
end
return true
end
Editado Junho 30 por RigBy
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

Mudei para ativa em 5 em 5 segundos quando tiver em combate, so basta criar uma magia de se healar
pera erei uma parada
#pronto ai
local magia = "blood rage" -- magia que ele ira solta, tem que ser o nome da magia e não a palavra magica local storage = 5834843857 -- storage que vai ser usada, o valor é 1 para ser ativado local hps = 5 -- 5 em 5 vai acontecer function onCombat(cid, target) if isPlayer(cid) then if getPlayerStorageValue(cid, storage) == 1 then if getPlayerStorageValue(cid, 5345435432534543) < os.time() then doCreatureCastSpell(cid, magia) setPlayerStorageValue(cid, 5345435432534543, os.time() + hps) end end end return true end function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) then if getPlayerStorageValue(cid, storage) == 1 then if getPlayerStorageValue(cid, 5345435432534543) < os.time() then doCreatureCastSpell(cid, magia) setPlayerStorageValue(cid, 5345435432534543, os.time() + hps) end end end return true end
Tipo, não era isso que eu queria, falei que eu tinha usado desse jeito também mas não servia, pois só seria ativado em combate
Queria um regen passivo no char, mesmo o personagem parado, ficaria healando 3 em 3, etc., como se fosse uma passiva de regeneration só que para todo mundo, todos os chares, tem alguma função no creaturescripts que checa o tempo? ou que funcione desse jeito
info
Grupo: Visconde
Registrado: 08/10/11
Posts: 444
Reputação: +71
Gênero: Feminino
Char no Tibia: No Have.

Vai ter tanta regen que vai travar o servidor todo é crashar cara.
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

Não há nenhum jeito de ter esse script então? já vi alguns servidores com ele, que pensei que era possivel
info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

Eu também penso como o darkhell, mas pode ser que de certo.
Fiz um onLogin
function doDoT(cid)
if not isCreature(cid) then -- Se o player tiver deslogado
return false
end
doCreatureAddHealth(cid, 25) -- quanto vai healar
addEvent(doDoT, 5000, cid) -- em quantos segundos vai healar, no caso 5000 = 5 segundos
return true
end
function onLogin(cid)
doDoT(cid)
return true
end
Editado Junho 30 por RigBy
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

Era exatamente isso Rigby o que queria, testei esse script ai com uns 30 players online, não houve nenhum lag, você poderia adicionar para mim que se o player tiver vida máxima pare de healar? e também que seja configuravel por level, ex: level 1 cure 2, level 2, 3, assim por diante, desde já grato pela atenção e pela ajuda!
info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

Ai, não repita os levels, coloque sempre 1 a mais, math.huge que dizer infinito.
function doDoT(cid)
local a = {
{levelMin = 0, levelMax = 10, heal = 1},
{levelMin = 11, levelMax = 20, heal = 4},
{levelMin = 21, levelMax = math.huge, heal = 20},
}
if not isCreature(cid) then
return false
end
if getCreatureHealth(cid) < getCreatureMaxHealth(cid) then
for _, b in pairs(a) do
if getPlayerLevel(cid) >= b.levelMin and getPlayerLevel(cid) <= b.levelMax then
doCreatureAddHealth(cid, b.heal)
addEvent(doDoT, 2000, cid)
end
end
end
return true
end
function onLogin(cid)
doDoT(cid)
return true
end
Editado Junho 30 por RigBy
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

Ta funcionando show, só que você poderia pra ser em level individual? tipo assim
info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

Da para fazer assim, mas vai da muito mais maitoooooooooo trabalho, porque você terá que adicionar um por um, porque caso eu use >= os heal vai começar a se junta tipo 25...75...225...655.
Recomendo você usar esse dai de cima.
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril

Bom, consegui fazer o que queria, troquei o getPlayerLevel(cid) por getPlayerExperience(cid) e funcionou como eu queria, por que como eu coloquei um level máximo no meu servidor, não posso fazer assim a cada 2 leveis mudar o regen, rsrs, muito obrigado Rigby
Edittt
Percebi uma falha, se o player ficar logando e deslogando, fica curando cada vez que logar, não tem como colocar um exhaust tipo uma storage value?
Editado Junho 30 por Fjinst
info
Grupo: Visconde
Registrado: 05/02/14
Posts: 411
Reputação: +285
Gênero: Masculino
Char no Tibia: Zeh Sergipano

para de funciona e so volta quando loga de novo?
mudei para onThink(cid, interval), não se esqueça de registra o evento.
function doDoT(cid)
local a = {
{levelMin = 0, levelMax = 10, heal = 1},
{levelMin = 11, levelMax = 20, heal = 4},
{levelMin = 21, levelMax = math.huge, heal = 20},
}
if not isCreature(cid) then
return false
end
if getCreatureHealth(cid) < getCreatureMaxHealth(cid) then
for _, b in pairs(a) do
if getPlayerLevel(cid) >= b.levelMin and getPlayerLevel(cid) <= b.levelMax then
doCreatureAddHealth(cid, b.heal)
addEvent(doDoT, 2000, cid)
end
end
end
return true
end
function onThink(cid, interval)
doDoT(cid)
return true
end
Editado Junho 30 por RigBy
info
Grupo: Visconde
Registrado: 26/04/08
Posts: 251
Reputação: +36
Gênero: Masculino
Char no Tibia: Senhor Mithril
Olá, dei uma olhada no forum e não encontrei, então resolvi pedir
Gostaria que vocês me ajudem com um script que seja um regen passivo, tanto de mana quanto de vida
EX: O player vai healar 2 em 2 a cada segundo, mesmo sem comer food, como se fosse uma passiva de regen, e com o decorrer do level do player o regen vai aumentando, desde já grato pela atenção de ambos.
obs: De preferencia que fique aparecendo também a quantidade que healou, tipo healou 2, aparece um texto verde falando +2 encima do personagem.
Editado Junho 30 por Fjinst