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
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.
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.
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
}
}
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.
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.