BIS lib update

This commit is contained in:
facoptere
2013-11-18 19:38:19 +01:00
parent 3648ac4f24
commit cbe40ab4be
3 changed files with 125 additions and 241 deletions

View File

@@ -1,144 +1,71 @@
private["_fl","_sm","_expl","_dr","_tv","_i","_wave","_splash","_velz","_v","_int","_t","_pos"];
private ["_fl","_sm","_expl","_dr","_tv","_i","_wave","_splash","_velz","_v","_int","_t","_pos"];
_v=_this select 0; _v=_this select 0;
_int = (fuel _v)*(8+random 2); _int=(fuel _v)*(8+random 2);
_t=time; _t=time;
if(!isDedicated)then{
if !(isDedicated) then { //dw, particle stuff don't need run on dedicated _fl="#particlesource"createVehicleLocal getPosATL _v;
_fl attachto[_v,[0,0,0],"destructionEffect2"];
_fl = "#particlesource" createVehicleLocal getpos _v; _fl setParticleRandom[0.3,[1,1,0],[0,0,0],0,0.3,[0,0,0,0],0,0];
_fl attachto [_v,[0,0,0],"destructionEffect2"]; _fl setParticleParams[["\Ca\Data\ParticleEffects\Universal\Universal",16,10,32],"","Billboard",1,2,"destructionEffect2",[0,0,5],0,10,7.9,0.075,[4,7,9,10],[[1,1,1,-1],[1,1,1,-1],[1,1,1,-1],[1,1,1,-0.5],[1,1,1,-0]],[1,0.5],1,0,"","",_v];
_fl setParticleRandom [0.3, [1, 1, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0], 0, 0]; _fl setDropInterval 1;
_fl setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 10, 32], "", "Billboard", 1, 2, "destructionEffect2", _sm="#particlesource"createVehicleLocal getPosATL _v;
[0, 0, 5], 0, 10, 7.9, 0.075, [4,7,9,10], [[1, 1, 1, -1], [1, 1, 1, -1], _sm attachto[_v,[0,0,0],"destructionEffect1"];
[1, 1, 1, -1], [1, 1, 1, -0.5], [1, 1, 1, -0]], [1,0.5], 1, 0, "", "", _v]; _sm setParticleRandom[2,[2,2,0],[0,0,0],0,0.3,[0,0,0,0.1],0,0];
_fl setDropInterval 1; _sm setParticleParams[["\Ca\Data\ParticleEffects\Universal\Universal",16,7,48],"","Billboard",1,5,"destructionEffect1",[0,0,5],0,10,7.9,0.075,[4,8,12,14],[[0.3,0.3,0.3,1],[0.45,0.45,0.45,1],[0.6,0.6,0.6,0.6],[0.7,0.7,0.7,0.25],[1,1,1,0]],[0.8,0.3,0.25],1,0,"","",_v];
_sm setDropInterval 1;
_sm = "#particlesource" createVehicleLocal getpos _v; };
_sm attachto [_v,[0,0,0],"destructionEffect1"];
_sm setParticleRandom [2, [2, 2, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0.1], 0, 0];
_sm setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48], "", "Billboard", 1, 5, "destructionEffect1",
[0, 0, 5], 0, 10, 7.9, 0.075, [4,8,12,14], [[0.3, 0.3, 0.3, 1],
[0.45, 0.45, 0.45, 1],[0.6, 0.6, 0.6, 0.6], [0.7, 0.7, 0.7, 0.25], [1, 1, 1, 0]], [0.8,0.3,0.25], 1, 0, "", "", _v];
_sm setDropInterval 1;
}; // end of dedicated check
_i=0; _i=0;
_dr=0.2; _dr=0.2;
_tv=11; _tv=11;
//Remove weapons/ammo to prevent explosion. Script will create its own explosions (doesnt work?)
removeallweapons _v; removeallweapons _v;
if(local _v AND{(_v isKindOf"Air")})then{
if (local _v) then {_expl="HelicopterExploSmall" createvehicle (getpos _v);}; _expl=createVehicle["HelicopterExploSmall",(getPosATL _v),[],0,"CAN_COLLIDE"];
if !(isDedicated) then { //dw, particle stuff don't need run on dedicated
while {_i <1200 && ((velocity _v select 2)<-20 || (getpos _v select 2)>8) && !(alive _v) && !(isnull _v) && (getpos _v select 2)>1} do
{
_tv=abs(velocity _v select 0)+abs(velocity _v select 1)+abs(velocity _v select 2);
if (_tv>2) then {_dr=1/_tv} else {_dr=1};
_fl setDropInterval _dr;
_sm setDropInterval _dr;
_i=_i+1;
sleep 0.2;
}; };
}; // end of dedicated check if(!isDedicated)then{
while{_i<1200&&((velocity _v select 2)<-20||(getPosATL _v select 2)>8)&&!(alive _v)&&!(isnull _v)&&(getPosATL _v select 2)>1}do{
_pos=getpos _v; _tv=abs(velocity _v select 0)+abs(velocity _v select 1)+abs(velocity _v select 2);
clearVehicleInit _v; if(_tv>2)then{
_dr=1/_tv}else{
if !(isDedicated) then { //dw, particle stuff don't need run on dedicated _dr=1};
deletevehicle _fl;deletevehicle _sm; _fl setDropInterval _dr;
}; // end of dedicated check _sm setDropInterval _dr;
if (surfaceiswater(_pos) && (_pos select 2)<9 ) then _i=_i+1;
{
if !(isDedicated) then { //dw, particle stuff don't need run on dedicated
_wave = "#particlesource" createVehicleLocal getpos _v;
_wave attachto [_v,[0,0,0],"destructionEffect1"];
_wave setParticleRandom [0.3, [1, 1, 0], [0.5, 0.5, 0], 0, 0.3, [0, 0, 0, 0], 0, 0];
_wave setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 12, 13,0], "", "Billboard", 1, 1.6, "destructionEffect1",
[0, 0, 0], 0, 10, 7.9, 0.075, [3,8],
[[0.7,0.8,1,0.6],[0.85,0.9,1,0.0]], [1000], 1, 0, "", "", _v];
_wave setparticlecircle [2,[0,16,0]];
_wave setDropInterval 0.0015;
_splash = "#particlesource" createVehicleLocal getpos _v;
_splash attachto [_v,[0,0,0],"destructionEffect1"];
_splash setParticleRandom [2, [2, 2, 0], [2, 2, 7], 0, 0.5, [0, 0, 0, 0], 0, 0];
_splash setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 13, 6, 0], "", "Billboard", 1, 4, "destructionEffect1",
[0, 0, 0], 0, 30, 7.9, 0.075, [8,15],
[[0.7,0.7,0.7,1],[1,1,1,0]], [1000], 1, 0, "", "", _v];
_splash setparticlecircle [2,[0,3,15]];
_splash setDropInterval 0.002;
sleep 0.2; sleep 0.2;
deletevehicle _wave;deletevehicle _splash; };
}; // end of dedicated check };
/* _pos=getPosATL _v;
if (local _v) then clearVehicleInit _v;
{ if(!isDedicated)then{
_wreck=GetText (configFile >> "CfgVehicles" >> (typeof _v) >> "wreck"); deletevehicle _fl;
if (_wreck!="") then deletevehicle _sm;
{ };
_pos = getpos _v; if(surfaceiswater(_pos)&&(_pos select 2)<9)then{
_dir = vectordir _v; if(!isDedicated)then{
_vecUp = vectorup _v; _wave="#particlesource"createVehicleLocal getPosATL _v;
_vel = velocity _v; _wave attachto[_v,[0,0,0],"destructionEffect1"];
_wave setParticleRandom[0.3,[1,1,0],[0.5,0.5,0],0,0.3,[0,0,0,0],0,0];
clearvehicleinit _v; _wave setParticleParams[["\Ca\Data\ParticleEffects\Universal\Universal",16,12,13,0],"","Billboard",1,1.6,"destructionEffect1",[0,0,0],0,10,7.9,0.075,[3,8],[[0.7,0.8,1,0.6],[0.85,0.9,1,0.0]],[1000],1,0,"","",_v];
_crw= crew _v; _wave setparticlecircle[2,[0,16,0]];
clearvehicleinit _v; _wave setDropInterval 0.0015;
deleteVehicle _v; _splash="#particlesource"createVehicleLocal getPosATL _v;
_v =(_wreck) createvehicle _pos; _splash attachto[_v,[0,0,0],"destructionEffect1"];
{_x moveincargo _v} foreach _crw; _splash setParticleRandom[2,[2,2,0],[2,2,7],0,0.5,[0,0,0,0],0,0];
_v setVectorDirAndUp [_dir,_vecUp]; _splash setParticleParams[["\Ca\Data\ParticleEffects\Universal\Universal",16,13,6,0],"","Billboard",1,4,"destructionEffect1",[0,0,0],0,30,7.9,0.075,[8,15],[[0.7,0.7,0.7,1],[1,1,1,0]],[1000],1,0,"","",_v];
_v setFuel 0; _splash setparticlecircle[2,[0,3,15]];
_v setdamage 0; _splash setDropInterval 0.002;
_v setvelocity _vel; sleep 0.2;
//Send to garbage collecter so wreck can be deleted later deletevehicle _wave;
[_v] call BIS_GC_trashItFunc; deletevehicle _splash;
};
}; }
}; */ else{
} if(local _v)then{
else _velz=velocity _v select 2;
{ if(_velz>1)then{
if (local _v) then _v setvelocity[velocity _v select 0,velocity _v select 1,0]
{ };
//_velx = velocity _v select 0; _velx = _velx / 4; _expl=createVehicle["HelicopterExploBig",[_pos select 0,_pos select 1,(_pos select 2)+1],[],0,"CAN_COLLIDE"];
//_vely = velocity _v select 1; _vely = _vely / 4; sleep 0.05;
_velz=velocity _v select 2; ["AirDestructionStage2",_v,_int,_t]call BIS_Effects_globalEvent;
if (_velz>1) then {_v setvelocity [velocity _v select 0,velocity _v select 1,0]};
_expl="HelicopterExploBig" createvehicle [_pos select 0,_pos select 1,(_pos select 2) + 1];
sleep 0.05;
/*
_wreck=GetText (configFile >> "CfgVehicles" >> (typeof _v) >> "wreck");
if (_wreck!="") then
{
_pos = getpos _v;
_dir = vectordir _v;
_vecUp = vectorup _v;
_vel = velocity _v;
_crw= crew _v;
clearvehicleinit _v;
deleteVehicle _v;
_v =(_wreck) createvehicle _pos;
{_x moveincargo _v} foreach _crw;
//sleep 0.05;
_v setvelocity _vel;
//_v setPos _pos;
_v setvectordir (_dir);
_v setvectorup _vecUp;
_v setFuel 0;
_v setdamage 0;
}; */
//_v setVehicleInit format ["[this, %1, %2]spawn BIS_Effects_AirDestructionStage2",_int, _t];
//processInitCommands; //ClearvehicleInit done at end of burn script
["AirDestructionStage2", _v, _int, _t] call BIS_Effects_globalEvent;
}; };
}; };

View File

@@ -1,87 +1,59 @@
private ["_v","_pos", "_int","_t","_smoke","_fire","_dirt","_i","_xv","_yv","_zv","_dir","_Crater","_speed","_velz","_tv","_dr"];
private ["_dr","_pos","_xv","_yv","_dir","_Crater","_speed","_velz","_tv","_zv","_shards","_i","_smoke","_fire","_dirt","_int","_t","_v"]; _v=_this select 0;
_int = _this select 1; _int=_this select 1;
_t=_this select 2; _t=_this select 2;
_pos=getpos _v; _pos=getPosATL _v;
// Particle effects if(!isDedicated)then{
if !(isDedicated) then { //dw, particle stuff don't need run on dedicated _smoke="#particlesource"createVehicleLocal _pos;
_smoke = "#particlesource" createVehicleLocal _pos; _smoke attachto[_v,[0,0,0],"destructionEffect1"];
_smoke attachto [_v,[0,0,0],"destructionEffect1"]; _smoke setParticleParams[["\ca\Data\ParticleEffects\Universal\Universal",16,7,48],"","Billboard",1,15,[0,0,0],[0,0,0],1,1.275,1,0,[8,14],[[0.1,0.1,0.1,1],[0.1,0.1,0.1,0]],[0.5],0.1,0.1,"","",_v];
_smoke setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal",16,7,48], _smoke setParticleRandom[4,[2,2,2],[0,0,0],0,0,[0,0,0,0],0,0];
"", "Billboard", 1, 15, [0, 0, 0], [0, 0, 0], 1, 1.275, 1, 0, [8,14], _smoke setDropInterval 0.02;
[[0.1,0.1,0.1,1],[0.1,0.1,0.1,0]], [0.5], 0.1, 0.1, "", "", _v]; _fire="#particlesource"createVehicleLocal _pos;
//_smoke setParticleCircle [2,[0,0,0]]; _fire attachto[_v,[0,0,0],"destructionEffect2"];
_smoke setParticleRandom [4, [2, 2, 2], [0, 0, 0], 0, 0, [0, 0, 0, 0], 0, 0]; _fire setParticleParams[["\ca\Data\ParticleEffects\Universal\Universal",16,2,80],"","Billboard",1,2,[0,1,0],[0,0,0],1,1.275,1,0,[7,13],[[1,1,1,-1],[1,1,1,0]],[0.5],0.01,0.01,"","",_v,360];
_smoke setDropInterval 0.02; _fire setParticleRandom[0.5,[0.5,0.5,0.5],[0,0,0],0,0,[0,0,0,0],0,0];
_fire setDropInterval 0.01;
_fire = "#particlesource" createVehicleLocal _pos; _dirt="#particlesource"createVehicleLocal _pos;
_fire attachto [_v,[0,0,0],"destructionEffect2"]; _dirt attachto[_v,[0,0,0],"destructionEffect1"];
/*_fire setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal",16,2,32], "", "Billboard", 1, 1, [0, 1, 0], [0, 0, 0], 1, 1.275, 1, 0, [10,15], _dirt setParticleParams[["\ca\Data\ParticleEffects\Universal\Universal",16,12,9,0],"","Billboard",1,5,[0,0,0],[0,0,5],0,5,1,0,[10,20],[[0.1,0.1,0.1,1],[0.1,0.1,0.1,0.7],[0.1,0.1,0.1,0]],[1000],0,0,"","",_v,360];
[[1,1,1,-1],[1,1,1,0]], [0.5], 0.01, 0.01, "", "", _v,360]; */ _dirt setParticleRandom[0,[1,1,1],[1,1,2.5],0,0,[0,0,0,0.5],0,0];
_fire setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal",16,2,80], _dirt setDropInterval 0.05;
"", "Billboard", 1, 2, [0, 1, 0], [0, 0, 0], 1, 1.275, 1, 0, [7,13],
[[1,1,1,-1],[1,1,1,0]], [0.5], 0.01, 0.01, "", "", _v,360];
_fire setParticleRandom [0.5, [0.5, 0.5, 0.5], [0, 0, 0], 0, 0, [0, 0, 0, 0], 0, 0];
_fire setDropInterval 0.01;
/*
_shards = "#particlesource" createVehicleLocal _pos;
//_shards attachto [_v,[0,0,0],"destructionEffect1"];
_shards setParticleParams [["\CA\Data\ParticleEffects\Shard\shard",1,0,1], "", "SpaceObject", 1, 60, [0, 0, 0], [0, 0, 0], 0, 1.275, 1, 0, [1,1],
[[1,1,1,1]], [0.5], 0, 0, "", "", _v];
_shards setParticleRandom [30, [1, 1, 0], [0, 0, 0], 0, 0, [0, 0, 0, 0], 0, 0];
_shards setParticleCircle [2,[0.001,0.001,-0.001]];
_shards setDropInterval 0.05;
*/
_dirt = "#particlesource" createVehicleLocal _pos;
_dirt attachto [_v,[0,0,0],"destructionEffect1"];
_dirt setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal",16,12,9,0], "", "Billboard", 1, 5, [0, 0, 0], [0, 0, 5], 0, 5, 1, 0, [10,20],
[[0.1,0.1,0.1,1],[0.1,0.1,0.1,0.7],[0.1,0.1,0.1,0]], [1000], 0, 0, "", "", _v,360];
_dirt setParticleRandom [0, [1, 1, 1], [1, 1, 2.5], 0, 0, [0, 0, 0, 0.5], 0, 0];
_dirt setDropInterval 0.05;
//creating ground craters
_i=0; _i=0;
while {(speed _v) > 0.1} do while{(speed _v)>0.1}do{
{ _pos=getPosATL _v;
_pos=getpos _v;
_xv=velocity _v select 0; _xv=velocity _v select 0;
_yv=velocity _v select 1; _yv=velocity _v select 1;
_dir = abs(_xv atan2 _yv); _zv=velocity _v select 2;
_dir=abs(_xv atan2 _yv);
_Crater= "CraterLong" createvehiclelocal [_pos select 0, _pos select 1, 0]; _Crater="CraterLong"createvehiclelocal[_pos select 0,_pos select 1,0];
_Crater setdir (_dir + (180 * _i)); _Crater setdir(_dir+(180*_i));
_Crater setpos [_pos select 0, _pos select 1, 0]; _Crater setpos[_pos select 0,_pos select 1,0];
_Crater setPos [_pos select 0, _pos select 1, ((0 - _i)/13)]; //all setpos commands so it is placed correctly on sloped terrain _Crater setPos[_pos select 0,_pos select 1,((0-_i)/13)];
_speed = (speed _v); _speed=(speed _v);
_velz=velocity _v select 2; _velz=velocity _v select 2;
if(_velz>1)then{
if (_velz>1) then {_v setvelocity [_xv/1.3,_yv/1.3,0]} _v setvelocity[_xv/1.3,_yv/1.3,0]
else {_v setvelocity [_xv/1.2,_yv/1.2,velocity _v select 2]}; }
else{
_v setvelocity[_xv/1.2,_yv/1.2,velocity _v select 2]
};
_tv=abs(_xv)+abs(_yv)+abs(_zv); _tv=abs(_xv)+abs(_yv)+abs(_zv);
if (_tv>2) then {_dr=1/_tv} else {_dr=1}; _dr=if(_tv>2)then{1/_tv}else{1};
_smoke setDropInterval _dr*1.5; _smoke setDropInterval _dr*1.5;
_fire setDropInterval _dr*1.5; _fire setDropInterval _dr*1.5;
_dirt setDropInterval _dr; _dirt setDropInterval _dr;
_shards setDropInterval _dr; sleep(0.25-(_speed/1000));
_i=_i+1;
sleep (0.25 - (_speed / 1000));
_i = _i + 1;
}; };
deleteVehicle _smoke; deleteVehicle _smoke;
deleteVehicle _fire; deleteVehicle _fire;
deleteVehicle _shards; deleteVehicle _dirt;
deleteVehicle _dirt; };
_v setvelocity[0,0,-0.1];
}; // end of dedicated check if(local _v)then{
["Burn",_v,_int,_t]call BIS_Effects_globalEvent;
_v setvelocity [0,0,-0.1]; [_v,_int,false]spawn BIS_Effects_Secondaries;
if (local _v) then
{
//_v setVehicleInit format ["[this, %1, %2,false,true]spawn BIS_Effects_Burn",_int, _t];
//processInitCommands; //ClearvehicleInit done at end of burn script
["Burn", _v, _int, _t] call BIS_Effects_globalEvent;
[_v,_int,false] spawn BIS_Effects_Secondaries;
}; };
sleep 0.5; sleep 0.5;
_v setvelocity [0,0,-0.01]; _v setvelocity[0,0,-0.01];

View File

@@ -1,34 +1,19 @@
private ["_v","_int","_t","_b"]; private ["_v","_int","_t","_b"];
_v=_this select 0; _v=_this select 0;
if (_v iskindof "helicopter" || _v iskindof "plane") if(_v iskindof"helicopter"||_v iskindof"plane")then{
then ["AirDestruction",_v]call BIS_Effects_globalEvent;
{ };
//_v setVehicleInit "[this] spawn BIS_Effects_AirDestruction"; if(_v iskindof"tank")then{
//processInitCommands; //ClearvehicleInit done at end of burn script _int=(fuel _v)*(2+random 2);
["AirDestruction", _v] call BIS_Effects_globalEvent;
};
if (_v iskindof "tank")
then
{
_int = (fuel _v)*(2+random 2);
_t=time; _t=time;
//_v setVehicleInit format ["[this, %1, %2]spawn BIS_Effects_Burn",_int, _t]; - disabled to prepaire for move into engine [_v,_int]spawn BIS_Effects_Secondaries;
//processInitCommands; //ClearvehicleInit done at end of burn script };
[_v,_int] spawn BIS_Effects_Secondaries; if(_v iskindof"car"||_v iskindof"ship")then{
}; _int=(fuel _v)*(2+random 1);
if (_v iskindof "car" || _v iskindof "ship")
then
{
_int = (fuel _v)*(2 + random 1);
_t=time; _t=time;
[_v,_int]spawn BIS_Effects_Secondaries;
//_v setVehicleInit format ["[this, %1, %2]spawn BIS_Effects_Burn; ",_int, _t]; - disabled to prepaire for move into engine if((random _int)>2.2)then{
//processInitCommands; //ClearvehicleInit done at end of burn script _b=createVehicle["SmallSecondary",(getPosATL _v),[],0,"CAN_COLLIDE"];
[_v,_int] spawn BIS_Effects_Secondaries;
//Possible initial explosion
if ((random _int)>2.2) then
{
_b="SmallSecondary" createvehicle (getpos _v);
};
}; };
};