SCRIPT LIBERATION HABITANTS
GRIFF - ARMA3 :: ARMA3 :: Scripts
Page 1 sur 1
Nach- Messages : 513
Date d'inscription : 31/01/2016
LIBERATION.sqf
_unit = _this select 0;
_Group = Group leader _unit;
_unit removeAction 0;
_unit enableAI "move";
_unit setCaptive false;
_pos = getmarkerpos "spawcivil";
_posecentre = _pos;
_start_distance = 1200;
_xpos = _posecentre select 0;
_ypos = _posecentre select 1;
_zpos = _posecentre select 2;
_distance = _start_distance;
_angle = random 360;
_xxpos = (_distance * cos _angle);
_yypos = (_distance * sin _angle);
_xpos = _xpos + _xxpos;
_ypos = _ypos + _yypos;
_posecentre set [0, _xpos];
_posecentre set [1, _ypos];
_posecentre set [2, _zpos];
_waypoint = _Group addWaypoint [_pos, 0];
_waypoint setWaypointType "MOVE";
_waypoint setWaypointSpeed "FULL";
_message = format ["Merci soldat %1",name player];
hint _message;
sleep 40;
deleteVehicle _unit;
_Group = Group leader _unit;
_unit removeAction 0;
_unit enableAI "move";
_unit setCaptive false;
_pos = getmarkerpos "spawcivil";
_posecentre = _pos;
_start_distance = 1200;
_xpos = _posecentre select 0;
_ypos = _posecentre select 1;
_zpos = _posecentre select 2;
_distance = _start_distance;
_angle = random 360;
_xxpos = (_distance * cos _angle);
_yypos = (_distance * sin _angle);
_xpos = _xpos + _xxpos;
_ypos = _ypos + _yypos;
_posecentre set [0, _xpos];
_posecentre set [1, _ypos];
_posecentre set [2, _zpos];
_waypoint = _Group addWaypoint [_pos, 0];
_waypoint setWaypointType "MOVE";
_waypoint setWaypointSpeed "FULL";
_message = format ["Merci soldat %1",name player];
hint _message;
sleep 40;
deleteVehicle _unit;
Nach- Messages : 513
Date d'inscription : 31/01/2016
Re: SCRIPT LIBERATION HABITANTS
Voici une de mes créations la seule chose a faire c est d exécuter ce script avec null =[] execvm "*.sqf";
La deuxième est de placé un marqueur nommé spawncivil sur la carte de l editeur sur la zone habité;
Les variables exemple "Land_House_Small_01_F" etc. sont les maisons que l on souhaite affecter le script ici elle appartiennent au DLC TANOA;
comment trouver une variable maison ou autre d un objet dans l éditeur me diriez vous allez c est partit!!
Voici ma méthode >>> en appuyant sur echap dans l éditeur on fait apparaître une fenêtre de debug .
Une fenêtre s ouvre avec un grand carré , elle permet d y insérer un script ..
1/ je vise l objet
2/ Touche ESC
3/ je tape ceux ci hint str(typeOf cursortarget); copyToClipboard str(typeOf cursortarget); et je click sur ExcServeur;
Votre variable est copiée il n y a plus qu a faire contrôle+V pour la coller dans votre script. Celle ci est toujours entre guillemet voir couleur vert sur le script précèdent.
Le diamètre autour du marqueur spawncivil est en rouge attention de ne pas mettre une valeur trop exhaustive . Sur le script c est un diamètre de 150
Pas de magie mais la variable s est copié dans votre presse papier
un derniere chose mettre devant les trois lignes qui commence par _mrkr ces signes // lors de l envoi de la mission sinon des marqueurs apparaitront sur la carte de la mission avec la position des otages.
La deuxième est de placé un marqueur nommé spawncivil sur la carte de l editeur sur la zone habité;
Les variables exemple "Land_House_Small_01_F" etc. sont les maisons que l on souhaite affecter le script ici elle appartiennent au DLC TANOA;
comment trouver une variable maison ou autre d un objet dans l éditeur me diriez vous allez c est partit!!
Voici ma méthode >>> en appuyant sur echap dans l éditeur on fait apparaître une fenêtre de debug .
Une fenêtre s ouvre avec un grand carré , elle permet d y insérer un script ..
1/ je vise l objet
2/ Touche ESC
3/ je tape ceux ci hint str(typeOf cursortarget); copyToClipboard str(typeOf cursortarget); et je click sur ExcServeur;
Votre variable est copiée il n y a plus qu a faire contrôle+V pour la coller dans votre script. Celle ci est toujours entre guillemet voir couleur vert sur le script précèdent.
Le diamètre autour du marqueur spawncivil est en rouge attention de ne pas mettre une valeur trop exhaustive . Sur le script c est un diamètre de 150
Pas de magie mais la variable s est copié dans votre presse papier
un derniere chose mettre devant les trois lignes qui commence par _mrkr ces signes // lors de l envoi de la mission sinon des marqueurs apparaitront sur la carte de la mission avec la position des otages.
Dernière édition par ('l|) Nach le Dim 8 Jan - 23:51, édité 2 fois
Nach- Messages : 513
Date d'inscription : 31/01/2016
SCRIPT LIBERATION HABITANTS
if (!isServer) exitWith {};
// null = [objet,2,300] execVM "otage2.sqf"; >>> [nom de l objet editeur, le nombre d otage , Radius de spawn autour de l objet]
_listecivils = ["C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_hunter_1_F","C_man_p_beggar_F","C_man_p_fugitive_F",
"C_man_p_shorts_1_F","C_man_polo_1_F","C_man_polo_2_F","C_man_polo_3_F","C_man_polo_4_F","C_man_polo_5_F",
"C_man_polo_6_F","C_man_shorts_1_F","C_man_shorts_2_F","C_man_shorts_3_F","C_man_shorts_4_F","C_man_w_worker_F"];
_lop = ["O_T_Support_GMG_F","O_T_Support_MG_F","O_T_Support_MG_F","O_T_Support_AMG_F","O_T_Support_AMort_F","O_T_Soldier_TL_F","O_T_Soldier_SL_F","O_T_Soldier_Exp_F","O_T_Soldier_F","O_T_Soldier_LAT_F","O_T_Soldier_AR_F","O_T_Soldier_AR_F","O_T_Soldier_AAR_F","O_T_Soldier_GL_F","O_T_Crew_F","O_T_Medic_F","O_T_Officer_F","O_T_Soldier_A_F","O_T_Soldier_Repair_F","O_T_Engineer_F","O_T_Soldier_AA_F","O_T_Soldier_AT_F","O_T_Soldier_AAA_F","O_T_Soldier_AAT_F","O_T_Recon_F","O_T_Recon_LAT_F","O_T_Recon_Exp_F","O_T_Spotter_F"];
private["_houseObjects","_position","_buildings","_newpos","_unit","_bposs","_i","_i2","_x","_habiter","_side"];
_position = _this select 0;
_side = CIVILIAN;
_Nombredemaison = (_this select 1);
_iamaison = 1;
_radiusmaison = (_this select 2);
_wtime = 30;
_x = 0;
_y = 0;
_t = 0;
_timeout = 0;
for [{_n=0}, {_n<_Nombredemaison}, {_n=_n+1}] do {
_habiter = [];
for "_i" from 1 to _iamaison do {
_nombre3 = round(random (count (_listecivils)));
_unit2 = _listecivils select _nombre3;
_habiter set [count _habiter ,_unit2];
};
_houseObjects = nearestObjects [_position, ["building"],_radiusmaison];
if(isNil("_houseObjects"))exitWith{nil};
if((count _houseObjects)==0)exitWith{nil};
_buildings = [];
{
if(str(_x buildingPos 0) != "[0,0,0]")then{_buildings set[(count _buildings),_x];};
}forEach _houseObjects;
if((count _buildings)==0)exitWith{nil};
_bPoss = [];
_a = 0;
while { _a < (count _buildings) } do {
_building = (_buildings select _a);
_i = 0;
while { ((_building buildingPos _i) select 0) != 0 } do {
_bPoss set [count (_bPoss), (_building buildingPos _i)];
_i = _i + 1;
};
_a = _a + 1;
};
_newPos = _bposs select floor(random count _bposs);
_spawnGroup2 = [_newpos, _side ,_habiter,[],[],[],[],[],180] call BIS_fnc_spawnGroup;
};
// Recherche de chaque civils addaction + unité ennemi le gardant
_otage = nearestObjects [_position ,_listecivils,_radiusmaison];
{
// addaction Civil
_x addAction ["liberer Civil","otagegriff\liberation.sqf",[],1,false,true,"","(_target distance _this) < 3"] call bis_fnc_mp;
_x disableAI "move";
_x setCaptive true;
_x addEventHandler ["killed", {deleteVehicle (_this select 0)}];
// creation d un opfor aleatoire par variable civil
_grb2 = createGroup east;
_grb3 = createGroup east;
_nombre2 = round(random ((count _lop)-1));
_nombre3 = round(random ((count _lop)-1));
_s11 = _lop select _nombre2;
_s12 = _lop select _nombre3;
_posx = (getPosatl _x select 0)+2;
_posy = (getPosatl _x select 1)-2;
_posz = (getPosatl _x select 2)+1;
_pos = [_posx,_posy,_posz];
_s11 createUnit [_pos, _grb2];
_posx = (getPosatl _x select 0)+2;
_posy = (getPosatl _x select 1)-2;
_posz = (getPosatl _x select 2)+1;
_pos1 = [_posx,_posy,_posz];
_s12 createUnit [_pos1, _grb3];
{null = [_x] execVM "otagegriff\housep.sqf";} foreach (units _grb3);
//[_grb2, getpos _x, 1] call BIS_fnc_taskDefend;
} forEach _otage;
hint format ["%1 civil(s) sur cette mission",_Nombredemaison ];
// installation du trigger et de la task civil absent
pos9Miss = position (_this select 0);
textoMiss = "Libérer les habitants";
misot1 = "obj9";
valide = false;
publicVariable "pos9Miss";
publicVariable "textoMiss";
publicVariable "misot1";
publicVariable "valide";
// creation est spawn de la task
[west,misot1,["",textoMiss, pos9Miss],"",true]call bis_fnc_taskCreate;
// validation par civil absent
trg9 = createTrigger["EmptyDetector",pos9miss];
trg9 setTriggerArea[1000,1000,0,false];
trg9 setTriggerActivation["CIV","NOT PRESENT",false];
trg9 setTriggerStatements["this", "null = [misot1,""SUCCEEDED"",true] call bis_fnc_taskSetState; publicVariable 'misot1'; publicVariable 'textomiss';valide = true; publicvariable 'valide';", ""];
publicVariable "trg9";
waitUntil {triggerActivated trg9};
sleep 5;
["obj9"] call BIS_fnc_deleteTask;
deleteVehicle trg9;
// null = [objet,2,300] execVM "otage2.sqf"; >>> [nom de l objet editeur, le nombre d otage , Radius de spawn autour de l objet]
_listecivils = ["C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_hunter_1_F","C_man_p_beggar_F","C_man_p_fugitive_F",
"C_man_p_shorts_1_F","C_man_polo_1_F","C_man_polo_2_F","C_man_polo_3_F","C_man_polo_4_F","C_man_polo_5_F",
"C_man_polo_6_F","C_man_shorts_1_F","C_man_shorts_2_F","C_man_shorts_3_F","C_man_shorts_4_F","C_man_w_worker_F"];
_lop = ["O_T_Support_GMG_F","O_T_Support_MG_F","O_T_Support_MG_F","O_T_Support_AMG_F","O_T_Support_AMort_F","O_T_Soldier_TL_F","O_T_Soldier_SL_F","O_T_Soldier_Exp_F","O_T_Soldier_F","O_T_Soldier_LAT_F","O_T_Soldier_AR_F","O_T_Soldier_AR_F","O_T_Soldier_AAR_F","O_T_Soldier_GL_F","O_T_Crew_F","O_T_Medic_F","O_T_Officer_F","O_T_Soldier_A_F","O_T_Soldier_Repair_F","O_T_Engineer_F","O_T_Soldier_AA_F","O_T_Soldier_AT_F","O_T_Soldier_AAA_F","O_T_Soldier_AAT_F","O_T_Recon_F","O_T_Recon_LAT_F","O_T_Recon_Exp_F","O_T_Spotter_F"];
private["_houseObjects","_position","_buildings","_newpos","_unit","_bposs","_i","_i2","_x","_habiter","_side"];
_position = _this select 0;
_side = CIVILIAN;
_Nombredemaison = (_this select 1);
_iamaison = 1;
_radiusmaison = (_this select 2);
_wtime = 30;
_x = 0;
_y = 0;
_t = 0;
_timeout = 0;
for [{_n=0}, {_n<_Nombredemaison}, {_n=_n+1}] do {
_habiter = [];
for "_i" from 1 to _iamaison do {
_nombre3 = round(random (count (_listecivils)));
_unit2 = _listecivils select _nombre3;
_habiter set [count _habiter ,_unit2];
};
_houseObjects = nearestObjects [_position, ["building"],_radiusmaison];
if(isNil("_houseObjects"))exitWith{nil};
if((count _houseObjects)==0)exitWith{nil};
_buildings = [];
{
if(str(_x buildingPos 0) != "[0,0,0]")then{_buildings set[(count _buildings),_x];};
}forEach _houseObjects;
if((count _buildings)==0)exitWith{nil};
_bPoss = [];
_a = 0;
while { _a < (count _buildings) } do {
_building = (_buildings select _a);
_i = 0;
while { ((_building buildingPos _i) select 0) != 0 } do {
_bPoss set [count (_bPoss), (_building buildingPos _i)];
_i = _i + 1;
};
_a = _a + 1;
};
_newPos = _bposs select floor(random count _bposs);
_spawnGroup2 = [_newpos, _side ,_habiter,[],[],[],[],[],180] call BIS_fnc_spawnGroup;
};
// Recherche de chaque civils addaction + unité ennemi le gardant
_otage = nearestObjects [_position ,_listecivils,_radiusmaison];
{
// addaction Civil
_x addAction ["liberer Civil","otagegriff\liberation.sqf",[],1,false,true,"","(_target distance _this) < 3"] call bis_fnc_mp;
_x disableAI "move";
_x setCaptive true;
_x addEventHandler ["killed", {deleteVehicle (_this select 0)}];
// creation d un opfor aleatoire par variable civil
_grb2 = createGroup east;
_grb3 = createGroup east;
_nombre2 = round(random ((count _lop)-1));
_nombre3 = round(random ((count _lop)-1));
_s11 = _lop select _nombre2;
_s12 = _lop select _nombre3;
_posx = (getPosatl _x select 0)+2;
_posy = (getPosatl _x select 1)-2;
_posz = (getPosatl _x select 2)+1;
_pos = [_posx,_posy,_posz];
_s11 createUnit [_pos, _grb2];
_posx = (getPosatl _x select 0)+2;
_posy = (getPosatl _x select 1)-2;
_posz = (getPosatl _x select 2)+1;
_pos1 = [_posx,_posy,_posz];
_s12 createUnit [_pos1, _grb3];
{null = [_x] execVM "otagegriff\housep.sqf";} foreach (units _grb3);
//[_grb2, getpos _x, 1] call BIS_fnc_taskDefend;
} forEach _otage;
hint format ["%1 civil(s) sur cette mission",_Nombredemaison ];
// installation du trigger et de la task civil absent
pos9Miss = position (_this select 0);
textoMiss = "Libérer les habitants";
misot1 = "obj9";
valide = false;
publicVariable "pos9Miss";
publicVariable "textoMiss";
publicVariable "misot1";
publicVariable "valide";
// creation est spawn de la task
[west,misot1,["",textoMiss, pos9Miss],"",true]call bis_fnc_taskCreate;
// validation par civil absent
trg9 = createTrigger["EmptyDetector",pos9miss];
trg9 setTriggerArea[1000,1000,0,false];
trg9 setTriggerActivation["CIV","NOT PRESENT",false];
trg9 setTriggerStatements["this", "null = [misot1,""SUCCEEDED"",true] call bis_fnc_taskSetState; publicVariable 'misot1'; publicVariable 'textomiss';valide = true; publicvariable 'valide';", ""];
publicVariable "trg9";
waitUntil {triggerActivated trg9};
sleep 5;
["obj9"] call BIS_fnc_deleteTask;
deleteVehicle trg9;
Dernière édition par ('l|) Nach le Mar 24 Avr - 19:35, édité 5 fois
Nach- Messages : 513
Date d'inscription : 31/01/2016
Sujets similaires
» SCRIPT ARMA LIBERATION OTAGE 3.0
» Libération
» TAG PLAYER script
» SCRIPT CREATION DE TASK ENCHAINEE
» Libération
» TAG PLAYER script
» SCRIPT CREATION DE TASK ENCHAINEE
GRIFF - ARMA3 :: ARMA3 :: Scripts
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|