The Spell Request Thread! (2nd)

skyblader

You're living only because it's illegal killing.
Reaction score
159
If you're not to busy, could I make a request?

Spell Name
Mystic Dome

Code Preference: GUI

Spell Type: MUI

Description: A toggle-able unit spell that drains 5 mana per second while active. When active, it prevents enemy units from coming within a 400 range of the casting unit.

Other Remarks: If you could somehow make a dome/sphere-ish special effect appear while it's active, that would be great.

A newly requested spell actually :p
 

aki15

New Member
Reaction score
5
New spell request :D
Charge
Warrior charges to a target stunning it for 2 seconds. Cannot be used in combat !
-EDIT
Hmmm, Found a done one... Testing it :)
-EDIT
I like it but can u edit it a little, make it 1 level and 700 distance only, stun is 2...
 

skyblader

You're living only because it's illegal killing.
Reaction score
159
New spell request :D
Charge
Warrior charges to a target stunning it for 2 seconds. Cannot be used in combat !
-EDIT
Hmmm, Found a done one... Testing it :)
-EDIT
I like it but can u edit it a little, make it 1 level and 700 distance only, stun is 2...

Edit which spell?
 

hgkjfhfdsj

Active Member
Reaction score
55
Completed Multi Shoot
-import 's, si & ss' prefixed variables only
-no sfx is added on landing–tell me if you want
 

Attachments

  • Multi Shoot.w3x
    45.2 KB · Views: 293

RangerX

I am justice!
Reaction score
69
i have some problems i get some [handle id errors ] edit: when trying to save the map ,,, [I use jassnewgenpack5d = this is the name of the folder of my JNGP]


EDIT: ~ nice spell i just patched my war3 to last patch :| ... but it's working very well
 

hgkjfhfdsj

Active Member
Reaction score
55
you might have the pre-GetHandleId patch (forgot 1.24 introduced gethandleid xD)
not sure if return bug still works...anyways try c&p and replace code
-edit-
k
 

RangerX

I am justice!
Reaction score
69
could you add an sfx when they hit please :? using this model

Abilities\Spells\Orc\Devour\DevourEffectArt.mdl
 

HeX.16

Isn't Trollin You Right Now
Reaction score
131
Spell Name: Falcon Punch


Code Preference:
vJass but GUI is ok >.<

Spell Type: MUI

Description: Falcon targets an enemy unit and charges all of his power before attacking. His charge is so powerful that he pushes away all units between him and the target. When he reaches the target he hits with such force that all units in range are damaged by his power and the target unit is thrown back. Damage is also done when the target unit smashes back to the ground. Does slightly less damage to surrounding units. Burn damage last 7 seconds on heroes 10 on units. Cooldown is always 12 seconds.

Other Remarks: Please add a pheonix(unit) attached to the hero DURRING flight and use blademasters "spin" animation on impact.

Values:
Level 1st DMG/ 2nd DMG/ Burn DMG/ Range/ 1st Area/ 2nd Area
135 dmg / 25 dmg/ 10 burn dmg/ 800/ 200 AoE/ 100 AoE
170 dmg / 50 dmg/ 10 burn dmg/ 850/ 225 AoE/ 125 AoE
205 dmg / 75 dmg/ 10 burn dmg/ 900 275 AoE/ 150 AoE
275 dmg / 100 dmg/ 10 burn dmg/ 950 325 AoE/ 175 AoE
350 dmg / 125 dmg/ 10 burn dmg/ 1000 375 AoE/ 200 AoE
450 dmg / 175 dmg/ 10 burn dmg/ 1050 450 AoE/ 250 AoE

Sorry for the rainbow colours but it was the only way to make the values easily visible.
 

hgkjfhfdsj

Active Member
Reaction score
55
>sfx when hit

replace with new code
JASS:
constant function Multi_Arrow_Spell_Id takes nothing returns integer
    return &#039;A001&#039;
endfunction

constant function Multi_Arrow_Dummy_Up takes nothing returns integer
    return &#039;h002&#039;
endfunction

constant function Multi_Arrow_Dummy_Down takes nothing returns integer
    return &#039;h000&#039;
endfunction    

function Multi_Arrow_Damage_Amount takes integer lvl returns real
    return (lvl * 100.) + 200. 
endfunction

function Max_Range takes integer lvl returns real
    return (lvl * 100.) + 300.
endfunction

function Max_Radius takes integer lvl returns real
    return (lvl * 100.) + 100.
endfunction


//===========================================================================
//==============================Timer Functions==============================
//===========================================================================

function SetTimerData takes timer t, integer value returns nothing
    set udg_si__MultiArrow_TU_Data[GetHandleId(t)-udg_ss__MultiArrow_TU_Offset] = value
endfunction

function GetTimerData takes timer t returns integer
    return udg_si__MultiArrow_TU_Data[GetHandleId(t)-udg_ss__MultiArrow_TU_Offset]
endfunction

function NewTimer takes nothing returns timer
    set udg_si__MultiArrow_TU_F = udg_si__MultiArrow_TU_F - 1
    return udg_si__MultiArrow_TU_V[udg_si__MultiArrow_TU_F]
endfunction

function ReleaseTimer takes timer t returns nothing
    call PauseTimer(t)
    set udg_si__MultiArrow_TU_V[udg_si__MultiArrow_TU_F] = t
    set udg_si__MultiArrow_TU_F = udg_si__MultiArrow_TU_F + 1
endfunction

function NewIndex takes nothing returns integer
    if udg_si__MultiArrow_Index_F == 0 then    
        set udg_si__MultiArrow_Index_I = udg_si__MultiArrow_Index_I + 1
        set udg_s__MultiArrow_Data_bundle[udg_si__MultiArrow_Index_I] = CreateGroup()
        return udg_si__MultiArrow_Index_I
    endif
    set udg_si__MultiArrow_Index_F = udg_si__MultiArrow_Index_F - 1
    return udg_si__MultiArrow_Index_V[udg_si__MultiArrow_Index_F]
endfunction

function RecycleIndex takes integer i returns nothing
    set udg_s__MultiArrow_Data_height<i> = 0
    set udg_s__MultiArrow_Data_direction<i> = true
    set udg_s__MultiArrow_Data_number<i> = 0
    set udg_si__MultiArrow_Index_V[udg_si__MultiArrow_Index_F] = i
    set udg_si__MultiArrow_Index_F = udg_si__MultiArrow_Index_F + 1
    //no safety bounds
endfunction

//===========================================================================
//==============================Spell Code===================================
//===========================================================================


function Trig_Multi_Arrow_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == Multi_Arrow_Spell_Id()
endfunction

function Multi_Arrow_Damage takes nothing returns boolean
    local unit u = GetFilterUnit()
    local integer i = udg_ss_MultiArrow_Data_this
    if IsUnitEnemy(u, GetOwningPlayer(udg_s__MultiArrow_Data_hero<i>)) and not IsUnitType(u, UNIT_TYPE_STRUCTURE) then
        call UnitDamageTarget(udg_s__MultiArrow_Data_hero<i>,u,Multi_Arrow_Damage_Amount(GetUnitAbilityLevel(udg_s__MultiArrow_Data_hero<i>, Multi_Arrow_Spell_Id())),true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_WHOKNOWS)
    endif
    set u = null
    return false
endfunction


function Multi_Arrow_Delayed_Height takes nothing returns nothing
    local integer i = udg_ss_MultiArrow_Data_this
    local unit u = GetEnumUnit()
    local real x = GetUnitX(u) + udg_s__MultiArrow_Data_dist<i> * Cos(udg_s__MultiArrow_Data_facing<i>)
    local real y = GetUnitY(u) + udg_s__MultiArrow_Data_dist<i> * Sin(udg_s__MultiArrow_Data_facing<i>)
    call RemoveUnit(u)
    set u = CreateUnit(GetOwningPlayer(udg_s__MultiArrow_Data_hero<i>), Multi_Arrow_Dummy_Down(), x, y, 270.)
    call UnitAddAbility(u, &#039;Amrf&#039;) 
    call UnitRemoveAbility(u, &#039;Amrf&#039;)
    call SetUnitFlyHeight(u, GetUnitFlyHeight(u) - GetRandomReal(100., 1000.), 9999.)
    call GroupAddUnit(udg_s__MultiArrow_Data_bundle<i>, u)
    set u = null
endfunction

function Multi_Arrow_IHeight takes nothing returns nothing
    local unit u = GetEnumUnit()
    call SetUnitFlyHeight(u, GetUnitFlyHeight(u) + udg_ss__MultiArrow_Data_increase, 9999.)
    if GetUnitFlyHeight(u) &lt;= 400. and udg_ss__MultiArrow_Data_increase == -100 then
        call DestroyEffect(AddSpecialEffect(&quot;Abilities\\Spells\\Orc\\Devour\\DevourEffectArt.mdl&quot;,GetUnitX(u), GetUnitY(u)  ))
    endif
    set u = null
endfunction

function Multi_Arrow_Remove_Arrow takes nothing returns nothing
    call RemoveUnit(GetEnumUnit())
endfunction

function Multi_Arrow_Height takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer i = GetTimerData(t)
    
    if udg_s__MultiArrow_Data_direction<i> then
        set udg_ss__MultiArrow_Data_increase = 100.
        set udg_s__MultiArrow_Data_height<i> = udg_s__MultiArrow_Data_height<i> + 100.
    else
        set udg_ss__MultiArrow_Data_increase = -100.
        set udg_s__MultiArrow_Data_height<i> = udg_s__MultiArrow_Data_height<i> - 100.
    endif
    call ForGroup(udg_s__MultiArrow_Data_bundle<i>, function Multi_Arrow_IHeight)
    if udg_s__MultiArrow_Data_height<i> &gt;= 2000. then
        set udg_s__MultiArrow_Data_direction<i> = false
        set udg_ss_MultiArrow_Data_this = i
        call ForGroup(udg_s__MultiArrow_Data_bundle<i>, function Multi_Arrow_Delayed_Height)
    elseif udg_s__MultiArrow_Data_height<i> &lt;= 1000. and udg_s__MultiArrow_Data_direction<i> == false then
        set udg_ss_MultiArrow_Data_this = i
        call GroupEnumUnitsInRange(udg_ss__MultiArrow_Data_tempg, udg_s__MultiArrow_Data_x<i>+ udg_s__MultiArrow_Data_dist<i> * Cos(udg_s__MultiArrow_Data_facing<i>), udg_s__MultiArrow_Data_y<i>+ udg_s__MultiArrow_Data_dist<i> * Sin(udg_s__MultiArrow_Data_facing<i>), Max_Radius(GetUnitAbilityLevel(udg_s__MultiArrow_Data_hero<i>, Multi_Arrow_Spell_Id())), Filter(function Multi_Arrow_Damage))
        call ForGroup(udg_s__MultiArrow_Data_bundle<i>, function Multi_Arrow_Remove_Arrow)
        call GroupClear(udg_s__MultiArrow_Data_bundle<i>)
        call ReleaseTimer(t)   
        call RecycleIndex(i)
    endif
endfunction

function Fade takes nothing returns nothing
    local integer i = 0
    loop
        exitwhen i == udg_si__MultiArrow_Fade_I
        call SetUnitVertexColor(udg_s__MultiArrow_Fade_unit<i>, 255, 255, 255, 55 + (udg_s__MultiArrow_Fade_period<i>*60))   
        set udg_s__MultiArrow_Fade_period<i> = udg_s__MultiArrow_Fade_period<i> + 1
        if udg_s__MultiArrow_Fade_period<i> == 10 then
            set udg_s__MultiArrow_Fade_period<i> = udg_s__MultiArrow_Fade_period[udg_si__MultiArrow_Fade_I]
            set udg_s__MultiArrow_Fade_unit<i> = udg_s__MultiArrow_Fade_unit[udg_si__MultiArrow_Fade_I]
            set udg_si__MultiArrow_Fade_I = udg_si__MultiArrow_Fade_I - 1
            set i = i - 1
            if udg_si__MultiArrow_Fade_I == 0 then
                call PauseTimer(GetExpiredTimer())
            endif 
        endif 
        set i = i + 1
    endloop
endfunction

function FadeCreateUnit takes integer i, real x, real y returns unit
    local unit u = CreateUnit(GetOwningPlayer(udg_s__MultiArrow_Data_hero<i>), Multi_Arrow_Dummy_Up(), x, y, 270.)
    set udg_s__MultiArrow_Fade_unit[udg_si__MultiArrow_Fade_I] = u
    set udg_si__MultiArrow_Fade_I = udg_si__MultiArrow_Fade_I + 1
    call SetUnitVertexColor(u, 255, 255, 255, 55)
    set udg_s__MultiArrow_Fade_period[udg_si__MultiArrow_Fade_I] = 0 
    if udg_si__MultiArrow_Fade_I == 1 then        
         call TimerStart(udg_si__MultiArrow_Fade_Timer, 0.05, true, function Fade)    
    endif
    call UnitAddAbility(u, &#039;Amrf&#039;)
    call UnitRemoveAbility(u, &#039;Amrf&#039;) 
    return u
endfunction

function Multi_Arrow_Expire takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer i = GetTimerData(t)
    local real rr = GetRandomReal(udg_s__MultiArrow_Data_number<i>*-15.,udg_s__MultiArrow_Data_number<i>*15.)
    local real rrt = GetRandomReal(50., 100.)
    local real tx
    local real ty
    if (udg_s__MultiArrow_Data_number<i>/2)*2 == udg_s__MultiArrow_Data_number<i> then
        set tx = (udg_s__MultiArrow_Data_x<i> + rrt*Cos(udg_s__MultiArrow_Data_facing<i>)) + (rr)* Cos((GetUnitFacing(udg_s__MultiArrow_Data_hero<i>)-90)*bj_DEGTORAD)
        set ty = (udg_s__MultiArrow_Data_y<i> + rrt*Sin(udg_s__MultiArrow_Data_facing<i>)) + (rr)* Sin((GetUnitFacing(udg_s__MultiArrow_Data_hero<i>)-90)*bj_DEGTORAD)   
    else 
        set tx = udg_s__MultiArrow_Data_x<i> + (rr)* Cos((GetUnitFacing(udg_s__MultiArrow_Data_hero<i>)+90)*bj_DEGTORAD)
        set ty = udg_s__MultiArrow_Data_y<i> + (rr)* Sin((GetUnitFacing(udg_s__MultiArrow_Data_hero<i>)+90)*bj_DEGTORAD)
    endif
    call GroupAddUnit(udg_s__MultiArrow_Data_bundle<i>, FadeCreateUnit(i, tx, ty) )
    set udg_s__MultiArrow_Data_number<i> = udg_s__MultiArrow_Data_number<i> + 1
    if udg_s__MultiArrow_Data_number<i> == 30 then
        call PauseTimer(t)    
        call TimerStart(t, 0.03, true, function Multi_Arrow_Height)     
    endif
endfunction

function Trig_Multi_Arrow_Actions takes nothing returns nothing
    local timer t = NewTimer()
    local integer i = NewIndex()
    local location l = GetSpellTargetLoc()
    local real dx = GetLocationX(l)- GetUnitX(GetTriggerUnit())
    local real dy = GetLocationY(l)- GetUnitY(GetTriggerUnit())
    call RemoveLocation(l)
    set udg_s__MultiArrow_Data_hero<i> = GetTriggerUnit()
    set udg_s__MultiArrow_Data_facing<i> = GetUnitFacing(udg_s__MultiArrow_Data_hero<i>)*bj_DEGTORAD 
    set udg_s__MultiArrow_Data_x<i> = GetUnitX(udg_s__MultiArrow_Data_hero<i>) 
    set udg_s__MultiArrow_Data_y<i> = GetUnitY(udg_s__MultiArrow_Data_hero<i>) 
    set udg_s__MultiArrow_Data_dist<i> = RMinBJ(Max_Range(GetUnitAbilityLevel(udg_s__MultiArrow_Data_hero<i>, Multi_Arrow_Spell_Id())), SquareRoot(dx * dx + dy * dy)) - 100. 
    call SetTimerData(t, i)
    call TimerStart(t, 0.03, true, function Multi_Arrow_Expire)
endfunction

//===========================================================================
function InitTrig_Multi_Arrow takes nothing returns nothing
    local integer i = 0
    set gg_trg_Multi_Arrow = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Multi_Arrow, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Multi_Arrow, Condition( function Trig_Multi_Arrow_Conditions ) )
    call TriggerAddAction( gg_trg_Multi_Arrow, function Trig_Multi_Arrow_Actions )
    

    
    set udg_si__MultiArrow_TU_V[0] = CreateTimer()
    set udg_ss__MultiArrow_TU_Offset = GetHandleId(udg_si__MultiArrow_TU_V[0])
    loop
        set i = i + 1
        exitwhen i == 150
        set udg_si__MultiArrow_TU_V<i> = CreateTimer() 
    endloop
    call DestroyGroup(udg_s__MultiArrow_Data_bundle[0])
    set udg_si__MultiArrow_TU_F = 150 
endfunction</i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i></i>
 

Red

New Member
Reaction score
0
Spell Name: Chidori Nagashi
Code Preference: GUI.

Spell Type: MUI.

Description: Well, I don't really know how to explain so i'll post pictures...
1.

2.

Other Remarks: Once the caster cast it, the Chidori Nagashi will appear 3 times damaging units infront.
Level 1: 150 Damage.
Level 2: 300 Damage.
Level 3: 450 Damage.
Cooldown: 15 Seconds.
 

xkid4ditya

New Member
Reaction score
13
Dear, Sajin and Whoareyou.
hgkjfhfdsj isnt talking about Juice or somethin'....Oh, Geez!

Its About JASS.....

OH, HEY ITS BETTER ROCK N' ROLL RATHER THAN JASS, YOU KNOW !!:banghead:
 

kadun

New Member
Reaction score
1
neuro, how far are you with my spell ? :)
im kind of waiting :)

But still thanks for doing it :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top