• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Dat Chain EXP System 1.01

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: deepstrasz
Well I thought it'd be a cool system to make and well it was. I needed this in the past, but never got to making it until now. I think others might need/want this as well so I decided to post it here for everyone.

What it does is allow you to catch when killing units and do a feature named combo's where you can generate an effect every 10 kills or something. The main feature of this is called "chaining", you ask what that is? Well it is a thing most people do in complex/intense arena type maps and some other maps as well. You gather creeps nearby and keep going from creep to creep then kill them when there's a lot of them together. This system gives you EXP bonus's and a combo bonus feature for that.

[trigger=]
Dat CES ini
Events
Time - Elapsed game time is 1.00 seconds
Conditions
Actions
Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
Loop - Actions
Unit Group - Add (Picked unit) to Dat_CES_System
Custom script: call TimerStart(udg_Dat_GlobalTimer, 0.031200, true, null)
Player Group - Pick every player in (All players) and do (Actions)
Loop - Actions
Set tempplayer = (Picked player)
Set tempinteger = (Player number of tempplayer)
Set Dat_CES_DefaultExpRate[tempinteger] = 100.00
Hero - Make tempplayer Heroes gain Dat_CES_DefaultExpRate[tempinteger]% experience from future kills
Set Dat_CES_CurrentExpRate[tempinteger] = Dat_CES_DefaultExpRate[tempinteger]
Set Dat_CES_tExpRateRise[tempinteger] = 10.00
Set Dat_CES_tExpRateLower[tempinteger] = 0.50
Countdown Timer - Start Dat_CES_ShowTimer[tempinteger] as a One-shot timer that will expire in 0.01 seconds
Countdown Timer - Pause Dat_CES_ShowTimer[tempinteger]
Countdown Timer - Create a timer window for Dat_CES_ShowTimer[tempinteger] with title ((Name of tempplayer) + 's EXP Rate:)
Set Dat_CES_ShowTimerWindow[tempinteger] = (Last created timer window)
Countdown Timer - Change the color of the time for Dat_CES_ShowTimerWindow[tempinteger] to (0.00%, 0.00%, 0.00%) with 100.00% transparency
Countdown Timer - Hide Dat_CES_ShowTimerWindow[tempinteger]
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
GetLocalPlayer Equal to tempplayer
Then - Actions
Countdown Timer - Show Dat_CES_ShowTimerWindow[tempinteger]
Else - Actions
[/trigger]
[trigger=]
Dat CES Raise
Events
Unit - A unit Dies
Conditions
Actions
Set tempunit = (Triggering unit)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(tempunit is in Dat_CES_System) Equal to False
Then - Actions
Skip remaining actions
Else - Actions
Set tempunit = (Killing unit)
Set tempplayer = (Owner of tempunit)
Set tempinteger = (Player number of tempplayer)
Set tempreal = (Dat_CES_CurrentExpRate[tempinteger] + Dat_CES_tExpRateRise[tempinteger])
Set Dat_CES_CurrentExpRate[tempinteger] = tempreal
Hero - Make tempplayer Heroes gain Dat_CES_CurrentExpRate[tempinteger]% experience from future kills
Set Dat_CES_ComboTrack[tempinteger] = (Dat_CES_ComboTrack[tempinteger] + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(tempplayer is in Dat_CES_PlayerCheck) Equal to False
Then - Actions
Player Group - Add tempplayer to Dat_CES_PlayerCheck
Else - Actions
[/trigger]
[trigger=]
[/trigger]
[trigger=]
Dat CES Lower
Events
Time - Dat_GlobalTimer expires
Conditions
(Number of players in Dat_CES_PlayerCheck) Greater than 0
Actions
Player Group - Pick every player in Dat_CES_PlayerCheck and do (Actions)
Loop - Actions
Set tempplayer = (Picked player)
Set tempinteger = (Player number of tempplayer)
Set tempinteger2 = Dat_CES_ComboTrack[tempinteger]
Set tempreal = (Dat_CES_CurrentExpRate[tempinteger] - Dat_CES_tExpRateLower[tempinteger])
Set Dat_CES_CurrentExpRate[tempinteger] = tempreal
Set tempstring = (<Empty String> + (EXP Rate: + (((String((Integer(tempreal)))) + %) + ( | Combo: + (String(tempinteger2))))))
Countdown Timer - Change the title of Dat_CES_ShowTimerWindow[tempinteger] to tempstring
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Dat_CES_CurrentExpRate[tempinteger] Less than or equal to Dat_CES_DefaultExpRate[tempinteger]
Then - Actions
Set Dat_CES_ComboTrack[tempinteger] = 0
Set tempreal = Dat_CES_DefaultExpRate[tempinteger]
Set tempstring = (<Empty String> + (EXP Rate: + (((String((Integer(tempreal)))) + %) + | Combo: 0)))
Countdown Timer - Change the title of Dat_CES_ShowTimerWindow[tempinteger] to tempstring
Hero - Make tempplayer Heroes gain tempreal% experience from future kills
Player Group - Remove tempplayer from Dat_CES_PlayerCheck
Else - Actions
Hero - Make tempplayer Heroes gain Dat_CES_CurrentExpRate[tempinteger]% experience from future kills

[/trigger]


Requires:
Local Player

Keywords:
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,And now you know your alphabet!,!,Tal0n,Dat,C3,-,@,#,$,%,^,&,*,(,),1,2,3,4,5,6,7,8,9,0,epic,ca
Contents

Dat CES (Map)

Reviews
12th Dec 2015 IcemanBo: For long time as NeedsFix. Rejected. 16:27, 1st Apr 2015 IcemanBo: Read post in thread.

Moderator

M

Moderator

12th Dec 2015
IcemanBo: For long time as NeedsFix. Rejected.

16:27, 1st Apr 2015
IcemanBo: Read post in thread.
 
feature named combo's where you can generate an effect every 10 kills or something
"Effect" may be misleading. It supports adding additional exp to the hero when killing a unit.

  • Custom script: call TimerStart(udg_Dat_GlobalTimer, 0.031200, true, null)
You probably meant 0.031250000?

I can imagine following to be in conflict with some system by user:

  • Set Dat_CES_DefaultExpRate[tempinteger] = 100.00
  • Hero - Make tempplayer Heroes gain Dat_CES_DefaultExpRate[tempinteger]% experience from future kills
^User might want heroes to have different default settings for Exp gaining.

TimerWindow should be optional. It is not needed for such a system.

In your death trigger, just add a trigger condition "TriggeringUnit Is In Group == True".
And please explain why you at all need this unit group. I don't understand it. It seems not useful or correct to me.

If there exists something like "ExpRates" that influence the future Exp gaining it should be configurable in a setup trigger.
Also they should be explained. Add descriptive comments.
 
Top