Hello, I need some help here. I recently started remaking the spells of Warlock from wc3, (don't really have any intention of making the whole map, I'm just doing it to learn) and I'm having some problems.
I suppose there's some problems with my coding, since the spells doesn't work. Instead of using the changed skills the default skills are being used by the hero. I don't have any experience with XML either, so most I've done is guesswork/copying.
If anyone could tell me what is wrong, I'd appreciate it.
Fireball Ability:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<ability
name="Ability_Fireball"
icon="icon.tga"
anim="ability_1"
casttime="400"
castactiontime="400"
maxlevel="1"
actiontype="target_position"
casteffecttype="Magic"
targetscheme="enemy_units_and_projectiles"
manacost="0"
cooldowntime="10000"
range="600"
forcerange="600"
allowoutofboundscast="true"
>
<onimpact>
<spawnprojectile name="Projectile_Fireball" source="source_entity" target="target_position" owner="source_entity" />
</onimpact>
</ability>
Fireball Projectile
Code:
<?xml version="1.0" encoding="UTF-8"?>
<projectile
name="Projectile_Fireball"
speed="560"
gravity="0"
modelscale="2"
model="..heroes/pyromancer/projectile/model.mdf"
traileffect=""
canturn="0"
flying="true"
flyheight="20"
deatheffect="effects/death.effect"
touchradius="100"
touchradiusdiradjust="true"
maxtouches="1"
touchtargetscheme="enemy_units_and_projectiles"
toucheffecttype="Magic"
>
<ontouch>
<playeffect effect="..heroes/pyromancer/projectile/impact.effect" target="target_entity" source="target_entity" />
<condition test="target eq projectile" />
<cantarget effecttype="Magic">
<spawnaffector name="Fireball_explosion" target="touch_position" />
<delete target="this_entity" />
<delete target="target_entity" />
</cantarget>
</condition>
<combatevent effecttype="AbilityBasedProjectile">
<onimpact>
<spawnaffector name="Fireball_explosion" target="touch_position" />
</onimpact>
</combatevent>
<delete target="this_entity" />
</ontouch>
</projectile>
Fireball Affector
Code:
<?xml version="1.0" encoding="UTF-8"?>
<affector
name="Fireball_explosion"
radius="200"
targetselection="all"
targetscheme="enemy_heroes"
effecttype="Magic"
destroytrees="true"
impactdelay="0"
effectscale="1.3"
>
<onimpact>
<cantarget targetscheme="enemy_units">
<distance target="target_entity" source="this_entity" />
<setvar0 a="result" b="100" op="div" />
<setvar3 a="5" b="var0" op="sub" />
<damage effecttype="Magic" amount="var3" />
<givemana amount="5" />
<setvar1 a="16" b="target_mana" op="mult"/>
<setvar0 a="50" b="var0" op="sub" />
<setvar2 a="var0" b="var1" op="mult" />
<push force="var2" duration="1200" target="target_entity" source="this_entity" />
<push force="var2" duration="1000" target="target_entity" source="this_entity" />
<push force="var2" duration="800" target="target_entity" source="this_entity" />
<push force="var2" duration="600" target="target_entity" source="this_entity" />
<push force="var2" duration="400" target="target_entity" source="this_entity" />
<push force="var2" duration="200" target="target_entity" source="this_entity" />
</cantarget>
</onimpact>
</affector>
Homing ability
Code:
<?xml version="1.0" encoding="UTF-8"?>
<ability
name="Ability_Homing"
icon="icon.tga"
anim="ability_1"
casttime="400"
castactiontime="400"
maxlevel="1"
actiontype="target_position"
casteffecttype="Magic"
targetscheme="enemy_units_and_projectiles"
manacost="0"
cooldowntime="15000"
range="1000"
forcerange="1000"
allowoutofboundscast="true"
>
<onimpact>
<spawnprojectile name="Projectile_Homing" source="source_entity" target="target_position" owner="source_entity" />
</onimpact>
</ability>
Homing projectile
Code:
<?xml version="1.0" encoding="UTF-8"?>
<projectile
name="Projectile_Homing"
speed="0"
gravity="0"
modelscale="1"
model="../vindicator/projectile/effects/projectile_glave.mdf"
traileffect="../vindicator/projectile/effects/trail.effect"
canturn="0"
flying="true"
flyheight="40"
deatheffect="effects/death.effect"
touchradius="80"
touchradiusdiradjust="true"
maxtouches="1"
touchtargetscheme="enemy_units_and_projectiles"
toucheffecttype="Magic"
>
<onspawn>
<setproxy entity="stack_entity" target="closest_enemy_hero" command="Follow" />
</onspawn>
<onframe>
<push force="-500" b="frametime" op="mult" duration="300" source="source_entity" target="this_entity" />
</onframe>
<ontouch>
<playeffect effect="../vindicator/projectile/effects/impact.effect" target="target_entity" source="target_entity" />
<condition test="target eq projectile" />
<delete target="this_entity" />
<delete target="target_entity" />
<delete target="stack_entity" />
<spawnaffector name="Homing_explosion" />
</condition>
<combatevent effecttype="AbilityBasedProjectile">
<onimpact>
<cantarget effecttype="Magic">
<spawnaffector name="Homing_explosion" />
</cantarget>
</onimpact>
</combatevent>
<delete target="this_entity" />
<delete target="stack_entity" />
</ontouch>
</projectile>
Homing affector
Code:
<?xml version="1.0" encoding="UTF-8"?>
<affector
name="Homing_explosion"
radius="250"
targetselection="all"
targetscheme="enemy_heroes"
effecttype="Magic"
destroytrees="true"
impactdelay="0"
effectscale="1.4"
impacteffect="effects/ability_04_impact.effect"
>
<onimpact>
<cantarget targetscheme="enemy_units">
<distance target="target_entity" source="this_entity" />
<setvar0 a="result" b="100" op="div" />
<setvar3 a="5" b="var0" op="sub" />
<damage effecttype="Magic" amount="var3" />
<givemana amount="5" />
<setvar1 a="20" b="target_mana" op="mult"/>
<setvar0 a="50" b="var0" op="sub" />
<setvar2 a="var0" b="var1" op="mult" />
<push force="var2" duration="1200" target="target_entity" source="this_entity" />
<push force="var2" duration="1000" target="target_entity" source="this_entity" />
<push force="var2" duration="800" target="target_entity" source="this_entity" />
<push force="var2" duration="600" target="target_entity" source="this_entity" />
<push force="var2" duration="400" target="target_entity" source="this_entity" />
<push force="var2" duration="200" target="target_entity" source="this_entity" />
</cantarget>
</onimpact>
</affector>
Scourge ability
Code:
<?xml version="1.0" encoding="UTF-8"?>
<ability
name="Ability_Scourge"
icon="icon.tga"
anim="ability_2"
casttime="1000"
castactiontime="1000"
maxlevel="1"
effect="../javaras/ability_04/impact.effect"
actiontype="target_self"
casteffecttype="Magic"
targetscheme="enemy_units"
healthcost="10"
cooldowntime="15000"
>
<onimpact>
<spawnaffector name="Affector_Scourge" position="self_position" />
</onimpact>
</ability>
Scourge affector
Code:
<?xml version="1.0" encoding="UTF-8"?>
<affector
name="Affector_Scourge"
radius="250"
targetselection="all"
targetscheme="enemy_heroes"
effecttype="Magic"
impactdelay="0"
>
<onimpact>
<cantarget targetscheme="enemy_units">
<damage effecttype="Magic" amount="10" />
<givemana amount="7" />
<setvar1 a="16" b="target_mana" op="mult"/>
<setvar2 a="5" b="var1" op="mult" />
<push force="var2" duration="1200" target="target_entity" source="this_entity" />
<push force="var2" duration="1000" target="target_entity" source="this_entity" />
<push force="var2" duration="800" target="target_entity" source="this_entity" />
<push force="var2" duration="600" target="target_entity" source="this_entity" />
<push force="var2" duration="400" target="target_entity" source="this_entity" />
<push force="var2" duration="200" target="target_entity" source="this_entity" />
</cantarget>
</onimpact>
</affector>