Page 1 of 2

Playerpawn error

Posted: Tue Jan 18, 2011 18:32
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 :?:

Re: Playerpawn error

Posted: Tue Jan 18, 2011 20:29
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

Re: Playerpawn error

Posted: Tue Jan 18, 2011 21:21
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.

Re: Playerpawn error

Posted: Tue Jan 18, 2011 22:09
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

Re: Playerpawn error

Posted: Tue Jan 18, 2011 22:14
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
}
}

Re: Playerpawn error

Posted: Tue Jan 18, 2011 22:15
by wtg62
and here's my keyconf code:

clearplayerclasses

addplayerclass RPGPlayer

Re: Playerpawn error

Posted: Tue Jan 18, 2011 22:16
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

Re: Playerpawn error

Posted: Tue Jan 18, 2011 22:28
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.

Re: Playerpawn error

Posted: Tue Jan 18, 2011 22:34
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.

Re: Playerpawn error

Posted: Tue Jan 18, 2011 22:56
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.

Re: Playerpawn error

Posted: Tue Jan 18, 2011 23:02
by wtg62
well then that giant project I was working is trash now.

Re: Playerpawn error

Posted: Tue Jan 18, 2011 23:16
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

Re: Playerpawn error

Posted: Tue Jan 18, 2011 23:17
by Gez
The KEYCONF lump must reference the so-called "DisplayName". Not the class name, unfortunately.

Re: Playerpawn error

Posted: Tue Jan 18, 2011 23:19
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]

Re: Playerpawn error

Posted: Wed Jan 19, 2011 0:38
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.