| 07-08-2005, 06:29 PM | #1 |
Hi, i released a new version of my map with the following of your tutorial about the memory leak, because after some minute of playing some people get splitted(when somepeople are disconnected at the same time because of the lag), when i spy the process of War3, i seen that he get an average of 12ko/s o_O . So i released a version with the destruction of inused group, unit, etc... But now the problem is that at spawn of allied unit, the game split sometime . Visibly the 3 trigger of spawn is now too heavy and with the trigger of firing system (launched every 0.06s, 0.14s, 0.20s, 0.26s).The map is named "Desert Battle" it's an AOS with support shield/generator for firing and hit point, i attached a protected version but it's not a read only protection, if someone get an idea or wanna see how it's made, i can send him the unprotected version. Thanks EDIT: If you wanna see what i'm saying: Code:
Spawn2Helico
Evénements
[The event is define by another trigger in initialisation]
Conditions
MiscConfiguration[1] Différent de FALSE
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CreepProgresIfon Inférieur à 3
Then - Actions
-------- Up --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0043 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnWestUp <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Victime neutre) Egal à 1
Then - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter w/ corroIfve for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnEastUp <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0107 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnEastUp <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Extra neutre) Egal à 1
Then - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter w/ corroIfve for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnWestUp <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
-------- Middle --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0010 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnWestMiddle <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Victime neutre) Egal à 1
Then - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter w/ corroIfve for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnEastMiddle <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0075 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnEastMiddle <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Extra neutre) Egal à 1
Then - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter w/ corroIfve for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnWestMiddle <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
-------- Down --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0042 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnWestDown <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Victime neutre) Egal à 1
Then - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter w/ corroIfve for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnEastDown <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0108 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnEastDown <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Extra neutre) Egal à 1
Then - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter w/ corroIfve for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create (CreepProgresIfon x 2) Helicopter for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnWestDown <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
Else - Actions
-------- Up --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0043 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnWestUp <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Victime neutre) Egal à 1
Then - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter w/ corroIfve for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnEastUp <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0107 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnEastUp <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Extra neutre) Egal à 1
Then - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter w/ corroIfve for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnWestUp <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
-------- Middle --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0010 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnWestMiddle <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Victime neutre) Egal à 1
Then - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter w/ corroIfve for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnEastMiddle <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0075 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnEastMiddle <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Extra neutre) Egal à 1
Then - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter w/ corroIfve for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnWestMiddle <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
-------- Down --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0042 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnWestDown <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Victime neutre) Egal à 1
Then - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter w/ corroIfve for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter for Victime neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnEastDown <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Vie of Workshop 0108 <gen>) Supérieur à 0.00
Then - Actions
Set TmpPoint = (Center of SpawnEastDown <gen>)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Current research level of CorroIfve for Extra neutre) Egal à 1
Then - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter w/ corroIfve for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Else - Actions
Unité - Create ((CreepProgresIfon - 2) x 2) Fighter for Extra neutre at TmpPoint facing Orientation bâtiment par défaut degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of SpawnWestDown <gen>)
Groupe unité - Pick every unit in (Last created unit group) and do (Actions)
Boucle - Actions
Unité - Order (Picked unit) to Attaquer-Avancer vers TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions |
| 07-08-2005, 08:32 PM | #2 |
Wrong forum. |
| 07-08-2005, 10:28 PM | #3 |
Indeed. Thread moved. I can't really say what could be the problem. Unless it's because of GetLocalPlayer(), reasons for server splits are hard to track. |
| 07-09-2005, 06:59 AM | #4 |
ok Thx for the anwser and sorry for the wrong forum. I will remake the trigger with some while, if it can help you to see the probleme. |
| 07-09-2005, 10:27 AM | #5 |
Ok that's the new version: Code:
Spawn1EnginSiege
Events
Conditions
MiscConfiguration[1] Not equal to False
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CreepProgression Less than 3
Then - Actions
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Life of Factory[(Integer A)]) Greater than 0.00
Then - Actions
Set TmpPoint = (Center of FactoryRect[(Integer A)])
Unit - Create (CreepProgression x 1) Armored tank for Neutral Victim at TmpPoint facing Default building facing (270.0) degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of FactoryRect[((Integer A) + 3)])
Unit Group - Pick every unit in (Last created unit group) and do (Actions)
Loop - Actions
Unit - Order (Picked unit) to Attack-Move To TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
For each (Integer A) from 4 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Life of Factory[(Integer A)]) Greater than 0.00
Then - Actions
Set TmpPoint = (Center of FactoryRect[(Integer A)])
Unit - Create (CreepProgression x 1) Armored tank for Neutral Extra at TmpPoint facing Default building facing (270.0) degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of FactoryRect[((Integer A) - 3)])
Unit Group - Pick every unit in (Last created unit group) and do (Actions)
Loop - Actions
Unit - Order (Picked unit) to Attack-Move To TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
Else - Actions
For each (Integer A) from 1 to 3, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Life of Factory[(Integer A)]) Greater than 0.00
Then - Actions
Set TmpPoint = (Center of FactoryRect[(Integer A)])
Unit - Create ((CreepProgression - 2) x 1) Heavy armored tank for Neutral Victim at TmpPoint facing Default building facing (270.0) degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of FactoryRect[((Integer A) + 3)])
Unit Group - Pick every unit in (Last created unit group) and do (Actions)
Loop - Actions
Unit - Order (Picked unit) to Attack-Move To TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - Actions
For each (Integer A) from 4 to 6, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Life of Factory[(Integer A)]) Greater than 0.00
Then - Actions
Set TmpPoint = (Center of FactoryRect[(Integer A)])
Unit - Create ((CreepProgression - 2) x 1) Heavy armored tank for Neutral Extra at TmpPoint facing Default building facing (270.0) degrees
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpPoint = (Center of FactoryRect[((Integer A) - 3)])
Unit Group - Pick every unit in (Last created unit group) and do (Actions)
Loop - Actions
Unit - Order (Picked unit) to Attack-Move To TmpPoint
Custom script: call RemoveLocation(udg_TmpPoint)
Set TmpGroup = (Last created unit group)
Custom script: call DestroyGroup(udg_TmpGroup)
Else - ActionsThe code of the firing system is Code:
AutoFire04
Events
Time - Every 0.07 seconds of game time
Conditions
Actions
Set SlotsCooldown[0] = (SlotsCooldown[0] + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SlotsCooldown[0] Equal to 7
Then - Actions
Set SlotsCooldown[0] = 1
Else - Actions
For each (Integer B) from 1 to 12, do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
And - All (Conditions) are true
Conditions
(Item-class of (Item carried by Vehicule[(Integer B)] in slot SlotsCooldown[0])) Equal to Powerup
Then - Actions
Hero - Order Vehicule[(Integer B)] to use (Item carried by Vehicule[(Integer B)] in slot SlotsCooldown[0]) on Targets[(Integer B)]
Else - ActionsPlease if you see another way to make it with less lag, please tell me. |
| 07-09-2005, 11:42 AM | #6 |
So, what is the problem, exactly? Still server splits? Or just lag? |
| 07-09-2005, 04:11 PM | #7 |
Before it was just a big split, now each player lag before be disconnected or splitted. :( Do you think a trigger launched every 0.4s instand of 0.07s but with a while instand of this system can be better ? Do you know better function than "replace unit" ? Because there is a freeze when someone is his unit replaced with this function, i added a bollean in false to not launch all the trigger of test of the object, but it don't look enough... Thanks again |
| 07-09-2005, 04:30 PM | #8 | |
Guest | Quote:
Might be just that there's too many actions triggered at once that causes the crash? I experienced a problem quite simlar once, it crashed the second after map was loaded, i couldnt figure the problem and had to load an older working version of the map so i could continue the project. Yours, ~Obedience |
| 07-09-2005, 05:18 PM | #9 | |
Quote:
Yes but actually there is no crash, the game just lag and split, sometime it crash too, but it's when i make some error in triggering. |
