Blog destinado ao compartilhamento de técnicas de edição de missões para a série Armed Assault

sábado, 3 de dezembro de 2011

Respawn com mesmas armas

Este script feito para o ACE2 permite ao jogador renascer com as mesmas armas e munições de quando morreu. Para acioná-lo, crie um MP Eventhandler no init.sqf:
player addMPEventHandler ["MPRespawn", {[_this select 0, _this select 1] execVM "scripts\respawn.sqf"}];

Defina o parâmetro respawn=3 no description.ext.

Crie o arquivo respawn.sqf e coloque na pasta scripts da sua missão.

_unit = _this select 0;
_dead = _this select 1;

_weapons = weapons _dead;
_mags = magazines _dead;
_weaponback = [_dead] call ACE_fnc_WeaponOnBackName;
_WeaponsRuckList = [_dead,true] call ACE_fnc_RuckWeaponsList;
_MagazinesRuckList = [_dead,true] call ACE_fnc_RuckMagazinesList;
_armasjogador = _dead setvariable ["armas",[_weapons, _mags, _weaponback, _WeaponsRuckList, _MagazinesRuckList]];

_weapons = _dead getvariable "armas" select 0;
_mags = _dead getvariable "armas" select 1;
_weaponback = _dead getvariable "armas" select 2;
_WeaponsRuckList = _dead getvariable "armas" select 3;
_MagazinesRuckList = _dead getvariable "armas" select 4;

removeAllItems player;
removeAllWeapons player;
removeBackpack player;

{player addMagazine _x;} forEach _mags;
{player addWeapon _x;} forEach _weapons;

if !(_weaponback == "") then
{
player addWeapon _weaponback;
_acewob = [player, _weaponback] call ACE_fnc_PutWeaponOnBack;
};

{_mag = [player, _x select 0, _x select 1] call ACE_fnc_PackMagazine;} forEach _MagazinesRuckList;
{_wep = [player, _x select 0, _x select 1] call ACE_fnc_PackWeapon;} forEach _WeaponsRuckList;

firstmuz = {
   private "_ma";
   _ma = getArray (configFile >> "CfgWeapons" >> _this >> "muzzles");
   if (_ma select 0 != "this") exitWith {_ma select 0};
   _this
};

_primary = primaryWeapon player;
if (_primary != "") then
{
   player selectWeapon (_primary call firstmuz);
};

sleep 5;

removeAllItems _dead;
removeAllWeapons _dead;
removeBackpack _dead;


Um comentário: