Calaix de Tunyi (snippets, consells, etc)

Atunero

Miquelet
Personal Arma
19 Maig 2016
970
89
28
#1
Fiador i arma baixa (Atunero)

Aquest snippet permet que els soldats apareguin al principi de la missió amb l'arma baixa i el fiador posat. Aixi s'evita possible foc amic durant la intro.

1- Colocar el següent codi dins del fitxer init.sqf, entre l'execució del briefing i la intro.

Codi:
if(hasInterface) then {
    [player, currentWeapon player, true] call ace_safemode_fnc_setWeaponSafety;
    player action ["WeaponOnBack", player];
};
I ja ta.

Zeus JIP (Atunero)

Aquest snippet permet que un jugador amb PID determinat tingui accés al mòdul de Zeus, tant si reapareix com si entra per segona vegada despres de desconnectar-se. Per a que funcioni cal colocar almenys un mòdul de Game Master (Curator/Zeus) dins la missió i configurar-lo degudament, sino no funcionarà.

1- Crear un fitxer de nom zeusjip.sqf dins la carpeta scripts i posar el següent codi dins.

Codi:
_zeusAllowed = ["PID_QUE_VULGUIS"];

_player = _this select 0;
_zeus = (allCurators select 0);

if(isServer) then {
    if(getPlayerUID _player in _zeusAllowed) then {
        unassignCurator _zeus;
        _player assignCurator _zeus;
    };
};
2- Canviar PID_QUE_VULGUIS per el PID que tingui autoritzat fer servir el Zeus. No posar més d'un PID ja que poden passar coses rares, com que algu tregui el Zeus a un altre sense volguer.

3- Crear o editar el fitxer onPlayerRespawn.sqf a l'arrel de directoris de la missió i colocar el següent codi dins.

Codi:
[[player], "scripts\zeusjip.sqf"] remoteExecCall ["BIS_fnc_execVM", 2];
Evitar perdre slots (Atunero)

Aquest snippet/consell es quelcom que he estat pensant des de fa temps i per fi he trobat una manera simple i no invasiva que eviti la pèrdua de slots a les missions per causes de desconnexió, errors, morts accidentals, etc. Segueix els següents passos:

1- Configurar el respawn de la missió com a BASE (3), dins l'editor es Custom Position i colocar un marcador invisible de nom "respawn" a algun lloc amagat i segur (EDEN o description.ext).

2- Posar 5 segons d'espera per a respawn (EDEN o description.ext).

3- Desactivar tots els checkboxes de l'apartat de respawn de l'editor (EDEN o description.ext).

4- Desactivar el botó de Respawn manual (EDEN o description.ext).

5- Desactivar l'Scoreboard de Respawn (EDEN o description.ext).

6- Crear o editar el fitxer onPlayerKilled.sqf i posar el següent codi dins.

Codi:
player setVariable ["Killed", true];
7- Crear o editar el fitxer onPlayerRespawn.sqf i posar el següent codi dins.

Codi:
_killed = player getVariable ["Killed", false];

if(_killed) then {
    player setVariable ["Killed", false];
    [true] call ace_spectator_fnc_setSpectator;
};
Basicament l'efecte es el mateix de sempre, quan mors, automàticament vas a mode espectador i no pots reaparèixer a no ser que surtis i tornis a entrar. El que passa, es que realment el que fa el personatge es reaparèixer, per tant aquest slot no es perd i torna a quedar disponible un cop el jugador es desconnecti.

Mantenir equipament al respawnejar (Atunero)

Permet reaparèixer mantenint el mateix equipament que es tenia al morir. Útil per a MSO o missions persistents que permetin respawn automàtic.

1- Crear o editar el fitxer onPlayerKilled.sqf i posar el següent codi dins.

Codi:
player setVariable ["Killed", true];
[player, [missionNamespace, "Inventari"]] call BIS_fnc_saveInventory;
2- Crear o editar el fitxer onPlayerRespawn.sqf i posar el següent codi dins.

Codi:
_killed = player getVariable ["Killed", false];

if(_killed) then {
    player setVariable ["Killed", false];
    [player, [missionNamespace, "Inventari"]] call BIS_fnc_loadInventory;
};
I llestos.

Fer que un grup persegueixi un altre (Atunero)

Això més que un snippet son consells sobre com utilitzar la funció BIS_fnc_stalk.

Prendrem com a cas d'exemple, que volem que si l'enemic ens detecta dins una zona, un grup ens comenci a perseguir fins que arribem a una zona segura.

1- Crear un activador d'àrea (l'àrea d'activació la que vulguem).

2- Configurem l'activador amb Type = None, Activation = BLUFOR, Activation Type = Detected by OPFOR, Repeatable = Si, Server Only = Si (canviar els bàndols corresponents si escau).

3- On Activation posar:

Codi:
escapats = false;
publicVariable "escapats";
_persecucio1 = [GRUP_DOLENT, group (thisList select 0), 30, 50, { escapats }, 2] spawn BIS_fnc_stalk;
GRUP_DOLENT ha de ser el nom de variable del grup enemic que vulguem que siguin els perseguidors. Podem posar multiples grups, pero cadascun ha de tenir la seva linia BIS_fnc_stalk.

4- On Deactivation posar:

Codi:
escapats = true;

publicVariable "escapats";
Foc de supressió IA (Atunero)

Això permet que una metralladora estàtica enemiga faci foc de supressió sobre una zona, encara que no detecti enemics.

1- Coloquem una metralladora estàtica amb un artiller.

2- Coloquem a l'init de l'artiller (ull, no de l'arma) el següent codi.

Codi:
this disableAI "PATH";
0 = this spawn {
  while {alive _this} do {
    sleep 1.5;
    if (_this ammo (currentWeapon _this) == 0) then {
      _this addMagazineGlobal currentMagazine _this;
      reload _this;
     };
     if (!isNil "focsupressiu" && {focsupressiu}) then {
       _this doSuppressiveFire ATLToASL position zonasupressio;
       _this suppressFor 1.5;
    };
  };
};
3- Crear una lògica i posar-li de nom zonasupressio. Obviament cal colocar la lògica on vulguem que la metralladora dispari.

4- Crear un activador d'àrea, configurar-lo com vulguem i a On Activation posar aixo:

Codi:
focsupressiu = true; publicVariable "focsupressiu";
Podem fer servir qualsevol altra cosa per activar el foc supressiu de la metralladora. També podem fer que deixi de disparar en qualsevol moment canviant l'estat de la variable focsupressiu aixi:

Codi:
focsupressiu = false; publicVariable "focsupressiu";
Llum (Atunero)

Algunes vegades ens trobem en que falta llum a alguns edificis i hem de posar llums portatils que no queden bé estèticament. El que podem fer es crear fonts de llum amb script.

1- Creem una lògica i la posem on vulguem que emeti llum.

2- Posem a l'init de la lògica el següent codi:

Codi:
_light = "#lightpoint" createVehicleLocal getpos this;
_light setLightBrightness 0.5;
_light setLightAmbient [1.0, 1.0, 1.0];
_light setLightColor [1.0, 1.0, 1.0];
Per defecte aquest codi crea una font de llum blanca similar a una bombeta convencional. Es poden modificar els paràmetres per obtenir resultats diferents, inclus llums de colors.

Desactivar carregar/arrossegar objectes

A vegades tens masses nens rates i la teva sala de briefing corre el risc de ser desordenada vilment. Llavors només queda una opció. Posar a l'init dels objectes que vulguis preservar la seva integritat:

Codi:
[this, false] call ace_dragging_fnc_setDraggable;
[this, false] call ace_dragging_fnc_setCarryable;
 
Last edited: