Ir para conteúdo
  • 0

[Susanoo] spell que deixa imortal


diarmaint

Pergunta

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. 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 1

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara ficou exatamente como eu queria:HappyRage-min:, 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 por diarmaint
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...