Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  

ZDoom ACS Script question - Removing Player's Armor

Recommended Posts

So, for my mod, I want the script to remove player's armor, or rather, bring the armor value down to zero, although arguably, setting the armor to an exact value would be better.

So far I tried this:
1) Have the script provide the player with a negative amount of ArmorBonus. It appears that negative item amounts are not supported, fair enough.
2) Use Thing_Hurt repeatedly, while healing the player for the exact same amount, but it seems that Thing_Hurt does damage directly to health.
3) TakeActorInventory and TakeInventory do not appear to work either (I have a set player ID for the prior).
4) I can't access armor value for the actor because it appears that Actors do not have an armor value.
5) Armor Bonus with a negative value - but this makes an item that cannot be picked up, interestingly enough.

I was thinking of granting player armor with 100% damage absorbency, then do a loop of 100 damage/heal cycles. Though, this would mean that the character would end up healed up, which is not intentional.

I assume that once armor is picked up is simply added to some variable, while using the last armor modifier to set the armor damage reduction percent.

None the less, I tried searching the forums, but I have not been able to find a solution - is this something incredibly obvious or is plainly not possible?

Also, in addition, I would like to ask if it's possible to control z-offset of SpawnProjectile function, as it otherwise forces for the projectile to be spawned from the player's feet, which can be... less than stellar for a sudden rocket out of nowhere.

Share this post

Link to post

If the script was activated by the player, then TakeInventory("Armor",200); must work.

To your second question: This kind of problem is usually not being solved through ACS, but DECORATE. You can try to use SpawnSpot to spawn a dummy Map Spot thing on the player's position, but with a Z offset, give it a new TID, then use SpawnProjectile to spawn a projectile from that Map Spot, and then maybe immediately destroy the Map Spot. But then the projectile would actually hit the player. If you're just making a scripted cutscene, you would prevent that by using a dummy instead of the player, but I don't know what your intention actually is. I can't think of an easy solution, although it seems weird to me that such a stupid thing would be hard to do.

Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this