Autor : Ali |
Stáhnout script Zpět na scripty |
Krabice | |
; krabice_boom.sqs ; Ali ( aleshw@gmail.com ) ; pro verzi hry 1,75+ ; ---------------------------------------------------------- ; script na simulaci výbuchu krabice s municí ; script se spouští [ ; *legenda* ; -krabice - jméno krabice, pro kterou script platí, která pøi zásahu vybouchne ; -zvuky - seznam zvukù (muže byt i jeden), ze kterého script náhodnì vybere jeden a pøi zásahu krabice pøehraje ; -zvuky musí byt v 'uvozovkách' a když jich bude více, tak je tøeba je oddìlit èárkami ',' (bez citací) ; -pokud parametr nevyplníte, tak se pøehrají zvuky, které jsou zadány hned na zaèátku scriptu v promìnné '_defaultni_zvuky' ; -mùžete zmìnit samozøejmì podle potøeby, ale nezapomeòte je zadefinovat v 'description.ext' !! ; -zvuky by mìli mít všechny stejnou dobu trvání ; -doba - délka zvuku udávána v sekundách, parametr se udává jenom z toho dùvodu, aby vizuální efekt skonèil zároveò se zvukovým ; -pokud nevyplníte parametr 2 ; ; zvuky, použité v ukázkové misí jsou ze hry Max Payne 2 ; ; pøíklad spuštìni scriptu ; [this,['zvuk1','zvuk2','zvuk3']] exec 'krabice_boom.sqs' nebo [this] exec 'krabice_boom.sqs' ; ---------------------------------------------------------- private ['_defaultni_zvuky','_parametry','_unit','_dam','_cas']; ; ---------------------------------------------------------- ; ===tyhle zvuky musí byt zadefinovány v 'description.ext' !! pokud nezadáte parametr 2 _defaultni_zvuky = ['krab_1','krab_2','krab_3']; ; ===tyhle zvuky musí byt zadefinovány v 'description.ext' !! pokud nezadáte parametr 2 ; ---------------------------------------------------------- _parametry = count _this; if (_parametry > 0) then {_unit = _this select 0; _dam = damage _unit} else {hint 'Chyba!! Parametry scriptu nebyly zadány správnì!!'; exit}; #control ~0.1 if (damage _unit == _dam) then {goto 'control'} else {goto 'start'}; exit; #start private ['_zvuk','_zvuky','_sound','_ran']; if (_parametry > 1) then {_zvuk = (_this select 1); _zvuky = count _zvuk; if (_zvuky > 1) then {_ran = (random (count _zvuk)) + 0.4; _ran = _ran - (_ran % 1); _sound = (_zvuk select _ran)} else {_sound = _zvuk}; if (_parametry > 2) then {_cas = (_this select 2)} else {hint 'Chyba!! Parametry scriptu nebyly zadány správnì!!'; exit}} else {_ran = (random (count _defaultni_zvuky)) + 0.4; _ran = _ran - (_ran % 1); _sound = (_defaultni_zvuky select _ran); _cas = 2}; private ['_detector','_waterDetector','_result']; _detector = 'EmptyDetector' createVehicle [0,0,0]; _waterDetector = {_detector setPos [(position _unit select 0),(position _unit select 1),0]; _result = (position _detector select 2); _result}; if ((abs (_this call _waterDetector)) < 2) then {exit}; private ['_timer','_bod','_x','_y','_z','_randy','_randx','_rand','_kulka']; _timer = time; _bod = 'EmptyDetector' createVehicle position _unit; _x = 0; _y = 0; _z = 0; _bod say _sound; _randy = (random 100); _randx = (random 100); drop ['kouleSvetlo','','Billboard',1,0.2,[0,0,-1],[0,0,0],3,1,1,0.5,[10,13,7],[[0.72,0.63,0.03,0.4],[0.72,0.63,0.03,0]],[1,1,1],0,0,'','',_bod]; drop ['cl_basic','','Billboard',1,(random 5),[_x,_y,_z],[0,0,0],3,1,1,0.7,[8+(random 2),11+(random 2),13+(random 2)],[[0,0,0,0],[0,0,0,0.3],[0,0,0,0.4],[0,0,0,0]],[0,1,1],0,0,'','',_bod]; 'grenade' createVehicle [(position _bod select 0),(position _bod select 1),(position _bod select 2)]; deleteVehicle _unit; #loop _rand = (random 100); if ((random 100) < 50) then {drop ['cl_basic','','Billboard',1,(random 5),[_x,_y,_z],[0,0,0],3,1,1,0.7,[4+(random 2),6+(random 2),8+(random 2)],[[0,0,0,0],[0,0,0,0.2],[0,0,0,0.3],[0,0,0,0]],[0,1,1],0,0,'','',_bod]}; drop ['kouleSvetlo','','Billboard',1,0.1,[_x,_y,_z],[0,0,0],3,1,1,0.5,[5,7,3],[[0.72,0.63,0.03,0.5],[0.72,0.63,0.03,1]],[1,1,1],0,0,'','',_bod]; _kulka = 'BulletSniperE' createVehicle [(position _bod select 0)+(_x+(random 10)-(random 10)),(position _bod select 1)+(_y+(random 10)-(random 10)),(position _bod select 2)+(random 1)]; _kulka setVelocity [(random 500) - (random 500),(random 500) - (random 500),(random 5)]; if (_z < 1 + (random 2)) then {_z = _z + (random 0.7)} else {_z = _z - (random 0.5)}; if (_randy < 50) then {_y = _y + (random 0.1)} else {_y = _y - (random 0.1)}; if (_randx < 50) then {_x = _x + (random 0.1)} else {_x = _x - (random 0.1)}; ~0.05 if (time < (_timer + _cas)) then {goto 'loop'}; exit; |