Name | Type | is_array | initial_value |
dontcopy_tempPos | location | No | |
dontcopythis | location | No | |
QJC_Ally | boolean | No | |
QJC_Amount | real | No | |
QJC_AmountReduce | real | No | |
QJC_AoE | boolean | No | |
QJC_AoERadius | real | No | |
QJC_AoESFX | string | No | |
QJC_AttackType | attacktype | No | |
QJC_Caster | unit | No | |
QJC_ChainEffect | abilcode | No | |
QJC_ChainSFX | lightningtype | No | |
QJC_Damage | boolean | No | |
QJC_DamageType | damagetype | No | |
QJC_DummyType | unitcode | No | |
QJC_Enemy | boolean | No | |
QJC_Gold | boolean | No | |
QJC_Heal | boolean | No | |
QJC_Heatlh | boolean | No | |
QJC_JumpCount | integer | No | 1 |
QJC_JumpDelayTime | real | No | |
QJC_JumpRadius | real | No | |
QJC_Leech | boolean | No | |
QJC_Mana | boolean | No | |
QJC_NoTarget | boolean | No | |
QJC_OnePerUnit | boolean | No | |
QJC_Priority | boolean | No | |
QJC_Slow | boolean | No | |
QJC_SlowEffect | abilcode | No | |
QJC_Stun | boolean | No | |
QJC_StunEffect | abilcode | No | |
QJC_TargetPoint | location | No | |
QJC_TargetSFX | string | No | |
QJC_TargetUnit | unit | No | |
QJCS_aGroup | group | Yes | |
QJCS_Ally | boolean | Yes | |
QJCS_Amount | real | Yes | |
QJCS_AmountReduce | real | Yes | |
QJCS_AoE | boolean | Yes | |
QJCS_AoERadius | real | Yes | |
QJCS_AoESFX | string | Yes | |
QJCS_AttackType | attacktype | Yes | |
QJCS_baseDummy | unit | Yes | |
QJCS_Caster | unit | Yes | |
QJCS_CasterSFX | string | Yes | |
QJCS_ChainEffect | abilcode | Yes | |
QJCS_ChainSFX | lightningtype | Yes | |
QJCS_ChainX | real | Yes | |
QJCS_ChainY | real | Yes | |
QJCS_ChainZ | real | Yes | |
QJCS_currUnit | unit | No | |
QJCS_Damage | boolean | Yes | |
QJCS_DamageType | damagetype | Yes | |
QJCS_dGroup | group | Yes | |
QJCS_Dummy | unit | Yes | |
QJCS_dummyGroup | group | No | |
QJCS_dummyPos | location | No | |
QJCS_DummyType | unitcode | Yes | |
QJCS_Enemy | boolean | Yes | |
QJCS_Gold | boolean | Yes | |
QJCS_Heal | boolean | Yes | |
QJCS_Health | boolean | Yes | |
QJCS_index | integer | Yes | |
QJCS_JumpCount | integer | Yes | |
QJCS_JumpDelayTime | real | Yes | |
QJCS_JumpRadius | real | Yes | |
QJCS_Leech | boolean | Yes | |
QJCS_LightningDPos | unit | Yes | |
QJCS_LightningDummy | unit | Yes | |
QJCS_LightningDur | real | Yes | |
QJCS_LightningIndex | integer | Yes | |
QJCS_LightningPos | location | Yes | |
QJCS_LightningSFX | lightning | Yes | |
QJCS_LightningTarget | unit | Yes | |
QJCS_Locust | abilcode | No | |
QJCS_Mana | boolean | Yes | |
QJCS_OnePerUnit | boolean | Yes | |
QJCS_prevTarget | unit | Yes | |
QJCS_Priority | boolean | Yes | |
QJCS_Slow | boolean | Yes | |
QJCS_SlowEffect | abilcode | Yes | |
QJCS_Stun | boolean | Yes | |
QJCS_StunEffect | abilcode | Yes | |
QJCS_SystemCount | integer | Yes | |
QJCS_SystemTime | real | Yes | |
QJCS_TargetSFX | string | Yes | |
QJCS_TargetUnit | unit | Yes | |
QJCS_tempGroup | group | No | |
QJCS_tempPos | location | Yes | |
QJCS_victimGroup | group | No |
JeffQ's Basic Chain System v2.00f
Created Date: 22 January 2010
Author: JeffQ a.k.a JeffreyQ, SmileyJeff
**Official version will only be destributed by ME (JeffQ, JeffreyQ. SmileyJeff). Anyone else who upload this is edited.
I have been working on my AoS map and decided to create a chain system that can do pretty much anything.
Because my AoS have alot of chain spells that are in GUI.
So here it is. After 3 days of hardworking and understanding indexing. I present you JeffQ's Basic Chain System (MUI/GUI using Indexing).
======================
Change Log
======================
v2.00f, 24 Feb 2010
- Chain should no longer jump to buildings/structures.
- Some demo ability can still target buildings, this is because i didn't limit the target allowed at the ability editor. (Nothing to do with the system)
v2.00e, 31 Jan 2010
- Fix lightning height to match cliff or raised terrain.
- Added a raised terrain and cliff to test out.
v2.00d, 25 Jan 2010
- Rearrange Folder for easier implementing in other maps.
- Updated "How To Use" in the README to give a step by step tutorial on how to implement. Please do give it a read.
v2.00c, 24 Jan 2010
- Chain now gets unit height +25. Meaning that if you target a flying unit, the chain height will change accordingly.
- Added a few flying units to let you try out the dynamic chain height.
- Added Chain Globals Trigger to store Locust.
- Chain should now only jump to units that doesn't have locust (This should remove the limitation of where you need to only base all other ability dummies on my dummy as long as your custom dummies have locust).
v2.00b, 23 Jan 2010
- Lightning effect now won't stick to ground.
v2.00a, 23 Jan 2010
- Fix 2 major bugs that make the chain not MUI for chain effect and Stun effect.
- Due to setting the wrong index. Now it has been fixed and should no longer containt any more bugs! Thanks to my sis for testing out this with me [:
v2.00, 22 Jan 2010
- Revamp the chain effect system.
- Remove dummy type. You still have to copy the dummy to your map though.
- Remove finger of death limitations. Now you can choose your chain effect freely.
- Added a new Chain Effect Trigger.
- This allows the chain to follow the unit if it is moving.
- Polish code.
- Fixed a few bugs in code.
- Added Implementation Details Trigger and tidy up the Example 1-8 Implementations.
- Removed all (SFX) ability as now you can use the QJC_ChainSFX to set your lightning effect.
v1.14, 22 Jan 2010
- Added 2 new abilities chain sheep and chain invisible to show the flexibility of this system and how to play around with stun/slow effect to your advantages.
v1.13a, 22 Jan 2010
- Added a sleep ability in the implementation after Kingz asked me what if he wanted to create a chain sleep. (No additional system code added).
- Fix several bugs.
v1.12, 21 Jan 2010
- Periodic Time change to 0.03seconds. And System Time update + 0.03 from 0.01.
v1.11a, 21 Jan 2010
- Fixed Implementation Example Comment for Chain Effect.
v1.11, 21 Jan 2010
- Initial Release.
======================
Customizable Features
======================
- Damage (Boolean: Only damage enemies nomatter what. If you want to damage ally use health and set ally = true)
- Heal (Boolean: Only heal Allies nomatter what)
- Health (Boolean: Make enemy lose health depending on Amount of Damage Type)
- Mana (Boolean: Make enemy lose mana depending on Amount of Damage Type)
- Gold (Boolean: Make enemy lose gold depending on Amount of Damage Type)
- Leech (Boolean: Only affects Health, Mana, Gold. If true, it will transfer Health/Mana/Gold over to the caster)
- Slow (Boolean: If true, it will slow units depending on slow effect)
- Slow Effect (Ability: The ability of slow effect, BASE ALL SLOW ON HUMAN SORCERESS SLOW!!)
- Stun (Boolean: If true, it will stun units depending on stun effect)
- Stun Effect (Ability: The ability of stun effect, BASE ALL STUN ON STORM BOLT!!)
- AoE (Boolean: If true, it will do AoE damage.)
- AoE Radius (Real: Set the radius of AoE Effect)
- Target Effect (String: Lets you insert your effect path)
- Chain Effect (LightningType: Feel free to choose your lightning effect for the chain)
- Amount of Damage Type (Real: Damage, Heal, Health, Mana, Gold)
- Amount Reduction (Real: Each jump reduce a percentage of amount of damage type)
- Jump Count (Integer: How many units it will jump)
- Jump Radius (Real: The range of how far the chain can jump between units)
- Jump Delay (Real: Supports the chain jump delay seconds. 0.10 is the effect of chain lightning, 0.00 is "ALMOST" instant)
- One Per Unit (Boolean: Chain will only hit the unit once if set to true)
- Priority (Boolean: Hit lowest health 1st)
- Ally (Boolean: Hit Ally if set to true, if enemy is also true, it will hit both)
- Enemy (Boolean: Hit Enemy if set to true, if elly is also true, it will hit both)
- Target Unit (Unit: Target Unit, set to No unit if no target or have a target point)
- Point (Point: Target Point, if has a target unit or no target disable this)
- No Target (Boolean: If true, disable point and set unit to no unit)
- Attack (Attack Type: Customize your own attack type)
- Damage Type (Damage Type: Customize your own damage type)
======================
Rules
======================
They are some rules applied to use this system. Is more of a technical limitation.
I will talk more about this after letting you know how to use.
1. Do not touch anything in Chain Create, Chain Jump and Chain Effect Trigger. Those are the system.
2. For implementation examples. Please look at the 8 examples of how flexible you can change the chain to what you want.
3. This system needs you to know the usage of Unit Editor and Ability/Buff Editor.
4. QJC_VarName, This is the only variables you can set.
5. QJCS_VarName are for system variables. So don't even touch it unless you know what you are doing.
======================
How to Use?
======================
If your map is a New Map without any triggers:
1. Open JeffQ's Basic Chain System map.
2. Open Trigger Editor.
3. File > Export Triggers.
4. Open your map.
5. Open Trigger Editor.
6. File > Import Triggers.
7. Remember to copy the Dummy over too.
If your map has existing triggers:
1. Open JeffQ's Basic Chain System map.
2. Copy JeffQ's Chain System folder by right-clicking it and select Copy.
3. Open your map.
4. File > Preference > Check "Automatically create unknown variables while pasting trigger data".
5. Open Object Editor. Create a Dummy base on anything, name it Dummy and give it locust and remove its model. Or just copy the dummy from my map.
6. Open Trigger Editor.
7. Right click on the Map Name, or any other trigger/category/comments, and select Paste.
8. Create a variable by pressing CTRL+B and name it QJCS_ChainZ of type Real, array size of 1.
9. Go to "Chain Create" Trigger, find any Disabled Actions, enable it by right clicking and check Enable.
10.Go to "Chain Jump" Trigger, find any Disabled Actions, enable it by right clicking and check Enable.
11.Go to "Chain effect" Trigger, find any Disabled Actions, enable it by right clicking and check Enable.
======================
Vars you need to set
======================
QJC_Caster : Triggering Unit
- Your caster.
QJC_TargetUnit : Target unit of ability being cast
- Set this to No unit if your spell is target point or instant cast.
QJC_TargetPoint : Target point of ability being cast
- Disable this if you have a target unit or instant cast.
QJC_NoTarget : True/False
- Set this to true if your spell is instant cast.
- Remember to disable QJC_TargetPoint and set QJC_TargetUnit to No Unit.
QJC_Priority : True/False
- If true, it will find the lowest health unit in range first.
QJC_OnePerUnit : True/False
- If true, it will only hit the target once.
QJC_Damage : True/False
- If true, this chain will do damage to enemy depending on QJC_Amount.
QJC_Heal : True/False
- If true, this chain will heal ally depending on QJC_Amount.
QJC_Health : True/False
- If true, it will make enemy lose health.
- If leech is on, it will transfer health over to the caster.
QJC_Mana : True/False
- If true, it will make enemy lose mana.
- If leech is on, it will transfer mana over to the caster.
QJC_Gold : True/False
- If true, it will make enemy lose gold.
- If leech is on, it will transfer gold over to the caster.
QJC_Leech : True/False
- If true, it will apply leeching effect to Health/Mana/Gold type.
QJC_Ally : True/False
- If true, it will hit ally.
- If enemy is also true, it will hit both.
QJC_Enemy : True/False
- If true, it will hit enemy.
- If ally is also true, it will hit both.
QJC_Amount : Real
- The amount of damage type you want this chain to do.
- Eg: QJCGold = true, QJC_Amount = 100, it will make enemy lose 100gold.
QJC_ChainSFX : Lightning Type
- Feel free to choose the lightning type for your chain.
QJC_TargetSFX : String
- Lets you set the special effect for unit when hit by chain.
QJC_AttackType : Attack Type
- Nothing much to say about this.
QJC_DamageType : Damage Type
- Nothing much to say about this.
QJC_AmountReduce: Real
- This is base on percentage.
- If it is 0.00, each chain jump won't reduce QJC_Amount
- If it is 0.10, each chain jump will decreament QJC_Amount by 10%.
- Least is 0.00, Max is 1.00.
QJC_JumpCount : Integer
- Set the amount of jumps for the chain.
QJC_JumpDelayTime: Real
- This is base on seconds.
- Least is 0.00, Max is 1.00
- Set to 0.10 to get the effect of Blizzard Chain Lightning
QJC_JumpRadius : Real
- How far can the chain jump between points.
QJC_Slow : Boolean
- Set to true to slow enemies.
- You have to set QJC_SlowEffect if you want this to work.
QJC_SlowEffect : Ability
- Disable this if Slow Effect is False.
- Slow effect must base on HUMAN SLOW. NO BUTS!
- For example, go to "Ability Editor > Custom Abilities > Neutral Hostile > Units".
- Slow effect will have a (Slow) behind the name.
QJC_Stun : Boolean
- Set to true to stun enemies.
- You have to set QJC_StunEffect if you want this to work.
QJC_StunEffect : Ability
- Disable this if stun effect is false.
- Stun effect must base on STORM BOLT. NO BUTS!
- For example, go to "Ability Editor > Custom Abilities > Neutral Hostile > Units".
- Stun effect will have a (Stun) behind the name)
QJC_AoE : Boolean
- Set to true to do AoE.
- You have to set QJC_AoERadius to make this work. If not the radius will be 0.00.
QJC_AoERadius : Real
- The AoE range you want.
Trigger - Run Chain Create <gen> (checking conditions)
- This must always be included in the trigger of your spell. If not the system won't run.
- Must check conditions.
======================
Limitations
======================
Q: Why i need to base Chain Effect on Finger of Death?
A: I order the dummy unit to cast fingerofdeath order command. And also finger of death let's you do chain effects while channel can't for some reason.
Q: Why i need to base Slow on Human Sorceress Slow?
A: I order the dummy unit to cast Human Sorceress - Slow when i do this. If you base it on other spells, it just won't work.
Q: Why i need to base Stun on Storm Bolt?
A: I order the dummy unit to cast Human Mountain King - Storm Bolt.
Q: Why must dummy be invulnerable and not Locust? And why must it have no model?
A: Because i order the dummy to finger of death the next dummy. If it is locust, it can't be finger of death for the chain effect. No model makes it unselectable on map and won't display health if you hold down ALT key.
Q: Why not ask the dummy to chain the target? Is so much simpler.
A: No. After 3 days of testing. If the target dies the dummy won't be fast enough to cast the chain, and thus, no chain effect.
Q: So where did you hide that dummy? Where can i find it to copy it to my map?
A: It's at the Object Editor > Unit > Custom Units > Night Elf > Melee > Units. There you can find Dummy. Say hi.
======================
Flexibility
======================
1. If you fully know how to use this system. It is quite flexible as you can set the Slow and Stun effect by changing the buffs of the Abilities.
2. Alot of things stack except for a few limitations. You can set all to true and see what happens [:
3. You can target point, target unit or No Target!
======================
Bug Reports & Feedback
======================
Please send an email to [email protected] if you find a bug. Or post it on the comment at Hive Work Shop.
======================
Credits
======================
Thanks to the below who shed some light on me about indexing and leaks.
- Kingz
- YourNameHere
- baassee
- Adiktuz
- Maker
- TitanHex
- D4RK_G4ND4LF
- And other people if i miss out.
Special Thanks to Kingz who show me his simple lightning system. I learned alot from it and after understanding i made 1 my own to fit my system.
***Enjoy this system [: