This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
4rpl:commands:setunitwantsern [2024/06/13 18:48] – [Examples] Kalli | 4rpl:commands:setunitwantsern [2025/03/24 04:21] (current) – Mentioned undock issue in description and added function quick copy. Vertu | ||
---|---|---|---|
Line 11: | Line 11: | ||
===== Description ===== | ===== Description ===== | ||
Sets whether the unit with the specified UID desires an ERN. Pass `true` to make the unit desire ERN, or `false` to indicate it does not. | Sets whether the unit with the specified UID desires an ERN. Pass `true` to make the unit desire ERN, or `false` to indicate it does not. | ||
+ | |||
+ | Beware that when an ERN is docked to a unit, you can't use this API to have that unit release the ERN by having it no longer want one. See the workaround code if this is a concern. | ||
Line 22: | Line 24: | ||
<code 4rpl> | <code 4rpl> | ||
- | # A unit that has an ERN slotted and receives the 4rpl command to "not want an ERN", will not actually unequip the ERN. As a workaround it is possible to destroy the unit and recreate it without the ERN. That's what this function is for. The function supposes that the unit that has to lose the ERN, is already constructed, | + | # A unit that has an ERN slotted and receives the 4rpl command to "not want an ERN", |
+ | # will not actually unequip the ERN. As a workaround, it is possible to destroy the unit | ||
+ | # and recreate it without the ERN. That's what this function is for. | ||
- | <-uid GetUnitWantsErn not GetUnitErnState AND if | + | <-uid GetUnitWantsErn not < |
<-uid @freeErnFromUnit | <-uid @freeErnFromUnit | ||
endif | endif | ||
Line 30: | Line 34: | ||
: | : | ||
->UID | ->UID | ||
- | <-UID getunittype <-UID getunitposition <-UID getunitsettings createunit dup ->newUID 999 constructunit | + | |
+ | | ||
+ | # Resources that are on the way to the old unit will be lost. | ||
+ | |||
+ | # Enable/ | ||
+ | <-newUID <-UID | ||
+ | # dup2 getunitmaxammo setunitmaxammo | ||
+ | dup2 getunitammo setunitammo | ||
+ | dup2 getunitcandestroy setunitcandestroy | ||
+ | dup2 getunitselectable setunitselectable | ||
+ | dup2 getunitenabled setunitenabled | ||
+ | dup2 getunitarmed setunitarmed | ||
+ | dup2 getunitsupplied setunitsupplied | ||
+ | # dup2 getunithealrate setunithealrate | ||
+ | # dup2 getunitmaxhealth setunitmaxhealth | ||
+ | dup2 getunithealth setunithealth | ||
+ | # dup2 getunitrange setunitrange | ||
+ | dup2 getunitstuncount setunitstuncount | ||
+ | dup2 getunitmovecell dup -1 neq if setunitmovecell else pop pop pop pop endif | ||
+ | pop pop | ||
+ | |||
+ | <-UID 1 1 1 destroyunit | ||
+ | |||
+ | </ | ||
+ | Just the function (for quick copy and paste): | ||
+ | <code 4rpl> | ||
+ | : | ||
+ | ->UID | ||
+ | <-UID getunitconstructingdata ev2 pop dup -1 eq if pop 999 endif -> | ||
+ | <-UID getunittype <-UID getunitposition <-UID getunitsettings createunit dup ->newUID < | ||
+ | # Resources that are on the way to the old unit will be lost. | ||
| | ||
# Enable/ | # Enable/ |