Edició 101 : Artilleria a "mansalva" via script i llançada via trigger

Copess

Ja en porto tres-cents
Membre del personal
Personal Arma
8 Maig 2017
401
61
28
#1

Introducció
Primer de tot, t'has trobat a la teva missió en la qual vols "putejar" el nostre equip tirant artilleria quan arribem a un punt en concret? O potser vols fer un "radio alpha" que, un cop activat, 4 BM-21 redueixin una població afghana a pols i mort? Com es fa? Una opció sencilla seria entrar amb el zeus a un vehicle d'artilleria i disparar... meh. L'altre opció seria utilitzar l'alive, però l'Alive és més bo per disparar poques i precises rondes d'artilleria. Llavors, quina és la solució? Utilitzar un script per fer-ho! Amb dispersió "realista" (tot i que uniforme) de destrucció massiva! Comencem :

Fase prèvia
Primer de tot crearem un bloc de notes a la carpeta de la missió (o a l'escriptori) (Recomano aquest programa per escriure els scripts i per modificar els descriptions)
C:\Users\EL TEU USUARI\Documents\Arma 3 - Other Profiles\CC_USUARI\mpmissions\Nom_missió.mapa

A l'arxiu li direm "bonanit.sqf" (important l'extenció .SQF)

Script
I hi posarem això dins

_guns = [gun1,gun2,gun3,gun4]; //Nom de les variables dels vehicles artillers
_targetpos = getmarkerpos "marker_3"; //El
_radius = 125;//Dispersió de les rondes
_rounds = 40;//Nombre de rondes

{

_firingPos = _targetpos getPos [_radius * sqrt random 1, random 360];//Mes i diferent dispersió "thanks to kk"

_x commandArtilleryFire [_firingPos,currentMagazine _x,_rounds];


} forEach _guns;


Punts importants
·Posar els noms dels vehicles d'artilleria segons l'script, és a dir, a atributes --> variable name --> pose'm-hi noms que seran "gun1, gun2, gun3..." etc

·El punt on cauran les rondes d'artilleria estaran marcades amb un marcador de mapa (la típica creueta d'objectiu, el cercle, una bandera, un punt... qualsevol marcador serveix, s'adjudiquen noms automàticament, als "atributes" dels marcadors et sortirà el nom (ie. Marker_1, Marker_2,..., Marker_N)

·Els vehicles d'artilleria han d'estar sobre terreny pla (méees o menys). Si no és pla del tot, veureu que, quan fagis proves de si disparen, n'hi ha un que no dispara. També has de tenir en compte la distància a l'objecitu, no possis l'artilleria molt aprop, ni tampoc molt lluny, cada vehicle té un abast diferent, com es sap? Fes proves fins que ho trobis.

I ara què?
Ara mateix tenim l'script dins la carpeta de la missió, amb les rondes d'artilleria que volem (_rounds = X) i amb els vehicles posats a la missió (anomenats "gun1,gun2,gun3...)
També tenim l'objectiu de l'artilleria, amb un marcador amb el nom que ens surt genèricament (o el podem canviar a gust, el variable name del marcador no es veu al mapa, només veurem el text que posem dins el requadre "text" dels atributes del marcador).

Ara toca executar l'script. Com? Fàcil! Primer creem un trigger (a l'editor, adalt a la dreta, triggers... segur que sabeu com fer-ho)
dins de "on activation" del trigger posarem això

nul = [] execVM "bonanit.sqf"

I després toca tunerjar-ho, per exemple, activat per presencia de any player, activat per radio alpha... Qualsevol cosa funciona, tot depenent del context de la missió.

Conclusió
De manera sencilla hem creat un script (potser el teu primer script, enhorabona!) I ja hem vist com activar-lo i com modificar-lo, és a dir, això és un script model/modular/dinàmic, ja que podem canviar fàaacilment els seus paràmetres.

Expansions
Es podria fer que, quan demanem l'artilleria, ens digui via radio/globalchat la ETA (estimated time of arrival). O que ens digués un missatge de text diguent algo com "Aqui Alpha 2-2, ordre rebuda, disparant artilleria, ETA X"... Es podrien fer mil coses més, potser expandeixo el post i ho afegeixo, o potser no, who knows
 
Last edited:
M'agrades: Corsair1984