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'?
As [url=http://forum.zdoom.org/viewtopic.php?f=4&t=7002&start=60]it's been a while since 2005[/url], and [url=http://forum.zdoom.org/viewtopic.php?f=3&t=24954&p=479660]I've been wanting to change playerclass mid-game[/url], I decided to open this feature request post to get the up-to-date lowdown (PowerMorph was added, after all).
[b]The request[/b]
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?
[b]Current alternatives & their limitations[/b]
[list][*]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.[/list]
[b]The Implementation[/b]
[list][*]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?[/list]
Typing the console-command '[i]PlayerClass "PlayerClass DisplayName"[/i]' 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'?