Skocz do zawartości

Znajdź zawartość

Wyświetlanie wyników dla tagów 'A2' .



Więcej opcji wyszukiwania

  • Wyszukaj za pomocą tagów

    Wpisz tagi, oddzielając je przecinkami.
  • Wyszukaj przy użyciu nazwy użytkownika

Typ zawartości


Kategorie

  • Mechanika gry
    • Podstawy
    • ACE
    • Inne addony
  • Struktury organizacyjne wojsk
    • AFG
    • GER
    • POL
    • USA
    • UKR
    • RUS
    • GBR
  • Różne inne
  • Brudnopis

Forum

  • Oficjalne
    • Tablica informacyjna
    • Rekrutacja
  • Główne
    • Rozgrywki
    • Szkolenia
    • Regimenty i formacje specjalistyczne
  • Poboczne
    • Zaplecze techniczne
    • Inne
  • Regiment Pancerny Punkt Informacyjny
  • Regiment Pancerny Spotkania
  • Regiment Pancerny Zgłoszenia
  • Regiment Pancerny Głosowania
  • Regiment Pancerny Dyskusja
  • Regiment Pancerny Materiały

Kalendarze

  • Misje
  • Szkolenia
  • Dni wolne od pracy
  • Regiment Pancerny Wydarzenia

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Od tej daty

    Do tej daty


Ostatnia aktualizacja

  • Od tej daty

    Do tej daty


Filtruj po ilości...

Dołączył

  • Od tej daty

    Do tej daty


Grupa podstawowa


Discord


Skype


Strona WWW


Lokacja


Zainteresowania


Imię


ID gracza (A3)


Profil ArmA 3


Użytkownik youtube

Znaleziono 6 wyników

  1. Hej Niektóre pojazdy po wstawieniu do edytora generują losowy numer boczny. Jednym z takich pojazdów jest BMD-2 (CDF). Czy istnieje możliwość dobrania się do tego numeru i wstawienie takiego jaki się chce? Tutaj odpowiedz z forum I44: http://forum.invasion-1944.com/viewtopic.php?f=4&t=857 Tylko jakoś nie mogę zmusić army żeby zrobiła to co chcę...
  2. Zapewne zastanawiacie się co kryje się za tytułem tego tematu. Spieszę więc z wyjaśnieniami. Jak wiemy, jako że jest to społeczność Arma II/Arma III, głównym elementem zrzeszającym graczy są codzienne rozgrywki o 20. Oprócz niezbędnego dowódcy i chętnych graczy kluczowym elementem rozgrywki jest oczywiście sama misja, którą ktoś musi stworzyć. Często komunikacja pomiędzy twórcami misji a ludźmi w nie grywającymi jest ograniczona do kilku słów na debriefie. Stąd też pomysł założenia tego tematu i powiązanej ankiety który chodził już za mną od jakiegoś czasu. Ankieta. (via google) Moją ideą jest rozpocząć dyskusję i zebrać nieco konstruktywnych uwag (oraz statystycznych danych) od graczy na temat tworzonych misji oraz na temat tego jakie misje chcieli by rozegrać. Przez konstruktywne nie mam na myśli rzeczy typu: “super hiper misja frakcją x dziejąca się gdzieś tam i coś tam na którą mam świetny i szczegółowy pomysł ale nie umiem jej zrobić” do tego jest temat scenariusze i pomysły na misje (z którego, szczerze powiedziawszy za wiele nie wynika, bo chyba każdy kto stworzył jakąś misję wie - pomysłów przeważnie nikomu nie brakuje, gorzej z chęciami albo umiejętnościami ich realizacji). To czego na prawdę chciałbym się dowiedzieć to jakie są oczekiwania graczy względem ludzi tworzących misje. Czy chciałbyś żeby MM tworzyli misje z teamplate’ów jak tokarka bo nie jest dla ciebie tak ważny oryginalny pomysł a po prostu żeby było ich dużo, czy może uważasz że nowe misje są nie dopracowane lub nieprzemyślane i wolałbyś żeby ludzie spędzali nad nimi więcej czasu. (Albo jedno i drugie ale to utopia.) Preferujesz mocno realistyczne misje w których można nie spotkać nawet żadnego przeciwnika czy liczy się dla ciebie głównie akcja i grywalność tak że możesz co dzień atakować przeciwnika mającego przewagę 10:1 i lepszy sprzęt. Może jesteś maniakiem pojazdów pancernych albo śmigłowców do tego stopnia że nie chce Ci się grać jeśli nie mamy takiego sprzętu do dyspozycji a może sądzisz że miejsce każdego żołnierza jest własnymi nogami na twardym gruncie i możesz grać tylko piechotą bez niczyjego wsparcia. Czy uważasz, że misje oparte na prawdziwych wydarzeniach dają +100 do klimatu i nie możesz zdzierżyć gry fikcyjnymi frakcjami, czy może nie ma to dla Ciebie zupełnie znaczenia jeśli misja jest dopracowana. A może ze względu na swój nie najlepszy sprzęt misję i jej twórcę oceniasz przede wszystkim po wydajności i liczbie FPS? Może nie masz zaufania do nowych MM i chciałbyś żeby tylko sprawdzeni ludzie robili misje, a może uważasz że nowych misji jest za mało i chciałbyś żeby każdy kto ma czas zebrał się i coś stworzył, nawet jeśli miało by to początkowo zaważyć na jakości. Może posiadasz jakąś ulubioną armię, którą mógłbyś grać co dzień, a może którąś z map na której odczuwasz niedosyt w rozegranych misjach. Czy chciałbyś żeby twórcy misji eksperymentowali z nowymi skryptami i bajerami ryzykując tym że rozgrywka może nie wypalić, czy wolałbyś żeby stosować tylko sprawdzone rozwiązania. Czy… dobra, chyba za bardzo się zapędzam. W każdym razie: dołączona do tego tematu ankieta porusza część z tych pytań. Co do tych których nie porusza, zachęcam do dyskusji. Graczu, właśnie ten temat jest okazją dla Ciebie do wypowiedzenia się: czego spodziewałbyś się po twórcach misji w naszej społeczności? Jaka jest według Ciebie misja doskonała? Jak tylko w ankiecie pojawi się jakakolwiek reprezentatywna liczba odpowiedzi (no chyba że wszyscy to oleją i nikt nie wypełni) udostępnię w tym temacie wyniki. PS. Ankieta stworzona przez google forms a nie jako część tematu na forum ze względów praktycznych jeśli chodzi o odczyt danych oraz… nie byłem w stanie zmieścić się w 9 pytaniach.
  3. player setVariable ["ACE_SYS_STAMINA_MULTI",0.0001];Normalnie aby wyłączyć męczenie się, czy inaczej wytrzymałość postaci trzeba użyć modułu który wyłącza zarówno męczenie się jak i plecaki. [KH]Jman na forum BISu napisał ten skrypt do zatrzymania plecaków, lecz wyłączenia wytrzymałości. Tutaj cały link: http://www.kylania.com/ex/?p=97 P.S. Osobiście nie testowałem tego jeszcze. Lecz sądzę że to się może przydać w większości misji, a w szczególności komandosami
  4. I. Wstęp Jak zapewne część z was już słyszała bądź widziała od niedawna na naszym serwerze A2 sporadycznie zaczął pojawiać się nowy gracz: HC, czyli: Headless Client. Czym jest Headless Client? HC spopularyzowany między innymi przez grupę to rozwiązanie dotyczące konstrukcji misji które niesie za sobą wiele ciekawych możliwości, zarówno dla graczy jak i twórców misji. W dużym skrócie: Headless Client to osobny klient gry na serwerze dedykowanym, będąc pozbawionym interfejsu graficznego łączy się z serwerem jak każdy inny gracz. Dzięki odpowiedniej konstrukcji misji może on przejąć kontrolę nad częścią bądź wszystkimi AI w rozgrywce. Płyną z tego dwie korzyści: poprawa wydajności serwera, z barków którego zdejmowane są obliczenia zachowań części AI oraz: poprawa szybkości reakcji samych AI które kontrolowane są przez mniej obciążony proces. HC to rozwiązanie które da się zastosować do niemal każdej misji. Wymaga to jednak odpowiedniego przygotowania bądź przerobienia takiej misji. Celem tego poradnika jest przedstawienie Mission Makerom kroków które należy wykonać by misja była kompatybilna z HC. Zanim jednak przejdę do sedna: Czym Headless Client nie jest? Mimo że HC może być znacznym usprawnieniem rozgrywek, ważną rzeczą o której trzeba pamiętać jest fakt iż nie jest to żadne magiczne panaceum na wszystkie problemy mission-makingu. AI podpięte pod HC nadal sterowane jest wedle tych samych zaszytych w armie procedur i nadal jest tak samo "głupie". Jedyne co może ulec poprawie to ich czas reakcji. Sprawa podobnie ma się z wydajnością. To, że wzrośnie tak zwany FPS serwera nie oznacza wcale, że automatycznie poprawi się liczba klatek u graczy. Różnice w wydajności gołym okiem powinny być widoczne dopiero przy dużych ilościach AI. Jakkolwiek brutalnie mogą zabrzmieć te słowa to proszę, weź je sobie czytelniku do serca: Jeśli nie potrafisz stworzyć normalnej, grywalnej i w miarę wydajnej misji bez Headless Clienta to HC i ten poradnik nie sprawią, że nagle się tego nauczysz. Poniższy poradnik bazuje w dużej mierze na innym poradniku HC od Monsoon'a. Sposób który tu przedstawię pozwoli na przetworzenie zwykłej misji wykorzystującej edytorowe AI na waypointach oraz AI z DACa na misję kompatybilną z Headless Client, która będzie mogła działać również i bez niego. Na pewno przedstawiony tutaj sposób nie jest jedynym na zaimplementowanie HC do misji i bardzo prawdopodobne że nie jest to też najlepsze z możliwych rozwiązań. Niemniej jednak jest to sposób, który w zadowalający sposób działa na naszym serwerze. II. Poradnik W poradniku krok po kroku omówię proces implementacji HC na przykładzie bardzo prostej misji COOP, którą znajdziecie w załączniku. 1. Wymagania wstępne. Zanim przejdziemy do samego tworzenia/przerabiania naszej misji przydatnych będzie kilka narzędzi: - Program Arma 2 Map Converter, którego używać będziemy to przetwarzania naszych AI bądź stref DAC do pliku sqf. - Wybrany przez na edytor tekstu (Polecam np. Notepad++, nie polecam za to zwykłej wersji notatnika ze względu na nieprzyjemną w nim edycję plików tworzonych przez A2MC.) - W wypadku użycia DACa, zmodyfikowana wersja skryptowego DAC.(dlaczego tylko skryptowa i dlaczego zmodyfikowana omówię w następnych punktach) DAC.rar w załączniku. 2. Teoria Podstawą do efektywnego wykorzystania Headless Clienta jest zrozumienie tego co tak na prawdę robimy. W armie każde pojedynczy obiekt posiada swojego "właściciela" dla którego jest lokalny (komenda owner do sprawdzania kto nim jest). Właścicielem danego obiektu może być albo serwer albo któryś z klientów. Obiekty mogą zmieniać swojego właściciela wielokrotnie w trakcie misji. Sprawa własności dotyczy także AI. W wypadku AI klient-właściciel jest tym który wykonuje obliczenia potrzebne do jego działania. Domyślnie wszystkie obiekty postawione w edytorze są tworzone przez serwer i jest on ich właścicielem, a więc na procesie serwera spoczywa cały ciężar obliczeniowy AI. To samo tyczy się AI tworzonych dynamicznie przez skrypt wywołany przez serwer. To co chcemy osiągnąć to w jakiś sposób przekazać własność nad wybranymi na AI na innego klienta: HC, dzięki czemu to on będzie odpowiedzialny za przetwarzanie poczynań AI. Są dwa sposoby by to osiągnąć: przekazać własność wybranych AI w trakcie misji do Headless Clienta używając komendy setOwner lub też sprawić by HC samemu stworzył wybrane jednostki, dzięki czemu od początku będzie ich właścicielem. Pierwszy sposób jest w zasadzie prostszy w implementacji, niemniej jednak w praktyce bardzo uciążliwy i niemal niemożliwy do zastosowania do dynamicznie tworzonych AI (np. z DACa). Drugi sposób będzie tym którego głównie będziemy używać, wszakże nie jest on też pozbawiony wad. W przykładowej misji omówię użycie obydwu z nich. 3. Misja Dodanie HC do naszej misji powinno być ostatnim krokiem który wykonujemy w procesie tworzenia misji. Na potrzeby poradnika stworzyłem małą misję coop wykorzystującą skryptowego DACa i jednostki na waypointach. W tym kroku zakładam więc że misja zawiera wszystkie elementy niezbędne do jej działania (description.ext, init.sqf, grywalne jednostki, moduły etc.). 3.1 Jednostki grywalne i HC Pierwszym krokiem który musimy wykonać by zaimplementować Headless Client do naszej misji to stworzyć dla niego grywalny slot który będzie obsadzany przez klienta. Slot ten może być dowolną jednostką, jednak musimy zadbać o to, żeby nie zginął trakcie misji. Na potrzeby poradnika użyłem kurczaka. Jak widać na załączonym screenie: zaznaczamy jednostkę jako grywalną i nadajemy jej nazwę "HCunit". Description jednostki to "HC" aby łatwo można było odróżnić ten slot w lobby. W polu inicjalizacji wpisaliśmy "this allowDamage false;" by zapewnić że nic złego nie stanie się z klientem w trakcie trwania misji. 3.2 Parametry startowe Na potrzeby tego poradnika tworzę misję która może być uruchomiona zarówno z Headless Clientem jak i bez niego. Jako że serwer nie ma możliwości samemu sprawdzić przed uruchomieniem misji czy HC jest obecny na slocie czy nie, rozwiążemy ten problem poprzez dodanie parametru startowego misji. W ten sposób przy wyborze slotów w lobby będziemy mogli ustawić czy misja ma działać z HC czy bez niego. By dodać wybieralny parametr do pliku description.ext naszej misji dodajemy (po headerze): class Params { class HeadlessClient { title = "Headless Client"; values[]= {0,1}; texts[]={"OFF","ON"}; default=0; }; }; Domyślną wartością jest OFF czyli brak Headless Clienta. Następnie edytujemy nasz init.sqf by odpowiednio odebrać parametry. Dodajemy następujący wycinek kodu na samym początku naszego initu. if(isNil "paramsArray") then{ paramsArray=[0,0,0]}; //Zczytanie nazwy HC do zmiennej, jeśli obecny i ustawienie zmiennych globalnych if(paramsArray select 0 == 1) then{ if(isServer) then{ HCPresent = true; publicVariable "HCPresent"; HCName = name vehicle HCUnit; publicVariable "HCName"; }; } else{ if(isServer) then{ HCPresent = false; HCName = "NOONE"; publicVariable "HCPresent"; publicVariable "HCName"; }; }; Tak więc, po kolei: nasz kod pierwszej kolejności sprawdza czy odebraliśmy jakiekolwiek parametry startowe. Następnie zależnie od wartości parametru, odpowiednio ustawiamy wartości dwóch zmiennych, które będą przydatne w późniejszej części. HCPresent - prawda lub fałsz, oraz HCName do której zapisujemy nazwę klienta który obsadził slot HC, czyli naszego kurczaka. W wypadku braku HC - zmienna HCName ustawiana jest na "NOONE" czyli - nikt. Po ustawieniu wartości przesyłane są do wszystkich pozostałych klientów przez publicVariable. 3.3 Edytorowe AI tworzone przez HC Po wykonaniu poprzednich kroków HC jest już przygotowany by przyjąć pod swoją władzę część AI, zaczniemy od zwykłych jednostek korzystających z waypointów. W przykładowej misji na chwilę obecną znajdują się wszystkie elementy. Całe AI tworzone jest i sterowane przez serwer. Obrazek wygląda następująco: Widzimy tam strefę DAC, kilka obiektów, grywalne jednostki i dwie grupy patrolujących AI. W kolejnym kroku będę chciał sprawić by te dwie widoczne grupy zostały stworzone na początku misji pod kontrolą HC. Aby to osiągnąć będziemy potrzebowali wyciąć wybrane jednostki wraz z ich waypointami i zapisać je do nowego pliku misji. Służą nam tu podstawowe skróty klawiszowe jak Ctrl-C, Ctrl-V dzięki którym możemy ładnie przenosić obiekty między misjami. Notka: Oryginalny poradnik od Monsoona sugerował by usunąć wszystkie pozostałe elementy misji i zostawić tylko wybrane AI i waypointy i zapisać to jako osobną misję. Podczas wycinania może nie udać nam się ustawić elementów idealnie na tych samych pozycjach jednak przy dużej ilości obiektów jest to na pewno mniej klikania. Docelowy efekt wyglądać powinien mniej więcej tak: Do przetworzenia użyjemy wcześniej wspomnianego programu A2MC. Program ten przetwarza plik mission.sqm do pliku .sqf który zawiera w sobie wszystkie obiekty postawione w edytorze. Tak stworzony plik wywołany przez HC lub serwer spowoduje stworzenie wybranych obiektów. Program jest prosty w obsłudze, najpierw wybieramy lokacje naszego pliku mission.sqm (tego z samymi wyciętymi jednostkami), następnie wybieramy lokację i nazwę docelowego pliku sqf. Dla przykładowej misji plik nazwałem Create_AI.sqf i umieściłem go w głównym folderze docelowej misji. Po zapisaniu pliku z samej misji usuwamy wszystkie jednostki które "przetworzyliśmy" do pliku skryptowego. Gdybyśmy tego nie zrobili sprawiło by to podwójne stworzenie wybranych jednostek. Efekt końcowy wygląda następująco: W tym momencie wracamy do edycji init.sqf by odpowiednio wywołać stworzony plik: Create_AI.sqf. W inicie doklejamy następujący kod: if(HCPresent) then{ if(name player == HCName) then{ execVM "Create_AI.sqf"; }; } else{ if(isServer) then{ execVM "Create_AI.sqf"; }; }; W tym kawałku kodu wykorzystujemy stworzone wcześniej zmienne. Jeśli warunek obecności HC został spełniony wywołujemy skrypt tworzący AI dla klienta HC, jeśli nie został, skrypt wykonuje normalnie serwer. Analogicznie będziemy działać dla stref DAC, ale o tym za chwilę. Jeśli zrobiliśmy wszystko poprawnie po przetestowaniu misji powinniśmy zobaczyć dwa patrole przemieszczające się po swoich waypointach jak wcześniej, mimo iż nie widać ich w edytorze. Niestety program A2MC z którego korzystamy nie jest pozbawiony wad. Nie pozwala on między innymi na konwertowanie zsynchronizowanych obiektów ani wyzwalaczy. W wypadku obiektów którym wpisujemy polecenia w polu inicjalizacji, polecenia te również mogą nie wywołać się poprawnie. Osobiście nie testowałem do końca jakiego typu błędy mogą się tam pojawić, natomiast Monsoon w sowim poradniku jako przykład podał ustawianie obiektów na wybranych pozycjach czy wysokościach poprzez komendę setPosASL. 3.4 Strefy DAC tworzone przez HC W kolejnym kroku przetworzymy strefy DAC z misji tak by mogły być kontrolowane przez Headless Clienta. By móc zastosować HC do DACa wymagana będzie jego wersja skryptowa po drobnych modyfikacjach. Modyfikacje polegają na tym by skrypty DACa mogły być wykonywane zarówno przez serwer jak i przez HC. Wymaga to zamiany pojawiających się tam warunków: if(isServer) na if(isServer || (name player == HCName)). Wersja załączona w tym poradniku oraz użyta w przykładowej misji zawiera te modyfikacje. Pliki z folderu DAC\Configs nie są w żaden sposób modyfikowane więc spokojnie możemy podmienić je ze swoimi. DAC_Config_Creator.sqf różni się jedną dodatkową linią od tego "surowego": if(name player == HCName) then{DAC_Code = 0}; Strefy DAC wycinamy z misji, zapisujemy jako osobną misję i konwertujemy programem A2MC analogicznie jak robiliśmy to z AI. Pamiętajmy żeby wyciąć i przetworzyć same strefy DAC, wszelkie wyzwalacze odpowiadające np. za aktywację stref pozostają normalnie w misji. W przykładzie zapisałem wynikowy plik sqf jako: Create_DAC_Zones.sqf. W wypadku stref DAC plik wymaga jednak jeszcze dodatkowej ręcznej edycji. 3.4.1 Konwertowanie wyzwalaczy będących strefami DACa w programie a2mc nie przebiega do końca poprawnie. Jeśli otworzymy nasz plik zobaczymy że z każdej ze stref zostało wygenerowanych kilka linii kodu. Interesuje nas: z1 setTriggerStatements[""true"", "fun = [""z1"",[1,0,0],[50],[50],[],[],[0,0,1,1,1]] spawn DAC_Zone", ""]; Strefy stworzone w ten sposób przez HC nie będą działać poprawnie. Musimy podmienić cudzysłowy przy warunkach "true" na średnik: true; z1 setTriggerStatements["true;", "fun = [""z1"",[1,0,0],[50],[50],[],[],[0,0,1,1,1]] spawn DAC_Zone", ""]; Wykonujemy ten krok analogicznie dla każdej ze stref zapisanej w pliku. Czyli dla każdej linii w której pojawia się setTriggerStatements. 3.4.2 Podczas robienia wcześniejszej misji testowej napotkałem na kolejny problem. Wyzwalacze posiadające domyślny rozmiar (elipsa 50x50) po przetworzeniu posiadają zerowy rozmiar: ze1 = createTrigger["EmptyDetector", [4244.3828, 7742.0894, 0]]; ze1 setTriggerArea[0, 0, 22, false]; Musimy więc przejrzeć wszystkie wywołania setTriggerArea w pliku i sprawdzić czy rozmiary stref nie są zerowe, gdyby tak było DAC zwróci błąd przy tworzeniu waypointów. ze1 = createTrigger["EmptyDetector", [4244.3828, 7742.0894, 0]]; ze1 setTriggerArea[50, 50, 22, false]; Nie zauważyłem żeby problem ten pojawiał się przy innych rozmiarach i kształtach wyzwalaczy. Przy czym musimy pamiętać, żeby przez przypadek nie zmienić ustawień timeouta wyzwalacza gdyż może mieć to nieoczekiwane skutki. 3.4.3 Kolejny element edycji pliku Create_DAC_Zones.sqf wiąże się ze strefami DACa aktywowanymi w trakcie misji. Wykonanie jego jest konieczne by mieć pewność, że strefy aktywują się poprawnie. Edycja polega na dodaniu na końcu pliku (przed komentarzem: // return all created units in an array oraz ostatnią linią zwracającą tablice) pętli która przekaże odnośniki do wszystkich stref przy użyciu PublicVariable do wszystkich klientów. Kod który dodajemy wygląda następująco: if(HCPresent) then { _i = 0; for "_i" from 0 to ((count _createdTriggers )-1) do { publicVariable format["%1",(_createdTriggers select _i)]; }; }; Jeśli wykonaliśmy poprawnie te 3 kroki zapisujemy nasz plik i przechodzimy do jego wywołania w inicie. 3.4.4 Linie uruchamiające skryptowego DAC w init.sqf są identyczne jak w misji nie wykorzystującej HC: if(!isServer) then {waitUntil{!isNull player}}; DAC_Zone = compile preprocessFile "DAC\Scripts\DAC_Init_Zone.sqf"; DAC_Objects = compile preprocessFile "DAC\Scripts\DAC_Create_Objects.sqf"; execVM "DAC\DAC_Config_Creator.sqf"; W miejscu zaraz po tych czterech liniach dodajemy fragment kodu analogiczny do tego, który wykorzystaliśmy wcześniej do wykonania skryptu Create_AI.sqf na serwerze bądź HC. By nie powielać zbędnego kodu w inicie strefy DAC i edytorowe AI z punktu 3.3 stworzymy tuż po sobie. Docelowy fragment initu będzie wyglądał więc następująco: DAC_Zone = compile preprocessFile "DAC\Scripts\DAC_Init_Zone.sqf"; DAC_Objects = compile preprocessFile "DAC\Scripts\DAC_Create_Objects.sqf"; execVM "DAC\DAC_Config_Creator.sqf"; //Stworzenie stref DAC oraz AI na serwerze bądź HC if(HCPresent) then{ if(name player == HCName) then{ execVM "Create_AI.sqf"; execVM "Create_DAC_Zones.sqf"; }; } else{ if(isServer) then{ execVM "Create_AI.sqf"; execVM "Create_DAC_Zones.sqf"; }; }; Jeśli wykonaliśmy poprawnie powyższe kroki to voila. AI stworzone w strefach DAC w naszej misji będą kontrolowoane przez Headless Clienta. (notka: Co do użycia edytowanej wersji skryptowej DAC, zadziała on dopiero po tym jak zastosujemy kroki z punktu 3.2 do naszego init.sqf. Jeśli chcemy podmienić DACa przed wykonaniem tego punktu w inicie musimy tymczasowo ustawić jakąś wartość dla zmiennej HCName, np. HCName="NOONE") 3.5 Przekazywanie jednostek do HC po starcie misji. Ostatnim sposobem który omówię w tym poradniku jest przekazanie jednostek pod kontrolę HC po starcie misji. W wypadku przykłądowej misji zastosujemy to do samotnego strażnika w bunkrze, którego pozycja została ustawiona w jego inicjalizacji i której nie chcemy "popsuć" niedoskonałym A2MC. Posłużymy się tutaj skryptem setowner.sqf stworzonym przez Monsoon'a. setowner.sqf: if !(isServer) exitWith{}; _HC = _this select 0; _list = _this select 1; OC_pass = 0; OC_fail = 0; for "_i" from 0 to ((count _list)-1) do{ _unit = _list select _i; if(_unit setOwner (owner _HC)) then{ OC_pass = OC_pass + 1; } else{ OC_fail = OC_fail + 1; }; }; publicVariable "OC_pass"; publicVariable "OC_fail"; Zasada działania jest bardzo prosta. Przy wywołaniu jako argumenty przekazujemy nazwę jednostki obsadzonej przez Headless Clienta (w naszym wypadku HCUnit) oraz tablicę jednostek które mają zostać przejęte przez HC. Skrypt wykonywany jest prze serwer który ustawia komendą setOwner właściciela wybranym jednostkom. Zmienne OC_pass i OC_fail mogą służyć pomocniczo do podejrzenia czy operacja zakończyła się sukcesem. Skrypt wywołujemy w osobnym wyzwalaczu. Warunkiem jest obecność HC oraz pewien niedługi czas po którym operacja przekazania własności ma być wykonana. Al które przekazujemy w ten sposób oczywiście pozostawiamy w edytorze. Przekazywanie jednostek w ten sposób jest jednak mało praktyczne ze względu na to, że w momencie zmiany własciciela danej jednostki traci ona swoje obcecne waypointy oraz synchronizacje. 3.6. Uwagi końcowe Do misji testowej dodałem jeszcze prosty wyzwalacz wyświetlający po kilkudziesięciu sekundach od startu w hincie, wartośc zmiennej HCName. Jest to drobne zabezpieczenie które uważam że warto zostawić nawet w finalnej wersji misji. Może się bowiem zdarzyć że podczas rozgrywki ktoś zapomni ustawić odpowiednich parametrów startowych i mimo obecności HC na serwerze nie przejmie on żadnego obciążenia. W takim wypadku wyświetli się wiadomość Obecny HC: NOONE. W innym przypadku będzie to nazwa klienta HC. Headless Client może być zastosowany do misji wykorzystujących UPSMONa na podobnej zasadzie jak do DACa. Nie testowałem jednak tego osobiście więc takie rozwiązanie nie znalazło się w tym poradniku. Dla dociekliwych link 4. Zakończenie Na zakończenie pragnę podziękować: Monsoon'owi za stworzenie poradnika HC na którym bazowałem. Sztabowi ACC za skonfigurowanie Headless Clienta i wprowadzenie go na serwer, w szczególności [m=tomeek]owi, który z tego co wiem, zrobił większość brudnej roboty. [m=tomeek]owi oraz [m=Gienkov]owi za pomoc przy testowaniu. Mam nadzieję że poradnik ten był wystarczająco pomocny i że wkrótce zaczną pojawiać się na naszym serwerze nowe misje wykorzystujące HC W razie pytań służę pomocą na ts. CO@4_HC_Tutorial.lingor.rar CO@4_HC_Tutorial_NOHC.lingor.rar DAC.rar
  5. Rok 1999. Wojska NATO po wkroczeniu do Kosowa próbują zaprowadzić pokój, jednak nienawiść zbyt długo królowała w tym zapomnianym przez ludzi i Boga kraju. Serbska armia Jugosławii i organizacja terrorystyczna o nazwie Armia Wyzwolenia Kosowa toczą ze sobą wyniszczającą wojnę, w której ginął niewinni cywile. Czystki etniczne i ludobójstwo są na porządku dziennym. 1 kwietnia 1999 do Kosowa przybywa wysłannik Białego Domu, John McMillan, w celu uzgodnienia warunków pomocy militarnej dla nowego rządu. 2 kwietnia 1999 około 4:00 hotel, w którym przebywa amerykańska delegacja, atakują serbskie oddziały, ochrona ginie w walce, zaś dyplomata zostaje porwany. Godzinę później zostają wystosowane żądania: wojska NATO mają opuścić Kosowo i pozwolić armii jugosłowiańskiej na zajęcie zbuntowanej prowincji, inaczej dyplomata zginie. O godzinie 5:30 dowódca oddziału 26th Marine Expeditionary Unit stacjonującego na USS Kearsarge u wybrzeży Bałkanów dostaje rozkaz odbicia zakładnika za wszelką cenę. Dołącz już dziś! Zapisy: http://forum.armacoopcorps.pl/topic/6833-24102014-ksv-co38-semper-fidelis/
  6. Operation Callsign Charlie II 3rd Brigade, 1st Cavalary Division, 1st Battalion, 3rd Company 3rd Platoon Rok 1965. Operacja Rolling Thunder trwa już kilka miesięcy. Mimo wprowadzenia bombowców dalekiego zasięgu B-52 nie przynosi oczekiwanych korzyści. Równocześnie podczas całej operacji prowadzone są intensywne ataki lotnicze przeciwko siłom komunistycznym na terytorium Wietnamu Południowego, szczególnie wzdłuż Szlaku Ho Chi Minha, którym przerzuca się południe broń, amunicję, sprzęt, a w końcu także żołnierzy regularnej armii z północy (NVA). Tu podczas nalotów dywanowych na masową skalę stosuje się napalm i defolianty, aby zniszczyć dżunglę, która jest oparciem partyzantki wietnamskiej. Gen. W. Westmoreland podejmuje decyzję o włączeniu do Operacji Rolling Thunder jednostek naziemnych w składzie plutonu w różnych częściach Wietnamu Południowego celem zniszczenia Szlaku Ho Chi Minha i rozprawienia się z partyzantką Wietkongu. Operacje naziemne polegają głównie na działaniach znajdź i zniszcz. O godzinie 5:45 rozpoczęła się operacja siłami 1 Plutonu o kryptonimie Callsign Charlie mająca na celu przechwycenie w rejonie Phan Ding Phung składów amunicji oraz zbadanie rzeki celem zniszczenia łodzi transportujących broń dla Wietkongu. Zaginęła również jedna drużyna SOG operujący w tym rejonie. Pierwszy pluton wykonał swoje zadanie połowicznie (zostały zakończone II z IV faz operacji), poniósł duże straty wśród oficerów, podoficerów. Zginął również dowodzący plutonem. I tutaj wkraczacie wy, czyli 3 Pluton - Ładujecie du*y na UH-1 i lecicie do strefy zielonej, gdzie pierwszy pluton właśnie ładuje zabitych i rannych, a po waszym przybyciu, odleci do bazy. Waszym zadaniem jest dokończenie operacji i odnalezienie drużyny SOG. Dane Wywiadowcze
×
×
  • Dodaj nową pozycję...