Skocz do zawartości

F3AR

Poborowy
  • Liczba zawartości

    5
  • Rejestracja

  • Ostatnia wizyta

Odpowiedzi dodane przez F3AR

  1. Cześć, dawno temu natknąłem się na skrypt, który powoduje to że AI reagują na głos, jeśli używa się ACRE. Można regulować poziom hałasu dzięki addonowi od ShackTac'a który posiadamy (suwak głośności).

     

    Oto potrzebne elementy (być może trzeba przerobić init pod serwer):

     

    Init.sqf:

    if (!isDedicated) then
    {
            if (isNull player) then
            {
                    waitUntil {!isNull player};
            };
                      
            [] execVM "aiHearTalking.sqf";
    
    };
    

    aiHearTalking.sqf:

    //Written by beta and Krause
    //AI can hear you talk on ACRE
    //version 2
    
    private ["_nearAI", "_revealAmount", "_sideUnit", "_nearAISingle", "_sideAI", "_sideUnits", "_inContact", "_enemyInContact", "_talkTime", "_dist"];
    _talkTime = 0;
    b_hasRadioCheck =
    {
    private ["_nearAISingle"];
    
    _nearAISingle = _this select 0;
    
    ([weapons _nearAISingle, "ACE_ANPRC77"] call acre_api_fnc_hasKindOfRadio) || ([weapons _nearAISingle, "UO_IDF_Backpacks_Radio"] call acre_api_fnc_hasKindOfRadio) || ([weapons _nearAISingle, "ACRE_PRC117F"] call acre_api_fnc_hasKindOfRadio) || ([weapons _nearAISingle, "ACRE_PRC119"] call acre_api_fnc_hasKindOfRadio) || ([weapons _nearAISingle, "ACRE_PRC148"] call acre_api_fnc_hasKindOfRadio) ||  ([weapons _nearAISingle, "ACRE_PRC152"] call acre_api_fnc_hasKindOfRadio)
    };
    sleep 5;  //wait for init
    waitUntil
    {
    if ((player getVariable "acre_sys_core_isSpeaking") == 1) then
    {
      _talkTime = _talkTime + 0.25;
     
      if (_talkTime >= 1.0) then
      {
       _dist = 40;
       switch (stacre_VolumeLevel) do
       {
        case -2:  {_dist = 5;};
        case -1:  {_dist = 10;};
        case 0:  {_dist = 40;};
        case 1:  {_dist = 60;};
        case 2:  {_dist = 80;};
       };
      
       _nearAI = nearestObjects [player, ["Man"], _dist];
       _nearAI = _nearAI - [playableUnits];
      
       {
        if ((alive _x) && (_x knowsAbout player < 1.0) && !(_x knowsAbout player >= 4.0)) then
        {
             _nearAISingle = _x;
             _sideAI = side _nearAISingle;
             _sideUnits = [];
             _inContact = false;
            
             //AI hears talking
             _revealAmount = 1.0;
            
             //Command and control checks
             if ([_nearAISingle] call b_hasRadioCheck) then {
              _revealAmount = _revealAmount + 1.0;
              //AI has a radio
              {
               if ((side _x == _sideAI) && !(isplayer _x)) then {
                _sideUnits = _sideUnits + [_x];
               };
              }
              foreach allunits;
             
              {
               _sideUnit = _x;
               {
                if ((_sideUnit knowsAbout _x > 2) && ([_nearAISingle] call b_hasRadioCheck)) exitWith {
                     _inContact = true;
                     _revealAmount = _revealAmount + 1.0;
                     //AI has radio link to other troops in contact
                };
               
               }
               foreach playableunits;
              }
              foreach _sideUnits;
             
             
             };
            
             if (!isNull ((leader (group _nearAISingle)) findNearestEnemy (getPos leader (group _nearAISingle)))) then {
             
              _enemyInContact = (leader (group _nearAISingle)) findNearestEnemy (getPos leader (group _nearAISingle));
             
              if (_enemyInContact distance _nearAISingle < 2000) then {
               _revealAmount = _revealAmount + 1.0;
               //AI is already in contact with enemy
              };    
             };
            
             //player sideChat format["%1 hears you, for %2", _x, _revealAmount];
             [0, {(_this select 0) reveal (_this select 1);}, [_nearAISingle, [player, _revealAmount]]] call CBA_fnc_globalExecute;
        };
       } forEach _nearAI;
      };
    }
    else
    {
      if (_talkTime > 0) then { _talkTime = 0; };
    };
    
    sleep 0.25;
    
    false
    };
    

    Szukałem, lecz nie znalazłem dlatego myślę że może się przydać.

     

  2. Imię:
    [Łukasz]

    Data urodzenia:
    [10 listopad 1994 - 00:00]

    Chcę grać z ACC w:
    [ArmA 2: CO i ArmA 3]

    Członkostwo w następujących grupach świadczy o mojej umiejętności gry zespołowej:
    [COSA oraz TOG.]

    Moje doświadczenie z komputerową symulacją pola bitwy:
    [OFP - kilka lat;
    ArmA - 2 lata (głównie w edytorze);
    ArmA 2 - Ponad rok
    ArmA 2 OA - także około półtora roku;
    ArmA 3 - od premiery.]

    Zdecydowałem się na dołączenie, ponieważ:
    [Zdecydowałem się dołączyć do ACC, ponieważ chciałbym sprawdzić się w większych operacjach, oraz rozwijać swoje umiejętności MM na szerszą skalę.]

    Interesuje mnie symulowanie działań następujących rodzajów wojsk:
    [Piechota, Jednostki specjalne, Śmigłowce bojowe]

    Coś o mnie:
    [interesuje się piłką nożną, militariami i w trochę mniejszym niż kiedyś stopniu ratownictwem medycznym. Poza tym w tygodniu pracuję, w wolnym czasie staram się poznawać nowe tajniki tworzenia misji, dowiadywać się czegoś na temat militariów oraz od czasu do czasu poczytam coś o "medykowaniu".]

    Osoba polecająca : Nie podano


    Kliknij tutaj aby zobaczyć formularz rekrutacyjny

×
×
  • Dodaj nową pozycję...