Playerpawn error

Advanced OpenGL source port fork from ZDoom, picking up where ZDoomGL left off.
[Home] [Download] [Git builds (Win)] [Git builds (Mac)] [Wiki] [Repo] [Bugs&Suggestions]

Moderator: Graf Zahl

wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Playerpawn error

Post by wtg62 »

I'm making a wad which has a better version of the doomplayer. Following correct procedures I did so.
Apparently Neither ZDoom or GZDoom Will detect this new type of player and thinks there are no player classes defined. Is there any solution to this :?:
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Playerpawn error

Post by Enjay »

Sounds like you haven't used a keyconf lump to tell (G)Zdoom to use your new player class.

If all you are doing is changing the class, it only needs to look like this:

Code: Select all

clearplayerclasses
addplayerclass NewClassName
wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Re: Playerpawn error

Post by wtg62 »

Enjay wrote:Sounds like you haven't used a keyconf lump to tell (G)Zdoom to use your new player class.

If all you are doing is changing the class, it only needs to look like this:

Code: Select all

clearplayerclasses
addplayerclass NewClassName
I know what a keyconf is and how to use it. I used in the wad so I'm not sure if there is any possible explaination.
Maybe it's that it won't read the keyconf text.
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Playerpawn error

Post by Enjay »

Well, you say that you know how to use this stuff and did it correctly but something isn't working so chances are that you didn't do everything correctly. However, you really haven't given much detail. Just saying "I made a new player class and a keyconf lump correctly but it doesn't work" doesn't help anyone debug what you have done.

How about posting your code?

If you think the WAD may be messed up, you can just add the lumps to the command line and they should work.

zdoom -file decorate.txt keyconf.txt
wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Re: Playerpawn error

Post by wtg62 »

Here's the code for my new version of the player:
Actor RPGPlayer : Playerpawn
{
Player.Startitem "Newfist"
Player.Startitem "NewPistol"
Player.Startitem "Clip", 50
Player.RunHealth 30
Player.InvulnerabilityMode Reflective
Player.DamageScreenColor "DarkRed", 5.0
Player.ColorRange 112, 127
Player.Colorset 0, "Green", 0x70, 0x7F, 0x72
Player.Colorset 1, "Gray", 0x60, 0x6F, 0x62
Player.Colorset 2, "Brown", 0x40, 0x4F, 0x42
Player.Colorset 3, "Red", 0x20, 0x2F, 0x22
// Doom Legacy additions
Player.Colorset 4, "Light Gray", 0x58, 0x67, 0x5A
Player.Colorset 5, "Light Brown", 0x38, 0x47, 0x3A
Player.Colorset 6, "Light Red", 0xB0, 0xBF, 0xB2
Player.Colorset 7, "Light Blue", 0xC0, 0xCF, 0xC2
States
{
Spawn:
PLAY A -1
Loop
See:
PLAY ABCD 4
Loop
Missile:
PLAY E 12
Goto Spawn
Melee:
PLAY F 6 BRIGHT
Goto Missile
Pain:
PLAY G 4
PLAY G 4 A_Pain
Goto Spawn
Pain.Fire:
PLAY G 4 A_Spawnitem("Archvilefire")
PLAY G 4 A_Pain
Pain.WeakFire:
PLAY G 4
PLAY G 4 A_Pain
Goto Spawn
Death.Weakfire:
PLAY H 0 A_PlayerScream
PLAY H 4 A_Spawnitem("Fire1",random(0,56))
PLAY I 4 A_Spawnitem("Fire1",random(0,56))
PLAY J 4 A_Spawnitem("Fire1",random(0,56))
PLAY K 4 A_Spawnitem("Fire1",random(0,56))
PLAY L 4 A_Spawnitem("Fire1",random(0,56))
PLAY M 4 A_Spawnitem("Fire1",random(0,56))
PLAY N -1
stop
Xdeath.Weakfire:
Death.Fire:
PLAY N 0 A_Custommissile("BrainStem2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool1",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool3",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool4",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool5",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
MLTP A 0 A_Playsound("player/male/xdeath1")
MLTP A 4 A_Spawnitem("Fire1",random(0,56))
MLTP B 4 A_Spawnitem("Fire1",random(0,56))
MLTP C 4 A_Spawnitem("Fire1",random(0,56))
MLTP D 4 A_Spawnitem("Fire1",random(0,56))
MLTP E 4 A_Spawnitem("Fire1",random(0,56))
MLTP F 4 A_Spawnitem("Fire1",random(0,56))
MLTP G -1
stop
XDeath.Fire:
PLAY N 0 A_Custommissile("BrainStem2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool1",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool3",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool4",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool5",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
MLTP H 0 A_Playsound("player/male/xdeath1")
MLTP H 4 A_Spawnitem("Fire1",random(0,56))
MLTP I 4 A_Spawnitem("Fire1",random(0,56))
MLTP J 4 A_Spawnitem("Fire1",random(0,56))
MLTP K 4 A_Spawnitem("Fire1",random(0,56))
MLTP L 4 A_Spawnitem("Fire1",random(0,56))
MLTP M 4 A_Spawnitem("Fire1",random(0,56))
MLTP N 4 A_Spawnitem("Fire1",random(0,56))
MLTP O 4 A_Spawnitem("Fire1",random(0,56))
Xdeath.Fire2:
MLTP PQ 4 A_Spawnitem("Fire1",random(0,56))
Loop
Pain.Disintergrate:
PLAY G 1 A_fadeout(0.125,0)
PLAY G 1 A_fadeout(0.125,0)
PLAY G 1 A_fadeout(0.125,0)
PLAY G 1 A_fadeout(0.125,0)
PLAY G 0 A_Pain
PLAY G 1 A_fadein(0.125)
PLAY G 1 A_fadein(0.125)
PLAY G 1 A_fadein(0.125)
PLAY G 1 A_fadein(0.125)
goto spawn
Death.Disintegrate:
PLAY N 0 A_Custommissile("BrainStem2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool1",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool3",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool4",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool5",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
DISP A 0 A_Playsound("misc/gibbed")
DISP A 0 A_Spawndebris("Blood")
DISP A 0 A_Spawnitem("GreenArmor")
DISP A 0 A_Spawnitem("Marinehelmet",random(0,32),random(0,56))
DISP A 4 A_Fadeout(0.2)
DISP B 4 A_Fadeout(0.2)
DISP C 4 A_Fadeout(0.2)
DISP D 4 A_Fadeout(0.2)
DISP E 4 A_Fadeout(0.06)
DISP F 4 A_Fadeout(0.06)
DISP F 0 A_Fadeout(0.06)
DISP G -1
stop
XDeath.Disintegrate:
PLAY N 0 A_Custommissile("BrainStem2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool1",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool3",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool4",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool5",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
DISP H 0 A_Playsound("Misc/gibbed")
DISP H 0 A_Spawndebris("Blood")
DISP H 0 A_Spawnitem("GreenArmor")
DISP H 0 A_Spawnitem("Marinehelmet",random(0,32),random(0,56))
DISP H 0 A_XScream
DISP I 4 A_Fadeout(0.2)
DISP J 4 A_Fadeout(0.2)
DISP K 4 A_Fadeout(0.2)
DISP L 4 A_Fadeout(0.2)
DISP M 4 A_Fadeout(0.06)
DISP N 4 A_Fadeout(0.06)
DISP O 0 A_Fadeout(0.06)
DISP P -1
stop
Pain.Ice:
PLAY G 4 A_Playsound("misc/freeze")
PLAY G 4 A_Pain
PLAY G 4 A_Playsound("misc/icebreak")
goto spawn
Pain.Bfgsplash:
PLAY A 4 A_Spawnitem("Bfgextra")
PLAY A 4 A_Pain
goto spawn
Death.Bfgsplash:
BGSP A 0 A_Pain
BGSP A 4
Goto XDeath
Pain.Drowning:
PLAY GGGG 1 A_Spawnitem("Bubble")
PLAY G 4 A_Pain
goto spawn
Death.Drowning:
DRNP A 0 A_PlayerScream
DRNP A 4 A_Spawnitem("Bubble")
DRNP B 4
DRNP C 4 A_Spawnitem("Bubble")
DRNP D 4
DRNP E -1
Pain.Electric:
PLAY G 4
PLAY G 4 A_Pain
PLAY G 0 A_Spawnitem("Zap")
PLAY G 0 A_Spawnitem("Zap")
PLAY G 0 A_Spawnitem("Zap")
PLAY G 0 A_Spawnitem("Zap")
goto spawn
Death.Electric:
PLAY H 0 A_PlayerScream
PLAY H 0 A_Spawnitem("Zap")
PLAY H 0 A_Spawnitem("zap")
PLAY H 0 A_Spawnitem("Zap")
goto death
XDeath.Electric:
PLAY H 0 A_Spawnitem("Zap")
PLAY H 0 A_Spawnitem("zap")
PLAY H 0 A_Spawnitem("Zap")
goto xdeath
Pain.Plasma:
PLAY G 4 A_Spawnitem("Fire3",random(0,56))
PLAY G 4 A_Pain
Goto Spawn
Death.Plasma:
PLAY H 4 A_PlayerScream
PLAY I 4 A_Spawnitem("Fire3",random(0,56))
PLAY J 4 A_Noblocking
PLAY K 4 A_Spawnitem("Fire3",random(0,56))
PLAY L 4 A_Spawnitem("Fire3",random(0,56))
PLAY M 4 A_Spawnitem("Fire3",random(0,56))
PLAY N -1
Xdeath.Plasma:
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
PLAY O 0 A_Spawnitem("Fire3",random(0,56))
goto xdeath
Pain.RevRocket:
PLAY G 4 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY G 4 A_Pain
Goto Spawn
Death.RevRocket:
PLAY H 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY H 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY H 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY H 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY H 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
Goto Death
XDeath.RevRocket:
PLAY O 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY O 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY O 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY O 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
PLAY O 0 A_Custommissile("SmallBloodpool",random(0,56),random(-16,16),random(0,360),CMF_AIMDIRECTION,random(0,360))
Goto XDeath
XDeath1:
PLAY N 0 A_Custommissile("BrainStem2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("Colongibs2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool1",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool2",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool3",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool4",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY N 0 A_Custommissile("SmallBloodPool5",0,0,random(0,360),CMF_AIMDIRECTION,random(45,90))
PLAY P 5 A_XScream
PLAY Q 5 A_NoBlocking
PLAY RSTUV 5
PLAY W -1
}
}
wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Re: Playerpawn error

Post by wtg62 »

and here's my keyconf code:

clearplayerclasses

addplayerclass RPGPlayer
wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Re: Playerpawn error

Post by wtg62 »

then when i trie to run it My source port says:
Unknown player class: RPGPlayer

EXECUTION COULD NOT CONTINUE

No player classes defined
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Playerpawn error

Post by Enjay »

You are missing the part of the startup that actually tells you what is wrong:

Code: Select all

Missing displayname for player class 'RPGPlayer'

**** DIED WITH FATAL ERROR:
No player classes defined

You haven't given your player class a display name.

Add something like:

Code: Select all

Player.DisplayName "CoolName"
and see what happens.
wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Re: Playerpawn error

Post by wtg62 »

That didn't really fix it. I'm not even sure a display name was required though anyways. Do you have any other solutions because so far it won't run still.
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Playerpawn error

Post by Enjay »

Strange because adding that line works for me™. The start of my copy of your decorate looks like this...

Code: Select all

Actor RPGPlayer : Playerpawn
{
Player.DisplayName "CoolName"
Player.Startitem "Newfist"
My startup log still contains a bunch of errors but these seem mainly to be related to other new actors referenced in your DECORATE that I don't have. Aside from that though, GZdoom starts and seems to load the player class (confirmed by the player setup screen). So, I'm not sure where your problem lies.
wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Re: Playerpawn error

Post by wtg62 »

well then that giant project I was working is trash now.
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Playerpawn error

Post by Enjay »

wtg62 wrote:well then that giant project I was working is trash now.
A whole project trashed because of one error that you will be able to sort out if you stick with it? That seems a touch over dramatic.

Why not post your startup log and see if that helps.

gzdoom -file whatever.wad +logfile log.txt

then post the contents of log.txt
User avatar
Gez
Developer
Developer
Posts: 1399
Joined: Mon Oct 22, 2007 16:47

Re: Playerpawn error

Post by Gez »

The KEYCONF lump must reference the so-called "DisplayName". Not the class name, unfortunately.
User avatar
Enjay
Developer
Developer
Posts: 4748
Joined: Tue Aug 30, 2005 23:19
Location: Scotland
Contact:

Re: Playerpawn error

Post by Enjay »

Gez wrote:The KEYCONF lump must reference the so-called "DisplayName". Not the class name, unfortunately.
Really? The only thing I changed was to add the displayname to the decorate. The keyconf is unchanged but now the files load for me.

[edit] (and Burghead and Paranoid both reference the actor, not the display name, in their keyconf.) [/edit]
wtg62
Posts: 69
Joined: Fri Sep 24, 2010 22:33

Re: Playerpawn error

Post by wtg62 »

Well guessh what!? It turns out that I mis-named a marker lump which is probably the cause of this. GZDoom thought my decorate lump was a flat.
Locked

Return to “GZDoom”