Tutorial Skill Spell Books

HydraRancher

Truth begins in lies
Reaction score
197
Skill System
By HydraRancher



Contents
  1. What will we learn?
  2. What kind of map is it for?
  3. Pros and Cons
  4. Object Editor Work
  5. Trigger Editor Work
  6. Q&A



1. What will we learn?
This tutorial will cover the basics such as using Channel as a dummy ability, nulling the default starting stats and stats gained over level, using the spell book ability and more advanced things, such as Multiboards, complex lines of codes and multiple other useful techniques.

By the end of this tutorial, you should have mastered this technique, however, if you have been unsatisfied with the result of the time [del]that has been wasted[/del] it has taken to review, attempt to learn, and understand this tutorial, I shall fully compensate your time with a much larger detailed explanation of the significant topic, as to help others understand how to create a stat adding spell book.

A warning to all who attempt to acheive a greater knowledge and understanding of the capabilities of the WE, if you currently do not think you can learn this topic succesfully, feel free to withdraw from reading, and read some easier topics, before coming on to this complex design.

If at any point you are completely confused at something and it is simply because you are unknowledgeable of the topic, stop reading this immediately as it is made for slightly advanced users, and not recommended for New beginners ("Newbs"). If you are hoping for a game better than DotA, an RPG which is outstanding, magnificent, and the best possibly accomplishable, but you do not know where to begin, this isn't it. The code will only play with your minds and confuse you to a state beyond confusability.

So be warned, once you begin reading from this point, I am assuming you know what I am explaining.



2. What Kind of Map is it for?
That is a very good question indeed, this is intended for ORPG games or/and any game with a hero really.
What this is is a different method of researching stats, so your hero slots are all freed up, and no pesky ESC to add stats.

The reason why I didnt say "How to add stats using hero abilities" because:
1. Less obvious. It's less obvious, it's, for the less advanced, nearly self explanatory, and it causes lots of ORPG's to use NPC's to add abilities, instead of the handy, warcraft built, hero abilities.
2. Eye - Candy. Complex systems with awesome looks appeal to the brain. This system, doesn't have an annoying "1" in a tiny box next to the large + in a slot of your inventory, but simply has 2 abilities, one active, one disabled, to create this nice look of new abilities/stats learnable, without the boring, original hero ability design for adding stats.
3. Do-able. Before creating this tutorial, I tried many a time using Hero abilities, but never accomplished it, finally, I stumbled upon a milestone which caused a specific brain wave to say...Hey! Spell books! You may be able to use Hero Abilities in a different way (Dark Invasion), but I dont think in the way accomplished in this tutorial.

That's my LED solution!

Test Map is at the bottom.



3. Pros and Cons
Pros:
You can use your hero slots.
Better eye-candy wise.
More "Customizable"
Its GUI


Cons
Takes up one skill slot.
More complicated than using hero slots.
Triggering can be a bit tedious




4. Object Editor Work
Well lets get started!
First on our list, is the hero, make sure you set all its stat values to 0 thats:
Starting Strength
Starting Agility
Starting Intelligence
Agility Per Level
Strength Per Level
Intelligence Per Level


Great job! Now we will use an easily customizable spell - Channel!
Find this spell by holding cntrl+f and typing in channel, you will first come to "Possession (Channeling)" so just search (cntrl+f) for it again, and voila!
channelpic.jpg

Now C n P this (Cntrl+C and Cntrl+V for all your people who are unaware) and rename it to "Agility" (or anything to do with agility).

Make it a unit ability and set its levels to 1 (if it isnt already). Make the description something like "Gives agility" (you'd probably want to be a bit more imaginative :p)
You will have to change most of the settings to make it a dummy ability:

Art Caster - Change this to what ever you want, its "Dark Portal - Archimonde" for me.
Art Effect - Wipe this clean.
Art Icon - Again can be anything.
Art Target - Clean.
Art Duration - 0.00
Data - base order ID - This is something you have to remember, it HAS to be different for all your different copies, for your first it can remain channel.
Data - Disable other abilities - False.
Data - Follow through time - 0.00.
Data - Options - Visible.
Data - Target type - Instant
//this is already that by default

The rest either dont matter or I have already told you to set (such as Hero ability - false).

Copy your ability twice, and name these the OTHER attributes. The ONLY thing you have to change (apart from tooltips) is the Base ID, otherwise all three spells will be casted at the same time (and you dont want that!).

The main part that plays into this is Spellbooks. Find the spell book ability (cntrl+f) and search for "Spell Book", it should come up right away, copy this and follow these instructions:

Art - Button Position X - 3 //This is not essential, but looks better.
Art - Button Position Y - 1
Art - Icon - Once again can be ANYTHING, but it is best if it has a "turn off" version (or DISBTN if its imported!).
Data - Spell list - Add your three spells, Agi, Str and Int.
Stats - Item Ability - False this should make it a unit ability
Tooltips - Anything, preferably something like "New Stats!".


This will be your spell book ability, add it to your hero.
Now find Critical strike, and copy it (it doesnt matter what type).
Give it one level and make it a unit ability.
The only values you actually have to change (apart from Tooltips) is the "Damage Chance", set this to 0, and the Button X and Y, to make this effective, copy the ones off your Spellbook ability.

Call it "No new stats" and give it the DISBTN/Turn off icon of your New stats ability.

This concludes the object editor part.



5. Trigger Editor Work

Now, for the fun bit!

Here is your initiallization trigger, this is essential.
Trigger:
  • Initiallization
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Game - Display to (All players) the text: Type "level" to lev...
      • -------- The 10 is the ammount of players there are. --------
        • Do Multiple ActionsFor each (Integer A) from 1 to 10, do (Actions)
          • Loop - Actions
            • Set StatGain[(Integer A)] = 1
            • Set CurrentLevel[(Integer A)] = 1
            • Set Level[(Integer A)] = 1
            • Set PointsLeft[(Integer A)] = 3


Explanation:
StatGain is ONLY if your using this type of stat system (I'll explain it more later)
Current level is to deliver the right points
Level is the same
PointsLeft is the ammount of points you have left (that one was SOOO difficult, took my dad 20 minutes)


Here is the Leveling trigger, this gives points when you level.

Trigger:
  • Level Up
    • Events
      • Unit - A unit Gains a level
    • Conditions
    • Actions
      • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PointsLeft[(Player number of (Owner of (Triggering unit)))] Equal to (==) 0
        • Then - Actions
          • Unit - Add New Stats! to (Triggering unit)
          • Unit - Remove No New Stats from (Triggering unit)
        • Else - Actions
      • Set CurrentLevel[(Player number of (Owner of (Triggering unit)))] = (Hero level of (Triggering unit))
      • Set PointsLeft[(Player number of (Owner of (Triggering unit)))] = (PointsLeft[(Player number of (Owner of (Triggering unit)))] + (3 x (CurrentLevel[(Player number of (Owner of (Triggering unit)))] - Level[(Player number of (Owner of (Triggering unit)))])))
      • Set Level[(Player number of (Owner of (Triggering unit)))] = (Hero level of (Triggering unit))


Set Current Level - Set the current Level

Now this is a very complicated line let me explain:
Trigger:
  • Set PointsLeft[(Player number of (Owner of (Triggering unit)))] = (PointsLeft[(Player number of (Owner of (Triggering unit)))] + (3 x (CurrentLevel[(Player number of (Owner of (Triggering unit)))] - Level[(Player number of (Owner of (Triggering unit)))])))


Set Points left is obviously set the variable.
It says Points Left + [something] which means it only wants to increase the value. 3 x obviously means mutiply. Current Level - Level, this checks the level difference, and gives you 3x points.

Set Level - This is to make sure Level keeps up and doesnt add any extra points.

If statement
- This is checking wether you have the Add New stats ability or not. It adds the add new stats ability if you do not.




Intelligence:
Trigger:
  • Intelligence
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to (==) Mind Skill
      • PointsLeft[(Player number of (Owner of (Triggering unit)))] Greater than (>) 0
    • Actions
      • Set PointsLeft[(Player number of (Owner of (Triggering unit)))] = (PointsLeft[(Player number of (Owner of (Triggering unit)))] - 1)
      • Hero - Modify Intelligence of (Triggering unit): Add StatGain[(Player number of (Owner of (Triggering unit)))]
      • Set StatJump[(Player number of (Owner of (Triggering unit)))] = (StatJump[(Player number of (Owner of (Triggering unit)))] + 1)
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • StatJump[(Player number of (Owner of (Triggering unit)))] Equal to (==) 3
          • Then - Actions
            • Set StatJump[(Player number of (Owner of (Triggering unit)))] = 0
            • Set StatGain[(Player number of (Owner of (Triggering unit)))] = (StatGain[(Player number of (Owner of (Triggering unit)))] + 1)
          • Else - Actions
        • Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • PointsLeft[(Player number of (Owner of (Triggering unit)))] Equal to (==) 0
          • Then - Actions
            • Unit - Remove New Stats! from (Triggering unit)
            • Unit - Add No New Stats to (Triggering unit)
          • Else - Actions


Unit - Unit begins casting - this is only so it reacts alot faster, it does NOT effect the ability.

Conditions - Quite obvious.

Set PointsLeft = PointsLeft - 1 - Again quite obvious.

Hero - Modify stats - You know what I'm gonna say........ADDS THE ABILITY! Oh wait I mean increases the stats...That one was hard.

Set StatJump
- This is only if your using my system of adding stats.
If Statement - Again like the above.

IMPORTANT
The way my system works, is the first 3 stats add 1 point, the second 3 add 2, the third 3 and 3 etc.


So...
The second if - Checks wether you have no points left, if so, adds the dummy ability, if not, does nothing.




And that concludes the trigger section.



5.5. BONUSES
(These have test maps below)

Stat Checking
-Copy your channel one more time, and call it Change Stats, add it to the spellbook.
-Use the following trigger.
Trigger:
  • Check Stats
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Check Stats
    • Actions
      • Game - Display to (Player group((Owner of (Triggering unit)))) the text: (You have + ((String(PointsLeft[(Player number of (Owner of (Triggering unit)))])) + points remaining.))




Alternatively, you can use a Multiboard, this requires you to modify the majority of the triggers. This way, you do not need to have the "Change Stats" Ability
Trigger:
  • Multiboard Initialization
    • Events
      • Time - Elapsed game time is 0.01 seconds
    • Conditions
    • Actions
      • For each (Integer A) from 1 to (Number of players in (All players)), do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 4 columns and 2 rows, titled Points Left
          • Set StatMultiboard[(Integer A)] = (Last created multiboard)
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to Points Left
          • Multiboard - Set the text for (Last created multiboard) item in column 2, row 1 to Strength
          • Multiboard - Set the text for (Last created multiboard) item in column 3, row 1 to Agility
          • Multiboard - Set the text for (Last created multiboard) item in column 4, row 1 to Intelligence
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row 2 to (String(PointsLeft[(Integer A)]))
          • Multiboard - Set the text for (Last created multiboard) item in column 2, row 2 to (String(StrengthGained[(Integer A)]))
          • Multiboard - Set the text for (Last created multiboard) item in column 3, row 2 to (String(AgilityGained[(Integer A)]))
          • Multiboard - Set the text for (Last created multiboard) item in column 4, row 2 to (String(IntelligenceGained[(Integer A)]))
          • Multiboard - Set the display style for (Last created multiboard) item in column 0, row 0 to Show text and Hide icons
          • For each (Integer B) from 1 to 4, do (Actions)
            • Loop - Actions
              • Multiboard - Set the width for (Last created multiboard) item in column (Integer B), row 1 to 7.50% of the total screen width
              • Multiboard - Set the width for (Last created multiboard) item in column (Integer B), row 2 to 7.50% of the total screen width
          • Custom script: if Player(GetForLoopIndexA()-1) == GetLocalPlayer() then
          • Custom script: call MultiboardDisplay(bj_lastCreatedMultiboard,true)
          • Custom script: else
          • Custom script: call MultiboardDisplay(bj_lastCreatedMultiboard,false)
          • Custom script: endif
          • Multiboard - Minimize (Last created multiboard)
          • Multiboard - Maximize (Last created multiboard)


Trigger:
  • Multiboard Periodic
    • Events
      • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
      • For each (Integer A) from 1 to (Number of players in (All players)), do (Actions)
        • Loop - Actions
          • Multiboard - Set the text for StatMultiboard[(Integer A)] item in column 1, row 2 to (String(PointsLeft[(Integer A)]))
          • Multiboard - Set the text for StatMultiboard[(Integer A)] item in column 2, row 2 to (String(StrengthGained[(Integer A)]))
          • Multiboard - Set the text for StatMultiboard[(Integer A)] item in column 3, row 2 to (String(AgilityGained[(Integer A)]))
          • Multiboard - Set the text for StatMultiboard[(Integer A)] item in column 4, row 2 to (String(IntelligenceGained[(Integer A)]))

And the Strength/Agility/Intelligence:

Trigger:
  • Intelligence
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Mind Skill
      • PointsLeft[(Player number of (Owner of (Triggering unit)))] Greater than 0
    • Actions
      • Set PointsLeft[(Player number of (Owner of (Triggering unit)))] = (PointsLeft[(Player number of (Owner of (Triggering unit)))] - 1)
      • Hero - Modify Intelligence of (Triggering unit): Add StatGain[(Player number of (Owner of (Triggering unit)))]
      • Set IntelligenceGained[(Player number of (Owner of (Triggering unit)))] = (IntelligenceGained[(Player number of (Owner of (Triggering unit)))] + StatGain[(Player number of (Owner of (Triggering unit)))])
      • Set StatJump[(Player number of (Owner of (Triggering unit)))] = (StatJump[(Player number of (Owner of (Triggering unit)))] + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • StatJump[(Player number of (Owner of (Triggering unit)))] Equal to 3
        • Then - Actions
          • Set StatJump[(Player number of (Owner of (Triggering unit)))] = 0
          • Set StatGain[(Player number of (Owner of (Triggering unit)))] = (StatGain[(Player number of (Owner of (Triggering unit)))] + 1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PointsLeft[(Player number of (Owner of (Triggering unit)))] Equal to 0
        • Then - Actions
          • Unit - Remove New Stats! from (Triggering unit)
          • Unit - Add No New Stats to (Triggering unit)
          • Wait 1.00 seconds
          • Unit - Order (Triggering unit) to Stop
        • Else - Actions

Trigger:
  • Agility
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Leg Skill
      • PointsLeft[(Player number of (Owner of (Triggering unit)))] Greater than 0
    • Actions
      • Set PointsLeft[(Player number of (Owner of (Triggering unit)))] = (PointsLeft[(Player number of (Owner of (Triggering unit)))] - 1)
      • Hero - Modify Agility of (Triggering unit): Add StatGain[(Player number of (Owner of (Triggering unit)))]
      • Set AgilityGained[(Player number of (Owner of (Triggering unit)))] = (AgilityGained[(Player number of (Owner of (Triggering unit)))] + StatGain[(Player number of (Owner of (Triggering unit)))])
      • Set StatJump[(Player number of (Owner of (Triggering unit)))] = (StatJump[(Player number of (Owner of (Triggering unit)))] + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • StatJump[(Player number of (Owner of (Triggering unit)))] Equal to 3
        • Then - Actions
          • Set StatJump[(Player number of (Owner of (Triggering unit)))] = 0
          • Set StatGain[(Player number of (Owner of (Triggering unit)))] = (StatGain[(Player number of (Owner of (Triggering unit)))] + 1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PointsLeft[(Player number of (Owner of (Triggering unit)))] Equal to 0
        • Then - Actions
          • Unit - Remove New Stats! from (Triggering unit)
          • Unit - Add No New Stats to (Triggering unit)
          • Wait 1.00 seconds
          • Unit - Order (Triggering unit) to Stop
        • Else - Actions


Trigger:
  • Strength
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Ability being cast) Equal to Hand Skill
      • PointsLeft[(Player number of (Owner of (Triggering unit)))] Greater than 0
    • Actions
      • Set PointsLeft[(Player number of (Owner of (Triggering unit)))] = (PointsLeft[(Player number of (Owner of (Triggering unit)))] - 1)
      • Hero - Modify Strength of (Triggering unit): Add StatGain[(Player number of (Owner of (Triggering unit)))]
      • Set StrengthGained[(Player number of (Owner of (Triggering unit)))] = (StrengthGained[(Player number of (Owner of (Triggering unit)))] + StatGain[(Player number of (Owner of (Triggering unit)))])
      • Set StatJump[(Player number of (Owner of (Triggering unit)))] = (StatJump[(Player number of (Owner of (Triggering unit)))] + 1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • StatJump[(Player number of (Owner of (Triggering unit)))] Equal to 3
        • Then - Actions
          • Set StatJump[(Player number of (Owner of (Triggering unit)))] = 0
          • Set StatGain[(Player number of (Owner of (Triggering unit)))] = (StatGain[(Player number of (Owner of (Triggering unit)))] + 1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • PointsLeft[(Player number of (Owner of (Triggering unit)))] Equal to 0
        • Then - Actions
          • Unit - Remove New Stats! from (Triggering unit)
          • Unit - Add No New Stats to (Triggering unit)
          • Wait 1.00 seconds
          • Unit - Order (Triggering unit) to Stop
        • Else - Actions




6. Q&A
My Q&A doesnt beat Acehart's, but ahwell.


Q:
I dont understand any of this!
A:Tell me what!
A2:Too bad.

Q:The abilities all messed up! It said "Add "My Spell" to (Triggering Unit)
A:
As explained above, replace it.

Q:You Suck!
A:Thanks >.>
A2:O RLY?

Q:This was very helpful, my friends said THATS AWESOME!
A:No they didnt...

Q:Ok maybe not, but they liked it!
A:Thanks.

Q:YOU DIDNT FINISH YOUR Q&A!!!
A:I ran out of ideas.
A2:There havent been enough complaints....




Please comment on all good and bad and tell me what I need to improve (this is my first tut!)


Ingame Pictures:
skillpic.jpg



ChangeLog
v1.0: Created
v1.1: Fixed the "New Skills" not popping up bugg
v1.2: Fixed the "New Skills" bugg properly
v1.3: Removed the "Stop", it did not allow the effect to show.
v1.4: Re-added the "Stop" with a wait in it, as it froze the hero when I removed the spellbook.
v1.5: You can now view your stats.
v1.5 Multiboard: Same as above, but with Multiboards.
v1.5b: Fixed some typing errors
v1.5c: Added extra things...New topic and more info on the "What does it do" topic.
v1.5d: Fixed a small bugg in the triggering.

Credits
-Me Myself :D
-Nexor, for unintentionally helping me by posting his GetLocalPlayer() multiboard triggger.
-Those who helped me before I released this:
  • Komaqtion
  • Azlier
  • All the people who Commented
  • I Probably forgot LOADS of people, if you want credit, link your thread please



Test map:
 

Attachments

  • Skill System Fixed 1.4.w3x
    21.2 KB · Views: 531
  • Skill System v1.5.w3x
    21.6 KB · Views: 413
  • Skill System v1.5 Multiboard.w3x
    23.1 KB · Views: 413

Azlier

Old World Ghost
Reaction score
461
I level up the Paladin in the test map and he can't learn above 3 stat bonuses.

At least if I use the 3 starting bonuses he has, and then level him.
 

HydraRancher

Truth begins in lies
Reaction score
197
I level up the Paladin in the test map and he can't learn above 3 stat bonuses.

At least if I use the 3 starting bonuses he has, and then level him.

Yes I have just noticed the error[del], it is supposed to be (in the level trigger)
NOT equal to 0, I will fix this and re-upload the map.[/del]
I've fixed this bugg.
 

Nukitty

New Member
Reaction score
1
Epic

Nice work on the map Hydra, Still don't understand trigger's though, I'm just your ideas man...Kitty xP
 

Furby

Current occupation: News poster
Reaction score
144
Pros:
...
Its GUI

I lol'd. :D

Btw, I didn't really look through triggers but I've tested map, leveled up Strength 3 times then hero bugged and I could not move with him, he kept casting something forever.. :rolleyes:
 

HydraRancher

Truth begins in lies
Reaction score
197
Sure, I'll get on it right away.

EDIT:

Implemented perfectly.

You'll be happy to know, Nexor, that I used this thread as influence for the Multiboard:
I use the JASS version of globals variable, so there is no "udg_" before it, but if you prefer GUI, just make a Multiboard array variable named Multiboard.

Trigger:
  • Multiboard init
    • Events
      • Time - Elapsed game time is 0.10 seconds
    • Conditions
    • Actions
      • For each (Integer A) from 1 to (Number of players in (All players)), do (Actions)
        • Loop - Actions
          • Multiboard - Create a multiboard with 6 columns and 4 rows, titled Game Time - 0:00
          • Custom script: set Multiboard[GetForLoopIndexA()] = bj_lastCreatedMultiboard
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to |cff316ac5Name:
          • Multiboard - Set the width for (Last created multiboard) item in column 0, row 0 to 8.50% of the total screen width
          • Multiboard - Set the display style for (Last created multiboard) item in column 0, row 0 to Show text and Hide icons
          • Custom script: if Player(GetForLoopIndexA()-1) == GetLocalPlayer() then
          • Custom script: call MultiboardDisplay(bj_lastCreatedMultiboard,true)
          • Custom script: else
          • Custom script: call MultiboardDisplay(bj_lastCreatedMultiboard,false)
          • Custom script: endif
          • Multiboard - Minimize (Last created multiboard)
          • Multiboard - Maximize (Last created multiboard)
 

Nexor

...
Reaction score
74
Hehe, I lol'd at that one :D

I had A LOT of issues using multiboards locally, so now I'm a master at it :D

Thanks anyway for using my local Multiboard :D
+rep ! :D :D

EDIT: I just tested the map, and have a question: The multiboard displays the points spent on each stat? if so there's no problem with it.
 

tooltiperror

Super Moderator
Reaction score
231
I don't think anyone would really use this, except on rare occasions.

All, GUI is not a pro, even for GUI users.
 

Laiev

Hey Listen!!
Reaction score
188
Little question.....

why you use Unit - A unit Begins casting an ability instead of Start effect of?
 

HydraRancher

Truth begins in lies
Reaction score
197
Hehe, I lol'd at that one :D

I had A LOT of issues using multiboards locally, so now I'm a master at it :D

Thanks anyway for using my local Multiboard :D
+rep ! :D :D

EDIT: I just tested the map, and have a question: The multiboard displays the points spent on each stat? if so there's no problem with it.

Yes, its simply if somebody wants to balance their stats out and dont want to figure out triangle numbers.



I don't think anyone would really use this, except on rare occasions.

All, GUI is not a pro, even for GUI users.

So youre saying GUI is not very good coding?



Little question.....

why you use Unit - A unit Begins casting an ability instead of Start effect of?

Said in the Tutorial, to react faster, tested it, and does not effect the ability.
 

tooltiperror

Super Moderator
Reaction score
231
How did you test it? Was it benchmarked correctly?

Also, GUI is horrible. JASS provides so much less code for the same stuff, it`s scary.
 

Nexor

...
Reaction score
74
begins casting fires when the unit starts the animation of the spell, it's similar to the event "A unit is attacked"
 

Anachron

New Member
Reaction score
53
Dude sorry, this is horrible xD You should make it bigger in all, allowing more customizing, give more features to it, like automatic teching, and should add the abilities to the units by default, maybe allow an unittypebased attribute system.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top