• 🏆 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!

Some Spell Requests! pls help me!

Status
Not open for further replies.
Level 10
Joined
Mar 30, 2009
Messages
255
Ok hi at first
I got some spell ability ideas, I tried to make them … but I failed!!
So plz help me guys!


Spell nr1: Force of Nature
[Passive]
The hero gains 1/2/3/4 intelligence point for every tree in 600 range.
If the Tree is contaminated (undead tree) he looses 1/2/3/4 int instead of gaining it!

Effects: some natural/green
Done!! many thx to Thanathos!!


Spell Nr2: Liquid Form
[Passive]
Every time the hero walks on water (the light blue one you can walk on) he gets invisible and gains 2/4/6/8 % Movement and Attackspeed!
(When he attacks a unit while in water he turns visible as long he attacks.. fade time about 2 sec.)

Effects: it should look like the hero turns into water… Ofc only for enemys
well done by D4RK_G4ND4LF!


Spell Nr3: Curse of Flames
[active]
Tagets: Trees
Burns up a tree creating a Fire which damages nearby enemy Units with 5/10/15/20 dmg/ sec!
If there are other trees near the Burned Tree they also start to burn.
Lasts for 10 Sec. Trees die.

Effect: fire, smoke maybe …
... done! thx to AlienAtSystem :)


Spell Nr4: Chaos
[active]
Targets: no target! (like berserk or thunderclap)
Switches all unit positions in 600/700/800 Range (alive and no buildings) with other unit positions.
(Except of yourself) That means it swaps the units randomly.
Dmg= Distance warped (or swapped) divided by 4/3/2.

Effects: something red/orange/yellow or some dust... also done by D4RK_G4ND4LF !! thx^^



Pls pls help me with these
If you help me I will give rep ofc^^

The spells are for my AoS map im working on with a friend :)
almost forgot: i trigger in GUI, if you want to make it in JASS ot vJass pls make it easy editable..
like ability rawcode ='xxxx'
you get the idea^^

well thats it you made all my spells requests :D
i will be back!^^
 
Last edited:
Here is the Curse of Flames Spell. Its not tree-targeted, but ground-targeted because its difficult to make a spell tree-targeted. It summons a fire on the target position wich burns enemies in range. Every second it is checked wether a tree is near a fire. If, the tree dies and a fire is created at the position. The Spell is MUI and MPI and leakless, but may lag by great amounts of fires.

Give Credit to D4RK_G4ND4LF too, for his tree detection system.
 

Attachments

  • Forest Fire.w3x
    37.9 KB · Views: 47
Level 10
Joined
Mar 30, 2009
Messages
255
Here is the Curse of Flames Spell. Its not tree-targeted, but ground-targeted because its difficult to make a spell tree-targeted. It summons a fire on the target position wich burns enemies in range. Every second it is checked wether a tree is near a fire. If, the tree dies and a fire is created at the position. The Spell is MUI and MPI and leakless, but may lag by great amounts of fires.

Give Credit to D4RK_G4ND4LF too, for his tree detection system.

wow that is exactly what i meant!!
good job! yeah i failed at the tree detection myself...
i will give credit to you and D4RK_G4ND4LF ofc.
+rep
 
Level 9
Joined
Aug 2, 2008
Messages
219
Ok here´s your Force of Nature. It follows the Spell Section rules and is coded in vJass. It got a manual in the map and comments in the code so that you know what you´re doing when you adjust it.


icons_6632_btn.jpg
Force of Nature
Spell Description


The caster links his mind to the trees of the forest in a range of 600 gaining acces to their ancient knowledge. For each tree the casters intellegence is increased, but if a tree is corrupted the caster looses intellegence.


Level: 1
Level: 2Level: 3

+2 Intelligence per Tree
-2 Intelligence per corrupted Tree
+3 Intelligence per Tree
-3 Intelligence per corrupted Tree
+4 Intelligence per Tree
-4 Intelligence per corrupted Tree

NOTE: Strength and Agility bonuses are also avaiable.
Credits
 

Attachments

  • Force of Nature.w3x
    75.5 KB · Views: 37
Level 10
Joined
Mar 30, 2009
Messages
255
Ok here´s your Force of Nature. It follows the Spell Section rules and is coded in vJass. It got a manual in the map and comments in the code so that you know what you´re doing when you adjust it.


icons_6632_btn.jpg
Force of Nature
Spell Description


The caster links his mind to the trees of the forest in a range of 600 gaining acces to their ancient knowledge. For each tree the casters intellegence is increased, but if a tree is corrupted the caster looses intellegence.


Level: 1
Level: 2Level: 3

+2 Intelligence per Tree
-2 Intelligence per corrupted Tree
+3 Intelligence per Tree
-3 Intelligence per corrupted Tree
+4 Intelligence per Tree
-4 Intelligence per corrupted Tree

NOTE: Strength and Agility bonuses are also avaiable.
Credits

wow! thx! you helped me alot!
you did much work on that :eek: with all the descriptions.. nice^^
i will credit +rep ofc!
 
Level 19
Joined
Feb 4, 2009
Messages
1,313
Here is the Curse of Flames Spell. Its not tree-targeted, but ground-targeted because its difficult to make a spell tree-targeted. It summons a fire on the target position wich burns enemies in range. Every second it is checked wether a tree is near a fire. If, the tree dies and a fire is created at the position. The Spell is MUI and MPI and leakless, but may lag by great amounts of fires.

Give Credit to D4RK_G4ND4LF too, for his tree detection system.

awesome what my stuff is able to do :grin: thanks for spell and idea

now everything might be fine (since I don't use JNGP the prefix stuff with private and everything with globals won't work but I think this is more the less best what can be done with it)
JASS:
function Chaos_Damage takes real distance, integer spellLevel returns real
    return distance/(5 - spellLevel)  //damage equal to distance moved divided by 4, 3, 2
endfunction

function Chaos_AoE takes integer spellLevel returns real
    return spellLevel * 100.00 + 500.00  //Area of Effect
endfunction

function Chaos_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'  //spell id
endfunction

function Chaos_IsValidTarget takes nothing returns boolean
    return (not IsUnitType(GetFilterUnit(), UNIT_TYPE_DEAD) or GetUnitTypeId(GetFilterUnit()) == 0) and not ( IsUnitType(GetFilterUnit(), UNIT_TYPE_FLYING) or IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) or GetFilterUnit() == GetTriggerUnit() or IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE))
endfunction

function Chaos_Actions takes nothing returns nothing
    local group g = CreateGroup()
    local player p = GetOwningPlayer(GetTriggerUnit())
    local unit u = null
    local unit u2 = null
    local real x = 0.00
    local real y = 0.00
    local real x2 = 0.00
    local real y2 = 0.00
    local real dmg = 0.00
    local integer spellLevel = GetUnitAbilityLevel(GetTriggerUnit(), GetSpellAbilityId())
    local string s = "Abilities\\Spells\\Undead\\OrbOfDeath\\OrbOfDeathMissile.mdl" //swap effect

    call GroupEnumUnitsInRange(g, GetUnitX(GetTriggerUnit()), GetUnitY(GetTriggerUnit()), Chaos_AoE(spellLevel), Condition(function Chaos_IsValidTarget))

    loop
        set u = FirstOfGroup(g)
        call GroupRemoveUnit(g, u)
        set u2 = FirstOfGroup(g)
        call GroupRemoveUnit(g, u2)

        exitwhen u == null or u2 == null //the loop will end if there are only 1 or less units in the group

        //swap unit's position
        set x = GetUnitX(u)
        set y = GetUnitY(u)
        set x2 = GetUnitX(u2)
        set y2 = GetUnitY(u2)
        call SetUnitX(u, x2)
        call SetUnitY(u, y2)
        call SetUnitX(u2, x)
        call SetUnitY(u2, y)

        set dmg = Chaos_Damage(SquareRoot((x-x2)*(x-x2)+(y-y2)*(y-y2)), spellLevel)  //set damage

        if IsUnitEnemy(u, p) then  //if the unit is an enemy it shall be damaged
            call UnitDamageTarget(u, u2, dmg, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
        endif
        if IsUnitEnemy(u2, p) then
            call UnitDamageTarget(u2, u, dmg, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS)
        endif

        call DestroyEffect(AddSpecialEffect(s, x, y))
        call DestroyEffect(AddSpecialEffect(s, x2, y2))
    endloop

    call DestroyGroup(g)
    set g = null
    set s = null
    set p = null
    set u = null
    set u2 = null
endfunction

//===========================================================================
function InitTrig_Chaos takes nothing returns nothing
    set gg_trg_Chaos = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_Chaos, EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(gg_trg_Chaos, Condition(function Chaos_Conditions))
    call TriggerAddAction(gg_trg_Chaos, function Chaos_Actions)
endfunction
 

Attachments

  • Chaos.w3x
    22.1 KB · Views: 67
Last edited:
Level 9
Joined
Aug 2, 2008
Messages
219
Nice to see you coding in jass D4RK_G4ND4LF. First please use hidden tags for the code, it takes a lot of space. When you´re coding in Jass you need to put prefixes for your functions to prevent name clashes. In your AoE and Damage function you should add an integer parameter for the level so you can leave out the expression in the I2R() function. (Besides you don´t need use I2R() in jass, typecasting from integer to real is implicit in Jass.) You should use constant functions for adjustables like the spell id or the special effect, so the user can configure them from the top of the script and does not need to jump in the script to change them. The expression in the IsValidTarget function can be optimized to:
JASS:
function IsValidTarget takes nothing returns boolean
    return (not IsUnitType(GetFilterUnit(), UNIT_TYPE_DEAD) or GetUnitTypeId(GetFilterUnit()) == 0) and not ( IsUnitType(GetFilterUnit(), UNIT_TYPE_FLYING) or IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) or GetFilterUnit() == GetTriggerUnit() or IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE))
endfunction
(i just summarized the not´s in that expression.)

The Actions function looks ok so far. You may use a variable for GetTriggerUnit(), that would reduce some calls and makes it more readable. You also should declare the integer which holds the level of the ability, so you can pass it to the Damae and AoE func. The FirstOfGroup-Loops are not recommended to use, it would be better just to use ForGrop instead. But considering this being your first jass spell it´s ok to do it that way. Also im too tired now to think for an optimization for that loop issue. GroupPickRandomUnit() and CountUnitsInGroup() are some avoidable BJ´s but removing them would also be part of the loop optimization. Fix the things besides the loop issue and the spell should be ok.

~TNT
 
Level 19
Joined
Feb 4, 2009
Messages
1,313
Nice to see you coding in jass D4RK_G4ND4LF. First please use hidden tags for the code, it takes a lot of space. When you´re coding in Jass you need to put prefixes for your functions to prevent name clashes. In your AoE and Damage function you should add an integer parameter for the level so you can leave out the expression in the I2R() function. (Besides you don´t need use I2R() in jass, typecasting from integer to real is implicit in Jass.) You should use constant functions for adjustables like the spell id or the special effect, so the user can configure them from the top of the script and does not need to jump in the script to change them. The expression in the IsValidTarget function can be optimized to:
JASS:
function IsValidTarget takes nothing returns boolean
    return (not IsUnitType(GetFilterUnit(), UNIT_TYPE_DEAD) or GetUnitTypeId(GetFilterUnit()) == 0) and not ( IsUnitType(GetFilterUnit(), UNIT_TYPE_FLYING) or IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) or GetFilterUnit() == GetTriggerUnit() or IsUnitType(GetFilterUnit(), UNIT_TYPE_MAGIC_IMMUNE))
endfunction
(i just summarized the not´s in that expression.)

The Actions function looks ok so far. You may use a variable for GetTriggerUnit(), that would reduce some calls and makes it more readable. You also should declare the integer which holds the level of the ability, so you can pass it to the Damae and AoE func. The FirstOfGroup-Loops are not recommended to use, it would be better just to use ForGrop instead. But considering this being your first jass spell it´s ok to do it that way. Also im too tired now to think for an optimization for that loop issue. GroupPickRandomUnit() and CountUnitsInGroup() are some avoidable BJ´s but removing them would also be part of the loop optimization. Fix the things besides the loop issue and the spell should be ok.

~TNT

thanks for the comment but I am to tired to read anything right now probably later this day (it's 1 o'clock at mine)
(quite sure this contains JNGPrelated stuff anyway which I am not using but however I'll see)

I also made the Liquid Form Spell
 

Attachments

  • Liquid Form.w3x
    17.7 KB · Views: 62
Since its senseless to use two tree detection systems in the same map,you can reconfigure my system easily to work with the IsDestructableTree library. In the loop there is somewhere a run Trigger funktion:
  • Trigger - Run Treecheck<gen>(checking conditions)
replace this line with Custom script:
JASS:
udg_tempbool = IsDestructableTree(udg_tempdest) and (not Is DestructableDead(udg_tempdest))
(I think that function should be right. Never worked with Jass before, much less vJass libraries)
Then my spell uses Pitzer-Mikes tree detection too. (Sorry Gandalf, but his is a bit faster imo)
 
Last edited:
Level 10
Joined
Mar 30, 2009
Messages
255
thanks for the comment but I am to tired to read anything right now probably later this day (it's 1 o'clock at mine)
(quite sure this contains JNGPrelated stuff anyway which I am not using but however I'll see)

I also made the Liquid Form Spell

damn! many thanks! u made both spells... maybe i should come with new ideas^^
you guys are so nice :D
+rep and cedit ofc

Since its senseless to use two tree detection systems in the same map,you can reconfigure my system easily to work with the IsDestructableTree library. In the loop there is somewhere a run Trigger funktion:
  • Trigger - Run Treecheck<gen>(checking conditions)
replace this line with Custom script:
JASS:
udg_tempbool = IsDestructableTree(udg_tempdest) and (not Is DestructableDead(udg_tempdest))
(I think that function should be right. Never worked with Jass before, much less vJass libraries)
Then my spell uses Pitzer-Mikes tree detection too. (Sorry Gandalf, but his is a bit faster imo)

y thanks but i already did that :D
 
Last edited:
Level 19
Joined
Feb 4, 2009
Messages
1,313
I've improved the Forest Fire spell
now the trees are burning more randomly and it does not lag anymore every second
there also is no need for dummys now and the casting animation is cooler now

I'd like to upload this spellcollection to the spell section so the other users are able to see this stuff too (of cause mentioning everyone in this thread as a person to give credits and rep to)
is there anyone who does not want his spell to be published or want to publish it himself?
and I'd also like you, VoidLordXtreme, to think of more cool spell ideas
they are very original and nice :D
 

Attachments

  • Forest Fire.w3x
    38.9 KB · Views: 64
Level 10
Joined
Mar 30, 2009
Messages
255
I've improved the Forest Fire spell
now the trees are burning more randomly and it does not lag anymore every second
there also is no need for dummys now and the casting animation is cooler now

I'd like to upload this spellcollection to the spell section so the other users are able to see this stuff too (of cause mentioning everyone in this thread as a person to give credits and rep to)
is there anyone who does not want his spell to be published or want to publish it himself?
and I'd also like you, VoidLordXtreme, to think of more cool spell ideas
they are very original and nice :D

wow thats a great compliment thx
yeah you could post it in the spell section as a spellpack.. thats a good idea btw if everyone allows it!

btw add the Abilities\\Spells\\Human\\Polymorph\\PolyMorphDoneGround.mdl Effect to the Chaos spell it fits better
also you forgot at the liquid spell to set the level of the dummy ability to same level of the hero ability and also add a effect to the slow buff (naga death fits good).

i will also try to think of new spells as i need them for my map!
 
Last edited:
I'd like to upload this spellcollection to the spell section so the other users are able to see this stuff too (of cause mentioning everyone in this thread as a person to give credits and rep to)
is there anyone who does not want his spell to be published or want to publish it himself?
You have my permission. My Spell wasnt really mine since i only used predefined Blizzard Spells and your tree detection system. And since you improved it now, i think there is no need to mention me (i dont want rep for a thing that everyone could do in 5 minutes if he got the right ressources).
 
Status
Not open for further replies.
Top