New "DECORATEor" needs help with weapon flags
New "DECORATEor" needs help with weapon flags
So, in my weapon pack I use, I have many different weapons I've been tinkering with (all pulled off of the 667 website for my personal enjoyment).
My chaingun replacement is meant to be a pain-locker with wide area spray and low damage, and I want my minigun replacement to use +Ripper and +ForcePain so that weapon may greater utilize that painlock affect. I can't get it to work. Any help?
[spoiler]Actor Repeater : Weapon replaces Minigun
{
Weapon.Slotnumber 4
Weapon.SelectionOrder 5
Inventory.PickupSound "misc/w_pkup"
Inventory.PickupMessage "You got the plasma repeater!"
Obituary "%o was disintegrated by %k's repeater."
Weapon.AmmoType1 "AMCell"
Weapon.AmmoGive 20
Weapon.AmmoUse 1
+Weapon.Explosive
+Weapon.NoAlert
+Ripper
+ForcePain
AttackSound "Weapons/RepeaterFire"
States
{
Spawn:
REPG I -1
Loop
Ready:
REPG A 0 A_TakeInventory("RepeaterSpin", 3)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG A 1 A_WeaponReady
Loop
Deselect:
REPG A 0 A_TakeInventory("RepeaterSpin", 3)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG A 1 A_Lower
Loop
Select:
REPG A 1 A_Raise
Loop
Fire:
//===========Spinup
REPG A 0 A_PlaySound("Weapons/RepeaterSpinup")
REPG A 0 A_JumpIfInventory("RepeaterSpin", 1, 8)
REPG A 0 A_JumpIfInventory("RepeaterB", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterC", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterD", 1, 4)
REPG A 4
REPG B 4
REPG C 4
REPG D 4 A_GiveInventory("RepeaterFrameA")
REPG A 0 A_JumpIfInventory("RepeaterSpin", 2, 9)
REPG A 0 A_GiveInventory("RepeaterSpin", 1)
REPG A 0 A_JumpIfInventory("RepeaterB", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterC", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterD", 1, 4)
REPG A 3
REPG B 3
REPG C 3
REPG D 3 A_GiveInventory("RepeaterFrameA")
REPG A 0 A_JumpIfInventory("RepeaterB", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterC", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterD", 1, 4)
REPG A 2
REPG B 2
REPG C 2
REPG D 2 A_GiveInventory("RepeaterFrameA")
//===========Fire
REPG A 0 A_Refire
//===========Spindown
REPG A 0 A_PlaySound("Weapons/RepeaterSpindown")
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
Goto Ready
Hold:
//===========Fire
REPG E 0 Bright A_Gunflash
REPG E 0 Bright A_AlertMonsters
REPG E 2 Bright A_FireBullets(25, 5, 4, 1, "RepPuff", 1, 10240)
REPG F 2 Bright
REPG G 0 Bright A_AlertMonsters
REPG G 2 Bright A_FireBullets(50, 50, 1, 8, "RepPuff", 1, 10240)
REPG H 2 Bright
REPG A 0 A_Refire
//===========Spindown - smartgun 1: 5, 5, 3, 3, smartgun 2: 50, 50, 1, 15,
REPG A 0 A_PlaySound("Weapons/RepeaterSpindown")
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
Goto Ready
Flash:
TNT1 A 2 A_Light2
TNT1 A 2 A_Light1
TNT1 A 0 A_Light0
Stop
}
}
Actor RepeaterSpin : Inventory { Inventory.MaxAmount 2 }
Actor RepeaterB : Inventory { Inventory.MaxAmount 1 }
Actor RepeaterC : Inventory { Inventory.MaxAmount 1 }
Actor RepeaterD : Inventory { Inventory.MaxAmount 1 }
Actor RepeaterFrameA : CustomInventory
{
Inventory.MaxAmount 0
+Inventory.AutoActivate
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_TakeInventory("RepeaterB", 1)
TNT1 A 0 A_TakeInventory("RepeaterC", 1)
TNT1 A 0 A_TakeInventory("RepeaterD", 1)
Stop
}
}
Actor RepeaterFrameB : RepeaterFrameA
{
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_GiveInventory("RepeaterB", 1)
TNT1 A 0 A_TakeInventory("RepeaterC", 1)
TNT1 A 0 A_TakeInventory("RepeaterD", 1)
Stop
}
}
Actor RepeaterFrameC : RepeaterFrameA
{
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_TakeInventory("RepeaterB", 1)
TNT1 A 0 A_GiveInventory("RepeaterC", 1)
TNT1 A 0 A_TakeInventory("RepeaterD", 1)
Stop
}
}
Actor RepeaterFrameD : RepeaterFrameA
{
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_TakeInventory("RepeaterB", 1)
TNT1 A 0 A_TakeInventory("RepeaterC", 1)
TNT1 A 0 A_GiveInventory("RepeaterD", 1)
Stop
}
}
Actor RepPuff
{
Radius 3
Height 3
RenderStyle Add
Alpha 0.75
+ForcePain
+Ripper
+AlwaysPuff
+PuffOnActors
+NoGravity
+NoBlockMap
+PuffGetsOwner
+ForceRadiusDmg
+BloodlessImpact
Decal MummyScorch
States
{
Spawn:
RPUF A 1 Bright
RPUF A 0 Bright A_PlaySound("Weapons/RepeaterHit")
RPUF A 2 Bright A_Explode(7, 44, 0)
RPUF BCDEFG 3 Bright
Stop
}
}
Actor AMCell : Ammo
{
Inventory.PickupSound "misc/i_pkup"
Inventory.Amount 10
Inventory.MaxAmount 300
Ammo.BackpackAmount 10
Ammo.BackpackMaxAmount 600
Inventory.PickupMessage "You picked up an antimatter capsule."
Inventory.Icon WAMCA0
States
{
Spawn:
WAMC A 3 Bright
WAMC B 9
Loop
}
}
Actor AMBox : AMCell
{
Inventory.Amount 50
Inventory.PickupMessage "You picked up a box of antimatter capsules."
States
{
Spawn:
WAMC D 3 Bright
WAMC C 9
Loop
}
}
//clipboxes
Actor VanillaClipBox : ClipBox {}
Actor VanillaClipBoxReplacer : RandomSpawner replaces ClipBox
{
DropItem "VanillaClipBox" 255
DropItem "AMBox" 255
}
//clips
Actor VanillaClip : Clip {}
Actor VanillaClipReplacer : RandomSpawner replaces Clip
{
DropItem "VanillaClip" 255
DropItem "AMCell" 255
}
//spawnable w/o a minigun spawn so it's available anywhere
Actor AMB : AMBox {}
Actor AMBoxReplacer : RandomSpawner replaces AMBox
{
DropItem "AMB" 255, 6
DropItem "Repeater" 255, 1
}[/spoiler]
and a download link if anyone wants to give their opinion on it. Still refining :)
[spoiler]http://www.mediafire.com/download/wh8sb ... 05.wad.zip[/spoiler]
My chaingun replacement is meant to be a pain-locker with wide area spray and low damage, and I want my minigun replacement to use +Ripper and +ForcePain so that weapon may greater utilize that painlock affect. I can't get it to work. Any help?
[spoiler]Actor Repeater : Weapon replaces Minigun
{
Weapon.Slotnumber 4
Weapon.SelectionOrder 5
Inventory.PickupSound "misc/w_pkup"
Inventory.PickupMessage "You got the plasma repeater!"
Obituary "%o was disintegrated by %k's repeater."
Weapon.AmmoType1 "AMCell"
Weapon.AmmoGive 20
Weapon.AmmoUse 1
+Weapon.Explosive
+Weapon.NoAlert
+Ripper
+ForcePain
AttackSound "Weapons/RepeaterFire"
States
{
Spawn:
REPG I -1
Loop
Ready:
REPG A 0 A_TakeInventory("RepeaterSpin", 3)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG A 1 A_WeaponReady
Loop
Deselect:
REPG A 0 A_TakeInventory("RepeaterSpin", 3)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG A 1 A_Lower
Loop
Select:
REPG A 1 A_Raise
Loop
Fire:
//===========Spinup
REPG A 0 A_PlaySound("Weapons/RepeaterSpinup")
REPG A 0 A_JumpIfInventory("RepeaterSpin", 1, 8)
REPG A 0 A_JumpIfInventory("RepeaterB", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterC", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterD", 1, 4)
REPG A 4
REPG B 4
REPG C 4
REPG D 4 A_GiveInventory("RepeaterFrameA")
REPG A 0 A_JumpIfInventory("RepeaterSpin", 2, 9)
REPG A 0 A_GiveInventory("RepeaterSpin", 1)
REPG A 0 A_JumpIfInventory("RepeaterB", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterC", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterD", 1, 4)
REPG A 3
REPG B 3
REPG C 3
REPG D 3 A_GiveInventory("RepeaterFrameA")
REPG A 0 A_JumpIfInventory("RepeaterB", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterC", 1, 4)
REPG A 0 A_JumpIfInventory("RepeaterD", 1, 4)
REPG A 2
REPG B 2
REPG C 2
REPG D 2 A_GiveInventory("RepeaterFrameA")
//===========Fire
REPG A 0 A_Refire
//===========Spindown
REPG A 0 A_PlaySound("Weapons/RepeaterSpindown")
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
Goto Ready
Hold:
//===========Fire
REPG E 0 Bright A_Gunflash
REPG E 0 Bright A_AlertMonsters
REPG E 2 Bright A_FireBullets(25, 5, 4, 1, "RepPuff", 1, 10240)
REPG F 2 Bright
REPG G 0 Bright A_AlertMonsters
REPG G 2 Bright A_FireBullets(50, 50, 1, 8, "RepPuff", 1, 10240)
REPG H 2 Bright
REPG A 0 A_Refire
//===========Spindown - smartgun 1: 5, 5, 3, 3, smartgun 2: 50, 50, 1, 15,
REPG A 0 A_PlaySound("Weapons/RepeaterSpindown")
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDD 1 A_WeaponReady(11)
REPG A 0 A_TakeInventory("RepeaterSpin", 1)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameA", 1)
REPG AAAA 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameB", 1)
REPG BBBB 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameC", 1)
REPG CCCC 1 A_WeaponReady(11)
REPG A 0 A_GiveInventory("RepeaterFrameD", 1)
REPG DDDD 1 A_WeaponReady(11)
Goto Ready
Flash:
TNT1 A 2 A_Light2
TNT1 A 2 A_Light1
TNT1 A 0 A_Light0
Stop
}
}
Actor RepeaterSpin : Inventory { Inventory.MaxAmount 2 }
Actor RepeaterB : Inventory { Inventory.MaxAmount 1 }
Actor RepeaterC : Inventory { Inventory.MaxAmount 1 }
Actor RepeaterD : Inventory { Inventory.MaxAmount 1 }
Actor RepeaterFrameA : CustomInventory
{
Inventory.MaxAmount 0
+Inventory.AutoActivate
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_TakeInventory("RepeaterB", 1)
TNT1 A 0 A_TakeInventory("RepeaterC", 1)
TNT1 A 0 A_TakeInventory("RepeaterD", 1)
Stop
}
}
Actor RepeaterFrameB : RepeaterFrameA
{
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_GiveInventory("RepeaterB", 1)
TNT1 A 0 A_TakeInventory("RepeaterC", 1)
TNT1 A 0 A_TakeInventory("RepeaterD", 1)
Stop
}
}
Actor RepeaterFrameC : RepeaterFrameA
{
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_TakeInventory("RepeaterB", 1)
TNT1 A 0 A_GiveInventory("RepeaterC", 1)
TNT1 A 0 A_TakeInventory("RepeaterD", 1)
Stop
}
}
Actor RepeaterFrameD : RepeaterFrameA
{
States
{
Spawn:
TNT1 A 1
Stop
Use:
TNT1 A 0 A_TakeInventory("RepeaterB", 1)
TNT1 A 0 A_TakeInventory("RepeaterC", 1)
TNT1 A 0 A_GiveInventory("RepeaterD", 1)
Stop
}
}
Actor RepPuff
{
Radius 3
Height 3
RenderStyle Add
Alpha 0.75
+ForcePain
+Ripper
+AlwaysPuff
+PuffOnActors
+NoGravity
+NoBlockMap
+PuffGetsOwner
+ForceRadiusDmg
+BloodlessImpact
Decal MummyScorch
States
{
Spawn:
RPUF A 1 Bright
RPUF A 0 Bright A_PlaySound("Weapons/RepeaterHit")
RPUF A 2 Bright A_Explode(7, 44, 0)
RPUF BCDEFG 3 Bright
Stop
}
}
Actor AMCell : Ammo
{
Inventory.PickupSound "misc/i_pkup"
Inventory.Amount 10
Inventory.MaxAmount 300
Ammo.BackpackAmount 10
Ammo.BackpackMaxAmount 600
Inventory.PickupMessage "You picked up an antimatter capsule."
Inventory.Icon WAMCA0
States
{
Spawn:
WAMC A 3 Bright
WAMC B 9
Loop
}
}
Actor AMBox : AMCell
{
Inventory.Amount 50
Inventory.PickupMessage "You picked up a box of antimatter capsules."
States
{
Spawn:
WAMC D 3 Bright
WAMC C 9
Loop
}
}
//clipboxes
Actor VanillaClipBox : ClipBox {}
Actor VanillaClipBoxReplacer : RandomSpawner replaces ClipBox
{
DropItem "VanillaClipBox" 255
DropItem "AMBox" 255
}
//clips
Actor VanillaClip : Clip {}
Actor VanillaClipReplacer : RandomSpawner replaces Clip
{
DropItem "VanillaClip" 255
DropItem "AMCell" 255
}
//spawnable w/o a minigun spawn so it's available anywhere
Actor AMB : AMBox {}
Actor AMBoxReplacer : RandomSpawner replaces AMBox
{
DropItem "AMB" 255, 6
DropItem "Repeater" 255, 1
}[/spoiler]
and a download link if anyone wants to give their opinion on it. Still refining :)
[spoiler]http://www.mediafire.com/download/wh8sb ... 05.wad.zip[/spoiler]
Last edited by Hardbash on Tue Jun 23, 2015 10:47 pm, edited 1 time in total.
Shut up, nurse!
RE: New "DECORATEor" needs help with weapon flags
Lol wat. +RIPPER is a flag for only projectiles, it allows them to clip through actors and still do damage. On a weapon itself it does nothing.
If you want a weapon with more pain chance than vanilla hitscans offer, you'll need to make a custom bulletpuff for just that gun, with a custom damage type. Then make your monsters super sensitive to it with the DamageFactor property.
http://zdoom.org/wiki/Custom_damage_types
If you want a weapon with more pain chance than vanilla hitscans offer, you'll need to make a custom bulletpuff for just that gun, with a custom damage type. Then make your monsters super sensitive to it with the DamageFactor property.
http://zdoom.org/wiki/Custom_damage_types
Last edited by Ænima on Tue Jun 23, 2015 11:16 pm, edited 1 time in total.
Reinforcements: midgame Survival joining/respawning
Doom64: Unabsolved: Doom64 + Diablo II
ZandroSkins: a pack made by our community
AeniPuffs: 3D blood and bullet puff effects, free to use for your own mods
Squad Radio: a WASD-based radio chat menu, add your own custom sounds!
Mercenaries (on hold)

Doom64: Unabsolved: Doom64 + Diablo II
ZandroSkins: a pack made by our community
AeniPuffs: 3D blood and bullet puff effects, free to use for your own mods
Squad Radio: a WASD-based radio chat menu, add your own custom sounds!
Mercenaries (on hold)

RE: New "DECORATEor" needs help with weapon flags
If you looked at the code, he also put +RIPPER and +FORCEPAIN on the bullet puff, too.Ænima wrote: Lol wat. +RIPPER is a flag for only projectiles, it allows them to clip through actors and still do damage. On a weapon itself it does nothing.
If you want a weapon with more pain chance than vanilla hitscans offer, you'll need to make a custom bulletpuff for just that gun, with a custom damage type. Then make your monsters super sensitive to it with the DamageFactor property.
http://zdoom.org/wiki/Custom_damage_types
EDIT: I'm not sure about FORCEPAIN, but Anima's right - RIPPER is a projectile-only flag. I don't think it's possible to have ripping hitscans.
So how do we do this? Well, you're probably not gonna like the answer.
Basically, you need to convert your weapon from hitscans to fake bullets (Invisible projectiles with speed about 320), and put +RIPPER and +FORCEPAIN on those projectiles.
Last edited by Untitled on Tue Jun 23, 2015 11:41 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053
Spoiler: Me in a nutshell (Open)Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053
-
Catastrophe
- Retired Staff / Community Team Member
- Posts: 2571
- Joined: Sat Jun 02, 2012 2:44 am
RE: New "DECORATEor" needs help with weapon flags
I'm assuming you're using +ripper so it can hit through multiple monsters. Unfortunately you can't do that with hitscan BUT you can do this if you use railgun shots instead. All you'd need to do is call a_railattack in place of a_firebullets and remove the +ripper flag, as a_railattack always goes through enemies.
Also +forcepain is only supposed to be used on monsters, not weapons. If you'd like it to stun enemies, you'd need some heavy ACS witchcraft or wait until Zandronum 3.0 comes out to utilize some advanced decorate features. But hey, if your gun is rapid fire, rng should be in your favor for it to always stun lock.
Also +forcepain is only supposed to be used on monsters, not weapons. If you'd like it to stun enemies, you'd need some heavy ACS witchcraft or wait until Zandronum 3.0 comes out to utilize some advanced decorate features. But hey, if your gun is rapid fire, rng should be in your favor for it to always stun lock.
Last edited by Catastrophe on Tue Jun 23, 2015 11:42 pm, edited 1 time in total.
RE: New "DECORATEor" needs help with weapon flags
EDIT: I'm not sure Zandronum 2.0 supports spread_xy and spread_z parameters for A_RailAttack. I should test that.Catastrophe wrote: I'm assuming you're using +ripper so it can hit through multiple monsters. Unfortunately you can't do that with hitscan BUT you can do this if you use railgun shots instead. All you'd need to do is call a_railattack instead and remove the +ripper flag, as railguns will always hit multiple enemies.
Catastrophe wrote: Also +forcepain is only supposed to be used on monsters, not weapons. If you'd like it to stun enemies, you'd need some heavy ACS witchcraft or wait until Zandronum 3.0 comes out to utilize some advanced decorate features. But hey, if your gun is rapid fire, rng should be in your favor for it to always stun lock.
Actually, +FORCEPAIN is based on the projectile, not the monster.ZDoom Wiki wrote: FORCEPAIN
Actors will always enter the Pain state appropriate to the type of damage received if hit by a projectile with this flag set, even if the projectile does zero damage. The PAINLESS flag has precedence (a projectile with both PAINLESS and FORCEPAIN will not cause actors to enter their Pain state), and pain cannot be forced on actors with the NOPAIN flag set.
Last edited by Untitled on Tue Jun 23, 2015 11:44 pm, edited 1 time in total.
"I'm in despair! The fact someone would give me the title 'Forum Regular' has left me in despair!"
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053
Spoiler: Me in a nutshell (Open)Projects:
SamsaraHold http://zandronum.com/forum/showthread.php?tid=3053
-
Catastrophe
- Retired Staff / Community Team Member
- Posts: 2571
- Joined: Sat Jun 02, 2012 2:44 am
RE: New "DECORATEor" needs help with weapon flags
Ah, my mistake. In that case I'd probably fire a bunch of extremely fast, invisible projectiles with the +ripper and +bloodlessimpact flags.
Though it's strange that bulletpuffs can't use +forcepain
Though it's strange that bulletpuffs can't use +forcepain
RE: New "DECORATEor" needs help with weapon flags
You could always stack multiple hitscan attacks into one tic, that has the benefit of increased pain chance AND penetration through multiple (weak) monsters. Buuuuuut it has to be 100% precise shots otherwise it looks like a shotgun (because it's basically the same thing just concentrated).
Might be a way to spawn an actor with an offset from your weapon and then make THAT fire stacked hitscans.
Might be a way to spawn an actor with an offset from your weapon and then make THAT fire stacked hitscans.
Reinforcements: midgame Survival joining/respawning
Doom64: Unabsolved: Doom64 + Diablo II
ZandroSkins: a pack made by our community
AeniPuffs: 3D blood and bullet puff effects, free to use for your own mods
Squad Radio: a WASD-based radio chat menu, add your own custom sounds!
Mercenaries (on hold)

Doom64: Unabsolved: Doom64 + Diablo II
ZandroSkins: a pack made by our community
AeniPuffs: 3D blood and bullet puff effects, free to use for your own mods
Squad Radio: a WASD-based radio chat menu, add your own custom sounds!
Mercenaries (on hold)

-
Catastrophe
- Retired Staff / Community Team Member
- Posts: 2571
- Joined: Sat Jun 02, 2012 2:44 am
RE: New "DECORATEor" needs help with weapon flags
In that case OP, since you're new, I'd say hold off from doing +forcepain trickery until you have more experience. These methods are too complicated for beginners.
RE: New "DECORATEor" needs help with weapon flags
This is exactly what I needed. I just needed it to penetrate through enemies and hit those who are in the back. Thanks.Catastrophe wrote: I'm assuming you're using +ripper so it can hit through multiple monsters. Unfortunately you can't do that with hitscan BUT you can do this if you use railgun shots instead. All you'd need to do is call a_railattack in place of a_firebullets and remove the +ripper flag, as a_railattack always goes through enemies.
Also +forcepain is only supposed to be used on monsters, not weapons. If you'd like it to stun enemies, you'd need some heavy ACS witchcraft or wait until Zandronum 3.0 comes out to utilize some advanced decorate features. But hey, if your gun is rapid fire, rng should be in your favor for it to always stun lock.
I appreciate the help, guys!Catastrophe wrote: In that case OP, since you're new, I'd say hold off from doing +forcepain trickery until you have more experience. These methods are too complicated for beginners.
And no,
it does not, sadly :(Untitled wrote: EDIT: I'm not sure Zandronum 2.0 supports spread_xy and spread_z parameters for A_RailAttack. I should test that.
Last edited by Hardbash on Wed Jun 24, 2015 11:19 pm, edited 1 time in total.
Shut up, nurse!