HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Wisp Wheel

02-07-2007, 03:45 PM#1
Peon-A-Branch
I have been searching around for a tutorial on how to put a wisp wheel into one of my maps. So far all the tutorials i have found have been somthing that i cannot read/understand. Does any1 out there know of a place with a tutorial that is understandable to a retart like me
02-07-2007, 04:32 PM#2
Vexorian
What is a wisp wheel?
02-07-2007, 04:38 PM#3
Peon-A-Branch
A wisp wheel is when a number of wisps are in a straight line (lets say 5)

Ex. >< >< >< >< ><

And the travel around the center wisp clockwise or counter clockwise
lol
02-07-2007, 05:44 PM#4
CommanderZ
Do you know JASS? I worry it won't be possible without JASS...
02-07-2007, 06:23 PM#5
Vexorian
nah.

Anyways , just mass polar projections?
02-07-2007, 06:53 PM#6
Peon-A-Branch
Quote:
Originally Posted by Vexorian
just mass polar projections?
This is the kind of stuff in talking about... WTF IS THAT?!? lol sorry
02-07-2007, 07:13 PM#7
Taur
eh I think someone did a tutorial or something like that on our clan website www.clancbs.com/board, but you'll have to search a bit.
02-07-2007, 07:30 PM#8
Vexorian
Quote:
Originally Posted by Peon-A-Branch
This is the kind of stuff in talking about... WTF IS THAT?!? lol sorry
hmmm

like each 0.1 seconds increase an angle variable by some degrees then have a loop from 1 to (number of extra wisps) and move the ith wisp to a polar projection?
02-07-2007, 07:40 PM#9
rulerofiron99
this it the type of GUI coding we're looking at:

Trigger:
Spin Units
Collapse Events
Time - Every 0.05 seconds of game time
Conditions
Collapse Actions
Collapse For each (Integer A) from 1 to 100, do (Actions)
Collapse Loop - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
(SpinUnit[(Integer A)] is alive) Equal to True
SpinUnitBoolean[(Integer A)] Equal to True
Collapse Then - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
Collapse Or - Any (Conditions) are true
Collapse Conditions
(SpinUnit[(Integer A)] is A ground unit) Equal to True
(SpinUnit[(Integer A)] is A flying unit) Equal to True
Collapse Then - Actions
Set movePointA[(Integer A)] = (Position of SpinUnitCaster[(Integer A)])
Set tempPoint[(Integer A)] = (Position of SpinUnitCaster[(Integer A)])
Set movePointB[(Integer A)] = (tempPoint[(Integer A)] offset by SpinUnitDistance[(Integer A)] towards SpinUnitPosition[(Integer A)] degrees)
Unit - Move SpinUnit[(Integer A)] instantly to movePointB[(Integer A)]
Custom script: call RemoveLocation(udg_movePointA[GetForLoopIndexA()])
Custom script: call RemoveLocation(udg_tempPoint[GetForLoopIndexA()])
Custom script: call RemoveLocation(udg_movePointB[GetForLoopIndexA()])
Set SpinUnitDistance[(Integer A)] = (SpinUnitDistance[(Integer A)] + SpinUnitDistanceChange[(Integer A)])
Set SpinUnitPosition[(Integer A)] = (SpinUnitPosition[(Integer A)] + SpinUnitSpeed[(Integer A)])
Set SpinUnitDistanceChange[(Integer A)] = (SpinUnitDistanceChange[(Integer A)] + SpinUnitDistanceAcceleration[(Integer A)])
Set SpinUnitSpeed[(Integer A)] = (SpinUnitSpeed[(Integer A)] + SpinUnitSpeedAcceleration[(Integer A)])
Else - Actions
Else - Actions


implementation example:
Trigger:
Set tempPoint[0] = (Position of (Triggering unit))
Unit - Create 1 Spiral Lightning for (Owner of (Triggering unit)) at tempPoint[0] facing Default building facing degrees
Unit - Add a 6.00 second Generic expiration timer to (Last created unit)
Custom script: call RemoveLocation(udg_tempPoint[0])
Set SpinUnitNumber = (SpinUnitNumber + 1)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse If - Conditions
SpinUnitNumber Greater than or equal to 99
Collapse Then - Actions
Set SpinUnitNumber = 1
Else - Actions
Set SpinUnit[SpinUnitNumber] = (Last created unit)
Set SpinUnitBoolean[SpinUnitNumber] = True
Set SpinUnitCaster[SpinUnitNumber] = (Triggering unit)
Set SpinUnitDistance[SpinUnitNumber] = 64.00
Set SpinUnitDistanceAcceleration[SpinUnitNumber] = 0.10
Set SpinUnitDistanceChange[SpinUnitNumber] = 1.00
Set SpinUnitSpeed[SpinUnitNumber] = 3.00
Set SpinUnitSpeedAcceleration[SpinUnitNumber] = 0.10


Brief overview: loops a unit spinning around a caster. each unit using this has its own speed, spin speed, acceleration, spin acceleration, starting distance and angle, and its own caster (unit that it spins around).
The way it is now, it will work for at most 100 units at a time. To increase this, increase the For Each Index A part to a high number (anything up to 8191 will do, but that is laggy as hell for some people), and also at the SpinUnitNumber part in the second trigger.

hope that helps....
02-07-2007, 08:06 PM#10
Peon-A-Branch
O i got it thanks guys!