// Pat_Spawn by Raph_VR : script pour faire apparaitre un certain nombre de patrouilles dans une zone donnée /* entrer en argument : - le nom du déclencheur - le nombre de groupes maximum qui composeront les patrouilles de la zone - l'écartement en m maximal des patrouilles par rapport au centre du déclencheur - l'amplitude maximale de déplacement de chaque patrouille en m - le camp (west, east, resistance) des patrouilles - le lien du configfile du groupe que vous voulez créer ex : configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfSquad" Exemple à placer dans le champ activation d'un déclencheur (nommé "pat") qui fera spawner la patrouille : patrouille = [pat,6,800,350,east,configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfSquad"] execVM "SpawnGroup\pat_spawn.sqf"; */ if (not isServer) exitwith {}; _trg = _this select 0; _taille = _this select 1; _dispersion = _this select 2; _amplitude = _this select 3; _camp = _this select 4; _type = _this select 5; _pos = getpos _trg; for "_x" from 1 to (random _taille) do { grp_x = [[(_pos select 0) + random (_dispersion) - random (_dispersion) , (_pos select 1) + random (_dispersion) - random (_dispersion) , _pos select 2] ,_camp ,_type] call BIS_fnc_spawnGroup; [grp_x, _pos, _amplitude] call bis_fnc_taskPatrol; };
// Vehic_Spawn by Raph_VR : script pour faire apparaitre des véhicules et leur équipage dans une zone donnée et les faire patrouiller. Idéal pour les véhicules aériens. /* entrer en argument : - le nom du déclencheur - le nombre d'unités maximum qui vont spawner dans la zone - l'écartement en m maximal des patrouilles par rapport au centre du déclencheur - l'amplitude maximale de déplacement de chaque patrouille en m - le camp (west, east, resistance) des patrouilles - le type d'unité que vous voulez créer. ex : "O_Heli_Attack_02_F" Exemple à placer dans le champ activation d'un déclencheur (nommé heli) qui fera spawner les véhicules aériens patair = [heli,2,100,1700,east,"O_Heli_Attack_02_F"] execVM "SpawnGroup\vehic_spawn.sqf"; */ if (not isServer) exitwith {}; _trg = _this select 0; _taille = _this select 1; _dispersion = _this select 2; _amplitude = _this select 3; _camp = _this select 4; _type = _this select 5; _pos = getpos _trg; for "_x" from 1 to (random _taille) do { vehic_x = [[(_pos select 0) + random (_dispersion) - random (_dispersion) , (_pos select 1) + random (_dispersion) - random (_dispersion) , _pos select 2] ,0,_type,_camp] call BIS_fnc_spawnVehicle; [(group vehic_x), _pos, _amplitude] call bis_fnc_taskPatrol; };
// combat_spawn par Raph_VR : script pour générerun combat entre deux armées sur une zone donnée /*entrer en argument : - le nom du déclencheur - le nombre de groupes minimum qui composeront chaque armée - le nombre de groupes maximum qui composeront chaque armée - l'écartement en m maximal des groupes d'une armée par rapport au centre de celle-ci - l'amplitude maximale de la zone de rencontre pour le combat - l'orientation en abscisse du camp 1 (axe des x : valeur -1, 0 ou 1) - l'orientation en ordonnée du camp 1 (axe des y : valeur -1, 0 ou 1) - le décalage des points de départ de chaque armée par rapport au centre du déclencheur. - le camp (west, east, resistance) de l'armée 1 - le lien du configfile des groupes que vous voulez créer pour l'armée 1 ex : configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfSquad" - le camp (west, east, resistance) de l'armée 2 - le lien du configfile des groupes que vous voulez créer pour l'armée 2 ex : configfile >> "CfgGroups" >> "Indep" >> "IND_F" >> "Infantry" >> "HAF_InfSquad" Exemple à placer dans le champ activation du déclencheur (nommé "comb") qui fera spawner le combat : comb = [combatinf,2,4,500,350,1,-1,900,east,configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfSquad",resistance,configfile >> "CfgGroups" >> "Indep" >> "IND_F" >> "Infantry" >> "HAF_InfSquad"] execVM "SpawnGroup\combat_spawn.sqf"; */ if (not isServer) exitwith {}; _trg = _this select 0; _taillemin = _this select 1; _taillemax = _this select 2; _dispersion = _this select 3; _amplitude = _this select 4; _orientationx = _this select 5; _orientationy = _this select 6; _decalage = _this select 7; _camp1 = _this select 8; _type1 = _this select 9; _camp2 = _this select 10; _type2 = _this select 11; _pos = getpos _trg; for "_x" from 1 to (_taillemin + random (_taillemax - _taillemin)) do { grp_x = [[(_pos select 0) + (_orientationx * _decalage) + random (_dispersion) - random (_dispersion) , (_pos select 1) + (_orientationy * _decalage) + random (_dispersion) - random (_dispersion) , _pos select 2] ,_camp1 ,_type1 ] call BIS_fnc_spawnGroup; [grp_x, [(_pos select 0) + random (_amplitude) - random (_amplitude) , (_pos select 1) + random (_amplitude) - random (_amplitude), _pos select 2]] call bis_fnc_taskAttack; }; for "_y" from 1 to (_taillemin + random (_taillemax - _taillemin)) do { grp_y = [[(_pos select 0) - (_orientationx * _decalage) + random (_dispersion) - random (_dispersion) , (_pos select 1) - (_orientationy * _decalage) + random (_dispersion) - random (_dispersion) , _pos select 2] ,_camp2 ,_type2 ] call BIS_fnc_spawnGroup; [grp_y, [(_pos select 0) + random (_amplitude) - random (_amplitude) , (_pos select 1) + random (_amplitude) - random (_amplitude), _pos select 2]] call bis_fnc_taskAttack; };
// Sup_IA by Raph_VR : script pour supprimer toutes les unités IA et leurs véhicules des deux camps considérés /* entrer en argument : - le nom du déclencheur - l'amplitude de la zone de suppression autour du centre du déclencheur - le premier camp à supprimer - le deuxième camp à supprimer Exemple à placer dans le champ désactivation d'un déclencheur (nommé pat) qui fera spawner les véhicules aériens => A combiner avec les autres scripts, ce script a pour effet de supprimer ce que vous avez fait spawner en entrant dans une zone. supp = [pat,800,east,resistance] execVM "SpawnGroup\sup_IA.sqf"; */ if (not isServer) exitwith {}; _trig = _this select 0; _amplitude = _this select 1; _camp1 = _this select 2; _camp2 = _this select 3; _posi = getpos _trig; {if (((side _x == _camp1)OR(side _x == _camp2))&&(_x distance _posi < _amplitude) ) then{deleteVehicle vehicle _x; deleteVehicle _x;} else {}}forEach allUnits;
if (not isServer) exitwith {}; _trg = _this select 0; _taille = _this select 1; _dispersion = _this select 2; _amplitude = _this select 3; _pos = getpos _trg; _nombre = random _taille; while{_nombre < _taille/3} do {_nombre = random _taille}; for "_x" from 1 to _nombre do { _posSpawn = [(_pos select 0) + random (_dispersion) - random (_dispersion), (_pos select 1) + random (_dispersion) - random (_dispersion), _pos select 2]; while{surfaceIsWater _posSpawn} do { _posSpawn = [(_pos select 0) + random (_dispersion) - random (_dispersion), (_pos select 1) + random (_dispersion) - random (_dispersion), _pos select 2]; }; grp_x = [_posSpawn, east, configfile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfSquad"] call BIS_fnc_spawnGroup; [grp_x, _pos, _amplitude] call bis_fnc_taskPatrol; };