- Joined
- Feb 8, 2006
- Messages
- 297
Edit2: Well, I guess, problem solved! Thanks, you guys!
I'm pretty sure I'll be ablit to compile the triggers into a smaller format, and the unleakify it, but until then, have fun!
Thanks again
The map and the triggers found on this thread are now of the "fixed" verison.
Edit: By MUI, I thought I meant Multi User Instancable... so the title should actually say "MPI"... sorry for the mixup! ><
Outdated:
"For a small while now, I've been making Gol'em, wich will be an AoS like map. Nothing special there.
What makes it uniqe is the fact that you control huge, badass golem, medival mechas, basicly, to defeat your opponents. A golem is built up of multiple dummy items, that are controlled via triggers. This allows players to actually stomp their enemies, and having upgradeable bodyparts, along with many other fun things....
Here's the problem: It works fine when Player 1 (Red, for those of you inclined), but if you try play it with any other player slot, the system fails miserably... I have no idea what the problem could be. I've checked and rechecked the system, but other then the occasional tiny memory leak, I couldnt find anything...
Please, please, please! If you have any idea as to how to fix this, tell me!
The triggers are right below, the map can be found at the bottom of the post, ready for download.
I thank, in advance, any suggestions that may come my way. "
I'm pretty sure I'll be ablit to compile the triggers into a smaller format, and the unleakify it, but until then, have fun!
Thanks again
The map and the triggers found on this thread are now of the "fixed" verison.
Edit: By MUI, I thought I meant Multi User Instancable... so the title should actually say "MPI"... sorry for the mixup! ><
Outdated:
"For a small while now, I've been making Gol'em, wich will be an AoS like map. Nothing special there.
What makes it uniqe is the fact that you control huge, badass golem, medival mechas, basicly, to defeat your opponents. A golem is built up of multiple dummy items, that are controlled via triggers. This allows players to actually stomp their enemies, and having upgradeable bodyparts, along with many other fun things....
Here's the problem: It works fine when Player 1 (Red, for those of you inclined), but if you try play it with any other player slot, the system fails miserably... I have no idea what the problem could be. I've checked and rechecked the system, but other then the occasional tiny memory leak, I couldnt find anything...
Please, please, please! If you have any idea as to how to fix this, tell me!
The triggers are right below, the map can be found at the bottom of the post, ready for download.
I thank, in advance, any suggestions that may come my way. "
-
Melee Initialization New
-
Events
- Time - Elapsed game time is 0.50 seconds
- Conditions
-
Actions
- Set Players[1] = Player 1 (Red)
- Set Players[2] = Player 2 (Blue)
- Set Players[3] = Player 3 (Teal)
-
For each (Integer A) from 1 to 3, do (Actions)
-
Loop - Actions
- Unit - Create 1 Crumbling Feet (Foot) for Players[(Integer A)] at ((Players[(Integer A)] start location) offset by 200.00 towards 180.00 degrees) facing 270.00 degrees
- Set GolemLegsRight[(Integer A)] = (Last created unit)
- Set GolemFootRight[(Integer A)] = (Position of (Last created unit))
- Unit - Create 1 Crumbling Feet (Foot) for Players[(Integer A)] at ((Players[(Integer A)] start location) offset by 200.00 towards 0.00 degrees) facing 270.00 degrees
- Set GolemLegsLeft[(Integer A)] = (Last created unit)
- Set GolemFootLeft[(Integer A)] = (Position of (Last created unit))
- Unit - Create 1 Crumbling Core (Chest) for Players[(Integer A)] at ((Players[(Integer A)] start location) offset by 0.00 towards 0.00 degrees) facing 270.00 degrees
- Set Golem[(Integer A)] = (Last created unit)
- Set Torso[(Integer A)] = (Position of (Last created unit))
- Unit Group - Add (Last created unit) to Golemz
- Unit - Create 1 Crumbling Skull (Head) for Players[(Integer A)] at ((Players[(Integer A)] start location) offset by 0.00 towards 0.00 degrees) facing 270.00 degrees
- Set GolemHead[(Integer A)] = (Last created unit)
- Unit - Create 1 Crumbling Arm (Shoulder) for Players[(Integer A)] at ((Players[(Integer A)] start location) offset by 100.00 towards 90.00 degrees) facing 270.00 degrees
- Set GolemShoulderLeft[(Integer A)] = (Last created unit)
- Unit - Create 1 Crumbling Arm (Shoulder) for Players[(Integer A)] at ((Players[(Integer A)] start location) offset by 100.00 towards -90.00 degrees) facing 270.00 degrees
- Set GolemShoulderRight[(Integer A)] = (Last created unit)
- Unit - Create 1 Crumbing Fist (Hand) for Players[(Integer A)] at ((Position of GolemShoulderRight[(Integer A)]) offset by 100.00 towards 270.00 degrees) facing 0.00 degrees
- Set GolemHandRight[(Integer A)] = (Last created unit)
- Unit - Create 1 Crumbing Fist (Hand) for (Picked player) at ((Position of GolemShoulderLeft[(Integer A)]) offset by 100.00 towards 270.00 degrees) facing 0.00 degrees
- Set GolemHandLeft[(Integer A)] = (Last created unit)
- Set Moving[(Integer A)] = False
- Set IsitRightLeg[(Integer A)] = True
-
Loop - Actions
- Trigger - Turn on GolemHead <gen>
- Trigger - Turn on Moving Golem <gen>
-
Events
-
Moving Golem
-
Events
- Time - Every 0.10 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in Golemz and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Moving[(Player number of (Owner of (Picked unit)))] Equal to True
-
Then - Actions
- Set Torso[(Player number of (Owner of (Picked unit)))] = ((Position of GolemLegsRight[(Player number of (Owner of (Picked unit)))]) offset by ((Distance between (Position of GolemLegsRight[(Player number of (Owner of (Picked unit)))]) and (Position of GolemLegsLeft[(Player number of (Owner of (Picked unit)))])) / 2
- Unit - Move Golem[(Player number of (Owner of (Picked unit)))] instantly to Torso[(Player number of (Owner of (Picked unit)))]
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
Unit Group - Pick every unit in Golemz and do (Actions)
-
Events
-
GolemHead
-
Events
- Time - Every 0.10 seconds of game time
- Conditions
-
Actions
-
For each (Integer A) from 1 to 3, do (Actions)
-
Loop - Actions
- Set Torso[(Integer A)] = ((Position of GolemLegsRight[(Integer A)]) offset by ((Distance between (Position of GolemLegsRight[(Integer A)]) and (Position of GolemLegsLeft[(Integer A)])) / 2.00) towards (Angle from (Position of GolemLegsRight[(Integer A)]) to (Position of GolemLegsLeft
- Unit - Move GolemHead[(Integer A)] instantly to Torso[(Integer A)], facing (Facing of Golem[(Integer A)]) degrees
- Unit - Order GolemShoulderLeft[(Integer A)] to Move To (Torso[(Integer A)] offset by 100.00 towards ((Facing of Golem[(Integer A)]) - 90.00) degrees)
- Unit - Order GolemShoulderRight[(Integer A)] to Move To (Torso[(Integer A)] offset by 100.00 towards ((Facing of Golem[(Integer A)]) + 90.00) degrees)
- Unit - Move GolemHandLeft[(Integer A)] instantly to ((Position of GolemShoulderLeft[(Integer A)]) offset by 100.00 towards ((Facing of Golem[(Integer A)]) + 0.00) degrees), facing ((Facing of Golem[(Integer A)]) + 90.00) degrees
- Unit - Move GolemHandRight[(Integer A)] instantly to ((Position of GolemShoulderRight[(Integer A)]) offset by 100.00 towards ((Facing of Golem[(Integer A)]) + 0.00) degrees), facing ((Facing of Golem[(Integer A)]) + 90.00) degrees
-
Loop - Actions
-
For each (Integer A) from 1 to 3, do (Actions)
-
Events
-
ChestP1
-
Events
- Unit - A unit Is issued an order targeting a point
-
Conditions
-
And - All (Conditions) are true
-
Conditions
- (Ordered unit) Equal to Golem[(Player number of (Owner of (Ordered unit)))]
-
Conditions
-
And - All (Conditions) are true
-
Actions
- Set Torso[(Player number of (Owner of (Ordered unit)))] = ((Position of GolemLegsRight[(Player number of (Owner of (Ordered unit)))]) offset by ((Distance between (Position of GolemLegsRight[(Player number of (Owner of (Ordered unit)))]) and (Position of GolemLegsLeft[(Player number of (Owner of (Ordered unit)))]))
- Unit - Move Golem[(Player number of (Owner of (Ordered unit)))] instantly to Torso[(Player number of (Owner of (Ordered unit)))]
- Wait 0.10 seconds
- Unit - Order (Ordered unit) to Stop
-
Events
-
ChestP1 OBJ
-
Events
- Unit - A unit Is issued an order targeting an object
-
Conditions
-
And - All (Conditions) are true
-
Conditions
- (Unit-type of (Ordered unit)) Equal to Crumbling Core (Chest)
-
Conditions
-
And - All (Conditions) are true
-
Actions
-
Player Group - Pick every player in (Player group((Owner of (Ordered unit)))) and do (Actions)
-
Loop - Actions
- Set Torso[(Player number of (Picked player))] = ((Position of GolemLegsRight[(Player number of (Picked player))]) offset by ((Distance between (Position of GolemLegsRight[(Player number of (Picked player))]) and (Position of GolemLegsLeft[(Player number of (Picked player))])) / 2.00) towards (Angle from (P
- Unit - Move Golem[(Player number of (Picked player))] instantly to Torso[(Player number of (Picked player))]
- Wait 0.10 seconds
- Unit - Order (Ordered unit) to Stop
-
Loop - Actions
-
Player Group - Pick every player in (Player group((Owner of (Ordered unit)))) and do (Actions)
-
Events
-
ForwardP2
-
Events
- Unit - A unit Finishes casting an ability
-
Conditions
-
And - All (Conditions) are true
-
Conditions
- (Ability being cast) Equal to Move
- (Owner of (Casting unit)) Equal to Player 2 (Blue)
-
Conditions
-
And - All (Conditions) are true
-
Actions
- Unit - Pause Golem[2]
- Set Moving[2] = True
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- IsitRightLeg[2] Equal to True
-
Then - Actions
- Special Effect - Create a special effect at GolemFootRight[2] using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
- Set GolemFX[((2 x 10) + 1)] = (Last created special effect)
- Set GolemFootRight[2] = ((Position of (Casting unit)) offset by 250.00 towards ((Facing of (Casting unit)) - 30.00) degrees)
- Unit - Order GolemLegsRight[2] to Move To GolemFootRight[2]
- Animation - Change GolemLegsRight[2] flying height to 200.00 at 100.00
- Wait 2.00 game-time seconds
- Special Effect - Destroy GolemFX[((2 x 10) + 1)]
- Animation - Change GolemLegsRight[2] flying height to 0.00 at 150.00
- Wait 1.00 game-time seconds
- Special Effect - Create a special effect at GolemFootRight[2] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
- Set GolemFX[((2 x 10) + 1)] = (Last created special effect)
- Unit - Cause (Casting unit) to damage circular area after 0.00 seconds of radius 100.00 at GolemFootRight[2], dealing 500.00 damage of attack type Chaos and damage type Normal
- Destructible - Pick every destructible within 125.00 of GolemFootRight[2] and do (Destructible - Kill (Picked destructible))
- Unit - Unpause Golem[2]
- Wait 1.00 game-time seconds
- Special Effect - Destroy GolemFX[((2 x 10) + 1)]
- Set Moving[2] = False
- Set IsitRightLeg[2] = False
-
Else - Actions
- Special Effect - Create a special effect at GolemFootLeft[2] using Objects\Spawnmodels\Undead\ImpaleTargetDust\ImpaleTargetDust.mdl
- Set GolemFX[((2 x 10) + 2)] = (Last created special effect)
- Set GolemFootLeft[2] = ((Position of (Casting unit)) offset by 250.00 towards ((Facing of (Casting unit)) + 30.00) degrees)
- Unit - Order GolemLegsLeft[2] to Move To GolemFootLeft[2]
- Animation - Change GolemLegsLeft[2] flying height to 200.00 at 100.00
- Wait 2.00 game-time seconds
- Special Effect - Destroy GolemFX[((2 x 10) + 2)]
- Animation - Change GolemLegsLeft[2] flying height to 0.00 at 150.00
- Wait 1.00 game-time seconds
- Special Effect - Create a special effect at GolemFootLeft[2] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
- Set GolemFX[((2 x 10) + 2)] = (Last created special effect)
- Unit - Cause (Casting unit) to damage circular area after 0.00 seconds of radius 100.00 at GolemFootLeft[2], dealing 500.00 damage of attack type Chaos and damage type Normal
- Destructible - Pick every destructible within 125.00 of GolemFootLeft[2] and do (Destructible - Kill (Picked destructible))
- Unit - Unpause Golem[2]
- Wait 1.00 game-time seconds
- Special Effect - Destroy GolemFX[((2 x 10) + 2)]
- Set Moving[2] = False
- Set IsitRightLeg[2] = True
-
If - Conditions
-
Events
Attachments
Last edited: