From: Mircea Kitsune Date: Thu, 25 Aug 2011 12:36:41 +0000 (+0300) Subject: Merge branch 'master' into mirceakitsune/damage_effects X-Git-Tag: xonotic-v0.6.0~110^2^2~101 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=f2a79cba0897fb6f6cb7ebeecb596b5547af3ddd Merge branch 'master' into mirceakitsune/damage_effects Conflicts: effectinfo.txt qcsrc/client/Main.qc qcsrc/client/autocvars.qh qcsrc/client/gibs.qc --- f2a79cba0897fb6f6cb7ebeecb596b5547af3ddd diff --cc effectinfo.txt index 15563178d1,bf631fb254..f69cdc907d --- a/effectinfo.txt +++ b/effectinfo.txt @@@ -5258,646 -5258,1152 +5258,1796 @@@ originjitter 1 1 velocityjitter 100 100 100 velocitymultiplier -0.31 + // --------------- vehicles + + effect spiderbot_minigun_trail + notunderwater + trailspacing 10 + type smoke + color 0xd0d0a0 0xffffff + tex 0 8 + size 1 2 + alpha 20 50 100 + sizeincrease 2 + velocityjitter 5 5 5 + gravity -0.03 + airfriction 1 + + effect spiderbot_minigun_muzzleflash + count 3 + type spark + color 0xff9c00 0xff8400 + tex 48 55 + size 10 15 + alpha 256 512 6280 + airfriction 10 + originjitter 2 2 2 + velocityjitter 150 150 150 + velocitymultiplier 0.35 + sizeincrease -100 + stretchfactor 1.3 + rotate -180 180 4000 -4000 + // fire + effect spiderbot_minigun_muzzleflash + count 6 + type spark + color 0xff9c00 0xff8400 + tex 8 15 + size 5 7 + alpha 256 512 6280 + airfriction 12 + originjitter 2 2 2 + velocityjitter 200 200 200 + velocitymultiplier 0.2 + sizeincrease -10 + stretchfactor 0.8 + effect spiderbot_minigun_muzzleflash + countabsolute 2 + type static + tex 48 55 + color 0xff9c00 0xff8400 + size 32 32 + alpha 256 512 6680 + sizeincrease -100 + stretchfactor 0.1 + rotate -180 180 4000 -4000 + lightradius 120 + lightradiusfade 8000 + lightcolor 3 3 0 + + effect spiderbot_minigun_impact + countabsolute 1 + type static + tex 65 65 + color 0xff9c00 0xf6ff00 + size 52 52 + alpha 50 100 1680 + sizeincrease -100 + stretchfactor 0.1 + rotate -180 180 4000 -4000 + // fire + effect spiderbot_minigun_impact + count 7 + type spark + color 0xff9c00 0xff8400 + tex 48 55 + size 9 15 + alpha 256 512 6280 + airfriction 10 + originjitter 2 2 2 + velocityjitter 250 250 150 + velocitymultiplier 0.2 + sizeincrease 100 + stretchfactor 3 + airfriction 6 + rotate -180 180 4000 -4000 + // smoke + effect spiderbot_minigun_impact + count 6 + type smoke + color 0xd0d0a0 0xffffff + tex 0 8 + size 10 20 + alpha 50 50 190 + sizeincrease 80 + velocityjitter 100 100 250 + velocitymultiplier 0.49 + gravity 1.3 + airfriction 10 + rotate -180 180 0 0 + // smoke 2 + effect spiderbot_minigun_impact + count 7 + type spark + color 0xd0d0a0 0xffffff + tex 0 8 + size 15 19 + alpha 25 51 128 + airfriction 6 + originjitter 2 2 2 + velocityjitter 250 250 150 + velocitymultiplier 0.2 + sizeincrease 100 + stretchfactor 7.6 + // derbis + effect spiderbot_minigun_impact + notunderwater + count 3 + type alphastatic + tex 66 68 + color 0x99977D 0xFFFFFF + size 6 8 + alpha 644 756 1484 + gravity 1.1 + airfriction 0.4 + sizeincrease -10 + velocitymultiplier 0.15 + originjitter 16 16 16 + velocityjitter 124 124 224 + rotate -180 180 -1000 1000 + // decal + effect spiderbot_minigun_impact + countabsolute 1 + type decal + tex 56 59 + size 20 25 + alpha 256 256 0 + originjitter 16 16 16 + rotate -180 180 0 0 + + effect spiderbot_rocket_explode + countabsolute 1 + type decal + tex 8 16 + size 72 72 + alpha 256 256 0 + originjitter 23 23 23 + lightradius 300 + lightradiusfade 1750 + lightcolor 8 4 0 + // shockwave + effect spiderbot_rocket_explode + countabsolute 1 + type static + tex 33 33 + size 22 22 + alpha 56 56 230 + color 0x8f0d00 0xff5a00 + sizeincrease 2400 + // glow + effect spiderbot_rocket_explode + countabsolute 1 + type static + tex 64 64 + size 120 120 + alpha 156 156 830 + color 0x8f0d00 0xff5a00 + sizeincrease 240 + // fire effect + effect spiderbot_rocket_explode + notunderwater + count 32 + type static + tex 48 55 + color 0x8f0d00 0xff5a00 + size 12 21 + sizeincrease 495 + alpha 200 256 812 + airfriction 8 + liquidfriction 8 + originjitter 100 100 100 + velocityjitter 512 512 512 + rotate -180 180 -50 50 + // fire effect 2 + effect spiderbot_rocket_explode + notunderwater + count 16 + type spark + tex 48 55 + color 0x8f0d00 0xff5a00 + size 3 3 + sizeincrease 120 + alpha 200 256 912 + airfriction -2 + liquidfriction 8 + velocityjitter 412 412 412 + rotate -180 180 -150 150 + stretchfactor 10 + // fire rays + effect spiderbot_rocket_explode + notunderwater + count 10 + type spark + tex 48 55 + color 0x8f0d00 0xff5a00 + size 13 54 + sizeincrease 120 + alpha 200 256 1600 + airfriction -3 + liquidfriction 8 + originjitter 40 40 40 + velocityjitter 712 712 712 + stretchfactor 10 + // smoke + effect spiderbot_rocket_explode + type alphastatic + notunderwater + tex 0 8 + count 10 + size 10 15 + sizeincrease 280 + alpha 300 650 756 + originjitter 100 100 100 + velocityjitter 200 200 200 + airfriction 3 + color 0x4F4B46 0x000000 + rotate -180 180 -20 20 + // smoke2 + effect spiderbot_rocket_explode + type alphastatic + notunderwater + tex 0 8 + count 3 + size 100 150 + sizeincrease 30 + alpha 300 650 556 + originjitter 10 10 10 + velocityjitter 200 200 200 + airfriction 2 + gravity -0.5 + color 0x4F4B46 0x000000 + rotate -180 180 -20 20 + // underwater bubbles + effect spiderbot_rocket_explode + underwater + count 32 + type bubble + tex 62 62 + color 0x404040 0x808080 + size 1 3 + alpha 128 256 64 + gravity -0.125 + bounce 1.5 + liquidfriction 0.25 + originjitter 160 160 160 + velocityjitter 144 144 144 + // underwatershockwave + effect spiderbot_rocket_explode + underwater + type smoke + countabsolute 1 + tex 33 33 + size 30 30 + sizeincrease 1200 + alpha 40 40 300 + + + effect spiderbot_rocket_thrust + notunderwater + count 3 + type spark + tex 48 55 + color 0x8f0d00 0xff5a00 + size 5 10 + sizeincrease -40 + alpha 200 256 1600 + velocityjitter 20 20 20 + velocitymultiplier -1.4 + stretchfactor 0.9 + effect spiderbot_rocket_thrust + notunderwater + count 4 + type static + tex 48 55 + color 0x8f0d00 0xff5a00 + size 25 25 + sizeincrease -3000 + alpha 200 200 9000 + velocityjitter 60 60 60 + velocitymultiplier -1.4 + stretchfactor 1 + rotate -180 180 -500 500 + + + + // long lasting smoke + effect spiderbot_rocket_launch + notunderwater + count 8 + type smoke + tex 0 8 + color 0xFFFFFF 0xD9C4B0 + size 30 30 + sizeincrease 20 + alpha 100 156 60 + velocityjitter 60 60 60 + velocitymultiplier -0.1 + airfriction 0.3 + gravity -0.01 + // fast smoke + effect spiderbot_rocket_launch + notunderwater + count 14 + type smoke + tex 0 8 + color 0xFFFFFF 0xD9C4B0 + size 30 30 + sizeincrease 20 + alpha 100 156 260 + gravity -0.3 + velocityjitter 160 160 60 + airfriction 0.3 + // fire + effect spiderbot_rocket_launch + notunderwater + count 14 + type spark + tex 48 55 + color 0x8f0d00 0xff5a00 + size 30 30 + sizeincrease 40 + velocitymultiplier 0.5 + alpha 200 256 1960 + velocityjitter 60 60 60 + airfriction 0.3 + stretchfactor 3 + airfriction 0.3 + //sparks + effect spiderbot_rocket_launch + notunderwater + count 10 + type spark + tex 40 40 + color 0xFFFFFF 0xD9C4B0 + size 1 4 + alpha 200 256 1000 + velocityjitter 160 160 160 + velocitymultiplier -0.5 + + effect wakizashi_gun_impact + count 15 + type spark + color 0xff0000 0xc03535 + tex 41 41 + size 4 7 + alpha 256 512 1180 + airfriction 4 + gravity 3 + originjitter 40 40 10 + velocityjitter 350 350 550 + velocityoffset 0 0 700 + stretchfactor 0.9 + effect wakizashi_gun_impact + type smoke + count 24 + color 0xd0d0a0 0xc03535 + tex 0 8 + size 10 20 + alpha 50 90 150 + sizeincrease 80 + velocityjitter 250 250 450 + velocityoffset 0 0 600 + originjitter 40 40 10 + airfriction 4 + sizeincrease 80 + rotate -180 180 0 0 + effect wakizashi_gun_impact + countabsolute 1 + type smoke + tex 65 65 + color 0xff0000 0xc03535 + size 82 82 + alpha 250 300 680 + sizeincrease -180 + effect wakizashi_gun_impact + countabsolute 1 + type smoke + tex 33 33 + color 0xff0000 0xc03535 + size 40 40 + alpha 50 100 620 + sizeincrease 900 + rotate -180 180 400 -400 + effect wakizashi_gun_impact + countabsolute 1 + type decal + tex 59 59 + size 14 14 + alpha 256 256 0 + originjitter 16 16 16 + rotate -180 180 0 0 + + effect wakizashi_gun_muzzleflash + count 16 + type spark + color 0xff0000 0xc03535 + tex 8 15 + size 5 7 + alpha 256 512 6280 + airfriction 12 + originjitter 2 2 2 + velocityjitter 200 200 200 + velocitymultiplier 0.2 + sizeincrease -10 + stretchfactor 0.7 + + effect wakizashi_rocket_explode + countabsolute 1 + type decal + tex 8 16 + size 72 72 + alpha 256 256 0 + originjitter 23 23 23 + lightradius 300 + lightradiusfade 1750 + lightcolor 8 4 0 + // shockwave + effect wakizashi_rocket_explode + countabsolute 1 + type static + tex 33 33 + size 22 22 + alpha 56 56 230 + color 0x8f0d00 0xff5a00 + sizeincrease 2400 + // glow + effect wakizashi_rocket_explode + countabsolute 1 + type static + tex 64 64 + size 120 120 + alpha 156 156 830 + color 0x8f0d00 0xff5a00 + sizeincrease 240 + // fire effect + effect wakizashi_rocket_explode + notunderwater + count 64 + type static + tex 48 55 + color 0xFFAE00 0xff5a00 + size 12 21 + sizeincrease 195 + alpha 200 256 512 + airfriction 2 + liquidfriction 8 + originjitter 10 10 10 + velocityjitter 512 512 512 + rotate -180 180 -50 50 + // fire rays + effect wakizashi_rocket_explode + notunderwater + count 10 + type spark + tex 48 55 + color 0xFFEA00 0xff5a00 + size 43 54 + sizeincrease 120 + alpha 200 256 1600 + airfriction -3 + liquidfriction 8 + originjitter 40 40 40 + velocityjitter 512 512 512 + stretchfactor 10 + // smoke + effect wakizashi_rocket_explode + type alphastatic + notunderwater + tex 0 8 + count 32 + size 10 15 + sizeincrease 230 + alpha 300 450 556 + originjitter 100 100 100 + velocityjitter 200 200 200 + airfriction 3 + color 0x4F4B46 0x000000 + rotate -180 180 -20 20 + // bouncing sparks + effect wakizashi_rocket_explode + notunderwater + count 14 + type spark + tex 40 40 + color 0xffa35b 0xfff2be + size 1 2 + alpha 644 956 884 + gravity 1 + airfriction 1 + liquidfriction 0.8 + velocityoffset 0 0 170 + originjitter 60 60 60 + velocityjitter 524 524 524 + // underwater bubbles + effect wakizashi_rocket_explode + underwater + count 32 + type bubble + tex 62 62 + color 0x404040 0x808080 + size 1 3 + alpha 128 256 64 + gravity -0.125 + bounce 1.5 + liquidfriction 0.25 + originjitter 160 160 160 + velocityjitter 144 144 144 + // underwatershockwave + effect wakizashi_rocket_explode + underwater + type smoke + countabsolute 1 + tex 33 33 + size 30 30 + sizeincrease 1200 + alpha 40 40 300 + + effect wakizashi_rocket_thrust + notunderwater + countabsolute 3 + type spark + tex 48 55 + color 0x00FFDD 0x6200FF + size 14 19 + sizeincrease -2 + alpha 200 256 1600 + velocityjitter 60 60 60 + velocitymultiplier -1.1 + stretchfactor 1 + effect wakizashi_rocket_thrust + notunderwater + countabsolute 2 + type spark + tex 48 55 + color 0xFFFF33 0xFFEE00 + size 5 10 + sizeincrease -2 + alpha 200 256 1900 + velocityjitter 60 60 60 + velocitymultiplier -0.3 + stretchfactor 3 + + // long lasting smoke + effect wakizashi_rocket_launch + notunderwater + count 8 + type smoke + tex 0 8 + color 0xFFFFFF 0xD9C4B0 + size 3 30 + sizeincrease 20 + alpha 100 156 60 + velocityjitter 160 160 60 + velocitymultiplier -0.1 + airfriction 0.3 + // fast smoke + effect wakizashi_rocket_launch + notunderwater + count 14 + type smoke + tex 0 8 + color 0xFFFFFF 0xD9C4B0 + size 30 30 + sizeincrease 20 + alpha 100 156 260 + velocityjitter 160 160 60 + velocitymultiplier 0.4 + airfriction 0.3 + //sparks + effect wakizashi_rocket_launch + notunderwater + count 10 + type spark + tex 40 40 + color 0xFFFFFF 0xD9C4B0 + size 1 4 + alpha 200 256 1000 + velocityjitter 60 60 60 + velocitymultiplier -1.5 + + effect wakizashi_booster_smoke + type alphastatic + notunderwater + tex 0 8 + count 3 + size 60 100 + sizeincrease 10 + gravity -0.1 + alpha 200 750 200 + velocityjitter 40 40 40 + originjitter 60 60 60 + airfriction 2 + color 0xA69A80 0xB3B39F + rotate -180 180 -20 20 + + // decal + effect raptor_cannon_impact + countabsolute 1 + type decal + tex 47 47 + size 24 24 + alpha 256 256 0 + originjitter 16 16 16 + rotate -180 180 0 0 + //spark + effect raptor_cannon_impact + notunderwater + count 6 + type spark + tex 40 40 + color 0xD400FF 0x571863 + size 1 1 + alpha 644 956 784 + gravity 1 + airfriction 0.2 + velocityoffset 0 0 150 + originjitter 16 16 16 + velocityjitter 124 124 524 + // smoke + effect raptor_cannon_impact + count 4 + type alphastatic + tex 0 7 + size 50 50 + color 0x646364 0x151515 + alpha 428 428 600 + rotate -180 180 0 0 + velocityjitter 200 200 300 + velocityoffset 0 0 340 + gravity 0.7 + airfriction 2 + // fire + effect raptor_cannon_impact + notunderwater + count 10 + type static + tex 48 55 + color 0xD400FF 0x571863 + size 33 44 + sizeincrease 25 + alpha 200 256 812 + bounce 1.5 + airfriction 8 + liquidfriction 8 + originjitter 8 8 8 + velocityjitter 312 312 312 + + + effect raptor_cannon_muzzleflash + count 16 + type spark + color 0xD400FF 0x571863 + tex 8 15 + size 10 17 + alpha 1256 1512 56280 + airfriction 12 + originjitter 2 2 2 + velocityjitter 200 200 200 + velocitymultiplier 0.2 + sizeincrease -10 + stretchfactor 0.6 + effect raptor_cannon_muzzleflash + countabsolute 1 + type static + tex 48 55 + color 0xD400FF 0x571863 + size 32 32 + alpha 6056 20112 406280 + sizeincrease -100 + stretchfactor 0.1 + rotate -180 180 4000 -4000 + lightradius 150 + lightradiusfade 6000 + lightcolor 3 0 6 + + // decal + effect raptor_bomb_impact + countabsolute 1 + type decal + tex 8 16 + size 84 84 + alpha 256 256 0 + originjitter 16 16 16 + rotate -180 180 0 0 + + //spark vertical + effect raptor_bomb_impact + count 3 + type spark + color 0xff9c00 0xff3c00 + tex 48 55 + size 20 40 + alpha 300 300 600 + originjitter 10 10 10 + velocityjitter 40 40 120 + stretchfactor 210 + sizeincrease 50 + + //fire + effect raptor_bomb_impact + count 4 + type static + color 0xff9c00 0xff3c00 + tex 48 55 + size 30 120 + alpha 300 300 500 + originjitter 10 10 10 + velocityjitter 950 950 0 + sizeincrease 230 + airfriction 2 + + //smoke + effect raptor_bomb_impact + count 4 + type spark + blend alpha + tex 0 7 + size 120 180 + color 0x646364 0x151515 + alpha 428 428 600 + rotate -180 180 0 0 + velocityjitter 200 200 280 + velocityoffset 0 0 280 + originjitter 30 30 10 + stretchfactor 10 + + //smoke 2 + effect raptor_bomb_impact + count 4 + //type alphastatic + type spark + blend alpha + tex 0 7 + size 40 100 + color 0x646364 0x151515 + alpha 328 328 350 + rotate -180 180 0 0 + velocityjitter 200 200 300 + velocityoffset 0 0 580 + originjitter 30 30 10 + sizeincrease 60 + airfriction 0.6 + gravity 2 + + // sparks + effect raptor_bomb_impact + notunderwater + count 5 + type spark + tex 40 40 + color 0xffa35b 0xfff2be + size 3 5 + alpha 644 956 984 + gravity 1 + airfriction 0.3 + velocityoffset 0 0 350 + originjitter 16 16 16 + velocityjitter 174 174 924 + stretchfactor 2 + + effect raptor_bomb_spread + notunderwater + count 34 + type spark + tex 40 40 + color 0xffa35b 0xfff2be + size 1 2 + alpha 644 956 1284 + gravity 1 + airfriction 1 + liquidfriction 0.8 + originjitter 110 110 110 + velocityjitter 324 324 324 + + + // generic explosion size:big (biggest explosion ever) + effect explosion_big + countabsolute 1 + type decal + tex 8 16 + size 172 172 + alpha 256 256 0 + originjitter 23 23 23 + lightradius 600 + lightradiusfade 1750 + lightcolor 8 4 0 + // shockwave + effect explosion_big + countabsolute 1 + type static + tex 33 33 + size 72 72 + alpha 56 56 330 + color 0x8f0d00 0xff5a00 + sizeincrease 4400 + // fire effect + effect explosion_big + notunderwater + count 64 + type static + tex 48 55 + color 0x8f0d00 0xff5a00 + size 133 144 + sizeincrease 45 + alpha 200 256 712 + airfriction 8 + liquidfriction 8 + originjitter 80 80 80 + velocityjitter 2512 2512 2512 + // fire rays + effect explosion_big + notunderwater + count 64 + type spark + tex 48 55 + color 0x8f0d00 0xff5a00 + size 133 144 + sizeincrease 45 + alpha 200 256 800 + airfriction -5 + liquidfriction 8 + originjitter 40 40 40 + velocityjitter 512 512 512 + stretchfactor 10 + // smoke + effect explosion_big + type alphastatic + notunderwater + tex 0 8 + count 32 + size 50 100 + sizeincrease 244 + alpha 300 650 456 + velocityjitter 3444 3444 3444 + airfriction 8 + color 0x4F4B46 0x000000 + // bouncing sparks + effect explosion_big + notunderwater + count 34 + type spark + tex 40 40 + color 0xffa35b 0xfff2be + size 3 4 + alpha 644 956 1284 + gravity 1 + airfriction 1 + liquidfriction 0.8 + velocityoffset 0 0 370 + originjitter 160 160 160 + velocityjitter 924 924 924 + stretchfactor 0.7 + // derbis + effect explosion_big + notunderwater + count 16 + type alphastatic + tex 66 68 + color 0xFFFFFF 0xcac5b4 + size 10 16 + alpha 444 1356 1184 + gravity 2.3 + airfriction 0.5 + velocityjitter 1800 1800 1800 + velocityoffset 0 0 970 + sizeincrease -5 + rotate -180 180 -1000 1000 + // underwater bubbles + effect explosion_big + underwater + count 32 + type bubble + tex 62 62 + color 0x404040 0x808080 + size 3 3 + alpha 128 256 64 + gravity -0.125 + bounce 1.5 + liquidfriction 0.25 + originjitter 160 160 160 + velocityjitter 444 444 444 + // underwatershockwave + effect explosion_big + underwater + type smoke + countabsolute 1 + tex 33 33 + size 30 30 + sizeincrease 2900 + alpha 40 40 300 + velocitymultiplier 0.3 + + + // generic explosion size:medium (it leaves rising smoke for a longer time) + // shockwave + effect explosion_medium + countabsolute 1 + type static + tex 33 33 + size 72 72 + alpha 56 56 330 + color 0x8f0d00 0xff5a00 + sizeincrease 2400 + // fire effect + effect explosion_medium + notunderwater + count 32 + type static + tex 48 55 + color 0x8f0d00 0xff5a00 + size 133 144 + sizeincrease 45 + alpha 200 256 712 + airfriction 8 + liquidfriction 8 + originjitter 30 30 30 + velocityjitter 1512 1512 1512 + rotate -180 180 -500 500 + // fire effect 2 + effect explosion_medium + notunderwater + count 32 + type static + tex 48 55 + color 0x8f0d00 0xff5a00 + size 73 94 + sizeincrease 40 + gravity -2 + alpha 200 256 612 + airfriction 8 + liquidfriction 8 + originjitter 30 30 30 + velocityjitter 1512 1512 1512 + rotate -180 180 -150 150 + // fire rays + effect explosion_medium + notunderwater + count 14 + type spark + tex 48 55 + color 0x8f0d00 0xff5a00 + size 43 74 + sizeincrease 40 + alpha 200 256 800 + airfriction -3 + liquidfriction 8 + originjitter 40 40 40 + velocityjitter 512 512 512 + stretchfactor 8 + // smoke + effect explosion_medium + type alphastatic + notunderwater + tex 0 8 + count 5 + size 250 300 + sizeincrease -30 + alpha 300 650 756 + originjitter 100 100 100 + velocityjitter 200 200 200 + airfriction 3 + color 0x4F4B46 0x000000 + rotate -180 180 -20 20 + // smoke 2 + effect explosion_medium + type alphastatic + notunderwater + tex 0 8 + count 10 + size 50 100 + sizeincrease 50 + gravity -0.3 + alpha 300 650 256 + originjitter 100 100 100 + velocityjitter 500 500 500 + velocityoffset 0 0 200 + airfriction 3 + color 0x4F4B46 0x000000 + rotate -180 180 -20 20 + // smoke rays + effect explosion_medium + type spark + notunderwater + tex 0 8 + count 13 + size 150 200 + sizeincrease 100 + alpha 140 255 350 + velocityjitter 250 250 250 + originjitter 40 40 40 + color 0x4F4B46 0x000000 + stretchfactor 50 + // bouncing sparks + effect explosion_medium + notunderwater + count 14 + type spark + tex 40 40 + color 0xffa35b 0xfff2be + size 2 3 + alpha 644 956 984 + gravity 1 + airfriction 1 + liquidfriction 0.8 + velocityoffset 0 0 370 + originjitter 100 100 100 + velocityjitter 624 624 624 + stretchfactor 0.7 + // underwater bubbles + effect explosion_medium + underwater + count 32 + type bubble + tex 62 62 + color 0x404040 0x808080 + size 3 3 + alpha 128 256 64 + gravity -0.125 + bounce 1.5 + liquidfriction 0.25 + originjitter 160 160 160 + velocityjitter 444 444 444 + // underwatershockwave + effect explosion_medium + underwater + type smoke + countabsolute 1 + tex 33 33 + size 30 30 + sizeincrease 2900 + alpha 40 40 300 + velocitymultiplier 0.3 + + // generic explosion size:small (its fire only, made to support other explosions) + // shockwave + effect explosion_small + countabsolute 1 + type static + tex 33 33 + size 22 22 + alpha 56 56 330 + color 0x8f0d00 0xff5a00 + sizeincrease 2400 + // fire effect + effect explosion_small + notunderwater + count 16 + type static + tex 48 55 + color 0x8f0d00 0xff5a00 + size 1 44 + sizeincrease 45 + alpha 200 256 1212 + airfriction 5 + liquidfriction 8 + velocityjitter 512 512 512 + rotate -180 180 -500 500 + // fire effect 2 + effect explosion_small + notunderwater + count 16 + type static + tex 48 55 + color 0x8f0d00 0xff5a00 + size 73 94 + sizeincrease 40 + alpha 200 256 812 + airfriction 8 + liquidfriction 8 + velocityjitter 912 912 912 + rotate -180 180 -150 150 + // fire rays + effect explosion_small + notunderwater + count 14 + type spark + tex 48 55 + color 0x8f0d00 0xff5a00 + size 13 54 + sizeincrease 30 + alpha 200 256 1300 + airfriction -3 + liquidfriction 8 + originjitter 40 40 40 + velocityjitter 512 512 512 + stretchfactor 8 + // underwater bubbles + effect explosion_small + underwater + count 32 + type bubble + tex 62 62 + color 0x404040 0x808080 + size 1 3 + alpha 128 256 64 + gravity -0.125 + bounce 1.5 + liquidfriction 0.25 + originjitter 160 160 160 + velocityjitter 144 144 144 + // underwatershockwave + effect explosion_small + underwater + type smoke + countabsolute 1 + tex 33 33 + size 30 30 + sizeincrease 1200 + alpha 40 40 300 + + // big smoke ( for spamming on damaged stuff ) + effect smoke_big + type alphastatic + notunderwater + tex 0 8 + count 3 + size 30 60 + sizeincrease 15 + gravity -0.5 + alpha 200 750 200 + originjitter 55 55 55 + velocityjitter 140 140 200 + velocityoffset 0 0 200 + airfriction 4 + color 0x4F4B46 0x000000 + rotate -180 180 -20 20 + + // small smoke ( more precise than big one, for spamming on damaged parts like raptors spinner ) + effect smoke_small + type alphastatic + notunderwater + tex 0 8 + count 3 + size 60 100 + sizeincrease -10 + gravity -0.5 + alpha 200 750 200 + velocityjitter 40 40 400 + velocityoffset 0 0 200 + airfriction 4 + color 0x4F4B46 0x000000 + rotate -180 180 -20 20 ++ +// tuba does not use the weapon damage effect + +// laser damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_laser +count 3 +type smoke +tex 0 8 +color 0x880000 0xff4400 +size 8 16 +sizeincrease 10 +alpha 128 16 128 +gravity 0 +originjitter 4 4 16 +velocityjitter 0.4 0.4 0.6 +velocitymultiplier 0 +airfriction -0.35 +rotate 0 180 -30 30 + +// shotgun damage effect, normal blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_shotgun +count 0.5 +type blood +tex 24 32 +size 4 9 +alpha 256 256 64 +color 0xA8FFFF 0xA8FFFFF +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_shotgun +countabsolute 1 +type alphastatic +tex 0 8 +size 8 16 +alpha 100 256 400 +color 0x000000 0x420000 +originjitter 11 11 11 + +// shotgun damage effect, alien blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_shotgun_alien +count 0.5 +type blood +tex 24 32 +size 4 9 +alpha 256 256 64 +color 0xDC9BCD 0xDC9BCD +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_shotgun_alien +countabsolute 1 +type alphastatic +tex 0 8 +size 8 16 +alpha 100 256 400 +color 0x000000 0x204010 +originjitter 11 11 11 + +// shotgun damage effect, robot blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_shotgun_robot +count 0.5 +type blood +tex 24 32 +size 4 9 +alpha 256 256 64 +color 0xC0D890 0xC0D890 +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_shotgun_robot +countabsolute 1 +type alphastatic +tex 0 8 +size 8 16 +alpha 100 256 400 +color 0x000000 0x301860 +originjitter 11 11 11 + +// uzi damage effect, normal blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_uzi +count 0.25 +type blood +tex 24 32 +size 3 8 +alpha 256 256 64 +color 0xA8FFFF 0xA8FFFFF +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_uzi +countabsolute 1 +type alphastatic +tex 0 8 +size 6 12 +alpha 100 256 400 +color 0x000000 0x420000 +originjitter 11 11 11 + +// uzi damage effect, alien blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_uzi_alien +count 0.25 +type blood +tex 24 32 +size 3 8 +alpha 256 256 64 +color 0xDC9BCD 0xDC9BCD +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_uzi_alien +countabsolute 1 +type alphastatic +tex 0 8 +size 6 12 +alpha 100 256 400 +color 0x000000 0x204010 +originjitter 11 11 11 + +// uzi damage effect, robot blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_uzi_robot +count 0.25 +type blood +tex 24 32 +size 3 8 +alpha 256 256 64 +color 0xC0D890 0xC0D890 +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_uzi_robot +countabsolute 1 +type alphastatic +tex 0 8 +size 6 12 +alpha 100 256 400 +color 0x000000 0x301860 +originjitter 11 11 11 + +// minelayer damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_minelayer +//notunderwater +count 2 +type smoke +tex 48 55 +size 6 12 +alpha 256 16 256 +gravity -0.5 +color 0x8f0d00 0xff5a00 +sizeincrease -10 +originoffset 0 0 10 +originjitter 6 6 8 +velocityjitter 22 22 50 +// smoke +effect weapondamage_minelayer +type alphastatic +count 2 +tex 0 8 +size 4 8 +sizeincrease 5 +alpha 128 32 128 +color 0x000000 0x111111 +gravity -0.3 +originoffset 0 0 10 +originjitter 6 6 8 +velocityjitter 11 11 50 +// light +effect weapondamage_minelayer +trailspacing 8 +lightradius 60 +lightradiusfade 280 +lightcolor 0.9 0.6 0.2 + +// grenadelauncher damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_grenadelauncher +//notunderwater +count 2 +type smoke +tex 48 55 +size 6 12 +alpha 256 16 256 +gravity -0.5 +color 0x8f0d00 0xff5a00 +sizeincrease -10 +originoffset 0 0 10 +originjitter 6 6 8 +velocityjitter 22 22 50 +// smoke +effect weapondamage_grenadelauncher +type alphastatic +count 2 +tex 0 8 +size 4 8 +sizeincrease 5 +alpha 128 32 128 +color 0x000000 0x111111 +gravity -0.3 +originoffset 0 0 10 +originjitter 6 6 8 +velocityjitter 11 11 50 +// light +effect weapondamage_grenadelauncher +trailspacing 8 +lightradius 60 +lightradiusfade 280 +lightcolor 0.9 0.6 0.2 + +// electro damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_electro +count 2 +type static +tex 47 47 +color 0x66ffff 0x2288ff +size 10 20 +sizeincrease -16 +alpha 48 8 48 +gravity -0.0001 +airfriction 0.2 +liquidfriction 0.8 +originjitter 16 16 32 +velocityjitter 8 8 16 +velocitymultiplier 0 +airfriction -0.5 +rotate 180 360 -30 30 +// plasma smoke +effect weapondamage_electro +count 4 +type smoke +tex 0 8 +color 0x2244ff 0x002266 +size 8 16 +sizeincrease 10 +alpha 64 16 64 +gravity 0 +originjitter 4 4 16 +velocityjitter 0.4 0.4 0.6 +velocitymultiplier 0 +airfriction -0.35 +rotate 0 180 -30 30 +// light +effect weapondamage_electro +trailspacing 8 +lightradius 50 +lightradiusfade 220 +lightcolor 0.2 0.8 1.0 + +// crylink damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_crylink +count 2 +type static +tex 38 38 +color 0xff44ff 0x9966ff +size 8 16 +sizeincrease -8 +alpha 48 16 48 +gravity -0.0001 +airfriction 0.6 +liquidfriction 0.8 +originjitter 8 8 16 +velocityjitter 10 10 20 +velocitymultiplier 0 +airfriction -0.5 +rotate 180 360 -30 30 +// plasma smoke +effect weapondamage_crylink +count 4 +type smoke +tex 0 8 +color 0x8844ff 0x662244 +size 10 20 +sizeincrease 6 +alpha 64 16 64 +gravity 0.001 +originjitter 6 6 12 +velocityjitter 0.4 0.4 0.6 +velocitymultiplier 0 +airfriction -0.35 +rotate 0 180 -30 30 +// light +effect weapondamage_crylink +trailspacing 8 +lightradius 50 +lightradiusfade 240 +lightcolor 0.8 0.2 1.0 + +// hlac damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_hlac +count 3 +type smoke +tex 0 8 +color 0x880000 0xff4400 +size 8 16 +sizeincrease 10 +alpha 128 16 128 +gravity 0 +originjitter 4 4 16 +velocityjitter 0.4 0.4 0.6 +velocitymultiplier 0 +airfriction -0.35 +rotate 0 180 -30 30 + +// nex damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_nex +count 1 +type static +tex 47 47 +color 0xffffff 0x88ffff +size 7 14 +sizeincrease -14 +alpha 64 8 64 +gravity -0.0001 +airfriction 0.1 +liquidfriction 0.6 +originjitter 4 4 8 +velocityjitter 8 8 16 +velocitymultiplier 0 +airfriction -0.5 +rotate 180 360 -30 30 +// plasma smoke +effect weapondamage_nex +count 2 +type smoke +tex 0 8 +color 0x6688ff 0x226688 +size 5 10 +sizeincrease 8 +alpha 64 16 64 +gravity 0 +originjitter 6 6 12 +velocityjitter 0.5 0.5 0.8 +velocitymultiplier 0 +airfriction -0.35 +rotate 0 180 -30 30 +// light +effect weapondamage_nex +trailspacing 8 +lightradius 60 +lightradiusfade 280 +lightcolor 0.8 1.0 1.0 + +// minstanex damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_minstanex +count 2 +type static +tex 47 47 +color 0xffffff 0x88ffff +size 10 20 +sizeincrease -14 +alpha 64 8 64 +gravity -0.0001 +airfriction 0.1 +liquidfriction 0.6 +originjitter 4 4 8 +velocityjitter 8 8 16 +velocitymultiplier 0 +airfriction -0.5 +rotate 180 360 -30 30 +// plasma smoke +effect weapondamage_minstanex +count 4 +type smoke +tex 0 8 +color 0x6688ff 0x226688 +size 8 16 +sizeincrease 8 +alpha 64 16 64 +gravity 0 +originjitter 6 6 12 +velocityjitter 0.5 0.5 0.8 +velocitymultiplier 0 +airfriction -0.35 +rotate 0 180 -30 30 +// light +effect weapondamage_minstanex +trailspacing 8 +lightradius 60 +lightradiusfade 240 +lightcolor 0.8 1.0 1.0 + +// sniperrifle damage effect, normal blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_sniperrifle +count 0.25 +type blood +tex 24 32 +size 3 8 +alpha 256 256 64 +color 0xA8FFFF 0xA8FFFFF +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_sniperrifle +countabsolute 1 +type alphastatic +tex 0 8 +size 6 12 +alpha 100 256 400 +color 0x000000 0x420000 +originjitter 11 11 11 + +// sniperrifle damage effect, alien blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_sniperrifle_alien +count 0.25 +type blood +tex 24 32 +size 3 8 +alpha 256 256 64 +color 0xDC9BCD 0xDC9BCD +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_sniperrifle_alien +countabsolute 1 +type alphastatic +tex 0 8 +size 6 12 +alpha 100 256 400 +color 0x000000 0x204010 +originjitter 11 11 11 + +// sniperrifle damage effect, robot blood +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_sniperrifle_robot +count 0.25 +type blood +tex 24 32 +size 3 8 +alpha 256 256 64 +color 0xC0D890 0xC0D890 +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 64 64 64 +velocitymultiplier 5 +staincolor 0x808080 0x808080 +staintex 16 24 +//blood mist +effect weapondamage_sniperrifle_robot +countabsolute 1 +type alphastatic +tex 0 8 +size 6 12 +alpha 100 256 400 +color 0x000000 0x301860 +originjitter 11 11 11 + +// seeker damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_seeker +//notunderwater +count 2 +type smoke +tex 48 55 +size 5 10 +alpha 256 16 256 +gravity -0.5 +color 0x8f0d00 0xff5a00 +sizeincrease -10 +originoffset 0 0 10 +originjitter 5 5 7 +velocityjitter 22 22 50 +// smoke +effect weapondamage_seeker +type alphastatic +count 2 +tex 0 8 +size 3 6 +sizeincrease 5 +alpha 128 32 128 +color 0x000000 0x111111 +gravity -0.3 +originoffset 0 0 10 +originjitter 5 5 7 +velocityjitter 11 11 50 +// light +effect weapondamage_seeker +trailspacing 8 +lightradius 65 +lightradiusfade 280 +lightcolor 0.9 0.7 0.2 + +// hagar damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_hagar +//notunderwater +count 2 +type smoke +tex 48 55 +size 5 10 +alpha 256 16 256 +gravity -0.5 +color 0x8f0d00 0xff5a00 +sizeincrease -10 +originoffset 0 0 10 +originjitter 5 5 7 +velocityjitter 22 22 50 +// smoke +effect weapondamage_hagar +type alphastatic +count 2 +tex 0 8 +size 3 6 +sizeincrease 5 +alpha 128 32 128 +color 0x000000 0x111111 +gravity -0.3 +originoffset 0 0 10 +originjitter 5 5 7 +velocityjitter 11 11 50 +// light +effect weapondamage_hagar +trailspacing 8 +lightradius 65 +lightradiusfade 280 +lightcolor 0.9 0.7 0.2 + +// fireball damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_fireball +//notunderwater +count 4 +type smoke +tex 48 55 +size 10 20 +alpha 192 16 192 +gravity -0.5 +color 0x8f0d00 0xff5a00 +sizeincrease -10 +originoffset 0 0 10 +originjitter 8 8 24 +velocityjitter 22 22 50 +// smoke +effect weapondamage_fireball +type alphastatic +count 4 +tex 0 8 +size 8 16 +sizeincrease 5 +alpha 128 32 128 +color 0x000000 0x111111 +gravity -0.3 +originoffset 0 0 10 +originjitter 8 8 24 +velocityjitter 11 11 50 +// light +effect weapondamage_fireball +trailspacing 8 +lightradius 65 +lightradiusfade 280 +lightcolor 0.9 0.6 0.2 + +// rocketlauncher damage effect +// used in qcsrc/client/gibs.qc: pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +effect weapondamage_rocketlauncher +//notunderwater +count 3 +type smoke +tex 48 55 +size 7 14 +alpha 256 16 256 +gravity -0.5 +color 0x8f0d00 0xff5a00 +sizeincrease -10 +originoffset 0 0 10 +originjitter 6 6 8 +velocityjitter 22 22 50 +// smoke +effect weapondamage_rocketlauncher +type alphastatic +count 3 +tex 0 8 +size 5 10 +sizeincrease 5 +alpha 128 32 128 +color 0x000000 0x111111 +gravity -0.3 +originoffset 0 0 10 +originjitter 6 6 8 +velocityjitter 11 11 50 +// light +effect weapondamage_rocketlauncher +trailspacing 8 +lightradius 60 +lightradiusfade 280 +lightcolor 0.9 0.6 0.2 + +// porto does not use the weapon damage effect + - // hook does not use the weapon damage effect ++// hook does not use the weapon damage effect diff --cc qcsrc/client/Main.qc index 211191bc73,f5dfec4e4a..0c7643d0ef --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@@ -977,7 -998,8 +998,9 @@@ void(float bIsNewEntity) CSQC_Ent_Updat case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break; case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break; case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break; + case ENT_CLIENT_AUXILIARYXHAIR: Net_AuXair2(bIsNewEntity); break; + case ENT_CLIENT_TURRET: ent_turret(); break; + case ENT_CLIENT_DAMAGEEFFECT: Ent_DamageEffect(); break; default: //error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype)); error(sprintf(_("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n"), self.enttype, num_for_edict(self), self.classname)); diff --cc qcsrc/client/autocvars.qh index 262abbe44e,2f2b80cc59..10fee18945 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@@ -331,8 -358,7 +358,9 @@@ float autocvar_crosshair_color_by_healt float autocvar_cl_hitsound; float autocvar_cl_hitsound_antispam_time; var float autocvar_cl_eventchase_death = 1; - var float autocvar_cl_eventchase_intermission = 1; var float autocvar_cl_eventchase_distance = 140; var float autocvar_cl_eventchase_speed = 1.3; + float autocvar_cl_lerpexcess; + string autocvar__togglezoom; +float autocvar_cl_damageeffect; +float autocvar_cl_damageeffect_gibs; diff --cc qcsrc/client/gibs.qc index 30cb786c96,409f809426..78aee37752 --- a/qcsrc/client/gibs.qc +++ b/qcsrc/client/gibs.qc @@@ -103,7 -103,7 +103,7 @@@ void Gib_Draw( } } - void TossGib (string mdlname, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent, float gibownernum) -void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent) ++void TossGib (string mdlname, vector safeorg, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent, float gibownernum) { entity gib; @@@ -195,40 -199,40 +202,40 @@@ void Ent_GibSplash(float isNew { case 0x01: if(!issilent) - sound (self, CHAN_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM); + sound (self, CH_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM); if(prandom() < amount) - TossGib ("models/gibs/eye.md3", org, vel, prandomvec() * 150, specnum, 0, issilent, entnumber); - TossGib ("models/gibs/eye.md3", org, org, vel, prandomvec() * 150, specnum, 0, issilent); ++ TossGib ("models/gibs/eye.md3", org, org, vel, prandomvec() * 150, specnum, 0, issilent, entnumber); new_te_bloodshower(particleeffectnum(strcat(specstr, "bloodshower")), org, 1200, amount); if(prandom() < amount) - TossGib ("models/gibs/bloodyskull.md3", org + 16 * prandomvec(), vel, prandomvec() * 100, specnum, 0, issilent, entnumber); - TossGib ("models/gibs/bloodyskull.md3", org, org + 16 * prandomvec(), vel, prandomvec() * 100, specnum, 0, issilent); ++ TossGib ("models/gibs/bloodyskull.md3", org, org + 16 * prandomvec(), vel, prandomvec() * 100, specnum, 0, issilent, entnumber); for(c = 0; c < amount; ++c) { randomvalue = amount - c; if(prandom() < randomvalue) - TossGib ("models/gibs/arm.md3", org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent, entnumber); - TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent); ++ TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/arm.md3", org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent, entnumber); - TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent); ++ TossGib ("models/gibs/arm.md3", org, org + 16 * prandomvec() + '0 0 8', vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/chest.md3", org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent, entnumber); - TossGib ("models/gibs/chest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent); ++ TossGib ("models/gibs/chest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/smallchest.md3", org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent, entnumber); - TossGib ("models/gibs/smallchest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent); ++ TossGib ("models/gibs/smallchest.md3", org, org + 16 * prandomvec(), vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/leg1.md3", org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent, entnumber); - TossGib ("models/gibs/leg1.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent); ++ TossGib ("models/gibs/leg1.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/leg2.md3", org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent, entnumber); - TossGib ("models/gibs/leg2.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent); ++ TossGib ("models/gibs/leg2.md3", org, org + 16 * prandomvec() + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent, entnumber); // these splat on impact if(prandom() < randomvalue) - TossGib ("models/gibs/chunk.mdl", org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); - TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent); ++ TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/chunk.mdl", org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); - TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent); ++ TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/chunk.mdl", org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); - TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent); ++ TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); if(prandom() < randomvalue) - TossGib ("models/gibs/chunk.mdl", org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); - TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent); ++ TossGib ("models/gibs/chunk.mdl", org, org + 16 * prandomvec(), vel, prandomvec() * 450, specnum,1, issilent, entnumber); } break; case 0x02: @@@ -236,7 -240,7 +243,7 @@@ break; case 0x03: if(prandom() < amount) - TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * (prandom() * 30 + 20), specnum, 1, issilent, entnumber); // TODO maybe adjust to more randomization? - TossGib ("models/gibs/chunk.mdl", org, org, vel, prandomvec() * (prandom() * 30 + 20), specnum, 1, issilent); // TODO maybe adjust to more randomization? ++ TossGib ("models/gibs/chunk.mdl", org, org, vel, prandomvec() * (prandom() * 30 + 20), specnum, 1, issilent, entnumber); // TODO maybe adjust to more randomization? break; case 0x81: pointparticles(particleeffectnum(strcat(gentle_prefix, "damage_dissolve")), org, vel, amount); @@@ -277,63 -281,3 +284,63 @@@ void GibSplash_Precache( precache_sound ("misc/gib_splat03.wav"); precache_sound ("misc/gib_splat04.wav"); } + +void Ent_DamageEffect() +{ + float type, specnum1, specnum2, entnumber, body; + vector org; + string specstr, effectnum; + entity e; + + type = ReadByte(); // damage weapon + specnum1 = ReadByte(); // player species + entnumber = ReadByte(); // player entnum + body = ReadByte(); // is dead body / gibbed + org_x = ReadCoord(); + org_y = ReadCoord(); + org_z = ReadCoord(); + + if not(autocvar_cl_damageeffect) + return; + if(autocvar_cl_gentle || autocvar_cl_gentle_damage) + return; + + e = get_weaponinfo(type); + + specnum2 = (specnum1 & 0x78) / 8; // blood type: using four bits (0..7, bit indexes 3,4,5) + specstr = species_prefix(specnum2); + + effectnum = strcat("weapondamage_", e.netname); + // If the weapon is a bullet weapon, its damage effect is blood. + // Since blood is species dependent, we make this effect per-species. - if(type == WEP_SHOTGUN || type == WEP_UZI || type == WEP_SNIPERRIFLE) ++ if(type == WEP_SHOTGUN || type == WEP_UZI || type == WEP_RIFLE) + if(specstr != "") + { + effectnum = strcat(effectnum, "_", specstr); + effectnum = substring(effectnum, 0, strlen(effectnum) - 1); // remove the _ symbol at the end of the species name + } + + entity head; + + // Scan the owner of all gibs in the world. If a gib owner is the same as the player we're applying the + // effect to, it means our player is gibbed. Therefore, apply the particles to the gibs as well. + if(autocvar_cl_damageeffect_gibs && body > 1) + for(head = world; (head = find(head, classname, "gib")); ) + { + if(head.team == entnumber) + if(random() < autocvar_cl_damageeffect_gibs) + pointparticles(particleeffectnum(effectnum), head.origin, '0 0 0', 1); + } + + // if we aren't in third person mode, hide our own damage effect + if(entnumber == player_localentnum && !body) + if(!autocvar_chase_active) + return; + // if this is a gibbed dead body, don't apply the effects to it, only the gibs as done above + if(body > 1) + return; + + // Now apply the effect to the actual player. + if(random() < autocvar_cl_damageeffect) + pointparticles(particleeffectnum(effectnum), org, '0 0 0', 1); +} diff --cc qcsrc/common/constants.qh index 6d85912379,9180b66832..634ab397bd --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@@ -116,9 -116,10 +116,11 @@@ const float ENT_CLIENT_GAUNTLET = 29 const float ENT_CLIENT_ACCURACY = 30; const float ENT_CLIENT_SHOWNAMES = 31; const float ENT_CLIENT_WARPZONE_TELEPORTED = 32; +const float ENT_CLIENT_DAMAGEEFFECT = 33; const float ENT_CLIENT_TURRET = 40; + const float ENT_CLIENT_AUXILIARYXHAIR = 50; + const float ENT_CLIENT_VEHICLE = 60; const float SPRITERULE_DEFAULT = 0; const float SPRITERULE_TEAMPLAY = 1;