Script emboscada DPD

Sección para misiones y edición ArmA III

Moderador: C. Misiones & Noticias

Responder
keke
Visitante
Mensajes: 36
Registrado: 23 Ene 2014, 21:47

Script emboscada DPD

Mensaje por keke »

Hola a todos,

Estoy preparando una nueva misión y me he permitido cambiar algunas cosas del scritp que ha credo DPD para las emboscadas.

Se trata de que las patrullas te persigan constantemente y, si no te encuentran, que vuelvan al objetivo y patrullen alrededor. Es muy simple, es repetir la misma instrucción tantas veces como uno quiera, para que no dejen al jugador respirar tranquilo.

Gracias a DPD por la creación del Script y su divulgación.

Saludos
Keké

Se trata de lo siguiente:

////////////////////////////////////////////////////////
// crea un grupo llamado grupomalo1 en la posicion de la logica aeropuerto//
// a continuación se mueve a la posición del jugador (kerry)//
// y cada 20 segundos chequea la posición del jugador y se vuelve a mover a ella//
// termina patrullando en la última posición del jugador después de chequear//
//la posición 20 veces//

grupomalo1= [position logica_1, EAST, 2] call BIS_fnc_spawnGroup ;

{


_x setskill 1;
_x setskill ["general",1];

_x setskill ["Endurance",1];

_x setskill ["aimingAccuracy",0.50];

_x setskill ["aimingShake",0.50];

_x setskill ["aimingSpeed",1];

_x setskill ["endurance",1];

_x setskill ["spotDistance",0.3];

_x setskill ["spotTime",1];

_x setskill ["courage",1];

_x setskill ["reloadSpeed",1];

_x setskill ["commanding",1];

_x addmagazine "HandGrenade";

_x addmagazine "HandGrenade";

_x setSpeedMode "full";

_x addmagazine "SmokeShell";

_x addmagazine "SmokeShell";



};

grupomalo1 setBehaviour "AWARE";
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
[grupomalo1, getPos logica_50, 200] call bis_fnc_taskPatrol;
////////////////////////////////////////////////////////

Avatar de Usuario
Dybite
Visitante
Mensajes: 3741
Registrado: 20 Ago 2012, 17:29

Re: Script emboscada DPD

Mensaje por Dybite »

Como programador esto me ha sangado los ojos... :lloris:

https://community.bistudio.com/wiki/for_var
keke escribió: grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
grupomalo1 move position kerry;
sleep 20;
Imagen

Avatar de Usuario
<A2>CVP
Soldado A2
Soldado A2
Mensajes: 2335
Registrado: 21 Jun 2015, 06:29

Re: Script emboscada DPD

Mensaje por <A2>CVP »

Diooooos!! pon un bucle ahí o algo.... no veía tanto código espaguetti desde la creación de la herramienta de asignaciones ·_O pobre urza como lo vea xD

Avatar de Usuario
<A2>Kikao
Visitante
Mensajes: 1297
Registrado: 09 Sep 2011, 12:13

Re: Script emboscada DPD

Mensaje por <A2>Kikao »

<A2>CVP escribió:Diooooos!! pon un bucle ahí o algo.... no veía tanto código espaguetti desde la creación de la herramienta de asignaciones ·_O pobre urza como lo vea xD
Esto lo hice yo hace poco, a ver si os gusta :happy2: :happy2:

Código: Seleccionar todo

if NOT(isServer) exitWith {};
deletevehicle logica1;
hint "Hackeando dispositivo";
sleep 1;
hint ".Hackeando dispositivo.";
sleep 1;
hint "..Hackeando dispositivo..";
sleep 1;
hint "...Hackeando dispositivo...";
sleep 1;
hint "Hackeando dispositivo";
sleep 1;
hint ".Hackeando dispositivo.";
sleep 1;
hint "..Hackeando dispositivo..";
sleep 1;
hint "...Hackeando dispositivo...";
sleep 1;
hint "Hackeando dispositivo";
sleep 1;
hint ".Hackeando dispositivo.";
sleep 1;
hint "..Hackeando dispositivo..";
sleep 1;
hint "...Hackeando dispositivo...";
sleep 1;
hint "Hackeando dispositivo";
sleep 1;
hint ".Hackeando dispositivo.";
sleep 1;
hint "..Hackeando dispositivo..";
sleep 1;
hint "...Hackeando dispositivo...";
sleep 1;
hint "Hackeando dispositivo";
sleep 1;
hint ".Hackeando dispositivo.";
sleep 1;
hint "..Hackeando dispositivo..";
sleep 1;
hint "...Hackeando dispositivo...";
sleep 2;
hint "Dispositivo hackeado";
sleep 2;
condicion2=true;
publicvariable "condicion2";
AMD Ryzen 3700X | MSI X470 Gaming Pro Carbon | Gigabyte RTX 2080 Super | Corsair Dominator Platinum DDR4 3200 64Gb | NZXT Kraken X62 | Corsair RM850i Gold | Samsung SSD 970 EVO Plus | Corsair Force LE Series 480Gb | Corsair Carbide 400c | Corsair ML140

keke
Visitante
Mensajes: 36
Registrado: 23 Ene 2014, 21:47

Re: Script emboscada DPD

Mensaje por keke »

Jajajaja

Que soy malo con los script , ya lo se yo.

Pero como me funciona de pm y DPD me pidió que lo pusiera para verlo por eso lo he hecho.
Las vergüenzas, habitualmente, se la guarda uno para si, pero en este caso me he desinhibido.

Gracias por los comentarios, ya se que lleváis toda la razón, pero y las risas, que, pues eso que ganamos.

Saludos
keké

Avatar de Usuario
<A2>Pescadorr
Soldado A2
Soldado A2
Mensajes: 6569
Registrado: 09 Sep 2011, 03:28

Re: Script emboscada DPD

Mensaje por <A2>Pescadorr »

Tienes algunos errores tu script y no hace lo que quieres que haga, aparte del sinsentido de repetir una accion cuando tienes bucles que te lo hacen mas sencillo. Lo ideal es que se desplazen hacia el enemigo solo cuando se acerque a la zona en cuestion, imaginate si el jugador estuviese en una punta del mapa..... lo dicho algo sin sentido.

Yo lo haria de forma dinamica, crearia un grupo o varios en las zonas, y cuando se acercaran a menos de 500 metros que los grupos fueran a por los que se acerquen.

Se llamaria por script en el momento que se necesitara, de esta forma:

Código: Seleccionar todo

null= [posicion, bando, tipogrupo] execVM "defensa.sqf"
donde posicion: puede ser posicion en coordenadas, o un getmarkerpos a un marcador o position a un objeto de la zona en cuestion a vigilar, ejemplos:
[0,0,0]
getmarkerpos "marcador"
position objeto

donde bando se indicaria el bando de el grupo a crear, por ejemplo EAST, WEST, etc

donde tipogrupo seria el configfile del grupo entre parentesis por ejemplo:
(configFile >> "CfgGroups" >> "West" >> "BIS_US" >> "Armored" >> "US_MGSPlatoon")

De tal manera que quedaria asi la llamada:

Código: Seleccionar todo

null= [getmarkerpos "marcador", WEST, (configFile >> "CfgGroups" >> "West" >> "BIS_US" >> "Armored" >> "US_MGSPlatoon")] execVM "defensa.sqf"
defensa.sqf:

Código: Seleccionar todo

_posdefensivo= _this select 0;
_bando = _this select 1;
_tipogrupo = _this select 2;

_grupopatrulla= [_posdefensivo, _bando, _tipogrupo] call BIS_fnc_spawnGroup ;

{
_x setskill ["general",1]; 
_x setskill ["aimingAccuracy",0.50];
/*añadir a gusto los skills que querais modificar, recordando que endurance esta obsoleto en arma 3 y que con el general ya sobreescribis todos los valores.*/
} foreach units _grupopatrulla;

[_grupopatrulla, _posdefensivo, 300, 7, "MOVE", "AWARE", "YELLOW", "FULL", "STAG COLUMN"] call CBA_fnc_taskpatrol;
_alarma=false;
waituntil
{
   _todosmuertos= (({alive _x} count units _grupopatrulla)== 0);
   objetivos=[];
   {
      if ((_x distance _posdefensivo)< 500) then
      {
         objetivos = objetivos +[_x];
       };
   }foreach playableunits;

   _invasores= count objetivos;
   if ({_invasores> 5) then
   {
      waituntil 
      {
         _atacante=objetivos select (floor random  _invasores);
         _grupopatrulla move _atacante;
         _alarma = true;
         !alive _atacante || _todosmuertos
      };
   } else
   {
      if (_alarma) then
      {
         [_grupopatrulla, _posdefensivo, 300, 7, "MOVE", "AWARE", "YELLOW", "FULL", "STAG COLUMN"] call CBA_fnc_taskpatrol;
         _alarma=false;
      };
   };
   sleep 60;
   _todosmuertos
};
Lo he hecho desde el movil ya que estaba aburrido, tendre que testearlo bien a ver si falla por algun lado. Cuando lo tenga testeado y depurado lo pondre en firme para todos para que lo usen en sus misiones.

En resumen lo que hace es crear un grupo y lo pone a patrullar por la zona, en cuanto mas de 5 jugadores se acercan a la zona, este se mueve tomando como objetivo uno de los jugadores al azar y no paran hasta matarlo o morir todos.

Bueno esto me ayuda como ejercicio metal para refrescar un poco de codigo, jejeje
Caja: DEEP COOL MATREXX 70 3F CPU: Ryzen 7 5800X P. Base: Gigabyte X570 Aorus Elite RAM:Team Group T-Force Dark Z Alpha 2x16 gb ddr4 3600 Mhz CL18
Disipador cpu: Corsair H-100 Hydro series Pasta termica: Thermalright TF8 13.8 W/MK + Coollaboratory Liquid Pro GPU: Asus GeForce TUF Gaming RTX 4070 Ti 12GB GDDR6X
Discos: M2 samsung 970 512 mb 3.0 + M2 Samsung 980 PRO 1 Tb 4.0 + HDD Barracuda 4 Tb Vent: 4 x deep cool RGB pwm + 3 x corsair pwm + 2 x Noctua nf-p12 + controladora rgb + pwm
disipador M2: GLOTRENDS M.2 Alfombrilla: MARSGAMING MMPRGB2 XXL RGB 80x30 Auriculares: Audio-Technica M50x Peines cableado: Uphere 24 pz
Microfono: Boya BY-M1 Raton: Logitech G602 Teclado: Razer Huntsman Elite Switches Optomecánicos Purple
Monitor: Philips 436M6VBPAB 43" 4K HDR1000 AmbiGlow Gsync low input Silla: Diablo X-Horn XL


keke
Visitante
Mensajes: 36
Registrado: 23 Ene 2014, 21:47

Re: Script emboscada DPD

Mensaje por keke »

Gracias Pescadorr,

Sencillo y elegante.

El problema, es que yo no se programar y un bucle, para mí, es un rizo de pelo.
Lo que hago es abrir el script y después de estudiarlo mucho y utilizando algo de sentido común corto y pego aquello que creo que puede funcionar.
No estoy preparado para crear ningún script nuevo, porque no se hacerlo, y no te quiero contar la de porrazos que me pego porque aquello no funciona la mayoría de las veces.

Probaré el tuyo y lo guardaré en la biblioteca.

Saludos
Keké

Responder