Jantemplar
Jun 10 2009, 23:43
Update:
Alright, i decided to get off my ass, compile some people script and produce this World In Conflict Style.....
So this is what i have
if (!isServer) exitWith {};
// Define variables
_unit = _this select 0;
_delay = if (count _this > 1) then {_this select 1} else {30};
_deserted = if (count _this > 2) then {_this select 2} else {120};
_respawns = if (count _this > 3) then {_this select 3} else {0};
_explode = if (count _this > 4) then {_this select 4} else {false};
_dynamic = if (count _this > 5) then {_this select 5} else {false};
_unitinit = if (count _this > 6) then {_this select 6} else {};
_haveinit = if (count _this > 6) then {true} else {false};
_airtype = "C130J";
_typepilot = "GUE_Soldier_Pilot";
mygroup = creategroup side player;
_hasname = false;
_unitname = vehicleVarName _unit;
if (isNil _unitname) then {_hasname = false;} else {_hasname = true;};
_noend = true;
_run = true;
_rounds = 0;
if (_delay < 0) then {_delay = 0};
if (_deserted < 0) then {_deserted = 0};
if (_respawns <= 0) then {_respawns= 0; _noend = true;};
if (_respawns > 0) then {_noend = false};
_dir = getDir _unit;
_position = getPosASL _unit;
_type = typeOf _unit;
_dead = false;
_nodelay = false;
// Start monitoring the vehicle
while {_run} do
{
sleep (2 + random 10);
if ((getDammage _unit > 0.8) and ({alive _x} count crew _unit == 0)) then {_dead = true};
// Check if the vehicle is deserted.
if (_deserted > 0) then
{
if ((getPosASL _unit distance _position > 10) and ({alive _x} count crew _unit == 0) and (getDammage _unit < 0.8)) then
{
_timeout = time + _deserted;
sleep 0.1;
waitUntil {_timeout < time or !alive _unit or {alive _x} count crew _unit > 0};
if ({alive _x} count crew _unit > 0) then {_dead = false};
if ({alive _x} count crew _unit == 0) then {_dead = true; _nodelay =true};
if !(alive _unit) then {_dead = true; _nodelay = false};
};
};
// Respawn vehicle
if (_dead) then
{
if (_nodelay) then {sleep 0.1; _nodelay = false;} else {sleep _delay;};
if (_dynamic) then {_position = getPosASL _unit; _dir = getDir _unit;};
if (_explode) then {_effect = "M_TOW_AT" createVehicle getPosASL _unit; _effect setPosASL getPosASL _unit;};
sleep 0.1;
deleteVehicle _unit;
sleep 2;
_target = createVehicle ["testsphere2",[_position select 0,_position select 1,-10], [], 0, "FLY"];
_target setpos [_position select 0,_position select 1,200];
_target setDir _dir;
_vdir = vectorDir _target;
_target setpos [(_position select 0) + (_vdir select 0) * 26, (_position select 1) + (_vdir select 1) * 26,200];
_apos = getposasl _target;
_npos = [(_pos select 0) + (_vdir select 0) * -1500, (_pos select 1) + (_vdir select 1) * -1500, 300];
_vehicle = createVehicle [_airtype,_npos, [], 0, "FLY"];
_vehicle setpos _npos;
_vehicle setDir _dir;
_vehicle setvelocity [(_vdir select 0)*50,(_vdir select 1)*50, 5];
_typepilot createUnit [_npos, mygroup,"pilot=this;"];
_pilot = pilot;
_pilot moveindriver _vehicle;
_pilot reveal _target;
_pilot doMove _npos;
_pilot dotarget _target;
_pilot dowatch _target;
_pilot FlyInHeight 400;
_vehicle FlyInHeight 400;
while {_vehicle distance _target > 40} do
{
sleep 0.5;
if(_vehicle distance _target < 600) then
{
_pilot FlyInHeight 400;
_pilot doMove _npos;
};
};
_bpos = _vehicle ModelToWorld [0,-12,-5.5];
_unit = _type createVehicle _bpos;
_unit setpos _bpos;
_unit setDir direction _vehicle;
_chute = "ParachuteMediumWest" createVehicle getpos _bomb;
_chute setpos (_bomb ModelToWorld [0,0,3]);
_unit attachTo [_chute,[0,0,0]];
deletevehicle _target;
sleep 0.05;
_plane FlyInHeight 250;
sleep 1;
_plane FlyInHeight 450;
_pilot doMove [(_pos select 0) + (_vdir select 0) * 800, (_pos select 1) + (_vdir select 1) * 800, 500];
sleep 15;
deletevehicle _vehicle;
deletevehicle _pilot;
if (_haveinit) then
{_unit setVehicleInit format ["%1;", _unitinit];
processInitCommands;};
if (_hasname) then
{_unit setVehicleInit format ["%1 = this; this setVehicleVarName ""%1""",_unitname];
processInitCommands;};
_dead = false;
// Check respawn amount
if !(_noend) then {_rounds = _rounds + 1};
if ((_rounds == _respawns) and !(_noend)) then {_run = false;};
};
};
Now after extensive testing i know it does not work.... It works right up to the Effect point but then the c130 never appears, flys over my head drops the vehicle that died and flies away. Anyone got an idea why. Ive also tried running the game with the -showscripterrors on the end and it only shows erorrs in my briefing and not in this script.
BTW this script is a mix of Tajin c130 dropspawn script and Simple Vehicle Respawn Script by Tophe with edits to them and compiling of them by me.
But if anyone sees whats wrong, please post.
Thanks
Jan Templar
Alright, i decided to get off my ass, compile some people script and produce this World In Conflict Style.....
So this is what i have
if (!isServer) exitWith {};
// Define variables
_unit = _this select 0;
_delay = if (count _this > 1) then {_this select 1} else {30};
_deserted = if (count _this > 2) then {_this select 2} else {120};
_respawns = if (count _this > 3) then {_this select 3} else {0};
_explode = if (count _this > 4) then {_this select 4} else {false};
_dynamic = if (count _this > 5) then {_this select 5} else {false};
_unitinit = if (count _this > 6) then {_this select 6} else {};
_haveinit = if (count _this > 6) then {true} else {false};
_airtype = "C130J";
_typepilot = "GUE_Soldier_Pilot";
mygroup = creategroup side player;
_hasname = false;
_unitname = vehicleVarName _unit;
if (isNil _unitname) then {_hasname = false;} else {_hasname = true;};
_noend = true;
_run = true;
_rounds = 0;
if (_delay < 0) then {_delay = 0};
if (_deserted < 0) then {_deserted = 0};
if (_respawns <= 0) then {_respawns= 0; _noend = true;};
if (_respawns > 0) then {_noend = false};
_dir = getDir _unit;
_position = getPosASL _unit;
_type = typeOf _unit;
_dead = false;
_nodelay = false;
// Start monitoring the vehicle
while {_run} do
{
sleep (2 + random 10);
if ((getDammage _unit > 0.8) and ({alive _x} count crew _unit == 0)) then {_dead = true};
// Check if the vehicle is deserted.
if (_deserted > 0) then
{
if ((getPosASL _unit distance _position > 10) and ({alive _x} count crew _unit == 0) and (getDammage _unit < 0.8)) then
{
_timeout = time + _deserted;
sleep 0.1;
waitUntil {_timeout < time or !alive _unit or {alive _x} count crew _unit > 0};
if ({alive _x} count crew _unit > 0) then {_dead = false};
if ({alive _x} count crew _unit == 0) then {_dead = true; _nodelay =true};
if !(alive _unit) then {_dead = true; _nodelay = false};
};
};
// Respawn vehicle
if (_dead) then
{
if (_nodelay) then {sleep 0.1; _nodelay = false;} else {sleep _delay;};
if (_dynamic) then {_position = getPosASL _unit; _dir = getDir _unit;};
if (_explode) then {_effect = "M_TOW_AT" createVehicle getPosASL _unit; _effect setPosASL getPosASL _unit;};
sleep 0.1;
deleteVehicle _unit;
sleep 2;
_target = createVehicle ["testsphere2",[_position select 0,_position select 1,-10], [], 0, "FLY"];
_target setpos [_position select 0,_position select 1,200];
_target setDir _dir;
_vdir = vectorDir _target;
_target setpos [(_position select 0) + (_vdir select 0) * 26, (_position select 1) + (_vdir select 1) * 26,200];
_apos = getposasl _target;
_npos = [(_pos select 0) + (_vdir select 0) * -1500, (_pos select 1) + (_vdir select 1) * -1500, 300];
_vehicle = createVehicle [_airtype,_npos, [], 0, "FLY"];
_vehicle setpos _npos;
_vehicle setDir _dir;
_vehicle setvelocity [(_vdir select 0)*50,(_vdir select 1)*50, 5];
_typepilot createUnit [_npos, mygroup,"pilot=this;"];
_pilot = pilot;
_pilot moveindriver _vehicle;
_pilot reveal _target;
_pilot doMove _npos;
_pilot dotarget _target;
_pilot dowatch _target;
_pilot FlyInHeight 400;
_vehicle FlyInHeight 400;
while {_vehicle distance _target > 40} do
{
sleep 0.5;
if(_vehicle distance _target < 600) then
{
_pilot FlyInHeight 400;
_pilot doMove _npos;
};
};
_bpos = _vehicle ModelToWorld [0,-12,-5.5];
_unit = _type createVehicle _bpos;
_unit setpos _bpos;
_unit setDir direction _vehicle;
_chute = "ParachuteMediumWest" createVehicle getpos _bomb;
_chute setpos (_bomb ModelToWorld [0,0,3]);
_unit attachTo [_chute,[0,0,0]];
deletevehicle _target;
sleep 0.05;
_plane FlyInHeight 250;
sleep 1;
_plane FlyInHeight 450;
_pilot doMove [(_pos select 0) + (_vdir select 0) * 800, (_pos select 1) + (_vdir select 1) * 800, 500];
sleep 15;
deletevehicle _vehicle;
deletevehicle _pilot;
if (_haveinit) then
{_unit setVehicleInit format ["%1;", _unitinit];
processInitCommands;};
if (_hasname) then
{_unit setVehicleInit format ["%1 = this; this setVehicleVarName ""%1""",_unitname];
processInitCommands;};
_dead = false;
// Check respawn amount
if !(_noend) then {_rounds = _rounds + 1};
if ((_rounds == _respawns) and !(_noend)) then {_run = false;};
};
};
Now after extensive testing i know it does not work.... It works right up to the Effect point but then the c130 never appears, flys over my head drops the vehicle that died and flies away. Anyone got an idea why. Ive also tried running the game with the -showscripterrors on the end and it only shows erorrs in my briefing and not in this script.
BTW this script is a mix of Tajin c130 dropspawn script and Simple Vehicle Respawn Script by Tophe with edits to them and compiling of them by me.
But if anyone sees whats wrong, please post.
Thanks
Jan Templar