diarmaint 19 Posted July 13, 2016 Report Share Posted July 13, 2016 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 to comment https://xtibia.com/forum/topic/241385-susanoo-spell-que-deixa-imortal/ Share on other sites More sharing options...
1 nbb147 8 Posted July 17, 2016 Report Share Posted July 17, 2016 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 to comment https://xtibia.com/forum/topic/241385-susanoo-spell-que-deixa-imortal/#findComment-1699511 Share on other sites More sharing options...
0 Skulls 331 Posted July 13, 2016 Report Share Posted July 13, 2016 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 to comment https://xtibia.com/forum/topic/241385-susanoo-spell-que-deixa-imortal/#findComment-1699231 Share on other sites More sharing options...
0 diarmaint 19 Posted July 13, 2016 Author Report Share Posted July 13, 2016 Kkk, eu só tô usando o que achei, não manjo fazer do zero. Você poderia me ajudar com isso? Link to comment https://xtibia.com/forum/topic/241385-susanoo-spell-que-deixa-imortal/#findComment-1699299 Share on other sites More sharing options...
0 diarmaint 19 Posted July 16, 2016 Author Report Share Posted July 16, 2016 (edited) UP! Edited July 16, 2016 by diarmaint Link to comment https://xtibia.com/forum/topic/241385-susanoo-spell-que-deixa-imortal/#findComment-1699458 Share on other sites More sharing options...
0 diarmaint 19 Posted July 17, 2016 Author Report Share Posted July 17, 2016 (edited) 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/] Edited July 17, 2016 by diarmaint Link to comment https://xtibia.com/forum/topic/241385-susanoo-spell-que-deixa-imortal/#findComment-1699580 Share on other sites More sharing options...
Question
diarmaint 19
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 to comment
https://xtibia.com/forum/topic/241385-susanoo-spell-que-deixa-imortal/Share on other sites
5 answers to this question
Recommended Posts