The Spell Request Thread! (2nd)

Ayanami

칼리
Reaction score
288
Completed the spell Hole In Your Soul. Please read the READ ME before doing anything.

I did it in vJASS, as it's better and easier for configuration. Note that you'll need NewGen to configure the values. Feel free to PM me if you need more clarification.
 

Attachments

  • Hole In Your Soul.w3x
    46.6 KB · Views: 366
  • Novocain.w3x
    28.8 KB · Views: 389

skyblader

You're living only because it's illegal killing.
Reaction score
159
Perfect :) thank you <3 +rep

Another ->
Sprint - [based off immolation or something similar than you can turn on and off] You run 100% faster but lose 5-1 mana per second
level 1 - mana lose = 5
level 2 - mana lose = 3
level 3 - mana lose = 1

Eyecandy, Some kind of ribbon effect on the unit so that when it moves a streak or particles follow it (like the phoenix fire missle) while the skill is active
Notes, GUI and MUI please :)

please and thanks :)

Heh, I'd like to do this too :p
 

jrhetf4xb

Member
Reaction score
12
Having some free time, I decided to finish one of the requests.
Here is Fan of Knives as requested by shiFt.
It's made in zinc (vJass) and requires T32 and Damage but also requires an additional system (sorry, it's easier this way :( ) - xemissile.

Code:
JASS:

//! zinc

library FanOfKnives requires T32, Damage, xemissile
{
//===========================================================================
    // Raw code ability of Fan of Knives
    constant integer AID_FAN_OF_KNIVES = &#039;AEfk&#039;;
    
    // Effect created at the position of the caster
    constant string SFX_FAN_OF_KNIVES = &quot;Abilities\\Spells\\NightElf\\FanOfKnives\\FanOfKnivesCaster.mdl&quot;;
    // Duration of the SFX_FAN_OF_KNIVES effect.
    // Warning! This is required because some effects don&#039;t have a death animation
    // and it is required to be waited for some time. You may put 0 if your sfx has
    // such an animation (fan of knives does not have);
    constant real FOK_SFX_DURATION = 1.5;
    // Missile of the knives
    constant string SFX_MISSILE_FAN_OF_KNIVES = &quot;Abilities\\Spells\\NightElf\\FanOfKnives\\FanOfKnivesMissile.mdl&quot;;
    // Scale of the missile
    constant real MISSILE_SCALE = 1.;
    // Missile speed
    constant real MISSILE_SPEED = 700.;
    // Missile arc 
    constant real MISSILE_ARC = 0.1;
    // Missile height
    constant real MISSILE_HEIGHT = 60.;
    
    function DAMAGE(unit cast, integer lvl) -&gt; real
    {
        // You can use &#039;cast&#039; if you want to access attributes
        return (70. * lvl);
    }
    
    function AOE(unit cast, integer lvl) -&gt; real
    {
        return (400.);
    }
//===========================================================================
    private group GROUP = CreateGroup();
    private unit FIRST = null;
    
    struct Data extends xehomingmissile
    {
        unit cast;
        unit targ;
        
        method onHit()
        {
            Damage_Spell(this.cast, this.targ, DAMAGE(this.cast, GetUnitAbilityLevel(this.cast, AID_FAN_OF_KNIVES)));
        }
        
        static method create(unit cast, unit targ, integer level, real x, real y, real z) -&gt; thistype
        {
            thistype this = thistype.allocate(x, y, z, targ, 60.0);
            this.targ = targ;
            this.cast = cast;
            this.fxpath = SFX_MISSILE_FAN_OF_KNIVES;
            this.scale  = MISSILE_SCALE;
            this.launch(MISSILE_SPEED, MISSILE_ARC);
            return this;
        }
    }
    
    struct EffectDuration
    {
        effect sfx;
        integer ticks;
        
        method onDestroy()
        {
            DestroyEffect(this.sfx);
        }
        
        private method periodic()
        {
            this.ticks -= 1;
            if (this.ticks &lt;= 0)
            {
                this.stopPeriodic();
                this.destroy();
            }
        }
        
        module T32x;
        
        static method create(effect sfx) -&gt; thistype
        {
            thistype this = thistype.allocate();
            this.sfx = sfx;
            this.ticks = R2I(FOK_SFX_DURATION / T32_PERIOD);
            this.startPeriodic();
            return this;
        }
    }
    
    function Conditions() -&gt; boolean
    {
        return (GetSpellAbilityId() == AID_FAN_OF_KNIVES);
    }
    
    function GetEnemies() -&gt; boolean
    {
        return ((IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit()))) &amp;&amp; (GetWidgetLife(GetFilterUnit()) &gt; 0.405) &amp;&amp; (! IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE)));
    }
    
    function Actions()
    {
        unit cast = GetTriggerUnit();
        real x = GetUnitX(cast), y = GetUnitY(cast);
        integer lvl = GetUnitAbilityLevel(cast, AID_FAN_OF_KNIVES);
        
        // Ok... since Fan of Knives won&#039;t be displayed if I destroy it instantly, this is needed :[
        EffectDuration.create(AddSpecialEffect(SFX_FAN_OF_KNIVES, x, y));
        
        GroupEnumUnitsInRange(GROUP, x, y, AOE(cast, lvl), Condition(function GetEnemies));
        FIRST = FirstOfGroup(GROUP);
        while (FIRST != null)
        {
            Data.create(cast, FIRST, lvl, x, y, MISSILE_HEIGHT);
            GroupRemoveUnit(GROUP, FIRST);
            FIRST = FirstOfGroup(GROUP);
        }
        
        cast = null;
    }
        
    function onInit()
    {
        trigger trig = CreateTrigger();
        TriggerRegisterAnyUnitEventBJ(trig, EVENT_PLAYER_UNIT_SPELL_EFFECT);
        TriggerAddCondition(trig, Condition(function Conditions));
        TriggerAddAction(trig, function Actions);
        
        Preload(SFX_FAN_OF_KNIVES);
        Preload(SFX_MISSILE_FAN_OF_KNIVES);
    }
}

//! endzinc


In the test map I used the original Fan of Knives spell (I think because of the sound) but removed all effects and damage. Have fun!
 

Attachments

  • Fan of Knives -triggered.w3x
    107.6 KB · Views: 353

kadun

New Member
Reaction score
1
Could you state your request in more detail? Like, how big is the AoE, etc.

The aoe should start at 200 and increase by 50 for each lvl
mana cost 50 and + 15 for each lvl
cooldown 25 and -2 each lvl

Cant remember what more important
 

HydraRancher

Truth begins in lies
Reaction score
197
Spell Name: Dark Grasp

Code Preference: GUI

Spell Type: MUI

Description:
Within a small aoe, all units within the aoe are brought together and then dragged towards the caster.
Level 1 - 6 units targeted
Level 2 - 12 units targeted
Level 3 - 18 units targeted

Other Remarks:
If you could make it so that the cast range is 900, and that is also the max 'drag'.
The aoe would be about the same size as blizzard, or rof.

I feel like trying this. (In no effort to top skyblader or anything. :p)
 

Joshman_09

New Member
Reaction score
2
Um glen, when i add the skill to my map and go to save it comes up with errors? am i doing something wrong? Im using jngp...
 

Ayanami

칼리
Reaction score
288
Um glen, when i add the skill to my map and go to save it comes up with errors? am i doing something wrong? Im using jngp...

Hmm, maybe your JASSHelper is not up to date. Refer to here.

If you could make the AOE range
200/+25 each lvl
mana
25/+15 each lvl
cooldown
25/-2 each lvl

Want to ask if the "Nova Damage" is the damage dealt in the area or only to the target?
 

Attachments

  • Fan of Knives.w3x
    107.6 KB · Views: 364

Joshman_09

New Member
Reaction score
2
Nope all up to date.. The errors im getting are...

line 285: syntax error
JASS:
    constant string array ChainChop__ANIMTAG[ChainChop__ANIMATION - 1]


line 285: Undefined type ChainChop_ANIMTAG
JASS:
    constant string array ChainChop__ANIMTAG[ChainChop__ANIMATION - 1]


line 285: Undefined type ChainChop_ANIMATION
JASS:
    constant string array ChainChop__ANIMTAG[ChainChop__ANIMATION - 1]


line 1802: Undeclared variable ChainChop_ANIMTAG
JASS:
    set ChainChop__ANIMTAG[0]=&quot;attack&quot; // add more &quot;ANIMTAG&quot; variables


line 1813: Undeclared variable ChainChop_ANIMTAG
JASS:
    return ChainChop__ANIMTAG[GetRandomInt(0 , ChainChop__ANIMATION - 1)]


line 1813: Missing return
JASS:
    return ChainChop__ANIMTAG[GetRandomInt(0 , ChainChop__ANIMATION - 1)]



yeah idk how to fix this? xD
 

Ayanami

칼리
Reaction score
288
It should be "private constant" not "constant". And if error message keeps popping up even after that, I really believe it's the JASSHelper version. I've had no problems.

EDIT
I'm pretty sure it's your JASSHelper version? Not the NewGen version, the JASSHelper.
 

aki15

New Member
Reaction score
5
Point castable spell.
Magician casts an icy bolt that travels up to 1200 range distance. If the bolt hits someone it will dissapear and freeze that unit for 2 seconds, damage it for 17 damage and slow it for 5 seconds.
 

skyblader

You're living only because it's illegal killing.
Reaction score
159
Point castable spell.
Magician casts an icy bolt that travels up to 1200 range distance. If the bolt hits someone it will dissapear and freeze that unit for 2 seconds, damage it for 17 damage and slow it for 5 seconds.

Me! I wanna do icy bolt :p (I'll name it icy bolt)
 

skyblader

You're living only because it's illegal killing.
Reaction score
159
Okay wait, point target spell, do you want the unit to move to the range to be able to cast it (Meaning if the unit clicks 1500 range infront, it'll have to move 300 range forward to cast it) or do you want it to be able to cast anywhere (Meaning if the unit clicks 1500 range infront, it'll fire towards that direction instantly, but only reaches 1200 range)?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top