KamkrazyIan Posted May 3, 2020 (edited) Back again but this time with a more advanced issue I'm trying add custom weapons to a wad I'm working on and as far as I can find it works the same way as adding monsters. But when I follow those steps for weapons 2 things happen. 1. My DECORATE looks like this actor QuadShotgun : Weapon //29999 { //$Category Weapons //$Title Quad-Shotgun Tag "Quad-Shotgun" obituary "%o was obliterated by %k's Quad-Shotgun!" radius 20 height 16 inventory.pickupmessage "You got the Quad-Barrelled shotgun!" weapon.selectionorder 1335 Weapon.SlotNumber 3 weapon.kickback 350 Weapon.AmmoType1 "Shell" Weapon.AmmoType2 "Shell" Weapon.AmmoGive 8 Weapon.AmmoUse1 1 Weapon.AmmoUse2 4 +Weapon.NoAlert Decal "BulletChip" states { Ready: SHT4 A 1 A_WeaponReady loop Deselect: SHT4 A 1 A_Lower loop Select: SHT4 A 1 A_Raise loop Fire: SHT4 A 6 A_CheckReload TNT1 A 0 A_JumpIfInventory("QuadCheck",4,"Reload") TNT1 A 0 A_AlertMonsters TNT1 A 0 A_PlaySound("QuadShotgun/SingleFire",Chan_Weapon) TNT1 A 0 A_CustomPunch(Random(12,18),0,CPF_NOTURN,"BulletPuff",96) //12-18 x Default Melee Random, without turning to face target. TNT1 A 0 Bright A_FireBullets (5.5, 3.2, 6, 7, "Bulletpuff") TNT1 A 0 A_GunFlash TNT1 A 0 A_GiveInventory("QuadCheck", 1) TNT1 A 0 A_GiveInventory("BarrelChange",1) SHT4 AB 3 Bright SHT4 CB 3 Bright SHT4 A 3 A_CheckReload TNT1 A 0 A_JumpIfInventory("QuadCheck",4,"Reload") SHT4 A 1 A_ReFire Goto Ready Reload: SHT4 ABCDEFGHI 2 SHT4 J 5 A_PlaySound("QuadShotgun/Open",6) SHT4 KL 5 TNT1 A 0 A_TakeInventory("QuadCheck", 4)//Resets the cap Counter to 0 TNT1 A 0 A_TakeInventory("BarrelChange",3) //Changes Flash TNT1 A 0 A_PlaySound("QuadShotgun/ReloadAll",Chan_Auto) SHT4 MNO 5 SHT4 P 5 A_PlaySound("QuadShotgun/Close",6) SHT4 A 5 A_CheckReload Goto Ready AltFire: //Quad-Shot (Need at least 4 shells & not fired Primary Shot yet) SHT4 A 6 A_CheckReload TNT1 A 0 A_JumpIfInventory("QuadCheck", 3, "Reload")//Checks Counter Value, reloads if it's 3 TNT1 A 0 A_JumpIfInventory("QuadCheck", 2, "Reload")//Checks Counter Value, reloads if it's 2 TNT1 A 0 A_JumpIfInventory("QuadCheck", 1, "Reload")//Checks Counter Value, reloads if it's 1 TNT1 A 0 Bright A_AlertMonsters TNT1 A 0 A_TakeInventory("BarrelChange",3) SHT4 A 3 Bright A_PlaySound("QuadShotgun/QuadFire",Chan_Weapon) TNT1 A 0 Bright A_GiveInventory("QuadCheck", 4) TNT1 A 0 A_CustomPunch(Random(20,32),0,CPF_NOTURN,"BulletPuff",96) //20-32 x Default Melee Random, without turning to face target. QSSF B 0 Bright A_FireBullets (11.2, 9.1, 25, 7, "BulletPuff") TNT1 A 0 A_GunFlash("AltFlash") SHT4 B 6 Bright SHT4 A 3 A_CheckReload SHT4 A 3 A_JumpIfInventory("QuadCheck", 4, "Reload") Goto Ready Flash: TNT1 A 0 A_JumpIfInventory("BarrelChange",1,"Flash2") SH4X A 1 Bright A_Light1 SH4X E 1 Bright A_Light2 Goto LightDone Flash2: TNT1 A 0 A_JumpIfInventory("BarrelChange",2,"Flash3") SH4X B 1 Bright A_Light1 SH4X F 1 Bright A_Light2 Goto LightDone Flash3: TNT1 A 0 A_JumpIfInventory("BarrelChange",3,"Flash4") SH4X C 1 Bright A_Light1 SH4X G 1 Bright A_Light2 Goto LightDone Flash4: SH4X D 1 Bright A_Light1 SH4X H 1 Bright A_Light2 Goto LightDone AltFlash: SH4X I 4 Bright A_Light1 SH4X J 3 Bright A_Light2 TNT1 A 0 A_Light0 Goto LightDone Spawn: QSGW A -1 stop } } ACTOR BarrelChange : Inventory { Inventory.MaxAmount 3 } //Single-Shot Barrel Flash Alteration ACTOR QuadCheck : Inventory { Inventory.MaxAmount 4 } //Reload Check and the weapon won't even show up when I open my builder. or 2: actor QuadShotgun 29999 { //$Category Weapons //$Title Quad-Shotgun Tag "Quad-Shotgun" obituary "%o was obliterated by %k's Quad-Shotgun!" radius 20 height 16 inventory.pickupmessage "You got the Quad-Barrelled shotgun!" weapon.selectionorder 1335 Weapon.SlotNumber 3 weapon.kickback 350 Weapon.AmmoType1 "Shell" Weapon.AmmoType2 "Shell" Weapon.AmmoGive 8 Weapon.AmmoUse1 1 Weapon.AmmoUse2 4 +Weapon.NoAlert Decal "BulletChip" states { Ready: SHT4 A 1 A_WeaponReady loop Deselect: SHT4 A 1 A_Lower loop Select: SHT4 A 1 A_Raise loop Fire: SHT4 A 6 A_CheckReload TNT1 A 0 A_JumpIfInventory("QuadCheck",4,"Reload") TNT1 A 0 A_AlertMonsters TNT1 A 0 A_PlaySound("QuadShotgun/SingleFire",Chan_Weapon) TNT1 A 0 A_CustomPunch(Random(12,18),0,CPF_NOTURN,"BulletPuff",96) //12-18 x Default Melee Random, without turning to face target. TNT1 A 0 Bright A_FireBullets (5.5, 3.2, 6, 7, "Bulletpuff") TNT1 A 0 A_GunFlash TNT1 A 0 A_GiveInventory("QuadCheck", 1) TNT1 A 0 A_GiveInventory("BarrelChange",1) SHT4 AB 3 Bright SHT4 CB 3 Bright SHT4 A 3 A_CheckReload TNT1 A 0 A_JumpIfInventory("QuadCheck",4,"Reload") SHT4 A 1 A_ReFire Goto Ready Reload: SHT4 ABCDEFGHI 2 SHT4 J 5 A_PlaySound("QuadShotgun/Open",6) SHT4 KL 5 TNT1 A 0 A_TakeInventory("QuadCheck", 4)//Resets the cap Counter to 0 TNT1 A 0 A_TakeInventory("BarrelChange",3) //Changes Flash TNT1 A 0 A_PlaySound("QuadShotgun/ReloadAll",Chan_Auto) SHT4 MNO 5 SHT4 P 5 A_PlaySound("QuadShotgun/Close",6) SHT4 A 5 A_CheckReload Goto Ready AltFire: //Quad-Shot (Need at least 4 shells & not fired Primary Shot yet) SHT4 A 6 A_CheckReload TNT1 A 0 A_JumpIfInventory("QuadCheck", 3, "Reload")//Checks Counter Value, reloads if it's 3 TNT1 A 0 A_JumpIfInventory("QuadCheck", 2, "Reload")//Checks Counter Value, reloads if it's 2 TNT1 A 0 A_JumpIfInventory("QuadCheck", 1, "Reload")//Checks Counter Value, reloads if it's 1 TNT1 A 0 Bright A_AlertMonsters TNT1 A 0 A_TakeInventory("BarrelChange",3) SHT4 A 3 Bright A_PlaySound("QuadShotgun/QuadFire",Chan_Weapon) TNT1 A 0 Bright A_GiveInventory("QuadCheck", 4) TNT1 A 0 A_CustomPunch(Random(20,32),0,CPF_NOTURN,"BulletPuff",96) //20-32 x Default Melee Random, without turning to face target. QSSF B 0 Bright A_FireBullets (11.2, 9.1, 25, 7, "BulletPuff") TNT1 A 0 A_GunFlash("AltFlash") SHT4 B 6 Bright SHT4 A 3 A_CheckReload SHT4 A 3 A_JumpIfInventory("QuadCheck", 4, "Reload") Goto Ready Flash: TNT1 A 0 A_JumpIfInventory("BarrelChange",1,"Flash2") SH4X A 1 Bright A_Light1 SH4X E 1 Bright A_Light2 Goto LightDone Flash2: TNT1 A 0 A_JumpIfInventory("BarrelChange",2,"Flash3") SH4X B 1 Bright A_Light1 SH4X F 1 Bright A_Light2 Goto LightDone Flash3: TNT1 A 0 A_JumpIfInventory("BarrelChange",3,"Flash4") SH4X C 1 Bright A_Light1 SH4X G 1 Bright A_Light2 Goto LightDone Flash4: SH4X D 1 Bright A_Light1 SH4X H 1 Bright A_Light2 Goto LightDone AltFlash: SH4X I 4 Bright A_Light1 SH4X J 3 Bright A_Light2 TNT1 A 0 A_Light0 Goto LightDone Spawn: QSGW A -1 stop } } ACTOR BarrelChange : Inventory { Inventory.MaxAmount 3 } //Single-Shot Barrel Flash Alteration ACTOR QuadCheck : Inventory { Inventory.MaxAmount 4 } //Reload Check The difference between the two being line 1 and the gun will show up in the editor but when I try to launch GZDOOM it tells me that "script error, "testmap.wad:decorate" line xxx: '@property@pickupmessage' is an unknown actor property" What am I screwing up? Edited May 3, 2020 by KamkrazyIan 0 Share this post Link to post
Gez Posted May 3, 2020 2 hours ago, KamkrazyIan said: actor QuadShotgun : Weapon //29999 You're commenting our the editor number, so the editor will not show this to you because it does not have an editor number, so the editor does not have a number it can use that would allow you to put it in the map. 2 hours ago, KamkrazyIan said: actor QuadShotgun 29999 You're removing the inheritance from Weapon, so your weapon is not a weapon, it's not even an inventory item, it's just a standard basic actor that 1. cannot be picked up by the player, 2. cannot go in the player's inventory, 3. cannot be selected, and 4. cannot shoot. The conclusion here is that removing bits of code arbitrarily without knowing what they do is like taking an animal and removing random organs. Chances are the critter isn't going to survive. actor QuadShotgun : Weapon 29999 Try this and it should work. 0 Share this post Link to post