Meu Deus do céu, que código é esse pqp. Nomes terríveis de funções e um milhão de chamadas ao invés de usar recursividade.... enfim, sobre deixar imune a saco você vai ter que usar creature scripts: onHealthChange, onCombat ou qualquer coisa do gênero, pra quando ele tomar dano esse dano ser ignorado.
[Susanoo] spell que deixa imortal
Por diarmaint, 12 de jul. de 2016 em Scripts
info
Grupo: Herói
Registrado: 25/02/07
Posts: 859
Reputação: +331
Gênero: Masculino

info
Grupo: Visconde
Registrado: 09/08/10
Posts: 314
Reputação: +19
Char no Tibia: não tenho

Kkk, eu só tô usando o que achei, não manjo fazer do zero. Você poderia me ajudar com isso?
info
Grupo: Visconde
Registrado: 09/08/10
Posts: 314
Reputação: +19
Char no Tibia: não tenho

UP!
Editado Julho 16 por diarmaint
info
Grupo: Visconde
Registrado: 06/04/11
Posts: 350
Reputação: +8
Char no Tibia: Mulekepirado

coloca isso dentro do lua do seu susanoo:
local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_EFFECT, 40)setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)arr = {{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 1, 2, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},}local area = createCombatArea(arr)setCombatArea(combat, area)local dur = 15 -- spell vai durar 15 segundoslocal delay = 500 -- delay (em ms) entre cada enviada de effectfunction executeCombat(cid, combat, var, time) if not isCreature(cid) or time <= os.time() then return endlocal var = varvar.pos = getThingPos(cid) doCombat(cid, combat, var) addEvent(executeCombat, delay, cid, combat, var, time)endfunction onCastSpell(cid, var) local status = getCreatureStorage(cid, 301) if status > os.time() then return doPlayerSendCancel(cid, "A spell já esta ativado.") end doCreatureSetStorage(cid, 301, os.time() + 15) executeCombat(cid, combat, var, os.time() + dur)return trueend
em seguida vá em creaturescript/scripts e cria um arquivo lua com o nome susanoo, e adiciona isso dentro:
function onStatsChange(cid, attacker, type, combat, value) local status = getCreatureStorage(cid, 301) if(type == STATSCHANGE_HEALTHLOSS) then if(status < os.time()) then return true end return false end return trueend
vai no arquivo login que está localizado em creaturescript/script e coloca isso "registerCreatureEvent(cid, "Susanoo")" junto aos outros "registerCreatureEvent".
depois vai no creaturescript.xml e adiciona isso:
<event type="StatsChange" name="Susanoo" event="script" value="susanoo.lua"/>
os scripts estão bem organizados, creio eu que você vá entender tudo de maneira simples, qualquer dúvida é só perguntar.
info
Grupo: Visconde
Registrado: 09/08/10
Posts: 314
Reputação: +19
Char no Tibia: não tenho

Cara ficou exatamente como eu queria
, só faltou uns detalhes, me ajuda nisso tbm? Preciso que ele fale susano'o ao usar a spell e que apareça um outro effect em cima de min (109) aparece e some, só quando casta. E por fim quando a spell acabe, ela retira 50% da vida do player =configurável se possível.
Peguei a base da sua spell pra tentar fazer uma que dê dano, o kaiten do Neji que dá dano e fica imune enquanto ele roda, n deu nenhum erro porém não dá dano, poderia me ajudar nela tbm?
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 53)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.0, 0, -0.0, 0)
setCombatParam(combat1, COMBAT_PARAM_AGGRESSIVE, true)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 131)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -2.0, 0, -2.0, 0)
arr1 = {
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 1, 2, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
{0, 0, 0, 0, 0},
}
arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
local dur = 0.5 -- spell vai durar 15 segundos
local delay = 4000 -- delay (em ms) entre cada enviada de effect
function executeCombat(cid, combat1, var, time)
if not isCreature(cid) or time <= os.time() then return end
local var = var
var.pos = getThingPos(cid)
doCombat1(cid, combat1, var)
addEvent(executeCombat, delay, cid, combat1, var, time)
end
function onCastSpell(cid, var)
local status = getCreatureStorage(cid, 301)
if status > os.time() then
return doPlayerSendCancel(cid, "Kaiten já esta ativado.")
end
doCreatureSetStorage(cid, 301, os.time() + 15)
executeCombat(cid, combat1, var, os.time() + dur)
return true
end
[spoiler/]
Editado Julho 17 por diarmaint


info
Grupo: Visconde
Registrado: 09/08/10
Posts: 314
Reputação: +19
Char no Tibia: não tenho
Olá galera, estou usando aquele servidor wono 8.54 e preciso de uma ajuda quanto a uma spell, é o susanoo.
Ao usar aparece um effect em você e outra que fica até a spell acabar,spell te deixa imune a qualquer dano e quando acaba tira % da sua vida.
Tenho uma base dela porém não está deixando imune a dano, e não estou conseguindo isso sozinho.
local condition = createConditionObject(CONDITION_FREEZING)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 1, 15000, 0)
function hadsu(cid)
local pos = getPlayerPosition(cid)
pos.x=pos.x+2
pos.y=pos.y-0
doSendMagicEffect(pos,120)
end
function hpodeq(cid)
doCreatureAddHealth(cid,-getCreatureMaxHealth(cid)+getCreatureMaxHealth(cid)/3)
doRemoveCondition(cid,CONDITION_FREEZING)
end
function kadsuq(cid)
if isPlayer(cid) then
doPlayerSay(cid, '', TALKTYPE_ORANGE_1)
end
if isCreature(cid) then
end
doSendMagicEffect(getPlayerPosition(cid),109)
doPlayerSay(cid, 'Susano"o', TALKTYPE_ORANGE_1)
doAddCondition(cid,condition)
addEvent(hadsu,0,cid)
addEvent(hadsu,500,cid)
addEvent(hadsu,900,cid)
addEvent(hadsu,1300,cid)
addEvent(hadsu,1700,cid)
addEvent(hadsu,2100,cid)
addEvent(hadsu,2500,cid)
addEvent(hadsu,2900,cid)
addEvent(hadsu,3100,cid)
addEvent(hadsu,3500,cid)
addEvent(hadsu,3900,cid)
addEvent(hadsu,4300,cid)
addEvent(hadsu,4700,cid)
addEvent(hadsu,5100,cid)
addEvent(hadsu,5500,cid)
addEvent(hadsu,5900,cid)
addEvent(hadsu,6300,cid)
addEvent(hadsu,6700,cid)
addEvent(hadsu,7100,cid)
addEvent(hadsu,7500,cid)
addEvent(hadsu,7900,cid)
addEvent(hadsu,8300,cid)
addEvent(hadsu,8700,cid)
addEvent(hadsu,9100,cid)
addEvent(hadsu,9500,cid)
addEvent(hpodeq,9900,cid)
end
function onCastSpell(cid, var)
kadsuqq(cid)
return true
end
[spoiler/]
Postando pelo celular, não posso acompanhar em tempo real a ajuda de vcs.. Espero que tenham entendido.