User Tools

Site Tools


4rpl:commands:setunitammoware

Index

:!: Available in version 1.3 and later.

SetUnitAmmoWare

SetUnitAmmoWare(<-unit <-unitAmmoWare)

Description

Set the ammo ware type of the unit to the stack. 0 = energy, 1 = anticreeper, 2 = arg, 3 = liftic. When used on a Porter, it will do nothing.

Examples

SetUnitAmmoWare(self 1)

Programming Notes

Do not use SetUnitAmmoWare in the :Awake function. This causes all further units in the map to fail to load.

When using SetUnitAmmoWare on a unit, it is advised to make sure that in the unit's blueprint (CMOD Settings), the initial Ammo Ware is set to Energy. Should it be set to one of the special wares (Liftic / Arg / Anticreeper), if the unit is later changed to use Energy, a reload of the game from a save file will cause the unit to request both Energy and the ware set in the unit's initial blueprint at the same time.

Minimum reproducible example of the issue. Create a unit whose initial Ammo Ware is Liftic, and have the unit request ammo. Then give it this code.

GetTimer0 1 eq if
   SetUnitAmmo(Self 0)
   SetUnitAmmoWare(Self 0)
endif
 
:once
  300 SetTimer0

In the finalized map, wait out a little over 10 seconds until the unit swaps to Energy, then save and load. The unit now requests both Energy and Liftic.

To avoid this issue, ensure the unit's initial Ammo Ware in CMOD Settings is Energy, then if the desired initial Ware is e.g. Liftic, that is later to be swapped to Energy, use :GameLoaded as follows to set the unit to use Liftic from the start, while leaving it as Energy in the unit's CMOD Settings.

:GameLoaded
   @init
:Once
   @init
:init
   once
      SetUnitAmmoWare(Self 3)
   endonce

More Programming Notes

In game version 2.5.1 and earlier, do not use SetUnitAmmoWare on a unit that does not have an ammo bar, this includes units that are under construction, base units that do not use ammo and base units with ammo that do not show their ammo bar (totems and ultracs).

Attempting to run SetUnitAmmoWare on one of these units causes one of the following to occur:

  • The script stops running and does not send any error messages.
  • The script pulls additional items from the stack.

Details of what settings cause one error or the other is not yet understood.

For units in a CPACK, the relevant setting is Settings > Interface > Show unit ammo bar; if you want to modify the ammo type of that unit with 4rpl, ensure this setting is enabled.

Index

4rpl/commands/setunitammoware.txt · Last modified: 2024/09/19 12:08 by kalli