Changing playerclass (midgame) through DECORATE

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is OFF
Smilies are ON

Topic review
   

Expand view Topic review: Changing playerclass (midgame) through DECORATE

Re: Changing playerclass (midgame) through DECORATE

by XutaWoo » Wed Mar 24, 2010 2:19 pm

Custom actors, I presume.

Re: Changing playerclass (midgame) through DECORATE

by Xaser » Wed Mar 24, 2010 1:57 pm

Kate (Pink Silver) and I were discussing an implementation for this not too long ago, and according to her, the way the code works makes it virtually impossible to implement playerclass changing as a DECORATE function, because it would have to change the actor calling the function before the function has finished executing -- or something similar. I'm likely distorting it with my layman's terms, but don't lose hope -- it's still theoretically possible via ACS, and changing an actor is as 'simple' as tossing an ACS_Execute in the definition.

Also, I feel I'm obliged to do my usual part and ask the obvious: why exactly isn't this in yet? :P

Re: Changing playerclass (midgame) through DECORATE

by Klofkac » Wed Mar 24, 2010 10:13 am

I want it also trough ACS.

Changing playerclass (midgame) through DECORATE

by InsaneFury » Fri Feb 26, 2010 3:45 am

As it's been a while since 2005, and I've been wanting to change playerclass mid-game, I decided to open this feature request post to get the up-to-date lowdown (PowerMorph was added, after all).

The request
I'd like to be able to dynamically change playerclasses and/or playerskins in-game, preferably through DECORATE. Something like A_SetPlayerClass("ClassName"). Or (for versatility) possibly even something more generic like A_SetActorClass(), allowing any actor to be morphed in (or replaced by) another actor?

Current alternatives & their limitations
  • Morphing players. Unfortunately, the effect does not transfer to the next level and does not have the required support for pickups and using multiple weapons. A morphed player is a crippled one.
  • Use only one playerclass with massive ACS & Decorate (dummy Inventory items and A_JumpIfInventory). SetActorProperty can help a bit, but lacks changing (view)height/scale/radius/gravity/painchance/ForwardMove/SideMove etc, not to mention the mugshot, crouchsprite and playersounds. Also, this requires additional scripting to prevent classes from using/picking up 'wrong' weapons for their class.
The Implementation
  • Extending the Morph system, removing the limitation concerning the use of weapons and picking up items, etc and making it *permanent*.
  • Creating new code, which could (loosly) also be used for Hexen's shadowcaster-cheat?
Typing the console-command 'PlayerClass "PlayerClass DisplayName"' works, but the player needs to commit suicide or change level for this to work. And this only works from MAP01 (and is probaby limited to singleplayer mode). I'm wondering whether this 'MAP01 suicide classchange' behaviour can be modified to work with any map, along with automatically killing the player & resurrecting/respawning him at the point where he 'died'?

Top