Teraz jest Cz 28 mar, 2024 22:37


Respawn śmigłowca wraz z jednostkami na pokładzie.

Archiwum działów sekcji Armed Assault
  • Autor
  • Wiadomość
Offline

Mścisław

Cywil

Cywil

  • Posty: 3
  • Dołączył(a): So 26 mar, 2011 22:21

Respawn śmigłowca wraz z jednostkami na pokładzie.

PostSo 26 mar, 2011 23:04

Otóż, w multiplayerowej misji w której to musimy zagarnąć wyspę dla frakcji dla której gramy jest pewna rzecz która mnie bardzo interesuje. Mianowicie chodzi mi o moment gdy zdobędziemy dowolną bazę. Gdy zdobędziemy bazę, po krótkim czasie niedaleko pojawia się śmigłowiec wraz z jednostkami na pokładzie po czym leci w okolicę bazy i desantuje te jednostki, następnie śmigłowiec leci trochę dalej i znika. Pogrzebałem trochę i znalazłem to:


goto "start"

#loop_main
;hint "loop_main"
switch (_side) do { case east: {goto "loop_east"}; case west : {goto "loop_west"}; default {goto "end"};}

#loop_west
if (not (_pozice in West_base)) then {goto "end"}
if (_y > 30) then {deleteGroup _para; goto "start"}
_y = _y + 1
;hint format ["%1",_y]
~1
goto "loop_west"

#loop_east
if (not (_pozice in East_base)) then {goto "end"}
if (_y > 30) then {deleteGroup _para; goto "start"}
_y = _y + 1
;hint format ["%1",_y]
~1
goto "loop_east"


#start
? not local Al : goto "end"
_y = 0

_number = _this select 1
_pozice = AllBase select _number

if (_pozice in east_base) then {goto "east"} else {if (_pozice in west_base) then {goto "west"} else {goto "end"}}

#west

if (_pozice in sent_convoy_west) then {} else {sent_para_west = sent_para_west + [_pozice]}

_para = createGroup (west)
_pilot = createGroup (west)
_heli = createVehicle ["uh60mg", [(getMarkerPos "home_base_west" select 0)-100 +random 200,(getMarkerPos "home_base_west" select 1)-100 +random 200,(200 + random 100)], [], 0, "FLY"]
_heli setdir 90
_heli engineon true
_heli lock true
"SoldierWPilot" createUnit [getMarkerPos "home_base_west", _pilot]
(units _pilot select 0) moveInDriver _heli
(units _pilot select 0) setBehaviour "careless"
_heli flyInHeight 100

"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]
"SoldierWSaboteurPipe" createUnit [[1,1,1], _para]

{_x removemagazine "pipebomb"} foreach units _para
{_x removemagazine "pipebomb"} foreach units _para
{_x removemagazine "pipebomb"} foreach units _para

(units _para select 0) addmagazine "M136"
(units _para select 0) addmagazine "M136"
(units _para select 0) addweapon "m136"

(units _para select 1) addmagazine "M136"
(units _para select 1) addmagazine "M136"
(units _para select 1) addweapon "m136"

_side = side leader _para

goto "uni"

#east

if (_pozice in sent_para_east) then {} else {sent_para_east = sent_para_east + [_pozice]}

_para = createGroup (east)
_pilot = createGroup (east)
_heli = createVehicle ["Mi17_MG", [(getMarkerPos "home_base_east" select 0)-100 +random 200,(getMarkerPos "home_base_east" select 1)-100 +random 200,(200 + random 100)], [], 0, "FLY"]
_heli setdir 270
_heli engineon true
_heli lock true
"SoldierEPilot" createUnit [getMarkerPos "home_base_east", _pilot]
(units _pilot select 0) moveInDriver _heli
(units _pilot select 0) setBehaviour "careless"
_heli flyInHeight 100

"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]
"SoldierESaboteurPipe" createUnit [[1,1,1], _para]

{_x removemagazine "pipebomb"} foreach units _para
{_x removemagazine "pipebomb"} foreach units _para
{_x removemagazine "pipebomb"} foreach units _para

(units _para select 0) addmagazine "PG7V"
(units _para select 0) addmagazine "PG7V"
(units _para select 0) addweapon "RPG7V"

(units _para select 1) addmagazine "PG7V"
(units _para select 1) addmagazine "PG7V"
(units _para select 1) addweapon "RPG7V"

_side = side leader _para

#uni

{_x moveincargo _heli} forEach (units _para)

(driver _heli) commandMove (getPos _pozice)
;pracovni verze REMOVE
(driver _heli) doMove (getPos _pozice)

@ ((_heli distance _pozice) < 160) or (not alive _heli)
~1
if (not alive _heli) then {leader _para move [(getpos _pozice select 0)+1,(getpos _pozice select 1)+1,0]; driver _heli move getPos _pozice;switch (_side) do {case east: {hlaskaE_par = _number; publicvariable "hlaskaE_par"}; case west : {hlaskaW_par = _number; publicvariable "hlaskaW_par"};}; goto "loop_main"}


_aunits = units _para
_i = 0
_j = count _aunits

#Here
(_aunits select _i) action ["EJECT",_heli]
unassignvehicle (_aunits select _i)
_i=_i+1
~0.5
?_j>_i:goto "Here"

{unassignvehicle _x} forEach units _para
driver _heli commandMove [100,100,100]
;pracovni verze REMOVE
switch (_side) do {case west: {driver _heli doMove [0,5000,100]}; case east :{driver _heli doMove [15000,5000,100]};default {driver _heli doMove [100,100,100]};}
leader _para move [(getpos _pozice select 0)+1,(getpos _pozice select 1)+1,0]

@ ( (({(_x distance _pozice) < 80} count units _para) > 0) and (({alive _x} count units _para) > 0) and (({vehicle _x == _x} count units _para) == (count units _para)) ) or (({alive _x} count units _para) == 0)

;kdyz jsou zniceni a zakladna je stale vase, poslete nove paragany, kdyz jsou na zemi, blizko a je to nase, dejte moznost poslat konvoj

switch (_side) do { case east: {can_convoy_east = can_convoy_east + [_pozice]}; case west : {can_convoy_west = can_convoy_west + [_pozice]}; default {goto "end"};}

@ ((getpos _heli select 0) < 1000) or ((getpos _heli select 0) > 10000)
{deletevehicle _x} foreach (crew _heli)
deletevehicle _heli
#end


Niestety nic kompletnie z tego nie rozumiem, czy mogę prosić kogoś kto mógłby mi powiedzieć jak zastosować to w edytorze, chcę żeby skrypt uruchamiał przez wyzwalacz.
Proszę o pomoc.
Offline

tom3kb

Major

Major

  • Posty: 523
  • Dołączył(a): Pt 04 mar, 2011 07:35

PostSo 26 mar, 2011 23:22

Skoro wygrzebałeś to z misji to wrzuć ją do edytora i podejrzyj, w którym wyzwalaczu jest ten skrypt uruchamiany i już będziesz wszysko wiedział.

Zobacz linijke warunek to co tam pisze to to wywołuje skrypt [a w swojej misji to sobie mozesz jaki chcesz warunek napisać]
a w linijce przy aktywacji jest pewnie coś takiego lub podobnego

[] exec "nazwaskryptu.sqs" lub"nazwaskryptu.sqf'
Offline

Mścisław

Cywil

Cywil

  • Posty: 3
  • Dołączył(a): So 26 mar, 2011 22:21

PostN 27 mar, 2011 00:50

no tak ale chyba na mapie powinny być jakieś punkty gdzie ten śmigłowiec ma się udać czy coś, a ja nic nie mogę z tego wyciągnąć
Offline

tom3kb

Major

Major

  • Posty: 523
  • Dołączył(a): Pt 04 mar, 2011 07:35

PostN 27 mar, 2011 01:40

Przejrzałem ten skrypt troche i w zależności od strony east lub west śmigłowiec tworzony jest gdzies chyba przy markerach

home_base_west
home_base_east

a lata do miejsca/punktów na mapie _pozice, a _pozice to znowu baza o dowolnym numerze

patrz
_pozice = AllBase select _number

i gdy jest w odpowiedniej odległości wyrzuca desant
Offline
Avatar użytkownika

Maverick

Generał

Generał

  • Posty: 772
  • Dołączył(a): Pn 30 kwi, 2007 12:12
  • Lokalizacja: Kutno

PostN 27 mar, 2011 01:48

Rodzaj tematu... Panowie, wszystko ok, ale pamiętajcie o tym do diabła, bo w końcu się administracji skończy limit upomnień... ;).
Obrazek
Obrazek


"Read about the history of the place that we live in and stop letting corporate news tell lies to your children." - Immortal Technique
Offline

Mścisław

Cywil

Cywil

  • Posty: 3
  • Dołączył(a): So 26 mar, 2011 22:21

PostN 27 mar, 2011 12:17

ok dzięki, poszperam jeszcze

Powrót do Armed Assault

Kto przegląda forum

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