Arma 3 avoir une IA qui chasse le joueur |
Bienvenue invité ( Connexion | Inscription )
Arma 3 avoir une IA qui chasse le joueur |
vendredi 24 mars 2017 à 10:33
Message
#1
|
|||
Typhon Groupe : Membre d'Honneur Messages : 16115 Inscrit : 07/04/2006 Lieu : Strasbourg Membre no 2410 |
Il peut s'avérer utile dans certains cas d'avoir une IA hostile qui va poursuivre le joueur
Ce qu'il vous faut: le script UPS http://kronzky.info/ups/ prenez la version arma3 et placez le fichier UPS.sqf dans votre dossier de mission. Ensuite on ouvre sa mission et on place son groupe de joueurs ici une patrouille bleu ou les joueurs sont nommés (cde1,t1,t2,t3) juste à coté je crée une zone de marqueur nommée marker_4 un peu plus loin je crée un trigger de zone qui va servir à détecter mes joueurs et créer mon groupe de poursuivants Condition d'activation: blufor présent et dans la liste défini Quand activation script poursuite.sqf Je crée aussi un petit objet genre tournevis que je vais nommer pigeon il me servira de point pour faire le lien entre le trigger et le script de création Ensuite je crée un sqf que je vais nommer PAS.sqf qui va me servir à mettre à jour la position de mon marker_4 par rapport à mon groupe bleu Toutes les 10s marker_4 pointe sur la position du joueur CDE1 Code //seul le serveur exécute ce code avec le if if (isServer) then { while {true} do { _x = ((getPos cde1) select 0); _y = ((getPos cde1) select 1); _nouv_position = [_x, _y]; "marker_4" setMarkerPos _nouv_position; sleep 10; }; }; NB: vous pouvez créer une marqe d'erreur en rajoutant une distance en mètre du coup le marker ne pointe pas directement sur le joueur _x = ((getPos cde1) select 0)+10; _y = ((getPos cde1) select 1)+10; A présent je vais créer le script qui conditionne les poursuivants; ( 2 groupes de 3 IA) Code if (!isServer) exitWith {}; private ["_skill","_type"]; //skill avant : de base 0.2 puis +0.1 puis +0.1 _joueurs = count playableUnits; _skill = 0.15; if (_joueurs >= 4) then { _skill = _skill + 0.1; } else { if (_joueurs >= 6) then { _skill = _skill + 0.1; }; }; //position du trigger passe en paramètre //_trg = _this select 0; _pos = getPosATL pigeon; _posarrivee = getMarkerPos "target1"; _gs1 = createGroup resistance; _gs2 = createGroup resistance; _nombre1 = round(random ((count listeAAF)-1)); _nombre2 = round(random ((count listeAAF)-1)); _nombre3 = round(random ((count listeAAF)-1)); _nombre4 = round(random ((count listeAAF)-1)); _nombre5 = round(random ((count listeAAF)-1)); _nombre6 = round(random ((count listeAAF)-1)); _unit1 = listeAAF select _nombre1; _unit2 = listeAAF select _nombre2; _unit3 = listeAAF select _nombre3; _unit4 = listeAAF select _nombre4; _unit5 = listeAAF select _nombre5; _unit6 = listeAAF select _nombre6; //groupe 1 qui va a la rencontre des blufor _unit1 createUnit [_pos, _gs1," ",1]; _unit2 createUnit [_pos, _gs1," ",_skill]; _unit3 createUnit [_pos, _gs1," ",_skill]; nul = [leader _gs1,"marker_4","NOSLOW","NOAI"] execVM "ups.sqf"; sleep 1; //groupe 2 qui se poursuit sur un axe parallèle _unit4 createUnit [_pos, _gs2," ",1]; _unit5 createUnit [_pos, _gs2," ",_skill]; _unit6 createUnit [_pos, _gs2," ",_skill]; nul = [leader _gs2,"marker_4","NOSLOW","NOAI"] execVM "ups.sqf"; if (true) exitWith {}; Pour finir dans l'init de la mission je vais lancer mon script PAS.sqf et créer la liste dans laquelle le script des poursuivants peut choisir les personnages. Code execVM "PAS.sqf"; tf_no_auto_long_range_radio = true; listeAAF = ["I_support_GMG_F","I_Soldier_TL_F","I_Soldier_SL_F","I_Soldier_GL_F","I_Soldier_M_F","I_Soldier_exp_F","I_soldier_F","I_Soldier_LAT_F","I_Soldier_lite_F","I_Soldier_AR_F","I_Soldier_AAR_F","I_crew_F", "I_medic_F","I_officer_F","I_soldier_UAV_F","I_Soldier_A_F","I_Soldier_repair_F","I_engineer_F","I_Soldier_AA_F","I_Soldier_AT_F","I_Soldier_AAA_F","I_Soldier_AAT_F"]; Emballez c'est pesez..!! Pour rappel script pas.sqf : mes à jour la position du marker sur le leader bluefor / script lancé par l'init en début de partie script poursuivant.sqf : lancé par le trigger quand bluefor rentre dans la zone tournevis pigeon: sert à faire le lien entre mon trigger de détection et le script UPS.sqf gère le comportement des poursuivants la mission test testTanoa.rar ( 12.58 Ko ) Nombre de téléchargements : 131 -------------------- A FLUCTIBUS OPES
VENI,VIDI,VICI NO TREPASSING-VIOLATORS WILL BE SHOT-SURVIVORS WILL BE SHOT AGAIN |
||
|
|||
vendredi 24 mars 2017 à 12:06
Message
#2
|
|
Tempête Groupe : Membres Messages : 3244 Inscrit : 29/06/2003 Lieu : Lorient/Nantes Membre no 1185 |
Ca promet de folle courses , de la sueur et la pose de pieges a ours
-------------------- |
|
|
vendredi 24 mars 2017 à 13:36
Message
#3
|
|
Typhon Groupe : Membre d'Honneur Messages : 16550 Inscrit : 04/04/2009 Lieu : Riverain du Rhin Membre no 12845 |
Nemo se prend pour Bruce Willis dans Tears of the sun, au Nigeria
Cette semaine, pour une action similaire, j'avais choisi le module "Suivre", mais il est à oublier dès lors que l'unité poursuivante perd la ligne de vue. -------------------- Mieux vaut un pilote plein qu'un réservoir vide!
|
|
|
Version bas débit | Nous sommes le : jeudi 25 avril 2024 à 18:30 |