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.
[12:43 am]
jjf28 -- KrayZee
KrayZee shouted: Fast forwarding 24 years later, I just felt a little nostalgic about it. Instead you responded like an asshat
:peach: :hat:
[10:41 pm]
lil-Inferno -- memes brother
[10:30 pm]
KrayZee -- Fast forwarding 24 years later, I just felt a little nostalgic about it. Instead you responded like an asshat
[10:28 pm]
KrayZee -- I know that's the point... I just never heard of this website until now and I don't get late 90s vibes with SEN.
[09:57 pm]
Slyence -- Dem0n
Dem0n shouted: wow it's almost like that's the point
I literally lold
[09:14 pm]
Dem0n -- wow it's almost like that's the point
[08:03 pm]
KrayZee -- Dem0n
Dem0n shouted: https://bounding.net/ is the best source for maps
Feels like late 90s and early 2000s with the layout and StarCraft 1 theme.
[2022-1-15. : 11:46 pm]
Slyence -- :(
[2022-1-15. : 11:46 pm]
Slyence -- string thumbsUp = " :thumbsup: ");
[2022-1-15. : 11:45 pm]
Slyence -- string thumbsUp = ":thumbup:");
Please log in to shout.


Members Online: jun3hong