• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

===[NEW] Spell Workshop [NEW]===

Status
Not open for further replies.
Level 7
Joined
Jun 15, 2010
Messages
218
Spell request!


Drag

Description: Drags targeted unit to the caster for a period of time. While the drag lasts, caster turns invisible which enables him to Prey targets down.
When the drag ends, there will come to explosion that will damge nearby enemy units. Special effect at the target would be cool:)

Buf: invisebility (for the caster)
spelltype: Target Unit

Level 1: Drags target and makes caster invisible for 2 seconds, deals 90 damge in 150 aoe.
Level 2: Drags target and makes caster invisible for 3 seconds, deals 180 damge in 200 aoe.
Level 3: Drags target and makes caster invisible for 4 seconds, deals 270 damge in 250 aoe.
Level 4: Drags target and makes caster invisible for 5 seconds, deals 360 damge in 300 aoe.
Level 5: Drags target and makes caster invisible for 6 seconds, deals 450 damge in 350 aoe.


I need this spell MUI:)

+Rep and credits

Anyone please help me out:D
 
Level 2
Joined
Apr 22, 2010
Messages
25
I am having trouble doing this spell my own, could i request the creation of it ?(though i do not know if i should ask here, in which case 'sorreh' in advance)

Here is what i want it to be, its a ultimate skill for a frost type of mage and it should have 8 levels. Dark Wind is the name, (visual effects are important since i am really bad at create good looking spells) a gust of purple/blue wind effect coming from the caster towards the target point should do the trick. The idea is a cone , point casted aoe spell (probably like carrion swarm), which should slow enemy movement speed by 10%, also deal 0.3 x intelligence damage to them per second for 4 + lvl of dark wind duration and add a debuff to the affected enemies until the spell's duration runs out. Debuffed enemies should instantly shatter (the caster gets the kill) if their hp drops below 10% while they have the debuff from the spell.
If the spell is too complicated to create then there is no problem with that. I just need to be informed of it. Thanks in advance.
 
Level 3
Joined
Jan 2, 2010
Messages
34
Hello
Can u guys create taunt ability (or taunt system will be better)?

Taunt - Orders unit to attack caster by basic attack for a while
when unit is taunted then he/she can't use spells or even move

Example: Caster taunt enemy for 4seconds, for 4s enemy is ONLY basic attacking caster

Idea is from League of Legends Rammus taunt - http://www.youtube.com/watch?v=2VaJvd0XUEs

I had a problem with enemy players that they could easy order to stop attack
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
This is taken from DOTA, Axe. I guess normal Taunt doesn't work so there is probably a trigger running ForGroup() every 'period' checking each unit's order.

EDIT:

Zealon's request is done but there is something wrong with the ini trigger causing the map to crash so I am currently checking what I did wrong.
 
Last edited:
Level 5
Joined
Sep 2, 2010
Messages
83
Not sure if this is still up but, if you are still doing requests I'd like to apply for one to be done :p. Could do this one myself but don't have the time right now as I have multiple aspects to take care of in my map.

It needs to be MUI(obviously). I'd prefer it in GUI/Triggers however if it cannot be done in it(which I kind of expect). vJass is fine.


icons_13163_btn.jpg
The Sorceress creates a barrier beneath herself that protects her allies and herself from all types of schools of magic. (level 1 - lasts 8 secs. Level 2 - lasts 12 secs. Level 3 - lasts 15 secs.)


Anyways, if this request is filled out as you requested I'll let you guys early test the map when it actually can be considered ready. You will know in time of the project. I will fill you in with pms or if you have it, msn.
 
Level 5
Joined
Sep 2, 2010
Messages
83
Immune to damage or just spell damage? If you'd trigger this in vJASS it would be fairly simple due to J4L's Damage lib but that will require you to trigger all your spells that does spell damage (such as object editor spells etc).


Ah, if you read above spell damage, I changed it to resistance/reduce damage taken from spells other than full immunity incase I ever implement pvp in my map or people would stack the sorceress class for the barrier.
 
Level 3
Joined
Jan 2, 2010
Messages
34
Thanks for linking Taunt spell.

But i have other problem, can You guys create damage absorbing shield system?
Something like i use shield on target that block 300 damage in 5s so target won't take any damage until shield absorb 300dmg or time went off.

I had problem in trigger
Event - Unit gets damage
Action - Heal unit for Damage Amount
because it heals unit before taking dmg

MUI will be nice, thanks :)
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
Thanks for linking Taunt spell.

But i have other problem, can You guys create damage absorbing shield system?
Something like i use shield on target that block 300 damage in 5s so target won't take any damage until shield absorb 300dmg or time went off.

I had problem in trigger
Event - Unit gets damage
Action - Heal unit for Damage Amount
because it heals unit before taking dmg

MUI will be nice, thanks :)

Have you ever searched the spell section? I can remember a shield system somewhere over there. Yet a shield absorbing system is not meant for GUI you know.

@Zealon's request.

Yeap, it's done. Fully MUI in JASS with a few global variables. It's kind of slow (hashtables sigh) but instead it got unlimited instances and it recycles them properly.

There are a few functions at the top of the Pounce Trigger where you can change the spell settings and in the dummy spell where you can change the dps and slow.

I'll show and explain them here.


JASS:
function PounceDistance takes integer lvl returns real
    return 300. + lvl * 100.
endfunction

Obviously changes the total distance of the spell. Takes the lvl of the ability.

JASS:
function PounceHeight takes integer lvl returns real
    return 150. + lvl * 0
endfunction

The height of the parabola.

JASS:
function PounceHitDamage takes integer lvl returns real
    return 40. * lvl
endfunction

The hit damage (note: this is not the dps, dps is changeable in the object editor.

JASS:
function PounceSpeed takes integer lvl returns real
    return 18. + 4. * lvl
endfunction

The speed the unit will move with.

JASS:
function PounceAOE takes integer lvl returns real
    return 85.
endfunction

The aoe around the hero.

JASS:
function PounceEffect takes nothing returns string
    return "Abilities\\Weapons\\AvengerMissile\\AvengerMissile.mdl"
endfunction

The effect that will be attached to the hero, like a trail or tail.

Remember if you copy a string in GUI, it's double \\ in JASS




  • Pounce Init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Pounce_Dummy = No unit
      • Set Pounce_ABILID = Pounce
      • Set Pounce_DummyABILID = Pounce Dummy
      • Set Pounce_DummyType = Dummy
      • Set Pounce_AT = Spells
      • Set Pounce_DT = Magic
      • Set TempInt = 0
      • Set TimerN = 0
      • Hashtable - Create a hashtable
      • Set PounceHash = (Last created hashtable)
      • Set PounceLoc = (Point(0.00, 0.00))
      • Custom script: set udg_Pounce_Dummy = CreateUnit(Player(15), udg_Pounce_DummyType, 0., 0., 0.)
      • Custom script: call UnitAddAbility(udg_Pounce_Dummy, udg_Pounce_DummyABILID)
      • Custom script: call DestroyTrigger(GetTriggeringTrigger())


JASS:
function PounceDistance takes integer lvl returns real
    return 300. + lvl * 100.
endfunction

function PounceHeight takes integer lvl returns real
    return 150. + lvl * 0
endfunction

function PounceHitDamage takes integer lvl returns real
    return 40. * lvl
endfunction

function PounceSpeed takes integer lvl returns real
    return 18. + 4. * lvl
endfunction

function PounceAOE takes integer lvl returns real
    return 85.
endfunction

function PounceEffect takes nothing returns string
    return "Abilities\\Weapons\\AvengerMissile\\AvengerMissile.mdl"
endfunction

function ParabolaZ takes real h, real d, real x returns real
  return (4 * h / d) * (d - x) * (x / d)
endfunction

function RTimer takes timer t returns nothing
    if t != null then
        call PauseTimer(t)
        set udg_Timers[udg_TimerN] = t
        set udg_TimerN = udg_TimerN + 1
    else
        call BJDebugMsg("Tried to release a null timer")
    endif
endfunction

function NTimer takes nothing returns timer
    if udg_TimerN == 0 then
        return CreateTimer()
    endif
    set udg_TimerN = udg_TimerN - 1
    return udg_Timers[udg_TimerN]
endfunction

function PounceEnum takes nothing returns boolean
    local unit u = GetFilterUnit()
    local unit c = LoadUnitHandle(udg_PounceHash, udg_TempInt, 0)
    if IsUnitEnemy(u, GetOwningPlayer(c)) and/*
    */ IsUnitType(u, UNIT_TYPE_STRUCTURE) == false and/*
    */ IsUnitType(u, UNIT_TYPE_MAGIC_IMMUNE) == false and/*
    */ GetWidgetLife(u) > 0.405 and/*
    */ IsUnitType(u, UNIT_TYPE_DEAD) == false then
        return true
    endif
    set u = null
    set c = null
    return false
endfunction

function PounceLoop takes nothing returns nothing
    local integer id = GetHandleId(GetExpiredTimer())
    local real distx = LoadReal(udg_PounceHash, id, 6)
    local real distance = LoadReal(udg_PounceHash, id, 1)
    local real speed
    local real aoe
    local unit caster
    local real cx
    local real cy
    local real nx
    local real ny
    local real height
    local unit target
    local real hitdmg
    if distx < distance then
        set caster = LoadUnitHandle(udg_PounceHash, id, 0)
        set cx = GetUnitX(caster)
        set cy = GetUnitY(caster)
        set height = LoadReal(udg_PounceHash, id, 2)
        set speed = LoadReal(udg_PounceHash, id, 4)
        set aoe = LoadReal(udg_PounceHash, id, 5)
        set hitdmg = LoadReal(udg_PounceHash, id, 3)
        set nx = cx + speed * LoadReal(udg_PounceHash, id, 7)
        set ny = cy + speed * LoadReal(udg_PounceHash, id, 8)
        call SetUnitX(caster, nx)
        call SetUnitY(caster, ny)
        set distx = distx + speed
        call SaveReal(udg_PounceHash, id, 6, distx)
        call MoveLocation(udg_PounceLoc, nx, ny)
        call SetUnitFlyHeight(caster, ParabolaZ(height, distance, distx) +/* 
     */ GetLocationZ(udg_PounceLoc), 0.)
        set udg_TempInt = id
        call GroupEnumUnitsInRange(udg_EnumGroup, nx, ny, aoe, Filter(function PounceEnum))
        set target = FirstOfGroup(udg_EnumGroup)
        if target != null then
            call UnitDamageTarget(caster, target, hitdmg, false, false, udg_Pounce_AT, udg_Pounce_DT, null)
            call SetUnitOwner(udg_Pounce_Dummy, GetOwningPlayer(caster), false)
            call SetUnitX(udg_Pounce_Dummy, nx)
            call SetUnitY(udg_Pounce_Dummy, ny)
            call SetUnitAbilityLevel(udg_Pounce_Dummy, udg_Pounce_DummyABILID, GetUnitAbilityLevel(caster, udg_Pounce_ABILID))
            call IssueTargetOrder(udg_Pounce_Dummy, "acidbomb", target)
            call SetUnitFlyHeight(caster, GetUnitDefaultFlyHeight(caster), 0.)
            call UnitRemoveAbility(caster, 'Amrf')
            call RTimer(GetExpiredTimer())
            call DestroyEffect(LoadEffectHandle(udg_PounceHash, id, 9))
            call PauseUnit(caster, false)
            call FlushChildHashtable(udg_PounceHash, id)
        endif
        set caster = null
        set target = null
    else
        set caster = LoadUnitHandle(udg_PounceHash, id, 0)
        call SetUnitFlyHeight(caster, GetUnitDefaultFlyHeight(caster), 0.)
        call UnitRemoveAbility(caster, 'Amrf')
        call RTimer(GetExpiredTimer())
        call DestroyEffect(LoadEffectHandle(udg_PounceHash, id, 9))
        call PauseUnit(caster, false)
        call FlushChildHashtable(udg_PounceHash, id)
        set caster = null
    endif
endfunction

function PounceCast takes nothing returns boolean
    local timer t
    local integer id
    local integer lvl
    local unit c
    local real angle
    if GetSpellAbilityId() == udg_Pounce_ABILID then
        set c = GetTriggerUnit()
        set t = NTimer()
        set id = GetHandleId(t)
        set lvl = GetUnitAbilityLevel(c, udg_Pounce_ABILID)
        set angle = GetUnitFacing(c)
        call SaveUnitHandle(udg_PounceHash, id, 0, c)
        call SaveReal(udg_PounceHash, id, 1, PounceDistance(lvl))
        call SaveReal(udg_PounceHash, id, 2, PounceHeight(lvl))
        call SaveReal(udg_PounceHash, id, 3, PounceHitDamage(lvl))
        call SaveReal(udg_PounceHash, id, 4, PounceSpeed(lvl))
        call SaveReal(udg_PounceHash, id, 5, PounceAOE(lvl))
        call SaveReal(udg_PounceHash, id, 6, 0.)
        call SaveReal(udg_PounceHash, id, 7, Cos(angle * bj_DEGTORAD))
        call SaveReal(udg_PounceHash, id, 8, Sin(angle * bj_DEGTORAD))
        call SaveEffectHandle(udg_PounceHash, id, 9, AddSpecialEffectTarget(/*
        */PounceEffect(), c, "chest"))
        call UnitAddAbility(c, 'Amrf')
        call PauseUnit(c, true)
        call TimerStart(t, 0.03, true, function PounceLoop)
        set c = null
    endif
    return false
endfunction

//===========================================================================
function InitTrig_Pounce takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(t, Condition(function PounceCast))
endfunction



Remember to read the how to import properly. Remember to give credits.

And no I haven't documentated anything.

Can I release this to the spell section too? :p

View attachment baassee.Pounce.v1.0.w3x
 
Level 13
Joined
Mar 13, 2010
Messages
1,172
Wow I can't wait to test this, thank you so much baassee. It'll be very useful :D I hope this wasn't too much trouble for you.

Yeah I'll give you credit, and Icefrog for the leap idea.

And of course you can upload it; it's just too awesome not to be. And you made it, lol xP

+rep

EDIT: ughhh need to spread some...
 
Level 3
Joined
Oct 27, 2009
Messages
24
can you make a fighting system that uses the arrow keys to move, with a combo system, ability to jump, knock enemies into the air, and slam back down to the ground with an attack. can you see if you can make it in GUI
Something like this.
 
Last edited:
Level 33
Joined
Mar 27, 2008
Messages
8,035
I'm working on Aniria's request but it's bugged for the moment
This thread is half-dead, but still in progress
mckill, I'll be sending the test map of my work have done so far, help me a bit :D

@Aniria
We're working on it :D

EDIT:
Spell is completed: Sorceress Barrier
Credits to mckill2009 for fixing bugs
 

Attachments

  • Sorceress Barrier (1).w3x
    17.1 KB · Views: 44
Last edited:
Level 3
Joined
Jan 2, 2010
Messages
34
Can You guys create Bush Hide System?
It works awesome in League of Legends.
There's bush, if unit is inside then he/she is (btw. unit is he or she? :D) invissible for enemy units but when unit attack someone from bush then he/she can't get bush hide for 2s.
When we have unit in bush and there's enemy too then we and enemy don't get hide.
Examples:
 
Level 15
Joined
Jul 9, 2008
Messages
1,552
whats your request btw?

this was my request

well i have a few requests.

Blood curse
increases the heros attack speed depending on how much hp is lost.
maximum attack speed increase is 100%
Attack speed increased by 0.5% / 0.8% / 1.1% / 1.3%/1.5% for every 1% hp missing.

unamed
increases the targets hp regen atk speed and move speed. and decreases when casted on enemy lasts 20 seconds

+5/10/15 hp regen + 20%/30%/40% atk and move speed

elemental fury
channel
while the hero channels
frost will slow nearby units fire will burn random units over time and lighting will strike random units

so it will create like a field of ice and units will be hit with fire that does damage over time and lighting strikes that bounce 2 times

frost slows move and atack speed by 20%/ 25%/ 30%
fire will deal 30/40/50 damage per sec and lasts 5 seconds.
lighting strikes will deal 100/150/200 damage each bounce does 25% less damage.

can all spells be GUI and MUI or MPI at least
 
Status
Not open for further replies.
Top