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


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

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)


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.


Download here: View attachment G_Indexer.SC2Map
 

Attachments

General chit-chat
Help Users
  • No one is chatting at the moment.
  • jonas jonas:
    Good to see you Varine!
  • The Helper The Helper:
    Happy Sunday!
    +1
  • V-SNES V-SNES:
    Happy Sunday!
    +1
  • ToshibaNuon ToshibaNuon:
    Happy sunday!
    +2
  • The Helper The Helper:
    And its Friday!
  • The Helper The Helper:
    Happy Saturday!
    +1
  • V-SNES V-SNES:
    Happy Saturday!
  • The Helper The Helper:
    Happy Monday!
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    Happy Friday!
    +1
  • tom_mai78101 tom_mai78101:
    Starting this upcoming Thursday, I will be in Japan for 10 days.
  • tom_mai78101 tom_mai78101:
    Thursday - Friday will be my Japan arrival flight. 9 days later, on a Sunday, will be my return departure flight.
    +2
  • The Helper The Helper:
    Hope you have safe travels my friend!
    +1
  • vypur85 vypur85:
    Wow spring time in Japan is awesome. Enjoy!
  • The Helper The Helper:
    Hopefully it will be more pleasure than work
  • vypur85 vypur85:
    Recently tried out ChatGPT about WE triggering. Wow it's capable of giving a somewhat legitimate response.
  • The Helper The Helper:
    I am sure it has read all the info on the forums here
  • The Helper The Helper:
    i think triggering is just scripting and chatgpt is real good at code
  • vypur85 vypur85:
    Yeah I suppose so. It's interesting how it can explain in so much detail.
  • vypur85 vypur85:
    But yet it won't work.
  • The Helper The Helper:
    it does a bad ass job doing excel vba code it has leveled me up at my job when I deal with excel that is for sure
  • vypur85 vypur85:
    Nice! I love Excel coding as well. Has always been using Google to help me. Maybe I'll use ChatGPT next time when I need it.
  • The Helper The Helper:
    yeah whatever it puts out even if it is not perfect I can fix it and the latest version of chatgpt can create websites from pictures it will not be long until it can do that with almost all the tools
    +1

    The Helper Discord

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top