System G_Indexer (Unit Indexing)

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
G_Indexer can assign custom values to units, recycle them, and reuse as wanted. It includes 2 custom actions 2 custom functions and 1 setting.

Setting:

Custom value array used:
This is the array that is used obviously, in wc3 only 1 custom value was capable of being stored, but in sc2 you can have many stored, but they can not interfere with each other or you will have an overlap of data causing glitches depending on what you do with it.

Actions:

Set Unit Index ([ljass]function UnitIndex takes unit Unit, Parameter Allow/Disallow returns nothing[/ljass])

This will be select-able in the gui actions under the Unit label, or just search for index and both the actions should come up, once copied/pasted in of course.

Trigger:
  • Set Unit Index
    • Options: Action
    • Return Type: (None)
    • Parameters
      • Unit = (Triggering unit) <Unit>
      • Allow/Disallow = Allow <Allow/Disallow Option>
    • Grammar Text: Attach a new index to Unit, Allow/Disallowing index recycling.
    • Hint Text: Attaches a new index to the selected unit. If Allow has been chosen then, if there are indexes being recycled (to save memory), this will use those before creating new ones. If not it creates a n...
    • Custom Script Code
    • Local Variables
    • Actions
      • General - If (Conditions) then do multiple (Actions)
        • If Then Else
          • General - Else if (Conditions) then do (Actions)
            • Else If
              • (Custom value Used Custom Value Index of Unit) != 0.0
            • Then
              • Unit - Recycle the index for Unit
      • General - If (Conditions) then do (Actions) else do (Actions)
        • If
          • Allow/Disallow == Allow
          • Recycle List[0] != 0
        • Then
          • Unit - Set Unit custom value Used Custom Value Index to (Real(Recycle List[0]))
          • Variable - Set Recycle List[0] = Recycle List[Recycle List[0]]
          • Variable - Set Recycle List[(Integer((Custom value Used Custom Value Index of Unit)))] = 0
        • Else
          • Unit - Set Unit custom value Used Custom Value Index to (Real(Next New Index))
          • Variable - Set Next New Index = (Next New Index + 1)
      • Variable - Set Indexed Unit[(Integer((Custom value Used Custom Value Index of Unit)))] = Unit

attachment.php

Recycle Unit Index ([ljass]function RecycleUnitIndex takes unit Unit returns nothing[/ljass])

This is used to recycle each integer when they die or some time afterward, heroes should not be recycled unless the player leaves.

Trigger:
  • Recycle Unit Index
    • Options: Action
    • Return Type: (None)
    • Parameters
      • Unit = (Triggering unit) <Unit>
    • Grammar Text: Recycle the index for Unit
    • Hint Text: Recycles the index for the unit indicated.
    • Custom Script Code
    • Local Variables
    • Actions
      • Variable - Set Recycle List[Recently Qued] = (Integer((Custom value Used Custom Value Index of Unit)))
      • Variable - Set Recently Qued = (Integer((Custom value Used Custom Value Index of Unit)))
      • Variable - Set Indexed Unit[(Integer((Custom value Used Custom Value Index of Unit)))] = No Unit
      • Unit - Set Unit custom value Used Custom Value Index to 0.0
attachment.php

The functions below are simply conversions and accessing variables so they will not include the code seeing as its 1 line :p
they are simply for convenience.

Unit Index ([ljass]function UnitIndex takes unit Unit returns integer[/ljass])

This is used to get the index of the selected unit (best used in variable arrays)

attachment.php

Indexed Unit ([ljass]function IndexedUnit takes integer Index returns unit[/ljass])

This is used to get a unit based on the index, this way you can essentially save integer values rather than units, much more memory efficient.

attachment.php

Download here: View attachment G_Indexer.SC2Map
 

Attachments

  • G_Indexer 1.png
    G_Indexer 1.png
    3 KB · Views: 800
  • G_Indexer 2.png
    G_Indexer 2.png
    1.9 KB · Views: 809
  • G_Indexer 3.png
    G_Indexer 3.png
    2.4 KB · Views: 794
  • G_Indexer 4.png
    G_Indexer 4.png
    1.9 KB · Views: 797
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