Inscrit le: 12 Sep 2009 Messages: 801 Sujets: 64 Spécialité en worldedit: Ne pas.
Posté le: 30/08/11 15:41 Sujet du message: Maître de l'Ombre et Maître du Tonerre
Bonjour à tous,
Pris d'une folie furieuse, je me suis mis dans l'idée de faire deux héros "magiciens". J'espère qu'ils vous plairont.
Les héros utilisés ne sont qu'à titre indicatif, bien sûr.
Maître de l'Ombre
Ce héros, afin d'être efficace au combat, doit bien utiliser ses sorts afin qu'ils soient le plus efficaces possibles contre les ennemis.
Ses sorts
→Foulée de l'ombre
Sort instantané.
Le héros fait une foulée de l'ombre, infligeant 30/40/50 dégâts d'ombre à sa cible. Le héros laisse une trainée d'ombre infligeant 2/3/4 dégâts par secondes aux ennemis proches de la trainée.
Après 2 secondes, le lanceur retourne à sa position initiale, faisant disparaitre la trainée.
Le lanceur bénéficie d'un bonus de 8 dégâts pendant que Foulée de l'ombre est actif
[Crédits à RGF et Profet pour leur aide]
→Mange Âme
Sort instantané de contact.
Le héros aspire l'Âme de sa cible, infligeant 50/65/80 dégâts d'ombre.
Inflige 20 dégâts supplémentaires si le héros est sous l'effet de Foulée d'Ombre.
Si la cible possède moins de mana que le héros, celui-ci volera 30% de la mana de la cible ainsi que 5% de sa vie.
→Puissance Mystique
Passif.
Augmente de 1/2/3 la défense du héros ainsi que de 6/8/10 ses dégâts.
Augmente les dégâts de Destruction Spectrale de 12/15/18 ainsi que la mana volée de 3/5/7%.
Augmente les dégâts de Foulée de l'ombre de 3/5/7.
Augmente les dégâts de Mange Âme de 4/6/8.
→Destruction Spectrale
Sort instantané ultime.
Le héros inflige 135 dégâts d'ombre à sa cible et lui vole 50% de sa mana.
Inflige 25 dégats supplémentaires et vole 3% de mana en plus si le héros est sous l'effet de Foulée d'ombre.
Maître du Tonerre
Ce héros est un héros DPS, utilisant la puissance de la Foudre afin de détruire ses ennemis. Ses sorts se couplent à la perfection.
Ses sorts
→Conjuration de la Foudre
Enchantement.
Le héros concentre son énergie afin de la rendre plus puissante. Augmente les dégâts d'Éclair de 20/27/34.
Augmente les dégâts d'Électrocution de 8/13/18.
Dure 9/12/16 secondes.
→Éclair
Sort instantané de zone.
Le héros invoque un éclair déchirant le ciel et frappant une cible, lui infligeant 55/70/85 dégâts. Les unités adjacentes à la cible subissent 25 dégâts.
→Électrocution
Sort.
Le héros électrocute sa cible, l’assommant pendant 2/3/4 secondes et lui infligeant 12/14/16 dégats.
→Esprit de Foudre
Invocation.
Invoque un Esprit de Foudre, qui restera invoqué jusqu'à sa mort.
___Caractéristiques spéciales des sorts___
Maître de l'ombre
Foulée de l'Ombre
×Augmente les dégâts de Mange Âme pendant les 2 secondes suivantes de 20.
×Ses dégâts sont augmentés par le passif Puissance Mystique
Mange Âme
×Ses dégâts sont augmentés par le passif Puissance Mystique
×L'utiliser après une foulée de l'ombre augmente sa puissance
×Lancez le de préférence contre un ennemi ayant moins de mana que vous afin de maximiser l'effet
×Doit être couplé avec Destruction Spectrale ainsi que Foulée de l'ombre afin de faire un maximum de dégâts
Destruction Spectrale
×L'utiliser après une foulée de l'ombre augmente sa puissance
×L'utiliser avant Mange Âme aidera à infliger plus de dégâts et voler du mana grâce à Mange Âme. Ainsi, couplé avec Mange Âme et Puissance Mystique, vous pourrez voler jusqu'à (30+50+7+3) 90% du mana de l'ennemi !
Puissance Mystique
×Augmente vos dégâts et votre défense, à monter à tout prix
×Augmente les dégâts de Foulée de l'Ombre, Mange Âme ainsi que Destruction Spectrale
×Augmente le mana volé de Destruction Spectrale jusqu'à un maximum de 7% supplémentaires
Maître du Tonerre
Conjuration de la Foudre
×Doit être utilisé avant d'invoquer l'Esprit afin de maximiser les effets
×Doit être utilisé avant de lancer le sort Éclair ainsi que Électrocution.
×L'utiliser avant d'invoquer l'Esprit de Foudre augmentera ses dégâts et son armure selon le niveau de Conjuration de la Foudre
Éclair
×Doit être couplé avec Conjuration de la Foudre afin d'en maximiser les effets
×Ses dégâts sont augmentés par Conjuration de la foudre
×Doit être utilisé contre un groupe d'ennemi compact afin d'en maximiser les effets
Électrocution
×Doit être utilisé contre les héros/ennemis forts afin de les empêcher d'attaquer durant un court laps de temps
×Doit être couplé avec Conjuration de la Foudre afin d'en maximiser les effets
×A un temps d'incantation de 2 secondes
Invocation d'Esprit de Foudre
×Doit être couplé avec Conjuration de la Foudre afin de maximiser les dégâts et l'armure de l'Esprit invoqué
×Doit être utilisé quand votre mana est élevé. Plus vous aurez de mana, plus ses sorts seront puissants
×Sa portée d'attaque lui permet d'attaquer depuis derrière un allié, prenez ce facteur en compte dans les combats
___Screenshots___
Désolé pour la qualité médiocre des screenshots :/
Destruction Spectrale
Secret:
Mange Âme
Secret:
Éclair
Secret:
___Déclencheurs___
Foulée de l'Ombre
Secret:
Jass:
function GetDistance takes real aX, real aY, real bX, real bY returns real
//--
local real dX = aX-bX
local real dY = aY-bY
//--
return SquareRoot(dX * dX + dY * dY)
endfunction
function Foulee takes nothing returns nothing
local unit caster = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
//--
local effect effectCaster
local effect effectTarget
//--
local unit array dummy
//--
local real cX = GetUnitX(caster)
local real cY = GetUnitY(caster)
local real tX = GetUnitX(target)
local real tY = GetUnitY(target)
local real dX
local real dY
local real a = ((tY-cY)/(tX-cX))
local real b = (tY-(a*tX))
local real dist = GetDistance(cX,cY,tX,tY)
local real facingC = GetUnitFacing(caster)
local real damage = (20.0+(10.0*I2R(GetUnitAbilityLevel(caster, 'A000'))))+((GetUnitAbilityLevelSwapped('A000', caster)*2)+1)
//--
local integer i = 0
if(GetSpellAbilityId() == 'A000') then
call UnitAddAbility(caster, 'A008')
set effectCaster = AddSpecialEffectTarget("Abilities\\Spells\\Items\\AIil\\AIilTarget.mdl", caster, "origin")
call DestroyEffect(effectCaster)
set effectTarget = AddSpecialEffectTarget("Abilities\\Spells\\Orc\\Devour\\DevourEffectArt.mdl", target, "origin")
call DestroyEffect(effectTarget)
call SetUnitPosition(caster,tX,tY)
call UnitDamageTarget(caster, target, damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_SHADOW_STRIKE, WEAPON_TYPE_METAL_HEAVY_CHOP)
call IssueTargetOrder(caster, "attack", target)
loop
exitwhen i > 30
set dX = cX+(i*((tX-cX)/30))
set dY = ((a*dX)+b)
set dummy[i] = CreateUnit(GetOwningPlayer(caster), 'e001', dX, dY, facingC)
call UnitApplyTimedLife(dummy[i], 'BTLF', 2.0)
call SetUnitPosition(dummy[i],dX,dY)
call SetUnitAbilityLevelSwapped('A001', dummy[i], GetUnitAbilityLevel(caster, 'A000'))
set i = i + 1
endloop
call TriggerSleepAction(2.0)
call UnitRemoveAbility(caster, 'A008')
call SetUnitPosition(caster,cX,cY)
set effectCaster = AddSpecialEffectTarget("Abilities\\Spells\\Items\\AIil\\AIilTarget.mdl", caster, "origin")
call DestroyEffect(effectCaster)
endif
endfunction
//===========================================================================
function InitTrig_hOFfoulee takes nothing returns nothing
set gg_trg_hOFfoulee = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hOFfoulee, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_hOFfoulee, function Foulee )
endfunction
Mange Âme
Secret:
Jass:
function MangeAme takes nothing returns nothing
//--
local unit caster = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
//--
local real damage
local real manaDamage
//--
local effect effectCaster
local effect effectTarget
//--
if(GetSpellAbilityId() == 'A003') then
set damage = (35.0+(15.0*GetUnitAbilityLevel(caster, 'A003')))+((GetUnitAbilityLevel(caster, 'A004')*2)+2)
if(GetUnitAbilityLevel(caster, 'A004') >= 1) then
set damage = damage+20.0
endif
set effectTarget = AddSpecialEffectTarget("Abilities\\Spells\\Undead\\DarkRitual\\DarkRitualCaster.mdl", target, "origin")
call DestroyEffect(effectTarget)
set effectCaster = AddSpecialEffectTarget("Abilities\\Spells\\Human\\Feedback\\SpellBreakerAttack.mdl", caster, "origin")
call DestroyEffect(effectCaster)
call UnitDamageTarget(caster, target, damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_SHADOW_STRIKE, WEAPON_TYPE_METAL_HEAVY_CHOP)
if(GetUnitState(caster, UNIT_STATE_MANA) > GetUnitState(target, UNIT_STATE_MANA))then
set damage = GetUnitState(target, UNIT_STATE_MAX_LIFE)*0.05
call UnitDamageTarget(caster, target, damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_SHADOW_STRIKE, WEAPON_TYPE_METAL_HEAVY_CHOP)
call SetUnitState(caster, UNIT_STATE_LIFE, GetUnitState(caster, UNIT_STATE_LIFE)+damage)
set manaDamage = GetUnitState(target, UNIT_STATE_MAX_LIFE)*0.3
call SetUnitState(target, UNIT_STATE_MANA, GetUnitState(target, UNIT_STATE_MANA)-manaDamage)
call SetUnitState(caster, UNIT_STATE_MANA, GetUnitState(caster, UNIT_STATE_MANA)+manaDamage)
set effectTarget = AddSpecialEffectTarget("Abilities\\Spells\\Human\\Feedback\\ArcaneTowerAttack.mdl", target, "origin")
call DestroyEffect(effectTarget)
endif
endif
endfunction
//===========================================================================
function InitTrig_hOFmangeAme takes nothing returns nothing
set gg_trg_hOFmangeAme = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hOFmangeAme, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_hOFfoulee, function MangeAme )
endfunction
//===========================================================================
function InitTrig_hOFpuissanceMystique takes nothing returns nothing
set gg_trg_hOFpuissanceMystique = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hOFpuissanceMystique, EVENT_PLAYER_HERO_SKILL )
call TriggerAddAction( gg_trg_hOFpuissanceMystique, function PuissanceMystique )
endfunction
Destruction Spectrale
Secret:
Jass:
function DestructionSpectrale takes nothing returns nothing
//--
local unit caster = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
//--
local real damage
local real manaDamage
//--
local effect effectTarget
if(GetSpellAbilityId() == 'A002')then
set damage = 135.0+((GetUnitAbilityLevel(caster, 'A004')*3)+9)
if(GetUnitAbilityLevel(caster, 'A004') >= 1) then
set damage = damage+25.0
endif
call UnitDamageTarget(caster, target, damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_SHADOW_STRIKE, WEAPON_TYPE_METAL_HEAVY_CHOP)
//--
set manaDamage = (GetUnitState(target, UNIT_STATE_MAX_MANA)*0.5)++((GetUnitAbilityLevel(caster, 'A004')*2)+1)
if(GetUnitAbilityLevel(caster, 'A004') >= 1) then
set manaDamage = manaDamage+GetUnitState(target, UNIT_STATE_MAX_MANA)*0.03
endif
call SetUnitState(target, UNIT_STATE_MANA, GetUnitState(target, UNIT_STATE_MANA)-manaDamage)
call SetUnitState(caster, UNIT_STATE_MANA, GetUnitState(caster, UNIT_STATE_MANA)+manaDamage)
//--
set effectTarget = AddSpecialEffectTarget("Abilities\\Weapons\\Bolt\\BoltImpact.mdl", target, "origin")
call DestroyEffect(effectTarget)
endif
endfunction
//===========================================================================
function InitTrig_hOFdestructionSpectrale takes nothing returns nothing
set gg_trg_hOFdestructionSpectrale = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hOFdestructionSpectrale, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_hOFdestructionSpectrale, function DestructionSpectrale )
endfunction
Conjuration de la Foudre
Secret:
Jass:
function ConjuFoudre takes nothing returns nothing
local unit caster = GetTriggerUnit()
if(GetUnitAbilityLevel(caster, 'A009') >= 1)then
call UnitAddAbility(caster, 'A00A')
call SetUnitAbilityLevelSwapped('A00A', caster, GetUnitAbilityLevelSwapped('A009', caster))
if(GetUnitAbilityLevel(caster, 'A009') == 1) then
call TriggerSleepAction(9.0)
call UnitRemoveAbility(caster, 'A00A')
endif
if(GetUnitAbilityLevel(caster, 'A009') == 2) then
call TriggerSleepAction(12.0)
call UnitRemoveAbility(caster, 'A00A')
endif
if(GetUnitAbilityLevel(caster, 'A009') == 3) then
call TriggerSleepAction(16.0)
call UnitRemoveAbility(caster, 'A00A')
endif
endif
endfunction
//===========================================================================
function InitTrig_hMAconjuFoudre takes nothing returns nothing
set gg_trg_hMAconjuFoudre = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hMAconjuFoudre, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_hMAconjuFoudre, function ConjuFoudre )
endfunction
function DamageGroup takes nothing returns nothing
local unit pickedUnit = GetEnumUnit()
call UnitDamageTarget(GetTriggerUnit(), pickedUnit, 25.0, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_SHADOW_STRIKE, WEAPON_TYPE_METAL_HEAVY_CHOP)
endfunction
function Eclair takes nothing returns nothing
local unit caster = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
//--
local real damage
//--
local effect effectTarget
if(GetSpellAbilityId() == 'A007')then
set damage = (10.0+(15.0*GetUnitAbilityLevel(caster, 'A007')))
if(GetUnitAbilityLevel(caster, 'A00A') >= 1) then
set damage = damage + ((GetUnitAbilityLevel(caster, 'A00A')*7)+13)
endif
call UnitDamageTarget(caster, target, damage, true, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_METAL_HEAVY_CHOP)
call ForGroupBJ(GetUnitsInRangeOfLocMatching(256.00, GetUnitLoc(target), Condition(function GroupCondition)), function DamageGroup )
set effectTarget = AddSpecialEffectTarget("war3mapImported\\Lightnings_Long.mdx", target, "origin")
call DestroyEffect(effectTarget)
endif
endfunction
//===========================================================================
function InitTrig_hMAeclair takes nothing returns nothing
set gg_trg_hMAeclair = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hMAeclair, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_hMAeclair, function Eclair )
endfunction
Électrocution
Secret:
Jass:
function Electrocution takes nothing returns nothing
local unit caster = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
local unit dummy
//--
local real damage
if(GetSpellAbilityId() == 'A00B') then
set damage = ((GetUnitAbilityLevel(caster, 'A00B')*2)+10)
if(GetUnitAbilityLevel(caster, 'A00A') >= 1) then
set damage = damage + ((GetUnitAbilityLevel(caster, 'A00A')*5)+3)
endif
call UnitDamageTarget(caster, target, damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_SHADOW_STRIKE, WEAPON_TYPE_METAL_HEAVY_CHOP)
set dummy = CreateUnit(GetOwningPlayer(caster), 'e002', GetUnitX(target), GetUnitY(target), 0.0)
call IssueTargetOrder(dummy, "thunderbolt", target)
call TriggerSleepAction(0.27)
call RemoveUnit(dummy)
endif
endfunction
//===========================================================================
function InitTrig_hMAelectro takes nothing returns nothing
set gg_trg_hMAelectro = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hMAelectro, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_hMAelectro, function Electrocution )
endfunction
Eprit de la Foudre
Secret:
Jass:
function EspritFoudre takes nothing returns nothing
local unit caster = GetTriggerUnit()
local unit invocatedUnit
//--
local real casterMana = GetUnitState(caster, UNIT_STATE_MANA)
call BJDebugMsg(R2S(casterMana))
function DamageGroupEsprit takes nothing returns nothing
local unit pickedUnit = GetEnumUnit()
call UnitDamageTarget(GetTriggerUnit(), pickedUnit, 20.0, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_SHADOW_STRIKE, WEAPON_TYPE_METAL_HEAVY_CHOP)
endfunction
function EclairEsprit takes nothing returns nothing
local unit caster = GetTriggerUnit()
local unit target = GetSpellTargetUnit()
//--
local real damage
//--
local effect effectTarget
if(GetSpellAbilityId() == 'A00H')then
set damage = (15.0*GetUnitAbilityLevel(caster, 'A007'))
if(GetUnitAbilityLevel(caster, 'A00A') >= 1) then
set damage = damage + ((GetUnitAbilityLevel(caster, 'A00A')*4)+10)
endif
call UnitDamageTarget(caster, target, damage, true, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_METAL_HEAVY_CHOP)
call ForGroupBJ(GetUnitsInRangeOfLocMatching(256.00, GetUnitLoc(target), Condition(function GroupConditionEsprit)), function DamageGroupEsprit)
set effectTarget = AddSpecialEffectTarget("war3mapImported\\Lightnings_Long.mdx", target, "origin")
call DestroyEffect(effectTarget)
endif
endfunction
//===========================================================================
function InitTrig_hMAeclairEsprit takes nothing returns nothing
set gg_trg_hMAeclairEsprit = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_hMAeclairEsprit, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddAction( gg_trg_hMAeclairEsprit, function EclairEsprit )
endfunction
j'aime bien la competence furtive, attaque par le dos, avec un coter paralysant elle serais parfaite, un comme dans wow ^^
concentration aussi est assez sympatique en imaginant que cela soit le 3 ieme sort d'un heros, avec quelque condition et des details, ya du potentiel ^^ _________________
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum