Teraz jest Pt 20 cze, 2025 21:30


DAC na skróty

Archiwum działów sekcji Operation Flashpoint
  • Autor
  • Wiadomość
Offline
Avatar użytkownika

Grey

Chorąży

Chorąży

  • Posty: 166
  • Dołączył(a): Pt 04 mar, 2005 19:53

DAC na skróty

PostN 04 cze, 2006 09:18

Dac na skroty napisany zostal na forum flashpoint.pl jako skrotowy tutorial Dynamic AI Creator, forum padlo, wiec tekst zostal przeniesiony tu:
http://ofp.szarego.net/forum/viewtopic.php?t=15

Mysle ze przyda sie wiekszosci mission makerow.
Tekst jest niekompletny, ale mozna zadawac pytania, na ktore bede odpowiadal. Odpowiadac oczywiscie moga tez i inni.

Mam nadzieje ze nei jest to jakies karygodne lamanie regulaminu...

Jerry: Zrobiłem z tym, co trzeba ;)
Obrazek CFOG / ACOG team | Platoon.pl | ShackTac | 6th sense | eks Team Tactical | eks RAAB
Offline
Avatar użytkownika

reyhard

Pułkownik

Pułkownik

  • Posty: 1455
  • Dołączył(a): So 12 mar, 2005 09:56
  • Lokalizacja: wielkiego brata

PostN 04 cze, 2006 11:43

Hmmm, warto by tu było dodać że w DAC_Config_Units.sqs nie warto utrzymywać te 300 wpisów i np. gdy się korzysta z zestawów nr. 231 to należałoby wszystko poniżej aż do 3 zestawu skasować (Musza być przynajmniej 3 zestawy aby DAC zadziałało + ten jeden nasz). Według mnie wzrost wydajność dzięki zastosowanej sztuczce można zauważyć aczkolwiek są to tylko moje spostrzeżenia wyciągnięte z jednego tematu na forum BIS (a może OFPEC, w każdym bądź razie dyskusja polegała na tym że OFP podczas korzystania z opcji goto przerabia cały skrypt od nowa aż do miesjca do wyznaczonego miejsca, przyznam jednak że to było wypowiadane w kontekście zapętleń ale i chyba w tym wypadku to się sprawdza) i misji wydanych przez Mapfact [Chabrydis] więc mogą być one błędne i ten wzrost wydajności może być spowodowany czym innym.

W sumie to jestem ciekawy waszych opinii na ten temat bo może ktoś już przeprowadzał test z i bez takiego czegoś bo ostatecznie nasuwa mi się wniosek że to może być zależne od szybkość dysku...

Ahh, i można by do tego dodać jak tworzyć zestawy jednostek :P

A więc, otwieramy w katlogu /DAC pliczek DAC_Config_Units.sqs i:

;\\\\\\\\\\\\\\\\\\\\\\\\\\\
#Unit_Config_0
;///////////////////////////

_Unit_Pool_S=["SoldierWCrew","SoldierWPilot","OfficerW","Soldierwlaw","Soldierwb","Soldierwg","Soldierwmg","Soldierwaa"]
_Unit_Pool_V = ["Jeep","Truck5t","Truck5tOpen"]
_Unit_Pool_T = ["M1Abrams","Bradley","M60","Vulcan","JeepMG"]
_Unit_Pool_A = ["Cobra","AH64","Ch47D","UH60"]
_Unit_Pool_C = ["usa_vlajka.pac","CampEmpty","Shed",[100,3]]

goto "SetPool"

Tak wygląda przykładowy config, pierwszym krokiem w strone stworzenia własnego zestawu jednostek jest nadanie configowi nr. rozpoznawczego (tutaj jest oznaczony on numerem 0)
([z1,[1,0,0],[ ],[ ],[ ],[ ],[0,0,0]]exec "DAC\Scripts\DAC_Init_Zone.sqs"]), dajmy na to że stosujesz się do moich rad i kasujesz wszystko od 3 wzwyż, jeżeli tak to nadajesz temu nazwę np. 4 chociaż równie dobrze może to być 9 albo 5, natomiast jeżeli chcesz zachować resztę zestawów to dajesz to na koniec i wstawiasz tam np. liczbe 309 (tak aby nie istniał drugi taki config o tej samej nazwie).

Zacznijmy od piechoty [_Unit_Pool_S],pierwszą jednostka jest załogant który będzie przydzielony do wszelkiej maści czołgów i pojazdów opancerzonych które określiłeś w _Unit_Pool_T, druga jednostka to jest pilot które będzie wstawiony do pojazdów określonych w _Unit_Pool_A, 3 jednostka to dowódca piechoty, 4 i reszta to podkomendni w respawnowanej grupie (są również wstawiani do pojazdów nieuzbrojonych [_Unit_Pool_V])

Jednostki od 4 wzwyż są losowo wybierane, czyli jak ustawisz jedynie 4 jednostki w zestawie [załoga,pilot,dowódca,jednostka) to skład zawsze będzie wyglądał tak - Dowódca,jednostk,jednostk,jednostka itd. natomiast jeżeli dasz ich więcej (załoga,pilot,dowódca,jednostka,jednostka2,jednostka3,jednostka4 itd) to będą one losowo wybierane [Dowódca,jednostka3,jednostka,jednostka4 itp.].

2 wpis zawiera pojazdy nie uzbrojone [_Unit_Pool_V], służąc jedynie do transportu grup lub patrolowania większych przestrzeni. Z patrolowaniem jest pewien haczyk bo ja wcześniej powiedziałem należy tu wstawić tylko pojazdy nieuzbrojone, jak wstawisz uzbrojone to po prostu nie będą miały strzelca (chociaż jeżeli jest grupa i wyskocz z tych autek po strzale to później AI powinno wejść na gunnera :p). Warto tutaj też wspomnieć że grupa po dostani się pod ogień nieprzyjaciela wyskakuje z pojazdów.

3 wpis definiuje czołgi i różnorakie pojazdy uzbrojone [_Unit_Pool_T]. To chyba nie wymaga głębszych wyjaśnień :]

W 4 wpisie [_Unit_Pool_A] możesz dodać jednostki powietrzne (śmigłowce, odrzutowce itp, chociaż z odrzutowcami to trzeba dobrze strefę zrobić, tz. mała do respawnowania się na początku, i druga aktywowana po załadowaniu DAC która będzie strefa patrolową owego latadełka.)

I w końcu ostatni wpis odpowiadający za generowanie obozu [_Unit_Pool_C].
_Unit_Pool_C = ["rus_vlajka.pac","CampEast","Shed",[100,3]]
1 wpis odpowiada za texturke jaka będzie załadowana na fladze w obozie
2 wpis odpowiada za obiekt który nie ma właściwe żadnej funkcji oprócz estetycznej
3 wpis odpowiada za budynek w którym jest respawnowane AI
4 wpis odpowiada za obecność skrzynki z bronia i amunicją [1 wartość określa % obecność uzbrojenia w skrzynce [zbiera wszystkie typy uzbrojenia jakie posiada respawnowane w strefach AI i losuje z tych broni tą która będzie się tam znajdować], 2 wartość to prawdopodobieństwo obecności tego zestawu w skrzynce i jego ilości


Zapisujemy to i odpalamy później strefę z odpowiednim parametrem [jeżeli config ma numer 5 to odpalasz to tak - ([z1,[1,0,0],[ ],[ ],[ ],[ ],[0,5,0]]exec "DAC\Scripts\DAC_Init_Zone.sqs"]]
Po prostu przyjmij do wiadomości, że nadciąga rewolucja proletariacka, lada dzień Chavez z Castro i Bin Ladenem nadjadą na białym traktorze i uwolnią ciemiężony lud polski spod władzy międzynarodowego kapitału.
Offline
Avatar użytkownika

Grey

Chorąży

Chorąży

  • Posty: 166
  • Dołączył(a): Pt 04 mar, 2005 19:53

PostPn 05 cze, 2006 08:08

Rayhard, moge dodac to do tamtego tutoriala?
Bede tam zamieszczal kolejne porady w ramach potrzeb i pytan.
Obrazek CFOG / ACOG team | Platoon.pl | ShackTac | 6th sense | eks Team Tactical | eks RAAB
Offline
Avatar użytkownika

reyhard

Pułkownik

Pułkownik

  • Posty: 1455
  • Dołączył(a): So 12 mar, 2005 09:56
  • Lokalizacja: wielkiego brata

PostPn 05 cze, 2006 15:06

Nie ma sprawy, śmiało to możesz tam zamieścić ;)
Po prostu przyjmij do wiadomości, że nadciąga rewolucja proletariacka, lada dzień Chavez z Castro i Bin Ladenem nadjadą na białym traktorze i uwolnią ciemiężony lud polski spod władzy międzynarodowego kapitału.
Offline
Avatar użytkownika

Grey

Chorąży

Chorąży

  • Posty: 166
  • Dołączył(a): Pt 04 mar, 2005 19:53

PostWt 06 cze, 2006 13:30

W ramach zapotrzebowania na triki w DACu:
Jak skonfigurowac druzyna snajperska
http://ofp.szarego.net/forum/viewtopic.php?t=46
Obrazek CFOG / ACOG team | Platoon.pl | ShackTac | 6th sense | eks Team Tactical | eks RAAB
Offline
Avatar użytkownika

Jerry

Pułkownik

Pułkownik

  • Posty: 2598
  • Dołączył(a): Pn 19 lip, 2004 21:28
  • Lokalizacja: 52° 14'N, 20° 56'E

PostSo 17 cze, 2006 13:38

Bawiłem się sekcją [i]camp[/] zgodnie z Twoimi wskazówkami i napotkałem problem. Wpierw wycinek pliku DAC_Group_Camp.sqs. Tylko tą część zmieniałem.

Kod: Zaznacz cały
#startcreate
?(count _TempUnitsA < 3):hintc format["Attention, in an Unit Config for Infantry,\nnot all required entries exist.\n\nAt least 3 entries must be\n contained. The first entry should\nbe always a pilot,\nthe second entry should be\nalways a driver, the third entry\nshould be always a group leader.\nFrom the fourth entry\nall Units can be taken."];DAC_Basic_Value = 4;publicvariable "DAC_Basic_Value";exit
?(count _TempUnitsB < 4):hintc format["Attention,\nin an Unit Config for Camps,\nnot all required entries exist."];DAC_Basic_Value = 4;publicvariable "DAC_Basic_Value";exit
DAC_Init_Group = DAC_Init_Group + [_randomcount]
DAC_Init_Values set [0,(DAC_Init_Values select 0) + 1]
DAC_Init_Unit   set [4,(DAC_Init_Unit select 4) + 1]
?(DAC_StartDummy in DAC_Init_Group):DAC_Init_Group = DAC_Init_Group - [DAC_StartDummy]
_unittyp   = _TempUnitsA
_leadertyp = _TempUnitsA select 2
_unitdummy = call format["%1_Dummy",((_sidearray select 1) select _groupside)]
_spawnpro  = _heloarray select 3
_spawntyp  = _heloarray select 2
_spawncount= _heloarray select 4
_wpstart   = _wparray select (random ((count _wparray) - 1))
_startpos  = [(_wpstart select 0),(_wpstart select 1),0]
_flag      = "FlagCarrier" createvehicle [(_wpstart select 0)+10,(_wpstart select 1)+10,0]
_flag setflagtexture (_TempUnitsB select 0)
_ctyp = format["%1",(_TempUnitsB select 1)]
_vtyp = format["%1",(_TempUnitsB select 2)]
_wset = (_TempUnitsB select 3)
_atyp = format["%1",(_TempUnitsB select 4)]
_btyp = format["%1",(_TempUnitsB select 5)]
_dtyp = format["%1",(_TempUnitsB select 6)]
_etyp = format["%1",(_TempUnitsB select 7)]
_ftyp = format["%1",(_TempUnitsB select 8)]
_gtyp = format["%1",(_TempUnitsB select 9)]
_htyp = format["%1",(_TempUnitsB select 10)]
_ityp = format["%1",(_TempUnitsB select 11)]
_jtyp = format["%1",(_TempUnitsB select 12)]
_ktyp = format["%1",(_TempUnitsB select 13)]
_ltyp = format["%1",(_TempUnitsB select 14)]
_mtyp = format["%1",(_TempUnitsB select 15)]
_ntyp = format["%1",(_TempUnitsB select 16)]
_camp      = _ctyp createvehicle [0,0,0];_camp setpos [(_wpstart select 0),(_wpstart select 1),0]
_build     = _vtyp createvehicle [0,0,0];_build setpos [(_wpstart select 0) + 20,(_wpstart select 1),0]
_fire      = "fire" createvehicle [(_wpstart select 0) - 6,(_wpstart select 1) + 6,0]
_art1       = _atyp createvehivle [0,0,0];_art1 setpos [(_wpstart select 0) +20,(_wpstart select 1) +20,0]
_art2       = _btyp createvehivle [0,0,0];_art2 setpos [(_wpstart select 0) +20,(_wpstart select 1) +30,0]
_art3       = _dtyp createvehivle [0,0,0];_art3 setpos [(_wpstart select 0) +20,(_wpstart select 1) +40,0]
_art4       = _etyp createvehivle [0,0,0];_art4 setpos [(_wpstart select 0) +20,(_wpstart select 1) +50,0]
_med1       = _ftyp createvehivle [0,0,0];_med1 setpos [(_wpstart select 0) +20,(_wpstart select 1) -50,0]
_med2       = _gtyp createvehivle [0,0,0];_med2 setpos [(_wpstart select 0) +15,(_wpstart select 1) -50,0]
_com1       = _htyp createvehivle [0,0,0];_com1 setpos [(_wpstart select 0) -15,(_wpstart select 1) -30,0]
_tru1       = _ityp createvehivle [0,0,0];_tru1 setpos [(_wpstart select 0) -20,(_wpstart select 1) +30,0]
_car1       = _jtyp createvehivle [0,0,0];_car1 setpos [(_wpstart select 0) +30,(_wpstart select 1) -5,0]
_car2       = _ktyp createvehivle [0,0,0];_car2 setpos [(_wpstart select 0) +30,(_wpstart select 1) -10,0]
_amm1       = _ltyp createvehivle [0,0,0];_amm1 setpos [(_wpstart select 0) +10,(_wpstart select 1) +30,0]
_aag1       = _mtyp createvehivle [0,0,0];_aag1 setpos [(_wpstart select 0) +50,(_wpstart select 1) +50,0]
_aag2       = _ntyp createvehivle [0,0,0];_aag2 setpos [(_wpstart select 0) -50,(_wpstart select 1) -50,0]
_ammobox   = "ReammoBoxEast" createvehicle [(_wpstart select 0) - 10,(_wpstart select 1) + 10,0]
_camparray = [_flag,_camp,_build,_fire,_art1,_art2,_art3,_art4,_med1,_med2,_com1,_tru1,_car1,_car2,_amm1,_aag1,_aag2,_ammobox]
_fire inflame true;_startpos = getpos _flag;_build setdir 180


Oczywiście dostosowałem do tego DAC_Config_Units.sqs, dodając w polu camp nowe pozycje. Niestety przy tworzeniu obozu wywala taki błąd:

Obrazek

a następnie:

Obrazek

Przejrzałem cały plik DAC_Group_Camp.sqs i nie wiem, skąd te błędy.
Obrazek
Offline
Avatar użytkownika

Grey

Chorąży

Chorąży

  • Posty: 166
  • Dołączył(a): Pt 04 mar, 2005 19:53

PostN 18 cze, 2006 17:12

Proponuje wysledzis najpierw gdzie konkretnie jest blad. Wykrajac kolejne dodawane przez Ciebie kawalki az znajdziesz miejsce. Przykro mi, ale nie chce mi sie tego robic za Ciebie, a tak na pierwszy rzut oka trudno stwierdzic gdzie jest blad.
Obrazek CFOG / ACOG team | Platoon.pl | ShackTac | 6th sense | eks Team Tactical | eks RAAB
Offline
Avatar użytkownika

reyhard

Pułkownik

Pułkownik

  • Posty: 1455
  • Dołączył(a): So 12 mar, 2005 09:56
  • Lokalizacja: wielkiego brata

PostN 18 cze, 2006 17:23

Ja bym powiedział że Array DAC nie obsługuje tylu obiektów w definicji, zresztą, skład bazy i tak nie jest losowy w DAC więc zamiast bawić się w podmienianie i dodawanie obiektów w tym skrypcie proponowałbym odrazu podstawić za zmienne nazwy tych obiektów.

Przykładowo:
Kod: Zaznacz cały
#startcreate
?(count _TempUnitsA < 3):hintc format["Attention, in an Unit Config for Infantry,\nnot all required entries exist.\n\nAt least 3 entries must be\n contained. The first entry should\nbe always a pilot,\nthe second entry should be\nalways a driver, the third entry\nshould be always a group leader.\nFrom the fourth entry\nall Units can be taken."];DAC_Basic_Value = 4;publicvariable "DAC_Basic_Value";exit
?(count _TempUnitsB < 4):hintc format["Attention,\nin an Unit Config for Camps,\nnot all required entries exist."];DAC_Basic_Value = 4;publicvariable "DAC_Basic_Value";exit
DAC_Init_Group = DAC_Init_Group + [_randomcount]
DAC_Init_Values set [0,(DAC_Init_Values select 0) + 1]
DAC_Init_Unit   set [4,(DAC_Init_Unit select 4) + 1]
?(DAC_StartDummy in DAC_Init_Group):DAC_Init_Group = DAC_Init_Group - [DAC_StartDummy]
_unittyp   = _TempUnitsA
_leadertyp = _TempUnitsA select 2
_unitdummy = call format["%1_Dummy",((_sidearray select 1) select _groupside)]
_spawnpro  = _heloarray select 3
_spawntyp  = _heloarray select 2
_spawncount= _heloarray select 4
_wpstart   = _wparray select (random ((count _wparray) - 1))
_startpos  = [(_wpstart select 0),(_wpstart select 1),0]
_flag      = "FlagCarrier" createvehicle [(_wpstart select 0)+10,(_wpstart select 1)+10,0]
_flag setflagtexture (_TempUnitsB select 0)
_ctyp = format["%1",(_TempUnitsB select 1)]
_vtyp = format["%1",(_TempUnitsB select 2)]
_wset = (_TempUnitsB select 3)
_camp      = _ctyp createvehicle [0,0,0];_camp setpos [(_wpstart select 0),(_wpstart select 1),0]
_build     = _vtyp createvehicle [0,0,0];_build setpos [(_wpstart select 0) + 20,(_wpstart select 1),0]
_fire      = "fire" createvehicle [(_wpstart select 0) - 6,(_wpstart select 1) + 6,0]
_ammobox   = "ReammoBoxEast" createvehicle [(_wpstart select 0) - 10,(_wpstart select 1) + 10,0]
_art1="blablabla" createvehicle [0,0,0];_art1 setpos [(_wpstart select 0) +20,(_wpstart select 1) +20,0]
_art2="blablabla"  createvehicle [0,0,0];_art2 setpos [(_wpstart select 0) +20,(_wpstart select 1) +30,0]
"_art3=blablabla"  createvehivle [0,0,0];_art3 setpos [(_wpstart select 0) +20,(_wpstart select 1) +40,0]
"blablabla" createvehivle [0,0,0];_art4 setpos [(_wpstart select 0) +20,(_wpstart select 1) +50,0]
_med1 ="blablabla"  createvehivle [0,0,0];_med1 setpos [(_wpstart select 0) +20,(_wpstart select 1) -50,0]
_med2="blablabla"  createvehivle [0,0,0];_med2 setpos [(_wpstart select 0) +15,(_wpstart select 1) -50,0]
_com1="blablabla"  createvehivle [0,0,0];_com1 setpos [(_wpstart select 0) -15,(_wpstart select 1) -30,0]
_tru1="blablabla" createvehivle [0,0,0];_tru1 setpos [(_wpstart select 0) -20,(_wpstart select 1) +30,0]
_car1="blablabla"  createvehivle [0,0,0];_car1 setpos [(_wpstart select 0) +30,(_wpstart select 1) -5,0]
_car2="blablabla"  createvehivle [0,0,0];_car2 setpos [(_wpstart select 0) +30,(_wpstart select 1) -10,0]
_amm1="blablabla"  createvehivle [0,0,0];_amm1 setpos [(_wpstart select 0) +10,(_wpstart select 1) +30,0]
_aag1="blablabla"  createvehivle [0,0,0];_aag1 setpos [(_wpstart select 0) +50,(_wpstart select 1) +50,0]
_aag2="blablabla"  createvehivle [0,0,0];_aag2 setpos [(_wpstart select 0) -50,(_wpstart select 1) -50,0]
_camparray = [_flag,_camp,_build,_fire,_ammobox]
_fire inflame true;_startpos = getpos _flag;_build setdir 180



Ew. wypij jeszcze raz to co wtedy wypiłeś i popraw createvehivle na createvehicle. :P
Po prostu przyjmij do wiadomości, że nadciąga rewolucja proletariacka, lada dzień Chavez z Castro i Bin Ladenem nadjadą na białym traktorze i uwolnią ciemiężony lud polski spod władzy międzynarodowego kapitału.
Online

xersius

Pułkownik

Pułkownik

  • Posty: 99987
  • Dołączył(a): Pn 29 lip, 2024 15:01

Re: DAC na skróty

PostPt 13 gru, 2024 03:18

сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтtuchkasсайтсайт
Online

xersius

Pułkownik

Pułkownik

  • Posty: 99987
  • Dołączył(a): Pn 29 lip, 2024 15:01

Re: DAC na skróty


Powrót do Operation Flashpoint

Kto przegląda forum

Użytkownicy przeglądający ten dział: xersius i 3 gości

cron