Wierd Variable problem

BlueMirage

Trust, but doubt.
Reaction score
39
PersonsPerTeam is an integer constant which is decided earlier on in the game. It is either 3, 4 or 6.

Circles is a Unit Group that contains 12 stationary buildings. Each unit has a unique custom value, varying between 1 and 12.

TeamPlayers is a Player Group Array which includes all the players of a specific team.

PlayerHero is the one hero that a specific player owns (One hero per player).

Trigger:
  • Spawn Teams
    • Events
    • Conditions
    • Actions
      • Set TempInteger = (Random integer number between 1 and 12)
      • For each (Integer A) from 1 to (12 / PersonsPerTeam), do (Actions)
        • Loop - Actions
          • Unit Group - Pick every unit in Circles and do (Actions)
            • Loop - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (Custom value of (Picked unit)) Equal to TempInteger
                • Then - Actions
                  • Set TempUnit = (Picked unit)
                  • Set TempPoint = (Position of TempUnit)
                • Else - Actions
          • Player Group - Pick every player in TeamPlayers[(Integer A)] and do (Actions)
            • Loop - Actions
              • Camera - Pan camera for (Picked player) to TempPoint over 0.00 seconds
              • Unit - Move PlayerHero[(Player number of (Picked player))] instantly to TempPoint, facing (Center of (Playable map area))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • The Rest is irrelevant

I have a very wierd problem here.

After looping through the Circles group to find a random unit, it sets that unit to a variable and that unit's position to a variable. However, directly after picking every player in TeamPlayers(Integer A), this information is lost and is for some reason set to the center of the map.

I have no idea why this happens. For some reason, it only happens when a player randoms a hero. I have not tried this with multiplayer, so I do not know what will happen with more than 1 hero.
If more information is needed to solve this problem, I'll post the hero picking and randoming triggers as well.
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
this information is lost and is for some reason set to the center of the map.

That has happened with me, too >.>
Only with Global Variables, though..

It annoys the shit out of me and I haven't found a solution -____-
 

BlueMirage

Trust, but doubt.
Reaction score
39
If this is the case, do you think that using non-handle variables could solve the problem?
For example, I could save the real X and Y values of that point instead of the location. Might work?
 

cleeezzz

The Undead Ranger.
Reaction score
268
post all, you must have used TempUnit somewhere else and nulled it somehow
 

BlueMirage

Trust, but doubt.
Reaction score
39
More likely nulled TempPoint since TempUnit is not something I'm referencing when I'm about to move the unit.

I'm however having troubles exactly what could trigger by just enumerating a player group...
 

SineCosine

I'm still looking for my Tangent
Reaction score
77
For me, the handle-variables never get nulled.
It's the integers and reals that mysteriously get nulled.
 

Stringel

New Member
Reaction score
12
I think the problem is that the first loop run too many times thus nulling the TempPoint. On a second note you havn't specified TempPlayers.
 

Accname

2D-Graphics enthusiast
Reaction score
1,462
only reason i could imagine is that there is no tempUnit, that would set the temppoint to the center of the map, however if your hero is moved to the right place i cannot help you from what i read in your code.
 

BlueMirage

Trust, but doubt.
Reaction score
39
Try making a debug message where the variables are being set.
Creating a debug message for every time I set TempPoint would take hours.
I think the problem is that the first loop run too many times thus nulling the TempPoint. On a second note you havn't specified TempPlayers.
I don't think that is the problem since each unit in that unit group SHOULD have a unique custom value, but the possibility exists so I will check it out.

TeamPlayers is specified in another trigger.

only reason i could imagine is that there is no tempUnit, that would set the temppoint to the center of the map, however if your hero is moved to the right place i cannot help you from what i read in your code.
If there is no TempUnit, there would be no Picked Unit, thus the condition would never pass for true, correct?

I'll post some more triggers related to this matter eventually.

EDIT:

Done some debugging.

I first thought that the variable PlayerHero[Index] was at fault, but debugging told me it was not.
However, It all changed when I did the following:

Trigger:
  • Unit - Move PlayerHero[(Player number of (Picked player))] instantly to (Point(TempX, TempY)), facing (Center of (Playable map area))

To:
Trigger:
  • Unit - Move PlayerHero[(Player number of (Picked player))] instantly to (Point(TempX, TempY))

I now have no problems whatsoever with this trigger. Does anyone have an idea why?
 

BlueMirage

Trust, but doubt.
Reaction score
39
Bump.
Even though the problem is (somewhat) solved, I have no idea why making the unit not face an angle would make it not move to the centre of the map. Does anyone have an idea why?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top