Przy okazji udostępnie ci parę skryptów które wyciągnąłem z kampanii za pomocą UnPBO:
Skrypt bomby atomowej:
Oto i bomba którą chciało użyć bardzo dużo missionmakerów:
Stwórz w folderze swojej misji skrypt o nazwie nuke2.sqf i wklej do niego to:
- Kod: Zaznacz cały
setaperture 1.5;
//*******************************************************************
//*******************************************************************
_Cone = "#particlesource" createVehicleLocal getpos nukepos;
_Cone setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48], "", "Billboard", 1, 10, [0, 0, 0],
[0, 0, 0], 0, 1.275, 1, 0, [40,80], [[0.25, 0.25, 0.25, 0], [0.25, 0.25, 0.25, 0.5],
[0.25, 0.25, 0.25, 0.5], [0.25, 0.25, 0.25, 0.05], [0.25, 0.25, 0.25, 0]], [0.25], 0.1, 1, "", "", nukepos];
_Cone setParticleRandom [2, [1, 1, 30], [1, 1, 30], 0, 0, [0, 0, 0, 0.1], 0, 0];
_Cone setParticleCircle [10, [-10, -10, 20]];
_Cone setDropInterval 0.005;
_top = "#particlesource" createVehicleLocal getpos nukepos;
_top setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 3, 48, 0], "", "Billboard", 1, 20, [0, 0, 0],
[0, 0, 60], 0, 1.7, 1, 0, [60,80,100], [[1, 1, 1, -10],[1, 1, 1, -7],[1, 1, 1, -4],[1, 1, 1, -0.5],[1, 1, 1, 0]], [0.05], 1, 1, "", "", nukepos];
_top setParticleRandom [0, [75, 75, 15], [17, 17, 10], 0, 0, [0, 0, 0, 0], 0, 0, 360];
_top setDropInterval 0.002;
_top2 = "#particlesource" createVehicleLocal getpos nukepos;
_top2 setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 3, 112, 0], "", "Billboard", 1, 20, [0, 0, 0],
[0, 0, 60], 0, 1.7, 1, 0, [60,80,100], [[1, 1, 1, 0.5],[1, 1, 1, 0]], [0.07], 1, 1, "", "", nukepos];
_top2 setParticleRandom [0, [75, 75, 15], [17, 17, 10], 0, 0, [0, 0, 0, 0], 0, 0, 360];
_top2 setDropInterval 0.002;
_smoke = "#particlesource" createVehicleLocal getpos nukepos;
_smoke setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48, 1], "", "Billboard", 1, 25, [0, 0, 0],
[0, 0, 60], 0, 1.7, 1, 0, [40,15,120],
[[1, 1, 1, 0.4],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0]]
, [0.5, 0.1], 1, 1, "", "", nukepos];
_smoke setParticleRandom [0, [10, 10, 15], [15, 15, 7], 0, 0, [0, 0, 0, 0], 0, 0, 360];
_smoke setDropInterval 0.002;
_Wave = "#particlesource" createVehicleLocal getpos nukepos;
_Wave setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48], "", "Billboard", 1, 20/2, [0, 0, 0],
[0, 0, 0], 0, 1.5, 1, 0, [50, 100], [[0.1, 0.1, 0.1, 0.5],
[0.5, 0.5, 0.5, 0.5], [1, 1, 1, 0.3], [1, 1, 1, 0]], [1,0.5], 0.1, 1, "", "", nukepos];
_Wave setParticleRandom [2, [20, 20, 20], [5, 5, 0], 0, 0, [0, 0, 0, 0.1], 0, 0];
_Wave setParticleCircle [50, [-80, -80, 2.5]];
_Wave setDropInterval 0.0002;
_light = "#lightpoint" createVehicleLocal [((getpos nukepos select 0)),(getpos nukepos select 1),((getpos nukepos select 2)+500)];
_light setLightAmbient[1500, 1200, 1000];
_light setLightColor[1500, 1200, 1000];
_light setLightBrightness 100000.0/100000;
//*******************************************************************
//*******************************************************************
sleep 1.5*2;
_Wave setDropInterval 0.001;
deletevehicle _top;
deletevehicle _top2;
sleep 4.5;
_i = 0;
while {_i < 100} do
{
_light setLightBrightness (100.0 - _i)/100;
_i = _i + 1;
sleep 0.1;
};
deleteVehicle _light;
sleep 2;
setaperture -1;
_Wave setDropInterval 0.001*10;
_Wave setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48], "", "Billboard", 1, 20/2, [0, 0, 0],
[0, 0, 0], 0, 1.5, 1, 0, [50, 100], [[0.1, 0.1, 0.1, 0.5],
[0.5, 0.5, 0.5, 0.5], [1, 1, 1, 0.3], [1, 1, 1, 0]], [1,0.5], 0.1, 1, "", "", nukepos];
_Wave setParticleCircle [50, [-40, -40, 2.5]];
debuglog ["Log:::::::::::::::::::::::::::::"];
for "_i" from 0 to 15 do {
_smoke setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48, 1], "", "Billboard", 1, 25, [0, 0, 0],
[0, 0, 60+_i], 0, 1.7, 1, 0, [40,15,120],
[[1, 1, 1, 0.4],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0.7],[1, 1, 1, 0]]
, [0.5, 0.1], 1, 1, "", "", nukepos];
sleep 5;
if (player distance nukepos < 1100) exitwith {};
};
debuglog "Log::::::::::::::::::::NUKE START";
_timeNow = time;
waituntil {(time - _timeNow) > 160 || player distance nukepos < 1100};
//sleep 160;
debuglog "Log::::::::::::::::::::NUKE END";
60 setfog 0.63;
_smoke setParticleParams [["\Ca\Data\ParticleEffects\Universal\Universal", 16, 7, 48, 1], "", "Billboard", 1, 25, [0, 0, 0],
[0, 0, 30], 0, 1.7, 1, 0, [40,25+10,80],
[[1, 1, 1, 0.2],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0.3],[1, 1, 1, 0]]
, [0.5, 0.1], 1, 1, "", "", nukepos];
_smoke setDropInterval 0.012;
_Cone setDropInterval 0.02;
_Wave setDropInterval 0.01;
sleep 15;
deleteVehicle _Wave;
deleteVehicle _cone;
deleteVehicle _smoke;
W edytorze stwórz punkt logiczny o nazwie nukepos i w wyzwalaczu zaaktywuj skrypt o nazwie nuke2.sqf komendą execVM.
Podmuchy i inne rzeczy:
Wszystko jest w init.sqf misji.
Zacytuję ci interesujący cię fragment:
Wstrząs:
- Kod: Zaznacz cały
//--- Earthquake
eq = {
while {alive brown} do {
waituntil {vehicle brown == brown && isplayer brown && !cutscene};
playsound "eq";
for "_i" from 0 to 140 do {
_vx = vectorup _this select 0;
_vy = vectorup _this select 1;
_vz = vectorup _this select 2;
_coef = 0.01 - (0.0001 * _i);
_this setvectorup [
_vx+(-_coef+random (2*_coef)),
_vy+(-_coef+random (2*_coef)),
_vz+(-_coef+random (2*_coef))
];
sleep (0.01 + random 0.01);
};
sleep (180 + random 60);
};
};
oraz podmuchy i inne takie duperele:
- Kod: Zaznacz cały
//--- Wind & Dust
[] spawn {
waituntil {isplayer brown};
setwind [0.201112,0.204166,true];
while {true} do {
_ran = ceil random 5;
playsound format ["wind_%1",_ran];
_obj = vehicle player;
_pos = position _obj;
//--- Dust
setwind [0.201112*2,0.204166*2,false];
_velocity = [random 10,random 10,-1];
_color = [1.0, 0.9, 0.8];
_alpha = 0.02 + random 0.02;
_ps = "#particlesource" createVehicleLocal _pos;
_ps setParticleParams [["\Ca\Data\ParticleEffects\Universal\universal.p3d", 16, 12, 8], "", "Billboard", 1, 3, [0, 0, -6], _velocity, 1, 1.275, 1, 0, [9], [_color + [0], _color + [_alpha], _color + [0]], [1000], 1, 0, "", "", _obj];
_ps setParticleRandom [3, [30, 30, 0], [0, 0, 0], 1, 0, [0, 0, 0, 0.01], 0, 0];
_ps setParticleCircle [0.1, [0, 0, 0]];
_ps setDropInterval 0.01;
sleep (random 1);
deletevehicle _ps;
_delay = 10 + random 20;
sleep _delay;
};
};
Zadowolony? W razie czego pisz.
Przepraszam za odkop i straaasznie długi post.
EDIT: Przed aktywacją tych skryptów nazwij swojego gracza brown albo zmodyfikuj skrypt.
(tam gdzie jest alive brown itp.)