- Joined
- Apr 19, 2011
- Messages
- 447
Hi.
I have some problems with the triggers of my main proyect. For now, I stopped creating new systems, and started fixing the various bugs on the already created ones. And right now, everything works fine, but I found that some triggers seem to lag.
I'm absolute sure that this lag is not caused by leaks or by rendering too much units/doodads. This lag only happens when certain triggers run, and I want you to check them and tell me how could I improve their efficience.
In my proyect, when the character has an encounter with an enemy group, they are taken to a battle arena, and a some variables and triggers have to be configurated to work with the battle system I created. This is the trigger that starts when one of those encounters begins (I chosed a random encounter. Everything is explained in the comments).
The game seems to lag when this runs:
The second moment where the game seems to lag is when a battle ends. When the battle ends, some configurations have to be done to leave the battle system. This is divided in three different triggers:
In this case, the ARRAY_End trigger would be this one:
I suppose that's it. When the game runs those triggers, it seems to lag, I don't clearly know why. What do you think I could do to improve their efficience?
Actually, the lag is the only thing that's pissing me off...
Regards
I have some problems with the triggers of my main proyect. For now, I stopped creating new systems, and started fixing the various bugs on the already created ones. And right now, everything works fine, but I found that some triggers seem to lag.
I'm absolute sure that this lag is not caused by leaks or by rendering too much units/doodads. This lag only happens when certain triggers run, and I want you to check them and tell me how could I improve their efficience.
In my proyect, when the character has an encounter with an enemy group, they are taken to a battle arena, and a some variables and triggers have to be configurated to work with the battle system I created. This is the trigger that starts when one of those encounters begins (I chosed a random encounter. Everything is explained in the comments).
The game seems to lag when this runs:
-
Start Battle
-

Events
-


Unit - A unit comes within 200.00 of Aelan 0000 <gen>
-
-

Conditions
-


Or - Any (Conditions) are true
-



Conditions
-




(Triggering unit) Equal to Encounter_02_Treant
-




(Triggering unit) Equal to Encounter_02_Mantis_01
-




(Triggering unit) Equal to Encounter_02_Mantis_02
-
-
-
-

Actions
-


Trigger - Turn off (This trigger)
-


-------- Preventing the player to access the Main Menu during battle --------
-


Trigger - Turn off Main Menu Access <gen>
-


-------- Disabling the enemy detection system for this enemy group --------
-


Trigger - Turn off Sight Encounter 02 <gen>
-


Trigger - Turn off Chase Encounter 02 <gen>
-


Trigger - Turn off Restore Encounter 02 <gen>
-


Trigger - Turn off Guard Encounter 02 AELAN <gen>
-


Trigger - Turn off Guard Encounter 02 ENEMY <gen>
-


-------- Preventing the player from moving the characters after the encounter --------
-


Unit - Change ownership of Aelan 0000 <gen> to Player 2 (blue) and Preserve color
-


Unit - Change ownership of Ruy_Out_Battle to Player 2 (blue) and Preserve color
-


-------- Sounds and visuals --------
-


Unit - Order Encounter_02_Treant to Stop
-


Unit - Order Encounter_02_Mantis_01 to Stop
-


Unit - Order Encounter_02_Mantis_02 to Stop
-


Unit - Order Aelan 0000 <gen> to Stop
-


Unit - Order Ruy_Out_Battle to Stop
-


Animation - Play Aelan 0000 <gen>'s stand ready animation
-


Animation - Play Ruy_Out_Battle's stand ready animation
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



Si: Conditions
-




(Unit-type of (Triggering unit)) Equal to Treant
-
-



Then - Actions
-




Animation - Play (Triggering unit)'s Stand - 4 animation
-




Sound - Play Damaging_Treant <gen>
-
-



Other - Actions
-
-


-------- Disabling the camera control --------
-


Set CAMERA_CONTROL = False
-


-------- Disabling this encounter so it won't start again --------
-


Trigger - Turn off Encounter 02 Treant <gen>
-


Trigger - Turn off Encounter 02 Mantis 01 <gen>
-


Trigger - Turn off Encounter 02 Mantis 02 <gen>
-


-------- Locking the camera on the enemy --------
-


Camera - Lock camera target for Player 1 (red) to (Triggering unit), offset by (0.00, 0.00) using Default rotation
-


-------- Stopping the current music --------
-


Countdown Timer - Pause ARRAY_Timers_Music[1]
-


Sound - Stop music After fade-out
-


-------- Playing the battle music --------
-


Trigger - Run Storm Through Them <gen> (checking conditions)
-


Wait 2.00 seconds
-


Sound - Play Entering_Battle <gen>
-


-------- Fading the screen --------
-


Cinematic - Fade out over 0.25 seconds using texture White mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
-


Wait 2.00 seconds
-


-------- When the player encounters some enemies, a ! symbol appears over their heads. This destroys those symbols --------
-


Special Effect - Destroy ARRAY_SYMBOLS[2]
-


Special Effect - Destroy ARRAY_SYMBOLS[3]
-


Special Effect - Destroy ARRAY_SYMBOLS[4]
-


-------- Checking if the player has 1 character or has 2, and creating those characters on the battle arena --------
-


-------- This also sets the camera for the battle --------
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




ALONE Equal to False
-
-



Then - Actions
-




Set TempLoc = (Center of Aelan DOUBLE <gen>)
-




Unit - Create 1 Aelan (Battle) for Neutral pasive at TempLoc facing 90.00 degrees
-




Custom script: call RemoveLocation(udg_TempLoc)
-




Unit - Change color of (Last created unit) to Black
-




Set Aelan = (Last created unit)
-




Animation - Play Aelan's stand ready animation, using only Current animations
-




Set TempLoc = (Center of Ruy DOUBLE <gen>)
-




Unidad - Create 1 Ruy (Battle) for Neutral pasive at TempLoc facing 90.00 degrees
-




Custom script: call RemoveLocation(udg_TempLoc)
-




Unit - Change color of (Last created unit) to Black
-




Set Ruy = (Last created unit)
-




Animation - Play Ruy's stand ready animation, using only Current animations
-




Camera - Apply BATTLE Allies DOUBLE <gen> for Player 1 (red) over 0.00 seconds
-
-



Other - Actions
-




Set TempLoc = (Center of Aelan SOLO <gen>)
-




Unit - Create 1 Aelan (Battle) for Neutral pasive at TempLoc facing 90.00 degrees
-




Custom script: call RemoveLocation(udg_TempLoc)
-




Unit - Change color of (Last created unit) to Black
-




Set Aelan = (Last created unit)
-




Animation - Play Aelan's stand ready animation, using only Current animations
-




Camera - Aplicar BATTLE Allies SOLO <gen> for Player 1 (red) over 0.00 seconds
-
-
-


-------- Creating the enemy group on the battle arena --------
-


Set TempLoc = (Center of Monster 1 <gen>)
-


Unit - Create 1 Treant (Battle) for Player 9 (Grey) at TempLoc facing 270.00 degrees
-


Unit - Change color of (Last created unit) to Black
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set Monster_01 = (Last created unit)
-


Set TempLoc = (Center of Monster 2 <gen>)
-


Unit - Create 1 Mantis (Battle) for Player 9 (Gray) at TempLoc facing 270.00 degrees
-


Unit - Change color of (Last created unit) to Black
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set Monster_02 = (Last created unit)
-


Set TempLoc = (Center of Monster 3 <gen>)
-


Unit - Create 1 Mantis (Battle) for Player 9 (Gray) at TempLoc facing 270.00 degrees
-


Unit - Change color of (Last created unit) to Black
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set Monster_03 = (Last created unit)
-


-------- Unfading the screen --------
-


Cinematic - Fade out over 2.00 seconds using texture White mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
-


Wait 0.25 seconds
-


-------- Fully healing the characters. The characters also begin the battles ar full HP and MP --------
-


Set HP_Aelan = HP_Aelan_Original
-


Set HP_Ruy = HP_Ruy_Original
-


Set MP_Aelan = MP_Aelan_Original
-


Set MP_Ruy = MP_Ruy_Original
-


-------- Setting the enemy stats for the battle system --------
-


Set Enemy_Number = 3
-


Set HP_Monster_01_Original = 40
-


Set HP_Monster_01 = 40
-


Set FRZ_Monster_01 = 8
-


Set RES_Monster_01 = 6
-


Set HP_Monster_02_Original = 20
-


Set HP_Monster_02 = 20
-


Set FRZ_Monster_02 = 14
-


Set RES_Monster_02 = 5
-


Set HP_Monster_03_Original = 20
-


Set HP_Monster_03 = 20
-


Set FRZ_Monster_03 = 14
-


Set RES_Monster_03 = 5
-


-------- Setting which AI the battle system has to use for the enemies --------
-


Set AI_01 = 0
-


Set AI_02 = 1
-


Set AI_03 = 1
-


Set AI_Attack_01 = 0
-


Set AI_Attack_02 = 1
-


Set AI_Attack_03 = 1
-


-------- Setting the ending data for the system --------
-


Set END = 2
-


-------- Starting the battle system --------
-


Trigger - Run START SYSTEM <gen> (checking conditions)
-
-
The second moment where the game seems to lag is when a battle ends. When the battle ends, some configurations have to be done to leave the battle system. This is divided in three different triggers:
-
End Battle
-

Events
-

Conditions
-

Actions
-


-------- Some selection settings. That trigger does NOT lag (I'm sure of it) --------
-


Set Selection = 0
-


Trigger - Run ARRAY_Selections[Selection] (ignoring conditions)
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




(Monster_01_Dead Equal to True) and ((Monster_02_Dead Equal to True) and (Monster_03_Dead Equal to True))
-
-



Then - Actions
-




-------- Enabling cinematic mode and stopping the different possible battle musics --------
-




Cinematic - Turn cinematic mode On for Player group: Player 1 (red)
-




Countdown Timer - Pause ARRAY_Timers_Music[2]
-




Countdown Timer - Pause ARRAY_Timers_Music[3]
-




Countdown Timer - Pause ARRAY_Timers_Music[4]
-




Countdown Timer - Pause ARRAY_Timers_Music[7]
-




Countdown Timer - Pause ARRAY_Timers_Music[8]
-




Sound - Stop music After fade-out
-




-------- Reseting characters' animations --------
-




Animation - Reset Aelan's animation
-




Animation - Reset Ruy's animation
-




Wait 0.01 seconds
-




-------- Playing victory music --------
-




Sound - Play Fanfare <gen>
-




-------- Restoring the modifiers and bonuses that can be altered during battle --------
-




Set MOD_FRZ_Aelan = 1.00
-




Set MOD_FRZ_Ruy = 1.00
-




Set MOD_FRZ_Monster = 1.00
-




Set MOD_FRZ_Monster_01 = 1.00
-




Set MOD_FRZ_Monster_02 = 1.00
-




Set MOD_FRZ_Monster_03 = 1.00
-




Set MOD_RES_Aelan = 1.00
-




Set MOD_RES_Ruy = 1.00
-




Set MOD_RES_Monster = 1.00
-




Set MOD_RES_Monster_01 = 1.00
-




Set MOD_RES_Monster_02 = 1.00
-




Set MOD_RES_Monster_03 = 1.00
-




Set MOD_MAG_Aelan = 1.00
-




Set MOD_MAG_Ruy = 1.00
-




Set MOD_MAG_Monster = 1.00
-




Set MOD_MAG_Monster_01 = 1.00
-




Set MOD_MAG_Monster_02 = 1.00
-




Set MOD_MAG_Monster_03 = 1.00
-




Set MOD_ESP_Aelan = 1.00
-




Set MOD_ESP_Ruy = 1.00
-




Set MOD_ESP_Monster = 1.00
-




Set MOD_ESP_Monster_01 = 1.00
-




Set MOD_ESP_Monster_02 = 1.00
-




Set MOD_ESP_Monster_03 = 1.00
-




-------- Erasing the battle multiboard --------
-




Multiboard - Destroy BOARD_Battle
-




-------- Running the "Victory" trigger --------
-




Trigger - Run VICTORY <gen> (checking conditions)
-
-



Other - Actions
-
-
-
-
VICTORY
-

Events
-

Conditions
-

Actions
-


-------- Setting the monsters as dead --------
-


Set Monster_01_Dead = False
-


Set Monster_02_Dead = False
-


Set Monster_03_Dead = False
-


-------- Disabling the configurations for special battle cameras --------
-


Set Big_Battle = False
-


Set Huge_Battle = False
-


-------- Setting the experience reward --------
-


Set RESULT_EXP = ARRAY_Experience[END]
-


-------- Giving the experience to the characters the player has --------
-


If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-



If - Conditions
-




ALONE Equal to True
-
-



Then - Actions
-




Set EXP_Aelan = (EXP_Aelan + RESULT_EXP)
-
-



Other - Actions
-




Set EXP_Aelan = (EXP_Aelan + RESULT_EXP)
-




Set EXP_Ruy = (EXP_Ruy + RESULT_EXP)
-
-
-


-------- Fading out the screen --------
-


Cinematic - Fade out over 2.00 seconds using texture Black mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
-


Wait 2.00 seconds
-


-------- Removing the enemies and the characters from the battle arena --------
-


Unit - Remove Monster_01 from the game
-


Unit - Remove Monster_02 from the game
-


Unit - Remove Monster_03 from the game
-


Unit - Remove Aelan from the game
-


Unit - Remove Ruy from the game
-


-------- Selection configurations --------
-


Set Selection = 0
-


Trigger - Run ARRAY_Selections[Selection] (ignoring conditions)
-


-------- Disabling the triggers that keep the camera locked --------
-


Trigger - Turn off Allies SOLO <gen>
-


Trigger - Turn off Allies DOUBLE <gen>
-


Trigger - Turn off Allies Big <gen>
-


Trigger - Turn off Allies Huge <gen>
-


Trigger - Turn off Monsters <gen>
-


Trigger - Turn off Monsters Big <gen>
-


Trigger - Turn off Monsters Huge <gen>
-


-------- Applying the victory screen camera and fading in --------
-


Camara - Apply RESULT SCREEN <gen> for Player 1 (red) over 0.00 seconds
-


Cinematic - Fade in over 2.00 seconds using texture Black mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
-


-------- Showing the floating texts of the victory screen --------
-


Set TempLoc = (Center of Text box 1 <gen>)
-


Floating Text - Create floating text that reads VICTORY at TempLoc with Z offset 50.00, using font size 25.00, color (70.00%, 70.00%, 100.00%), and 0.00% transparency
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set RESULT_Text_01 = (Last created floating text)
-


Set TempLoc = (Center of Text box 3 <gen>)
-


Floating Text - Create floating text that reads ITEMS at TempLoc with Z offset 50.00, using font size 16.50, color (70.00%, 70.00%, 100.00%), and 0.00% transparency
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set RESULT_Text_03 = (Last created floating text)
-


Wait 2.00 seconds
-


Set TempLoc = (Center of Text box 2 <gen>)
-


Floating Text - Create floating text that reads (You get + ((String(RESULT_EXP)) + EXP!)) at TempLoc with Z offset 50.00, using font size 15.00, color (100.00%, 60.00%, 0.00%), and 0.00% transparency
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set RESULT_Text_02 = (Last created floating text)
-


Sound - Play Results <gen>
-


Wait 0.50 seconds
-


Set TempLoc = (Center of Text box 4 <gen>)
-


Floating Text - Create floating text that reads <Unavailable yet> at TempLoc with z offset 50.00, using font size 15.00, color (100.00%, 60.00%, 0.00%), and 0.00% transparency
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set RESULT_Text_04 = (Last created floating text)
-


Sound - Stop Results <gen> Immediately
-


Sound - Play Results <gen>
-


Wait 0.50 seconds
-


Set TempLoc = (Center of Text box 5 <gen>)
-


Floating Text - Create floating text that reads Press [ESC] to... at TempLoc with Z offset 50.00, using font size 15.00, color (70.00%, 70.00%, 100.00%), and 0.00% transparency
-


Custom script: call RemoveLocation(udg_TempLoc)
-


Set RESULT_Text_05 = (Last created floating text)
-


-------- Allowing the player to leave the victory screen --------
-


Trigger - Turn on ARRAY_End[END]
-
-
-
End Encounter 02
-

Events
-


Player - Player 1 (red) skips a cinematic sequence
-
-

Conditions
-

Actions
-


-------- Disabling the trigger and fading out --------
-


Trigger - Turn off (This trigger)
-


Cinematic - Fade out over 2.00 seconds using texture Black mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
-


Wait 2.00 seconds
-


-------- Stopping the victory music and playing the normal music --------
-


Sound - Stop music After fade-out
-


Trigger - Run Mangron Forest <gen> (checking conditions)
-


-------- Restoring the camera control --------
-


Camera - Lock camera target for Player (red) to Aelan 0000 <gen>, offset by (0.00, 0.00) using Default rotation
-


Camera - Set Player 1 (red)'s camera Angle of attack to 325.00 over 0.00 seconds
-


Set Camera_Height = 325.00
-


Set CAMERA_CONTROL = True
-


-------- Reconvering control over the characters --------
-


Unit - Change ownership of Aelan 0000 <gen> to Player 1 (red) and Preserve color
-


Unit - Change ownership of Ruy_Out_Battle to Player 1 (red) and Preserve color
-


-------- Disabling cinematic mode and fading in --------
-


Cinematic - Turn cinematic mode Off for Player group: Player 1 (red)
-


Cinematic - Fade in over 2.00 seconds using texture Black mask and color (100.00%, 100.00%, 100.00%) with 0.00% transparency
-


-------- Allowing the player to access the main menu --------
-


Trigger - Turn on Main Menu Access <gen>
-


-------- Selection configurations --------
-


Set Selection = 1
-


Trigger - Run ARRAY_Selections[Selection] (ignoring conditions)
-


-------- Erasing the victory screen --------
-


Floating Text - Destroy RESULT_Text_01
-


Floating Text - Destroy RESULT_Text_02
-


Floating Text - Destroy RESULT_Text_03
-


Floating Text - Destroy RESULT_Text_04
-


Floating Text - Destroy RESULT_Text_05
-


Wait 2.00 seconds
-


-------- Killing the enemies (the real ones, not the ones in the battle arena) --------
-


Unit - Kill Encounter_02_Treant
-


Unit - Kill Encounter_02_Mantis_01
-


Unit - Kill Encounter_02_Mantis_02
-


-------- Resetting the characters' animations --------
-


Animation - Reset Aelan's animation
-


Animation - Reset Ruy_Out_Battle's animation
-
-
Actually, the lag is the only thing that's pissing me off...
Regards






