Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
lets say we do X spells for each person.
we are 3 people.
X = 105 / 3 = 35
35 spells each person
each spell = 1 hour. (so not true..)
35*1 = 35.
that means, 35 hours wasted on 35 spells.
which ussualy takes 0.1 - 4.5 hours per spell.
so lets say its 0.1, which is 10 mins?
35*0.1 = 3.5
3.5 hours. that IS STILL ALOT, and so impossible to make a spell in 10 mins unless its a useless stupid spell.
so i guess we wont be ble to finish them all, unless you got ~35-50 hours.
we might be able to finish some of them,
unlses you just went big with 105.
yea his spells sound really nice
Shift

Events


Unit - A unit Begins casting an ability

Conditions


(Ability being cast) Equal to [Q]Shift

Actions


Set Shiftcaster = (Triggering unit)


Set ShiftTarget = (Target unit of ability being cast)


Set ShiftCasterLoc = (Position of Shiftcaster)


Set ShiftTargetLoc = (Position of (Triggering unit))


Unit - Create 1 DummyShiftCaster for (Triggering player) at ShiftCasterLoc facing Default building facing degrees


Unit - Add a 25.00 second Generic expiration timer to (Last created unit)


Unit - Create 1 DummyShiftTarget for (Triggering player) at ShiftTargetLoc facing Default building facing degrees


Unit - Add a 25.00 second Generic expiration timer to (Last created unit)


Set ShiftDummyCaster = (Position of Shiftcaster)


Set ShiftDummyTarget = (Position of ShiftTarget)


Unit - Move Shiftcaster instantly to ShiftDummyTarget


Unit - Move ShiftTarget instantly to ShiftDummyCaster


-------- Don't know How to do [(Spell level * 5) * (Target level + Caster level)] damage and stunning the target for [(Spell level * 0.5) + (Target level / 40) --------
I try to do this...sounds fun...
Name: Hotline
Levels: 10
Description: The Fire Titan creates a long line of fires (about same length as the spell Impale) dealing [(Spell level * Target level) * (Caster level + Amount of units in line)/1000)] damage to each targeted unit in line. After this the Fire Titan sends a rather big ball of fire through the line dealing an additional [(Spell level * Amount of units in line) * (Caster level / 10)] to each target in that line.
BTW is this a firewall with fireball?
@iAcce
Your ideas are BTW awesome!!!
yea i am trying to make the spell Shift but i got stuck....
maybe you can help
Name: Shift
Levels: 10
Description: Changes place with the targeted unit (must be an enemy) and deals [(Spell level * 5) * (Target level + Caster level)] damage and stunning the target for [(Spell level * 0.5) + (Target level / 40)
k this is what i got so far i got the swap down but the rest just flew right over my head
Shift
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to [Q]Shift
Actions
Set Shiftcaster = (Triggering unit)
Set ShiftTarget = (Target unit of ability being cast)
Set ShiftCasterLoc = (Position of Shiftcaster)
Set ShiftTargetLoc = (Position of (Triggering unit))
Unit - Create 1 DummyShiftCaster for (Triggering player) at ShiftCasterLoc facing Default building facing degrees
Unit - Add a 25.00 second Generic expiration timer to (Last created unit)
Unit - Create 1 DummyShiftTarget for (Triggering player) at ShiftTargetLoc facing Default building facing degrees
Unit - Add a 25.00 second Generic expiration timer to (Last created unit)
Set ShiftDummyCaster = (Position of Shiftcaster)
Set ShiftDummyTarget = (Position of ShiftTarget)
Unit - Move Shiftcaster instantly to ShiftDummyTarget
Unit - Move ShiftTarget instantly to ShiftDummyCaster
-------- Don't know How to do [(Spell level * 5) * (Target level + Caster level)] damage and stunning the target for [(Spell level * 0.5) + (Target level / 40) --------
Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing (((Real((Level of Animate Dead for (Triggering unit)))) x 5.00) x ((Real((Level of (Target unit of ability being cast)))) + (Real((Level of (Triggering unit)))))) damage of attack type Spells and damage type Normal
Set FlameDamage = ((Level of Hotline [T] for CasterUnit) x ((Level of CasterTargetUnit) x ((Level of CasterUnit) + ((Integer(UnitsInline)) / 1000))))
Set FireballDamage = ((Level of Hotline [T] for CasterUnit) x ((Integer(UnitsInline)) x ((Level of CasterUnit) / 10)))
Hotline Flame

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Hotline [T]

Actions


Set FireballInt = 14


Set CasterUnit = (Casting unit)


Set CasterTargetUnit = (Target unit of ability being cast)


Set CasterLoc[1] = ((Position of CasterUnit) offset by 50.00 towards ((Facing of CasterUnit) + 0.00) degrees)


Set FlameLocReal = 100.00


Set FireballLocReal = 100.00


For each (Integer A) from 1 to 14, do (Actions)



Loop - Actions




Unit - Create 1 Dummy (Flame) for (Owner of CasterUnit) at (CasterLoc[1] offset by FlameLocReal towards ((Facing of CasterUnit) + 0.00) degrees) facing FlameLocReal degrees




Set FlameUnit = (Last created unit)




Set UnitsInline = (UnitsInline + (Real((Number of units in (Units within 100.00 of (Position of FlameUnit))))))




Set FlameDamage = ((Level of Hotline [T] for CasterUnit) x ((Level of CasterTargetUnit) x ((Level of CasterUnit) + ((Integer(UnitsInline)) / 1000))))




Unit - Cause FlameUnit to damage circular area after 0.00 seconds of radius 100.00 at (Position of FlameUnit), dealing (Real(FlameDamage)) damage of attack type Chaos and damage type Death




Unit - Add a 1.00 second Generic expiration timer to (Last created unit)




Set FlameLocReal = (FlameLocReal + 50.00)




Set FireballInt = (FireballInt - 1)




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






FireballInt Equal to 0





Then - Actions






Set UnitsInline = 0.00






Unit - Create 1 Dummy (Fireball) for (Owner of CasterUnit) at ((Position of CasterUnit) offset by FireballLocReal towards ((Facing of CasterUnit) + 0.00) degrees) facing ((Facing of CasterUnit) + 0.00) degrees






Set FireballUnit = (Last created unit)






Unit - Add a 1.00 second Generic expiration timer to FireballUnit






For each (Integer A) from 1 to 5, do (Actions)







Loop - Actions








For each (Integer A) from 1 to 20, do (Actions)









Loop - Actions










Wait 0.03 seconds










Unit - Move FireballUnit instantly to ((Position of FireballUnit) offset by FireballLocReal towards ((Facing of FireballUnit) + 0.00) degrees)










Set UnitsInline = (UnitsInline + (Real((Number of units in (Units within 100.00 of (Position of FireballUnit))))))










Set FireballDamage = ((Level of Hotline [T] for CasterUnit) x ((Integer(UnitsInline)) x ((Level of CasterUnit) / 10)))










Unit - Cause FireballUnit to damage circular area after 0.00 seconds of radius 100.00 at (Position of FireballUnit), dealing (Real(FireballDamage)) damage of attack type Chaos and damage type Death










Set FireballLocReal = (FireballLocReal + 0.50)





Else - Actions
he requested a spell for the boss not the gate and stuff only the entery witch is entering the arena. witch has nothing to do with the gate.
also i realy dislike how there are waits in that trigger
use this:
stun is harder, so post it here and ill update it.
Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing (((Real((Level of Animate Dead for (Triggering unit)))) x 5.00) x ((Real((Level of (Target unit of ability being cast)))) + (Real((Level of (Triggering unit)))))) damage of attack type Spells and damage type Normal
Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing 500.00 damage of attack type Spells and damage type Normal
library PsyKeeperHorror initializer OnInit
globals
//configurables
private constant integer ABILITY_RAW = 'A000'
// raw of the ability.
private constant real BaseDamage = 100
// base damage of the skill. before all changes.
private constant boolean MultiplyDamage = true
// asks if you want to multiply damage every level of ability.
private constant real MultiplyDamageBy = 2
// if boolean above is true, multiply by?
// math is:
//BaseDamage * (GetUnitAbilityLevel(caster, Horror) * MultiplyDamageBy)
private constant real BaseDamageAoe = 150
// how much does the spell damage per unit in aoe. (maximum)
private constant boolean MultiplyAoeDamage = true
private constant real MultiplyAoeDamageBy = 2
// same as damage, just aoedamage.
private constant real SpellReachedUnitsAoe = 150
// aoe that damages units withing.
// stun unit math from your words:
//The target then get's paused for [(Spell level * Target level) / 100] seconds, then it get’s unpaused.
// based by: Spell level * unit level / 100 = stun duration.
// Example: 1 * 1 / 100 = 0.01
// Example: 5 * 7 / 100 = 0.35 (thats what could happend. i reccomand lowering the math >.>
// level 5 spell * level 7 unit = abuse.
// Example: 10(spell level) * 20(unit level) = 1
// 1 second stun, when hero is level 20. and i guess your game has 45 levels,
// which ends up by:
// 10 * 45 / 100 = 4.5 seconds!
// thats enought to kill 5 units at that level.
private constant real DownBy = 100 // this represents the X * Y / ||DownBy||(100 atm).
// the 100 seconds, so basicly, if you increase, stun duration gets lowered, if you decrease, stun duration get increased.
// defaults - for damaging units -
private constant boolean ATTACK_DEFAULT = false
private constant boolean RANGED_DEFAULT = false
private constant attacktype ATTACK_TYPE_DEFAULT = ATTACK_TYPE_NORMAL
private constant damagetype DAMAGE_TYPE_DEFAULT = DAMAGE_TYPE_NORMAL
private constant weapontype WEAPON_TYPE_DEFAULT = WEAPON_TYPE_WHOKNOWS
private constant boolean ATTACK_DEFAULT_AOE = false
private constant boolean RANGED_DEFAULT_AOE = false
private constant attacktype ATTACK_TYPE_DEFAULT_AOE = ATTACK_TYPE_NORMAL
private constant damagetype DAMAGE_TYPE_DEFAULT_AOE = DAMAGE_TYPE_NORMAL
private constant weapontype WEAPON_TYPE_DEFAULT_AOE = WEAPON_TYPE_WHOKNOWS
//---------
private constant string StunModelPath = "Abilities\\Spells\\Human\\Thunderclap\\ThunderclapTarget.mdl"
// the path of the model to stun the hero, since i use a custom made stun.
private constant string StunModelAttachmentPoint = "overhead"
// attach the path above to the "overhead" of the human
// just like a regular stun effect.
//dont touch below
//------- Arrays
private unit array Caster
private unit array Target
private real array Duration
private real array aoedamage
private effect array stunEffect
//------- Non Arrays
private integer Count = 0
private integer Count2 = 0
//-------------------
endglobals
private function OnLoop takes nothing returns nothing
local integer c = 0
if Count != 0 then
loop
set c = c + 1
if Duration[c] >= 1 then
set Duration[c] = Duration[c] - 0.032
else
call PauseUnit(Target[c], false)
set Target[c] = null
set Duration[c] = 0
call DestroyEffect(stunEffect[c])
set stunEffect[c] = null
set Count2 = Count2 - 1
if Count2 == 0 then
set Count = 0
set Count2 = 0
endif
endif
exitwhen c == Count
endloop
endif
endfunction
private function UNIT_IS_ALIVE takes nothing returns boolean
return GetWidgetLife(GetFilterUnit()) > 0.405
endfunction
private function GroupCall takes nothing returns nothing
local unit t = GetEnumUnit()
local player p = GetOwningPlayer(Caster[Count])
if t != Target[Count] and IsUnitEnemy(t, p) then
call UnitDamageTarget(Caster[Count], t, aoedamage[Count], ATTACK_DEFAULT_AOE, RANGED_DEFAULT_AOE, ATTACK_TYPE_DEFAULT_AOE, DAMAGE_TYPE_DEFAULT_AOE, WEAPON_TYPE_DEFAULT_AOE)
endif
set p = null
set t = null
endfunction
private function OnCast takes nothing returns nothing
local real damage = 0
local group AoeG = CreateGroup()
local boolexpr UNIT_IS_ALIVE_BER = Condition(function UNIT_IS_ALIVE)
set Count = Count + 1
set Count2 = Count2 + 1
set Target[Count] = GetSpellTargetUnit()
set Caster[Count] = GetTriggerUnit()
if MultiplyDamage == true then
set damage = BaseDamage * (GetUnitAbilityLevel(Caster[Count], ABILITY_RAW) * MultiplyDamageBy)
else
set damage = BaseDamage
endif
if MultiplyAoeDamage == true then
set aoedamage[Count] = BaseDamageAoe * (GetUnitAbilityLevel(Caster[Count], ABILITY_RAW) * MultiplyAoeDamageBy)
else
set aoedamage[Count] = BaseDamageAoe
endif
set Duration[Count] = (GetUnitAbilityLevel(Caster[Count], ABILITY_RAW) * GetUnitLevel(Target[Count])) / DownBy
//dont touch below
call PauseUnit(Target[Count], true)
call ResetUnitAnimation(Target[Count])
call IssueImmediateOrder(Target[Count], "stop")
set stunEffect[Count] = AddSpecialEffectTarget(StunModelPath, Target[Count], StunModelAttachmentPoint)
call UnitDamageTarget(Caster[Count], Target[Count], damage, ATTACK_DEFAULT, RANGED_DEFAULT, ATTACK_TYPE_DEFAULT, DAMAGE_TYPE_DEFAULT, WEAPON_TYPE_DEFAULT)
call GroupEnumUnitsInRange(AoeG, GetUnitX(Target[Count]), GetUnitY(Target[Count]), SpellReachedUnitsAoe, UNIT_IS_ALIVE_BER)
call ForGroup(AoeG, function GroupCall)
call DestroyGroup(AoeG)
call DestroyBoolExpr(UNIT_IS_ALIVE_BER)
set Caster[Count] = null
//---------------------------------
endfunction
private function OnCond takes nothing returns boolean
return GetSpellAbilityId() == ABILITY_RAW
endfunction
private function OnInit takes nothing returns nothing
local trigger DM = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(DM, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(DM, Condition(function OnCond))
call TriggerAddAction(DM, function OnCast)
call TimerStart(CreateTimer(), 0.032, true, function OnLoop)
set DM = null
endfunction
endlibrary
when iss my spell´s getting in progess.?
- DO NOT expect or demand people to do your request, people have lives and are busy on other things.
Shift

Events


Unit - A unit Begins casting an ability

Conditions


(Ability being cast) Equal to [Q]Shift

Actions


Set Shiftcaster = (Triggering unit)


Set ShiftTarget = (Target unit of ability being cast)


Set ShiftCasterLoc = (Position of Shiftcaster)


Set ShiftTargetLoc = (Position of (Triggering unit))


Unit - Create 1 DummyShiftCaster for (Triggering player) at ShiftCasterLoc facing Default building facing degrees


Unit - Add a 25.00 second Generic expiration timer to (Last created unit)


Unit - Create 1 DummyShiftTarget for (Triggering player) at ShiftTargetLoc facing Default building facing degrees


Unit - Add a 25.00 second Generic expiration timer to (Last created unit)


Set ShiftDummyCaster = (Position of Shiftcaster)


Set ShiftDummyTarget = (Position of ShiftTarget)


Unit - Move Shiftcaster instantly to ShiftDummyTarget


Unit - Move ShiftTarget instantly to ShiftDummyCaster


Unit - Cause (Triggering unit) to damage (Target unit of ability being cast), dealing ((Real(((Level of [Q]Shift for (Triggering unit)) x 5))) x ((Real((Level of (Target unit of ability being cast)))) + (Real((Level of (Triggering unit)))))) damage of attack type Spells and damage type Normal


-------- stunning the target for [(Spell level * 0.5) + (Target level / 40) --------
Learning JASS

Events

Conditions

Actions


Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




((Triggering unit) Knows a (Programming Language)) Equal to (==) True



Then - Actions




Set JASS_Easy = True



Else - Actions




Set JASS_Easy = False
Set HorrorPause = (((Real((Level of Horror [H] for CasterUnit))) x (Real((Level of CasterTargetUnit)))) / 100.00)
Horror

Events


Unit - A unit Starts the effect of an ability

Conditions


(Ability being cast) Equal to Horror [H]

Actions


Set CasterUnit = (Casting unit)


Set CasterTargetUnit = (Target unit of ability being cast)


Set HorrorDamage = (((Real((Level of CasterUnit))) + 2.00) x ((Real((Level of CasterTargetUnit))) x (Real((Level of Horror [H] for CasterUnit)))))


Set HorrorAreaDamage = ((Real((Level of CasterUnit))) + (Real((Level of CasterTargetUnit))))


Set HorrorPause = (((Real((Level of Horror [H] for CasterUnit))) x (Real((Level of CasterTargetUnit)))) / 100.00)


Unit - Pause CasterTargetUnit


Unit - Create 1 Dummy (Timer/Pause) for (Owner of CasterUnit) at (Position of CasterTargetUnit) facing Default building facing degrees


Set PauseDummyTimer = (Last created unit)


Unit - Add a HorrorPause second Generic expiration timer to PauseDummyTimer


Special Effect - Create a special effect attached to the overhead of CasterTargetUnit using Abilities\Spells\Human\Thunderclap\ThunderclapTarget.mdl


Set SfxStun = (Last created special effect)


Cinematic - Clear the screen of text messages for (All players)


Game - Display to (All players) the text: Unit is Paused


Unit - Cause CasterUnit to damage CasterTargetUnit, dealing HorrorDamage damage of attack type Chaos and damage type Death
Pause Timer

Events


Unit - A unit Dies

Conditions

Actions


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




(Dying unit) Equal to PauseDummyTimer



Then - Actions




Cinematic - Clear the screen of text messages for (All players)




Game - Display to (All players) the text: Unit is Unpaused




Special Effect - Destroy SfxStun




Unit - Unpause CasterTargetUnit



Else - Actions




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






(Dying unit) Equal to CasterTargetUnit





Then - Actions






Unit - Kill PauseDummyTimer






Special Effect - Destroy SfxStun





Else - Actions
Area Damage

Events


Time - Every 0.50 seconds of game time

Conditions


(Number of living Dummy (Timer/Pause) units owned by (Owner of CasterUnit)) Greater than 0

Actions


Unit - Cause CasterUnit to damage circular area after 0.00 seconds of radius 250.00 at (Position of (Random unit from (Units owned by (Owner of CasterUnit) of type Dummy (Timer/Pause)))), dealing HorrorAreaDamage damage of attack type Chaos and damage type Death
hey mckill2009 do you know how i would do the stun for
Name: Shift
Levels: 10
Description: Changes place with the targeted unit (must be an enemy) and deals [(Spell level * 5) * (Target level + Caster level)] damage and stunning the target for [(Spell level * 0.5) + (Target level / 40)
Set StunTarget = (((Real((Level of YOUR SPELL for CasterUnit))) x 0.50) + ((Real((Level of CasterTargetUnit))) / 40.00))
Shift

Events


Unit - A unit Begins casting an ability

Conditions


(Ability being cast) Equal to [Q]Shift

Actions


-------- Setting Spell caster and Target and there Locations --------


Set Shiftcaster = (Triggering unit)


Set ShiftTarget = (Target unit of ability being cast)


Set ShiftCasterLoc = (Position of Shiftcaster)


Set ShiftTargetLoc = (Position of (Triggering unit))


-------- Creating dummy units at locations of spell caster and target --------


Unit - Create 1 DummyShiftCaster for (Triggering player) at ShiftCasterLoc facing Default building facing degrees


Unit - Add a 25.00 second Generic expiration timer to (Last created unit)


Unit - Create 1 DummyShiftTarget for (Triggering player) at ShiftTargetLoc facing Default building facing degrees


Unit - Add a 25.00 second Generic expiration timer to (Last created unit)


-------- Setting location of dummies --------


Set ShiftDummyCaster = (Position of Shiftcaster)


Set ShiftDummyTarget = (Position of ShiftTarget)


-------- Moveing spell caster to location of targetdummy --------


Unit - Move Shiftcaster instantly to ShiftDummyTarget


-------- Moveing spell target to location of casterdummy --------


Unit - Move ShiftTarget instantly to ShiftDummyCaster


-------- This makes the spell caster and it target to swap places --------


-------- ----------------------------------------------------------------------------------------------------------------------------------- --------


-------- Setting Stun time formula --------


Set Shiftstun = (Integer((((Real((Level of [Q]Shift for Shiftcaster))) x 0.50) + ((Real((Level of ShiftTarget))) / 40.00))))


-------- Dealing damage to target of the spell --------


Unit - Cause Shiftcaster to damage ShiftTarget, dealing ((Real(((Level of [Q]Shift for Shiftcaster) x 5))) x ((Real((Level of ShiftTarget))) + (Real((Level of Shiftcaster))))) damage of attack type Spells and damage type Normal


-------- Stunning target of the spell --------


Unit - Create 1 DummyShiftStun for (Triggering player) at (Position of ShiftTarget) facing Default building facing degrees


Unit - Pause ShiftTarget


Unit - Add a (Real(Shiftstun)) second Generic expiration timer to (Last created unit)
