- Joined
- Jul 14, 2011
- Messages
- 3,213
Hi again, and thank you for reading.
I made a combat system a time ago, but checking for leaks and else wanted to improve it the best I could. I have tested this one and works fine with me alone, haven't tested with others yet. I'd like to know if there's a way to improve it.
The map is an RPG and has about 16 Combat Regions, and the combat system has to work simultaneously for at least 5 of them at the same time. This is just 1, and I need to know if it's good for making it 15 more times in the same trigger (would be long and heavy to load)
If improving involves JASS; teach me how to, or kindly do it for me, since I don't know enough JASS nor vJASS to do this.
Thanks!
I made a combat system a time ago, but checking for leaks and else wanted to improve it the best I could. I have tested this one and works fine with me alone, haven't tested with others yet. I'd like to know if there's a way to improve it.
The map is an RPG and has about 16 Combat Regions, and the combat system has to work simultaneously for at least 5 of them at the same time. This is just 1, and I need to know if it's good for making it 15 more times in the same trigger (would be long and heavy to load)
If improving involves JASS; teach me how to, or kindly do it for me, since I don't know enough JASS nor vJASS to do this.
-
Combat System 2 COMMENTED
-
Events
- Time - SpawnTimer expires
- Conditions
-
Actions
- -------- Global --------
- Set UONH = (Units owned by Neutral Hostile)
- -------- Where the creep count appear is created. --------
- Set CCP[1] = (Center of BeachCombat <gen>)
- -------- Pre-setting the groups. --------
- Set Beach[1] = (Units in BeachCombat <gen> matching ((((Matching unit) is alive) Equal to True) and (((Matching unit) is in UONH) Equal to True)))
- Set Beach[2] = (Units in BeachCombat <gen> matching (((Matching unit) is A Hero) Equal to True))
- Set Beach[3] = (Units in BeachEscape <gen> matching (((Matching unit) is A Hero) Equal to True))
- Set Beach[4] = (Units in BeachCombat <gen> owned by Neutral Hostile)
- -------- Creating the creep count. --------
- Floating Text - Create floating text that reads (Creeps Left: + (|cfffff700 + ((String((Number of units in Beach[1]))) + |r))) at CCP[1] with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
- Floating Text - Change (Last created floating text): Disable permanence
- Floating Text - Change the lifespan of (Last created floating text) to 1.20 seconds
- -------- Removing the Creep Count point. --------
- Custom script: call RemoveLocation(udg_CCP[1])
- -------- Saving Position of Hero and Sending to combat --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Random integer number between 1 and 100) Less than or equal to (Random integer number between 4 and 16)
- (Number of units in Beach[2]) Equal to 0
-
Then - Actions
-
Unit Group - Pick every unit in Beach[0] and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- ((Picked unit) has buff Safety ) Equal to False
-
Then - Actions
- Set Temp_Int = (Player number of (Owner of (Picked unit)))
- Set Temp_HeroPos[Temp_Int] = (Position of (Picked unit))
- Set Temp_RandomHeroSpawn[Temp_Int] = (Random point in BeachSpawn <gen>)
- Custom script: if GetLocalPlayer() == GetOwningPlayer(GetEnumUnit()) then
- Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
- Custom script: endif
- Unit - Move (Picked unit) instantly to Temp_RandomHeroSpawn[(Player number of (Owner of (Picked unit)))]
- Custom script: if GetLocalPlayer() == GetOwningPlayer(GetEnumUnit()) then
- Cinematic - Fade in over 1.00 seconds using texture White Mask and color ((Random real number between 0.00 and 100.00)%, (Random real number between 0.00 and 100.00)%, (Random real number between 0.00 and 100.00)%) with 0.00% transparency
- Custom script: endif
- Custom script: call RemoveLocation(udg_Temp_RandomHeroSpawn[udg_Temp_Int])
- Unit Group - Add (Picked unit) to Beach[2]
- Unit Group - Remove (Picked unit) from Beach[0]
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
- -------- Spawning the Creeps --------
- Set Int_BC = ((Number of units in Beach[4]) x 2)
- Set Int_RBC = (Random integer number between 1 and Int_BC)
-
For each (Integer A) from 1 to Int_RBC, do (Actions)
-
Loop - Actions
- Set Temp_PointArray[2] = (Random point in BeachSpawn <gen>)
- Unit - Create 1 BeachCreeps[(Random integer number between 1 and 7)] for Neutral Hostile at Temp_PointArray[2] facing Default building facing degrees
- Custom script: call RemoveLocation(udg_Temp_PointArray[2])
-
Loop - Actions
-
Unit Group - Pick every unit in Beach[0] and do (Actions)
- Else - Actions
-
If - Conditions
- -------- Beach Group Cleaning --------
- -------- Cleaning the mess / Restoring positions --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- (Number of units in Beach[2]) Equal to (Number of units in Beach[3])
- (Number of units in Beach[2]) Equal to 0
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
-
Unit Group - Pick every unit in Beach[2] and do (Actions)
-
Loop - Actions
- Set Temp_Int = (Player number of (Owner of (Picked unit)))
- Custom script: if GetLocalPlayer() == GetOwningPlayer(GetEnumUnit()) then
- Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0.00%, 0.00%, 0.00%) with 0.00% transparency
- Custom script: endif
- Unit - Move (Picked unit) instantly to Temp_HeroPos[Temp_Int]
- Custom script: if GetLocalPlayer() == GetOwningPlayer(GetEnumUnit()) then
- Cinematic - Fade in over 1.00 seconds using texture White Mask and color ((Random real number between 0.00 and 100.00)%, (Random real number between 0.00 and 100.00)%, (Random real number between 0.00 and 100.00)%) with 0.00% transparency
- Custom script: endif
- Unit - Create 1 DummySafetyCaster for Neutral Passive at Temp_HeroPos[Temp_Int] facing Default building facing degrees
- Unit - Order (Last created unit) to Human Priest - Inner Fire (Picked unit)
- Unit - Remove (Last created unit) from the game
- Custom script: call RemoveLocation(udg_Temp_HeroPos[udg_Temp_Int])
- Unit Group - Remove (Picked unit) from Beach[2]
- Unit Group - Add (Picked unit) to Beach[0]
-
Loop - Actions
-
Unit Group - Pick every unit in Beach[4] and do (Actions)
-
Loop - Actions
- Unit - Remove (Picked unit) from the game
-
Loop - Actions
-
Item - Pick every item in BeachCombat <gen> and do (Actions)
-
Loop - Actions
- Item - Remove (Picked item)
-
Loop - Actions
- Destructible - Pick every destructible in BeachCombat <gen> and do (Destructible - Resurrect (Picked destructible) with (Max life of (Picked destructible)) life and Hide birth animation)
-
Unit Group - Pick every unit in Beach[2] and do (Actions)
- Else - Actions
-
If - Conditions
- -------- Removing group leaks --------
- Custom script: call DestroyGroup(udg_UONH)
- Custom script: call DestroyGroup(udg_Beach[1])
- Custom script: call DestroyGroup(udg_Beach[2])
- Custom script: call DestroyGroup(udg_Beach[3])
- Custom script: call DestroyGroup(udg_Beach[4])
-
Events