Jump to content
Sign in to follow this  
Kydoimos

Blood Particle Effect

Recommended Posts

I was wondering if anyone might have an idea about creating a blood particle effect? I can only get some particles working using the setParticleSource command. Maybe someone has an idea for a workaround? Perhaps, spawning a bullet with velocity? Just curious! Thanks in advance!

Share this post


Link to post
Share on other sites

Try this:

// by EightSix
// or maybee BI...
private ["_unit","_display", "_texLower", "_texMiddle", "_texUpper", "_x", "_y", "_w", "_h"];
_unit = _this select 0;
if (_unit != player) exitWith {};

disableSerialization;
if (isnil {uinamespace getvariable "RscHealthTextures"}) then {uinamespace setvariable ["RscHealthTextures",displaynull]};
if (isnull (uinamespace getvariable "RscHealthTextures")) then {(["HealthPP_blood"] call bis_fnc_rscLayer) cutrsc ["RscHealthTextures","plain"]};
_display = uinamespace getvariable "RscHealthTextures";

_texLower = _display displayctrl 1211;//1013; //1001
_texLower ctrlsetfade 1;
_texLower ctrlcommit 0;

_texMiddle = _display displayctrl 1212;
_texMiddle ctrlsetfade 1;
_texMiddle ctrlcommit 0;

_texUpper = _display displayctrl 1213;
_texUpper ctrlsetfade 1;
_texUpper ctrlcommit 0;

_x = ((0 * safezoneW) + safezoneX) + ((safezoneW - (2.125 * safezoneW * 3/4)) / 2); //textura vycentrovana na st?ed (p?i??t? se polovina m?sta kter? zb?v? od konce textury k prav?mu okraji obrazovky)
_y = (-0.0625 * safezoneH) + safezoneY; //levy horni roh o 10% nad obrazovkou
_w = 2.125 * safezoneW * 3/4;//safezoneW * 3/4;  //sirka o 20% vetsi nez sirka obrazovky (10% presah vlevo, 10% presah vpravo)
_h = 1.125 * safezoneH;

_texLower ctrlsetposition [_x, _y, _w, _h];
_texMiddle ctrlsetposition [_x, _y, _w, _h];
_texUpper ctrlsetposition [_x, _y, _w, _h];

_texLower ctrlcommit 0;
_texMiddle ctrlcommit 0;
_texUpper ctrlcommit 0;

_texLower ctrlsetfade 0.2;
_texMiddle ctrlsetfade 0.7;
_texUpper ctrlsetfade 0.7;

_texLower ctrlcommit 0.2;
_texMiddle ctrlcommit 0.2;
_texUpper ctrlcommit 0.2;

waituntil {ctrlcommitted _texUpper};
waitUntil {(_unit getVariable "FAR_isUnconscious" == 0) || {!alive _unit}};

sleep 0.5;

_texLower ctrlsetfade 1;
_texMiddle ctrlsetfade 1;
_texUpper ctrlsetfade 1;

_texUpper ctrlcommit 1.5;
sleep 1;
_texMiddle ctrlcommit 1;
sleep 0.5;
_texLower ctrlcommit 0.8;

Share this post


Link to post
Share on other sites

Yes, thanks for the response - but I'm after the blood particle effect, please give a shout if anyone has a script! Or, alternatively, can think of a workaround!

Share this post


Link to post
Share on other sites

^^ I think it was called mao_blood_mist_a3.pbo

I have it in my 'always run' addon folder :)

Share this post


Link to post
Share on other sites

Thanks chaps, but I'm not after a mod unfortunately, just a script for the blood particle effect which can be used with vanilla settings - MANW prohibits mod use for the SP category. All the same, cheers for the response!

Share this post


Link to post
Share on other sites

Open up the PBO, locate the matching script and see how they did it?

Share this post


Link to post
Share on other sites
its in the "bloodEffect" function. you can see it right from the function viewer.  
i remember slightly modifying it for a mod i made but honestly can't remember how different from original it is.

/*
///////////// MODIFIED VERSION OF BI BLOOD TEXTURE OVERLAY SCRIPT  ////////////////////

File: fn_bloodEffect.sqf
Author: Vladimir Hynek
Modified By: Nimrod_Z

Description:
Blood splash (texture) postprocess.

Parameter(s):
_this select 0: Number (5-90)

Returned value:
None.
*/
//---------------- Hit that caused bleeding - show blood--------------------------------------------------------------

private ["_display", "_texLower", "_texMiddle", "_texUpper", "_x", "_y", "_w", "_h"];

disableSerialization;
if (isnil {uinamespace getvariable "RscHealthTextures"}) then {uinamespace setvariable ["RscHealthTextures",displaynull]};
//if (isnull (uinamespace getvariable "str_screen")) then {1918 cutrsc ["screen","plain"]};
if (isnull (uinamespace getvariable "RscHealthTextures")) then {(["HealthPP_blood"] call bis_fnc_rscLayer) cutrsc ["RscHealthTextures","plain"]};
_display = uinamespace getvariable "RscHealthTextures";

//remove old textures --TODO: replace this by texture overlay-repaint textures
//textures are defined in TEST_description_screen.hpp
_texLower = _display displayctrl 1211;//1013; //1001
_texLower ctrlsetfade 1;
_texLower ctrlcommit 0;

_texMiddle = _display displayctrl 1212;
_texMiddle ctrlsetfade 1;	
_texMiddle ctrlcommit 0;

_texUpper = _display displayctrl 1213;
_texUpper ctrlsetfade 1;	
_texUpper ctrlcommit 0;

        _x = ((0 * safezoneW) + safezoneX) + ((safezoneW - (2.125 * safezoneW * 3/4)) / 2); //textura vycentrovana na st�ed (p�i��t� se polovina m�sta kter� zb�v� od konce textury k prav�mu okraji obrazovky)
        _y = (-0.0625 * safezoneH) + safezoneY; //levy horni roh o 10% nad obrazovkou
        _w = 2.125 * safezoneW * 3/4;//safezoneW * 3/4;  //sirka o 20% vetsi nez sirka obrazovky (10% presah vlevo, 10% presah vpravo)
        _h = 1.125 * safezoneH;

       //temporarily commented 
       _texLower ctrlsetposition [_x, _y, _w, _h];
       _texMiddle ctrlsetposition [_x, _y, _w, _h];
       _texUpper ctrlsetposition [_x, _y, _w, _h];

       _texLower ctrlcommit 0;
       _texMiddle ctrlcommit 0;
       _texUpper ctrlcommit 0;

// radial blur
//call VIR_fnc_hitBlur;

_blood = _this select 0;

       //lower
       if(_blood > 5 && _blood < 25) then
       {
           _texLower ctrlsetfade 0.2;	 //0 --changed
           _texLower ctrlcommit 0.2;
           waituntil {ctrlcommitted _texLower};

		//fade-out
		sleep 0.5;

		_texLower ctrlsetfade 1;
		_texLower ctrlcommit 0.8;
       };

       //lower, 50% middle
       if (_blood >= 25 && _blood < 40) then
       {
           _texLower ctrlsetfade 0.2;	 //0 --changed
           _texMiddle ctrlsetfade 0.85;  //0 --changed

           _texLower ctrlcommit 0.2;
           _texMiddle ctrlcommit 0.2;
           waituntil {ctrlcommitted _texMiddle};

		//fade-out
		sleep 0.5;

		_texLower ctrlsetfade 1;
		_texMiddle ctrlsetfade 1;

		_texMiddle ctrlcommit 1;
		sleep 0.5;
		_texLower ctrlcommit 0.8;
       };

       //lower, middle
       if (_blood >= 40 && _blood < 55) then
       {
           _texLower ctrlsetfade 0.2;	 //0 --changed
           _texMiddle ctrlsetfade 0.7;  //0 --changed

           _texLower ctrlcommit 0.2;
           _texMiddle ctrlcommit 0.2;
           waituntil {ctrlcommitted _texMiddle};

		//fade-out
		sleep 0.5;

		_texLower ctrlsetfade 1;
		_texMiddle ctrlsetfade 1;
		_texUpper ctrlsetfade 1;

		_texMiddle ctrlcommit 1;
		sleep 0.5;
		_texLower ctrlcommit 0.8;
       };

       //lower, middle, 50% upper
       if (_blood >= 55 && _blood < 70) then
       {
           _texLower ctrlsetfade 0.2;	 //0 --changed
           _texMiddle ctrlsetfade 0.7;  //0 --changed
           _texUpper ctrlsetfade 0.85;  //0.5 --changed

           _texLower ctrlcommit 0.2;
           _texMiddle ctrlcommit 0.2;
           _texUpper ctrlcommit 0.2;
           waituntil {ctrlcommitted _texUpper};

		//fade-out
		sleep 0.5;

		_texLower ctrlsetfade 1;
		_texMiddle ctrlsetfade 1;
		_texUpper ctrlsetfade 1;

		_texUpper ctrlcommit 1.5;
		sleep 1;
		_texMiddle ctrlcommit 1;
		sleep 0.5;
		_texLower ctrlcommit 0.8;
       };

       //lower, middle, upper
       if (_blood >= 70) then
       {
           _texLower ctrlsetfade 0.2;	 //0 --changed
           _texMiddle ctrlsetfade 0.7;  //0 --changed
           _texUpper ctrlsetfade 0.7;   //0 --changed

           _texLower ctrlcommit 0.2;
           _texMiddle ctrlcommit 0.2;
           _texUpper ctrlcommit 0.2;
           waituntil {ctrlcommitted _texUpper};

		//fade-out
		sleep 0.5;

		_texLower ctrlsetfade 1;
		_texMiddle ctrlsetfade 1;
		_texUpper ctrlsetfade 1;

		_texUpper ctrlcommit 1.5;
		sleep 1;
		_texMiddle ctrlcommit 1;
		sleep 0.5;
		_texLower ctrlcommit 0.8;
       };

Share this post


Link to post
Share on other sites

@Nimrod_Z - hi, thanks - but I'm after the particle effect - not the texture splash :)

@IndeedPete - not sure it'd be in the PBO - didn't see it actually used in the campaign, at least, not via a script. I could be wrong, I'll check!

Share this post


Link to post
Share on other sites
@Nimrod_Z - hi, thanks - but I'm after the particle effect - not the texture splash :)

@IndeedPete - not sure it'd be in the PBO - didn't see it actually used in the campaign, at least, not via a script. I could be wrong, I'll check!

Just mind that Particles can be configured a bit more complex in an addon than they can be through script commands.

Cheers

Share this post


Link to post
Share on other sites

Hey guys, I am really new to this forum thing so I dont really know where to begin. I have a editing question to what I cant find the answer to anywhere, so I wanted to make a new thread. But I can't find that option anywhere, where can I find it?

Thanks in advance guys

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×