• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

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

Status
Not open for further replies.
Level 9
Joined
Dec 26, 2010
Messages
475
Please, don't compare Animate Cartoon and Warcraft Animation capability...
WHAT, is passive ?
Please, don't just give random video and make me do it
With animation like that, it's HELL to create it in warcraft
What passive ?
Blue aura hitting enemies head or something ?

It is quite... advance spell, and quite long to make it, so, you know how to wait for it ^_^
ok, how about [ 4:46 - 4:57 ] u can use custom effects ^^ :goblin_good_job:
 
Level 20
Joined
Jul 6, 2009
Messages
1,885
well Garfield, enlighten me on what 'missing hitpoints' really mean...or what type of event can trigger a loss of hit point?...

Currently,your spell has 2 main flaws.

First,you increase attack speed based on level of blood curse and it should be based on missing hitpoints. So if your unholy frenzy spell has 4 levels then set level of it for dummy to: integer(% of current hp for caster) / 25.

Second thing is you didn't consider heal and regeneration. If someone healed the caster his attack speed wouldn't change which is why you should,as baassee said,use a loop as event.
 
Level 2
Joined
Apr 22, 2010
Messages
25
Although i had some other images flashing through my head when i was wondering what it would look like, the spell performs exactly as i requested 5/5 no doubt. One more thing also needs to be noted here -> the rapid reply & completion of this request.
 
Level 3
Joined
Jan 2, 2010
Messages
34
So I'm here again.
This is my request - DASS - Damage Absorbing Shield System
You said that there's shield system and I just have to find it,
I found it but it's not that good as I though: You can't use more than one shield on unit,
so if u have one unit which can shield ally and other unit which have shield too then shields won't stack.

My request: DASS which can add more than one shield.

Example:
I have shield which absorbs 400dmg in 5s and shield which absorb 600dmg in 10s.
If I get 500dmg then first shield will dissapear and second shield will lose 100dmg.

I need this system for my map which have many champions with shield ability.
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
Level 3
Joined
Jan 2, 2010
Messages
34
How I hate JASS...
Not hate but i don't want to read this all lines :D
And I need other SYSTEMS to use it :(
I think that DASS will be last thing that I will do on my map haha :D
 
Level 12
Joined
Dec 17, 2009
Messages
951
i need a shoot impact system. (knockback)
i dont know hot to implement system for any other systems.
so i need a knock effect based on damage taken for X Player. (for a realistic zombie map)
so you can use paladon or any vJass system to implement to me.
thank you :) i hope you guys can help me.
 
Level 29
Joined
Mar 10, 2009
Messages
5,016
lol'd

And what additional functions does JASS use that impress you? GUI can do almost anything as JASS...
The thing is GUI is slower,harder to read and write,inefficient etc

One word to describe it all >>> 'simplicity'...I've compared some BJ's againts it's native counterpart and it makes sense to me why many Jassers/vJassers out there say blizzard makes it so difficult for us...
 
Level 2
Joined
Mar 4, 2011
Messages
21
1. My first request is for a web ability that is an icy web instead of a normal one.
It can have the same effects and stats as the normal web ability; I just want it to be an icy web instead of a normal one. Even the simplest changes or altercations would be awesome. Even changing the color of the web to blue would do the trick :pcon:

Heres an icon of an icy web that was made by SexYFrostWyrM :
http://www.hiveworkshop.com/forums/icons-541/btnsfwicyweb-167930/#post1865588

2. Also, I was wondering if you could make the diablo2 assassin spell Shield of Blades. Basically I want it to have similar qualities to immolation in the sense that when an enemy approaches the unit with shield of blades on, they will take damage over time. Another effect that I want is for it to act as thorns in the sense that if an enemy unit attacks the unit with shield of blades on, they will take damage.

Here are two pictures that I got of a assassin and her shadow clone both with shield of blades cast. One of the pictures is an assassin with shield of blades on as she whirlwinds across an area. If you can add some wind in with the blades or even make the blades into leaves then that would be awesome. Any help would be appreciated . :goblin_good_job:

sin shield of blades 2.png

sin ww and shield of blades.jpg
 
Last edited:
Level 15
Joined
Jul 9, 2008
Messages
1,552
sorry but iv come again for another request

im after a spell that puts a shield on a ally and when the shield takes to much damage (or the duratatio)n it will explode dealing the damage taken to nearby units

works the same as Aphotic Shield from dota

also did any one end up finishing blood curse
 
Level 11
Joined
Sep 12, 2008
Messages
657
hey milzi.. i wanna relearn how to use vjass to create spells,
working on some systems atm, but i did forget how to create spells,
if defskull doesnt mind, ill create it =]

btw: Mudpug, nice use of open battle net xD (infinitie whirldwind + aura)

edit: unless you need it gui o.o
 
Level 3
Joined
Jan 21, 2011
Messages
46
Hello sir, can you make me a PVP system for my RPG map?

I hope you understand my English ;p

formatu.jpg


-I have 8 players in my map, all of them are allies and 2 enemies(excluded in pvp)
-for example every 30 sec of game, a duel event will start for anyone of the following 2v2, 3v3 ,4v4 or FFA and all heroes will move in pvp area.


the teaming is random ex.

player 1, 3, 6
vs
player 2, 4, 5

then the next round

player 1,2,3,4
vs
player 5,6,7,8

then next round

FFA mode

and so on...
 
Level 3
Joined
Jan 21, 2011
Messages
46
Hmm I did not noticed that, maybe based on number of players, if playing in map are 4 players only it will activate 1v1, 2v2 and FFA only
 
Level 11
Joined
Sep 12, 2008
Messages
657
Omg, i just realised he said he needs it gui..
if you dont..

JASS:
library ShieldSystem initializer OnInit
    
    function interface ShieldTakesDamage takes unit wielder, real shieldLifeLeft, real dealtDamage returns nothing
    
    globals
        public constant real loopSpeed = 0.032
    endglobals
    
    struct ShieldSystemData
        public unit wielder
        public string shieldSFX
        public effect sEffect
        
        public real positionX
        public real positionY
        public real shieldCurrentLife
        public real shieldMaximumLife
        public real explosionDamageReduction
        public real damageReduction
        public real currentDamage
        public real damageHoldoff
        public real explosionRadius
        
        public boolexpr explosionBer
        public group explosionGroup
        
        public ShieldTakesDamage eventFunction
        
        public static method create takes unit shieldWielder, string shieldSFX, real shieldMaxLife, real damageReduction returns thistype
            local thistype t = allocate()
                set t.wielder = shieldWielder
                set t.shieldSFX = shieldSFX
                
                set t.positionX = GetUnitX(shieldWielder)
                set t.positionY = GetUnitY(shieldWielder)
                set t.shieldCurrentLife = shieldMaxLife
                set t.shieldMaximumLife = shieldMaxLife
                set t.damageReduction = damageReduction
                set t.currentDamage = 0
                set t.explosionRadius = 0
                
                set t.sEffect = AddSpecialEffectTarget(t.shieldSFX, t.wielder, "origin")
                set t.explosionGroup = CreateGroup()
            return t
        endmethod
        
        public method allowExplosion takes real explosionDamageReduction, real explosionRange, boolexpr groupFilter returns nothing
            set this.explosionDamageReduction = damageReduction
            set this.explosionRadius = explosionRange
            set this.explosionBer = groupFilter
        endmethod
        
        public method registerDamageEvent takes ShieldTakesDamage func returns nothing
            set eventFunction = func
        endmethod
        
        public method isShieldAlive takes nothing returns boolean
            return .shieldCurrentLife > 0
        endmethod
        
        public method damage takes real damage returns nothing
            if isShieldAlive() then
                set shieldCurrentLife = shieldCurrentLife - damage
                set currentDamage = currentDamage + damage
                call eventFunction.execute(wielder, shieldCurrentLife, currentDamage)
                if isShieldAlive() == false then
                    call DestroyEffect(sEffect)
                    //Explode It Here
                    call GroupEnumUnitsInRange(explosionGroup, positionX, positionY, explosionRadius, explosionBer)
                endif
                
            endif
        endmethod
    endstruct
    
    globals
        public trigger sTrigger = CreateTrigger()
        
        public ShieldSystemData array shieldData
        public integer ShieldSystemCount = 0
    endglobals
    
    function createShield takes ShieldSystemData data returns integer
        set ShieldSystemCount = ShieldSystemCount + 1
        set shieldData[ShieldSystemCount] = data
        call TriggerRegisterUnitEvent(sTrigger, data.wielder, EVENT_UNIT_DAMAGED)
        return ShieldSystemCount
    endfunction
    
    public function UnitUnderAttack takes nothing returns nothing
        local integer count = 0
        loop
        set count = count + 1
        if GetTriggerUnit() == shieldData[count].wielder then
            if shieldData[count].isShieldAlive() then
                call shieldData[count].damage((GetEventDamage() * (shieldData[count].damageReduction / 100)))
                call SetUnitState(GetTriggerUnit(), UNIT_STATE_LIFE, GetUnitState(GetTriggerUnit(), UNIT_STATE_LIFE) + (GetEventDamage() - GetEventDamage() * (shieldData[count].damageReduction / 100)))
                //x - (x * y / 100)
            endif
        endif
        exitwhen count >= ShieldSystemCount
        endloop
    endfunction
    
    public function TimerLoop takes nothing returns nothing
        local integer count = 0
        loop
        set count = count + 1
        if shieldData[count].isShieldAlive() then
            set shieldData[count].positionX = GetUnitX(shieldData[count].wielder)
            set shieldData[count].positionY = GetUnitY(shieldData[count].wielder)
        endif
        exitwhen count >= ShieldSystemCount
        endloop
    endfunction
    
    public function OnInit takes nothing returns nothing
        call TimerStart(CreateTimer(), loopSpeed, true, function TimerLoop)
        call TriggerAddAction(sTrigger, function UnitUnderAttack)
    endfunction
endlibrary

goddam you milzy..
btw, if any1 uses this code, it have anything except explosion, dont try it..
example code:

JASS:
library ExampleCode initializer Init requires ShieldSystem
    
    public function ShieldIsHit takes unit wielder, real shieldLifeLeft, real dealtDamage returns nothing
        call ClearTextMessages()
        call BJDebugMsg("Damaged Unit: " + GetUnitName(wielder))
        call BJDebugMsg("Current Shield Life: " + R2S(shieldLifeLeft))
        call BJDebugMsg("Dealt Damage Was: " + R2S(dealtDamage))
    endfunction
    
    public function Actions takes nothing returns nothing
        local real shieldLife = GetUnitAbilityLevel(GetTriggerUnit(), 'A000') * 100
        local real shieldReduction = 100
        local ShieldSystemData shieldData = ShieldSystemData.create(GetTriggerUnit(), "Abilities\\Spells\\Human\\ManaShield\\ManaShieldCaster.mdl", shieldLife, shieldReduction)
        call shieldData.registerDamageEvent(ShieldIsHit)
        
        call createShield(shieldData)
    endfunction
    
    public function Conditions takes nothing returns boolean
        return GetSpellAbilityId() == 'A000'
    endfunction
    
    public function Init takes nothing returns nothing
        local trigger t = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
        call TriggerAddCondition(t, Condition(function Conditions))
        call TriggerAddAction(t, function Actions)
    endfunction
endlibrary

good luck, ill try fixing explosion tommorow..
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
Currently that system will stack up lots of events when they're not needed. You probably should base it off a damage detection system that handles this or using dynamic triggers aka destroying triggers with useless events (multiple triggers needed). Should use GroupUtils too. Also SetWidgetLife is faster than SetUnitState. Else I have to say that it's enough for a user for now.
 
Status
Not open for further replies.
Top