Teraz jest So 27 kwi, 2024 21:14


SetUnitPos - Czyli jak sprawić aby jednostka stała

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

Matte

Chorąży

Chorąży

  • Posty: 246
  • Dołączył(a): Pn 28 lis, 2005 19:09

SetUnitPos - Czyli jak sprawić aby jednostka stała

PostSo 13 sty, 2007 19:40

Witam,To mój pierwszy problem w dziale edytor


Biki napisał(a):Description:
Set unit position rules. Mode may be one of:

* "DOWN" - person goes prone and stays prone.
* "UP" - person stands and stays standing.
* "AUTO" - person chooses mode according to circumstances.

In ArmA are values set by this command immediately switched back to "AUTO".

Wniosek z tego taki że w ArmA komenda "SetUnitPos" nie działa,i tu nasuwa sie moje pytanie czy jest jakaś możliwość zrobienia tego w inny sposób.
Dodam że używałem opcji szukaj :]
Obrazek
Offline
Avatar użytkownika

Radeon

Pułkownik

Pułkownik

  • Posty: 1442
  • Dołączył(a): N 01 sie, 2004 14:10
  • Lokalizacja: Starogard Gdański

PostSo 13 sty, 2007 19:47

A w jakich okolicznościach postać ma stać?
Wiem, że SetUnitPos nie zbyt dobrze działa, może wcale? Nie ważne.
Możesz mu dać SetBehaviour "Careless", lub dać wrogom SetCaptvie True. Jedyne co mi przychodzi do głowy.
User of this number is currently dead. Resurrection in 5 minutes, please wait.
Offline
Avatar użytkownika

Matte

Chorąży

Chorąży

  • Posty: 246
  • Dołączył(a): Pn 28 lis, 2005 19:09

PostSo 13 sty, 2007 19:57

Chcę postawić hamerykańca na wieży w bazie,która będzie atakowana przez AWS...
za pierwszym razem AI pobiegło do przodu i się zabiło więc w inicjacji dałem
Kod: Zaznacz cały
this disableAI"move"

Ai zostało na wieży jedna było by za pięknie ten drań musiał się położyć
Kod: Zaznacz cały
this disableAI"move" ; this SetUnitPos "UP"

No i zonk, NIE DZIAłA
szukałem szukałem aż dotarłem TU
No i znalazłem to co napisałem w pierwszym poście...
Ps.Radek gratuluje świetnego testu
Obrazek
Offline
Avatar użytkownika

Jon

Generał

Generał

  • Posty: 10721
  • Dołączył(a): Wt 20 lip, 2004 00:43
  • Lokalizacja: Kraków

PostN 14 sty, 2007 00:53

Raduś, co Ty chrzanisz. Co ma SetCaptive true do SetUnitPos?

Matte, so far nie wiadomo co z tym zrobić - też się z tym męczyłem. Tak więc brawa dla BIS za spieprzenie kolejnej rzeczy.
http://www.pajacyk.pl

“Politics is supposed to be the second oldest profession. I have come to realize that it bears a very close resemblance to the first.”
~ Ronald Reagan
Offline
Avatar użytkownika

Radeon

Pułkownik

Pułkownik

  • Posty: 1442
  • Dołączył(a): N 01 sie, 2004 14:10
  • Lokalizacja: Starogard Gdański

PostN 14 sty, 2007 02:28

@Jon
Nie wiedziałem w jakich okolicznościach ma stać vojak. Ale jeżeli on nie będzie uznawał wrogów za wrogów, czyli wpiszesz im SetCaptive to i nie będzie padał na ziemie. :twisted:
Przyznam... Głupie to xD. Dobra masz rację ;)



Matte napisał(a):Ps.Radek gratuluje świetnego testu


Dzięki. :)
User of this number is currently dead. Resurrection in 5 minutes, please wait.
Offline
Avatar użytkownika

reyhard

Pułkownik

Pułkownik

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

PostN 14 sty, 2007 10:55

Można by przerobić skrypt z AiCover pack'a, kwestia zmiany syntaxu (zmiana nazw animacji) i struktury budowy w paru miejscach. Ja zbytnio czasu do przerabiania tego nie mam, na razie się zajmuje jeszcze flashpointowym projektem.

Jako że soldat ma stać na wieżyczce to jasne jest że nie od samego początku będzie kucał i wstawał robimy skrypt który włącz ten tryb w przypadku gdy AI zauważy jakieś niebezpieczeństwo.

Kod: Zaznacz cały
_unit = _this select 0
_stance = _this select 1
_mode = "crouch"
?(_unit == off):goto "ofLoop"
?(_stance == "stand"):_mode = "stand"
#loop
?(behaviour _unit == "Combat" OR behaviour _unit == "Aware"):["init",_unit,_mode] exec "AI\AIcover.sqs";exit
~1
goto "loop"



Kod: Zaznacz cały
; AIcover3.0 by bdfy
;written basing on TRENCH2.0 by Blanco
;to launch add the following into init line of _any) unit in a group
;["init",this,"crouch"] exec "AI\AIcover.sqs";
;you have to place directiries "AI" and "func" from demo-misison into your own mission

;you can also use "stand" as third parameter - it suits for hiding


;run the appropriate script section
goto (_this select 0)
;Put all units in the group in a crouch position and ungroup each one of them. 
;========================================================================

#init
_unit = _this select 1
_var = _this select 2


_grp = group _unit
_units = units _grp

"_x setbehaviour ""SAFE""" foreach units _grp

_c = count _units

_i = 0

#cycle
_unit = _Units select _i
_dir = getdir _unit
?(_unit == player):goto "skip"
["disableAI",_unit] exec  "AI\AIcover.sqs"

;_unit AddEventHandler ["fired", {_this exec "AI\ammo.sqs"}]
;_unit disableAI "Target"

["cover",_unit,_var] exec "AI\AIcover.sqs"
#skip
_i = _i + 1
?_i < _c : goto "cycle"
exit


#cover
_unit = _this select 1
_var = _this select 2

?(_var=="crouch"):goto "crouchloop"
?(_var=="stand"):goto "standloop"
hint "AIcover parameter error"
exit

#crouchloop
?(!alive _unit):exit

_unit setbehaviour "combat"
_unit setunitpos "down"
;time in prone pos
~random(7) 
_unit setunitpos "up"
_unit playmove "lyingtocrouch"
_unit playmove ""
; time in crouch pos
~random(10)
goto "crouchloop"


#standloop
?(!alive _unit):exit
;_hc = "logic" createVehicle [getpos _unit select 0, getpos _unit select 1,0]
;_height = _unit distance _hc
;hint format["%1",_height]
;_prevPos = [getpos _unit select 0,getpos _unit select 1,_height]
;deleteVehicle _hc

_unit setbehaviour "combat"
_unit setunitpos "up"
;time in stand pos
~random(7)+4
;_unit setunitpos "up"
_unit playmove "combattocrouch"
_unit playmove ""
;_unit setpos _prevPos
; time in crouch pos
~random(15)
goto "standloop"

#disableAI
?(!alive _unit):exit
_unit = _this select 1
_unit disableAI "move"
~1
goto "disableAI"






[HAV] zmieniłem Ci tagi... emoty Ci się do skryptu wkradły ;-)
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

Sejtan

Major

Major

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

PostN 14 sty, 2007 14:32

Rey...

Kod: Zaznacz cały
_unit setunitpos "up"


To niestety w ArmA nie działa. Znalazłem trzy tematy, które są właśnie o takich problemach. Ja nie wertowałem tego od dechy do dechy bo mój english jest za słaby. Ztego co zrozumiałem to ktoś tam osiągną zamierzony efekt tym:

Kod: Zaznacz cały
this setBehaviour "CARELESS"


i to w sumie by starczyło, ale dla pewności...

Kod: Zaznacz cały
this disableAI "MOVE"


To działa napewno (sam sprawdzałem), ale wojak tylko stoi i... tylko stoi :|
Chciałem go zmusić do strzelania:

Kod: Zaznacz cały
_unit doTarget  nazwa_wroga
_unit doFire nazwa_wroga


_unit weź mnie nie wkurzaj bo zasadze Ci kopa w d*** :P
... ale efektu nie przyniosło. :/
Offline
Avatar użytkownika

Matte

Chorąży

Chorąży

  • Posty: 246
  • Dołączył(a): Pn 28 lis, 2005 19:09

PostN 14 sty, 2007 15:27

DnA na BiForums napisał(a):The setUnitPos command will work properly again in the next patch

Zauważyli problem o dwa patche za późno
¬ródło
Obrazek
Offline
Avatar użytkownika

reyhard

Pułkownik

Pułkownik

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

PostN 14 sty, 2007 16:40

Rey...

Kod:
_unit setunitpos "up"


To niestety w ArmA nie działa. Znalazłem trzy tematy, które są właśnie o takich problemach. Ja nie wertowałem tego od dechy do dechy bo mój english jest za słaby. Ztego co zrozumiałem to ktoś tam osiągną zamierzony efekt tym:


Ależ ja doskonale o tym wiem, to jest żywcem wzięty skrypt z OFP który obecnie wykorzystuje do symulowania wartowników na wieżyczkach. W skrypcie chodzi o to, że co jakiś czas zostaje zmieniona animacja na stojącą co w połączeniu z this disableAI "Move" powinno dać wymierne efekty. Można jeszcze funkcje napisać która by obracała wartownika w przypadku flankowania przez gracza ale to już wyższa szkoła jazdy która prawdę powiedziawszy jest dość pracochłonna.
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

Jon

Generał

Generał

  • Posty: 10721
  • Dołączył(a): Wt 20 lip, 2004 00:43
  • Lokalizacja: Kraków

PostPn 22 sty, 2007 00:36

A czy to nie zrobi laga?
http://www.pajacyk.pl

“Politics is supposed to be the second oldest profession. I have come to realize that it bears a very close resemblance to the first.”
~ Ronald Reagan
Offline

sten

Cywil

Cywil

  • Posty: 1
  • Dołączył(a): Śr 04 kwi, 2007 21:59

PostŚr 04 kwi, 2007 22:15

Witam serdecznie. U mnie skrypt działa. Może chodzi o kolejność zapisu:
this SetUnitPos "UP"; this Disable AI "MOVE" .
żołnierze stoją na wieżach obserwacyjnych i się ostro acz skutecznie ostrzeliwują. :) Mam to w misji no i dla pewności przed chwilą sprawdzałem.
Offline
Avatar użytkownika

Severb

Porucznik

Porucznik

  • Posty: 385
  • Dołączył(a): N 15 paź, 2006 00:45
  • Lokalizacja: Die Warschau

PostŚr 04 kwi, 2007 22:16

Misiu, spójrz na datę ostatniego posta. Wtedy jeszcze nie było patcha 1.05 :/
Obrazek
Obrazek
Obrazek
Offline
Avatar użytkownika

Kireta

Porucznik

Porucznik

  • Posty: 384
  • Dołączył(a): Pn 18 gru, 2006 01:33

PostŚr 04 kwi, 2007 22:19

Spójż na daty postów. Kiedy je pisali dotępny był tylko patch 1.02 (albo dopiero 1.01). W patchu 1.05 funkcja ta została naprawiona i działa normalnie.
"I am the bringer of death. Fall to your knees and beg for mercy... Or give me a sandwich, I'm pretty hungry."
--The Vault Dweller

Powrót do Armed Assault

Kto przegląda forum

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