Staredit Network > Forums > SC2 Assistance > Topic: [SOLVED] Execution took too long
[SOLVED] Execution took too long
Nov 28 2012, 1:04 pm
By: payne  

Nov 28 2012, 1:04 pm payne Post #1

:payne:

Here is my Action Definition:

Code
Assign units to random players
   Options: Action
   Return Type: (None)
   Parameters
       Players' units region = No Region <Region>
   Grammar Text: Assign units to random players(Players' units region)
   Hint Text: (None)
   Custom Script Code
   Local Variables
       Successful attempts = 0 <Integer>
       Players' units = (Empty unit group) <Unit Group>
       Random Unit = No Unit <Unit>
       SelectedPlayer = 0 <Integer>
   Actions
       General - While (Conditions) are true, do (Actions)
           Conditions
               (Number of Living units in (Any units in Players' units region owned by player 0 matching Excluded: Missile, Dead, Hidden, with at most Any Amount)) != 0
           Actions
               Variable - Set Players' units = (Any units in Players' units region owned by player 0 matching Excluded: Missile, Dead, Hidden, with at most Any Amount)
               General - If (Conditions) then do (Actions) else do (Actions)
                   If
                       Successful attempts == (Number of players in human players)
                   Then
                       General - Pick each integer from 1 to number of players, and do (Actions)
                           Actions
                               Variable - Set PlayersIsChosen[(Picked integer)] = False
                   Else
               Variable - Set SelectedPlayer = (Random integer between 1 and number of players)
               General - While (Conditions) are true, do (Actions)
                   Conditions
                       Or
                           Conditions
                               (Controller of player SelectedPlayer) != User
                               PlayersIsChosen[SelectedPlayer] == True
                   Actions
                       Variable - Set SelectedPlayer = (Random integer between 1 and number of players)
               Variable - Set PlayersIsChosen[SelectedPlayer] = True
               Variable - Modify Successful attempts: + 1
               Variable - Set Random Unit = (Random Living unit from Players' units)
               Unit - Change ownership of Random Unit to player SelectedPlayer and Change Color
               Unit - Make Random Unit Vulnerable
               Unit Group - Remove Random Unit from Players' units


Whenever I run it, sc2 warns me that the execution took too long and it stops running it.
I haven't seen it change ownership of more than 2 units out of the total of units.
My goal is to have it so that it selects a random unit in a region, and gives it to a random player. Then does the same thing for all the players of a certain Player Group. However, it must not give another unit to a player as long as all players haven't received their unit (this is to make sure I do not end up with Player 1 controlling all the units).

Additional (global) variables:
Code
PlayersIsChosen = False <Boolean[6]>
human players = (Empty player group) <Player Group>
number of players = 6 <Integer>


"human players" player group is containing the User players of another player group containing all the team 1 allied players. The map is set up for 6 allied players, but say the Players 4 and 6 are missing, "human players" would contain Players 1, 2, 3, and 5.

EDIT: No idea why I didn't think about that solution before.
Code
Assign units to random players
   Options: Action
   Return Type: (None)
   Parameters
       Players' units region = No Region <Region>
   Grammar Text: Assign units to random players(Players' units region)
   Hint Text: (None)
   Custom Script Code
   Local Variables
       Players' units = (Empty unit group) <Unit Group>
       Random Unit = No Unit <Unit>
   Actions
       General - While (Conditions) are true, do (Actions)
           Conditions
               (Number of Living units in (Any units in Players' units region owned by player 0 matching Excluded: Missile, Dead, Hidden, with at most Any Amount)) != 0
           Actions
               Player Group - Pick each player in human players and do (Actions)
                   Actions
                       Variable - Set Players' units = (Any units in Players' units region owned by player 0 matching Excluded: Missile, Dead, Hidden, with at most Any Amount)
                       Variable - Set Random Unit = (Random Living unit from Players' units)
                       Unit - Change ownership of Random Unit to player (Picked player) and Change Color
                       Unit - Make Random Unit Vulnerable
                       Unit Group - Remove Random Unit from Players' units


Post has been edited 8 time(s), last time on Nov 28 2012, 1:55 pm by payne.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[07:30 am]
dydwk474 -- HOW DO YOU EVEN UPLOAD FILE HERE THATS BULLCOWAP THE WEBSITE DUMB
[07:30 am]
dydwk474 -- WHAT
[2026-8-24. : 1:15 am]
Symmetry -- There are so many people here I'm surprised we're still online :hurr:
[2026-8-23. : 9:47 pm]
Symmetry -- :wob::wob:
[2026-8-23. : 9:14 pm]
Apos -- I like to :wob:-it :wob:-it.
[2026-8-22. : 11:25 pm]
Zakerozi -- HI
[2026-8-22. : 10:29 pm]
Symmetry -- handledeez nuts
[2026-8-22. : 7:42 pm]
Excalibur -- Its handled.
[2026-8-22. : 6:50 pm]
Praetor -- yo nude or another mod, anyone around rn?
[2026-8-22. : 7:30 am]
NudeRaider -- ultraviolet
Please log in to shout.


Members Online: dydwk474