Teraz jest Cz 28 mar, 2024 14:42


Nowe jednostki w losowych miejscach

Dział poświęcony edytorowi ArmA II i Operation Arrowhead, czyli tworzeniu misji.
  • Autor
  • Wiadomość
Offline
Avatar użytkownika

Sejtan

Major

Major

  • Posty: 676
  • Dołączył(a): Pn 19 lip, 2004 21:26
  • Lokalizacja: Starogard Gdański

Nowe jednostki w losowych miejscach

PostŚr 14 wrz, 2011 15:12

Witam :] Chciałem sobie napisać prosty skrypcik kreujący nowe jednostki w losowych miejscach. Niby nic trudnego... a jednak mam problem z tym random... :|

Kod: Zaznacz cały
_p =  [p1, p2, p3, p4, p5, p6];
_grp = createGroup east;
_unit = _grp createUnit ["Ins_Soldier_Pilot", position (random _p), [], 0, "FORM"];   
[_unit] join _grp;


Jak napiszę, że _p = p1 i wywale to random oraz nawias działa jak trzeba, ale oczywiście _unit tworzy się tylko w punkcie p1, a nie od p1 do p6. Jakieś sugestie?
Offline
Avatar użytkownika

JaFranek

Major

Major

  • Posty: 581
  • Dołączył(a): Wt 16 lis, 2004 14:46
  • Lokalizacja: Tbg

PostŚr 14 wrz, 2011 18:04

bo funkcja Random losuje tylko liczby.

Spróbuj wylosować jakąś liczbę z przedziału 0 do 5

Kod: Zaznacz cały
_liczba = round(random 5)


Następnie wylosuj jednostkę

Kod: Zaznacz cały
_element = (_p select _liczba)


I dodaj ja dalej do swojego skryptu

Kod: Zaznacz cały
_unit = _grp createUnit ["Ins_Soldier_Pilot", position _element, [], 0, "FORM"];   


Nie gwarantuje że zadziała bo nie testowałem, teoretycznie powinno. Jak by coś nie śmigało to możesz sprawdzić za pomocą hinta lub textu co siedzi w _element. Jak jest tam nazwa losowej jednostki to problem leży w jakimś innym miejscu niż losowanie jednostek


Ps. Dołączyliśmy do forum prawie w tym samym czasie :D
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline
Avatar użytkownika

Sejtan

Major

Major

  • Posty: 676
  • Dołączył(a): Pn 19 lip, 2004 21:26
  • Lokalizacja: Starogard Gdański

PostCz 15 wrz, 2011 13:21

Działa jak należy :]
Cały skrypt wygląda tak...:

Kod: Zaznacz cały
_pos = [p1, p2, p3, p4, p5, p6];
_des = [d1, d2, d3, d4, d5, d6];
_grp = createGroup east;

while {true} do
{
_liczba1 = round(random 5);
_liczba2 = round(random 5);
_element1 = (_pos select _liczba1);
_element2 = (_des select _liczba2);
_heli = createVehicle ["Mi17_Ins", position _element1, [], 0, "FLY"];

_unit1 = _grp createUnit ["Ins_Soldier_Pilot", position _element1, [], 0, "FORM"];
_unit2 = _grp createUnit ["Ins_Soldier_Pilot", position _element1, [], 0, "FORM"];
_unit3 = _grp createUnit ["Ins_Soldier_Pilot", position _element1, [], 0, "FORM"];
_unit4 = _grp createUnit ["Ins_Soldier_Pilot", position _element1, [], 0, "FORM"];
   
[_unit1] join _grp;
[_unit2] join _grp;
[_unit3] join _grp;
[_unit4] join _grp;

_unit1 moveInDriver _heli;
_unit2 moveInGunner _heli;
_unit3 moveInCargo _heli;
_unit4 moveInCargo _heli;

_unit1 doMove position _element2;
sleep 500;

deleteVehicle _heli;
deleteVehicle _unit1;
deleteVehicle _unit2;
deleteVehicle _unit3;
deleteVehicle _unit4;
sleep 5;
};


...i służy do kreowania śmigła w losowych miejscach i przemieszczania się go w również losowe miejsca...
Teoretycznie mało przydatne, ale w praktyce w misjach dodaje smaczku, szczególnie jak się misję rozgrywa wiele razy... no i łatwo to przerobić np na losowy ruch pojazdów, nie tylko powietrznych. Thx ;-)

PS: No... prawie robi wielką, w tym przypadku cztero miesięczną różnicę :P

Powrót do [ArmA II] Edytor

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości

cron