Teraz jest N 19 kwi, 2026 15:27


Dziwny problem z ?(p1 Distance tp1<0.5)

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

Radeon

Pułkownik

Pułkownik

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

PostPn 14 lut, 2005 19:48

Słyszałeś o misji ORZEł ? tam w intrze był taki bajer (Misja zawarta w Platynowej edycji OFP) spróbuj coś zerżnąć :)
User of this number is currently dead. Resurrection in 5 minutes, please wait.
Offline
Avatar użytkownika

Winters

Kapral

Kapral

  • Posty: 55
  • Dołączył(a): So 18 wrz, 2004 05:56
  • Lokalizacja: Toccoa

PostPn 14 lut, 2005 19:52

Spróbuj za pomocą samego wyzwalacza. Nazwij jednostkę np. aP. Wstaw wyzwalacz na nazwij go np. wyzwalacz1. Ustaw aktywację na Ktokolwiek.

W polu Warunek wpisz: aP distance wyzwalacz1 < 0.5, a w polu aktywacja efekt, który chcesz uzyskać. I już!
"Papież? A ile on ma dywizji?" - J. Stalin
Offline
Avatar użytkownika

Przemo_212

Major

Major

  • Posty: 703
  • Dołączył(a): Wt 20 lip, 2004 18:59

PostPn 14 lut, 2005 19:54

Na szczęście znalazłem sposób, aby inaczej zrobić efekt, jaki chciałem za pomocą samych wyzwalaczy. Ale temat uznaje za otwarty, ponieważ już drugi raz przydał by mi się ten skrypt, kto wie może jeszcze będzie mi to potrzebne a nie będzie się dało tego zastąpić czymś innym

Spróbuj za pomocą samego wyzwalacza

On ju sobie poradyi. On to chce teraz to samo zrobić, tylko za pomocą skryptu ;)
Obrazek
Offline
Avatar użytkownika

JaFranek

Major

Major

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

PostPn 14 lut, 2005 20:55

W misji którą teraz robię wystarczyły wyzwalacze ( chodziło mi o to aby skrypt został aktywowany gdy wszystkie jednostki biedą na miejscach ich przeznaczenia ). Ale np. Gdy bym chciał zrobić efekt patrolowania danego terenu przez kilkanaście grup ( bez używania weypointów przez które wszystko stało by się mniej czytelne w edytorze) z wykorzystaniem tylko kilku markerów. Gdyby jednostka podeszła na np. 0.5m została by skierowana do innego punktu a tam znowu do następnego itd.

Niedziałajacy przykład


#Loop

abc DoMove getMarkerPos "xyz"
@(abc Distance xyz<0.5):
abc DoMove getMarkerPos "xyz2"
@(abc Distance xyz2<0.5):
abc DoMove getMarkerPos "xyz3"
?(abc Distance xyz3<0.5):Goto "Loop"


Dzięki temu powiniśmy mieć efekt chodzenia grupy w kółko ale przez @(abc Distance xyz<0.5): skrypt nie przechodzi dalej
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline
Avatar użytkownika

kondor

Major

Major

  • Posty: 880
  • Dołączył(a): Pt 11 lut, 2005 04:00
  • Lokalizacja: Berlin (wschodni)

Re: Dziwny problem z ?(p1 Distance tp1<0.5)

PostWt 15 lut, 2005 22:12

hej! (pierwszy post)

...
#Loop

~0.1

?(p1 Distance tp1<0.5):Goto "Loop"

vv=true

Exit


jestem poczatkujacy i nie czaje wszystkiego, ale nie jestem do konca pewny, czy marker jest obiektem (moze sie myle), a funkcja distance (wg specyfikacji na ofp.bmj.pl) ma za argumenty 2 obiekty

#Loop

_w=MarkerPos tp1

_d=p1 Distance _w


~0.1

?(_d>1):Goto "Loop"

vv=true

Exit

wiec tu tym bardziej jest zle, bo tu wstawiles jako argument wektor (pozycje).
Innym powodem (tez nie jestem pewny) moze byc (w pierwszym skrypcie) warunek. -distance przyjmuje wartosc liczbowa, ale na ofp.bmj.pl nie jest napisane, czy na pewno rzeczywista, czy tylko calkowita. Jesli wynik jest jednak w calkowitych, to tamten warunek jest niepoprawny, 0.5 nie da sie porownac z liczba calkowita - musisz zamienic na 1
Offline
Avatar użytkownika

JaFranek

Major

Major

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

PostŚr 16 lut, 2005 17:26

No to ja już nie wiem. Co do tego "0.5" to tylko przykład a w rzeczywistości brałem większe jednostki ( całkowite ) aby łatwiej było mi trafić w miejsce markera więc odpada. Myślę że problem jest w GetMarkerPos "tp1" (jest to tosamo co MarkerPos tp1 ) ponieważ przyjmuje on wartość w [x,y,z]
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline
Avatar użytkownika

Panda

Chorąży

Chorąży

  • Posty: 179
  • Dołączył(a): N 09 sty, 2005 18:33
  • Lokalizacja: Warszawa

PostCz 17 lut, 2005 13:04

jestem poczatkujacy i nie czaje wszystkiego, ale nie jestem do konca pewny, czy marker jest obiektem (moze sie myle), a funkcja distance (wg specyfikacji na ofp.bmj.pl) ma za argumenty 2 obiekty

Marker NIE JEST obiektem.

Spróbuj tak (jeśli koniecznie to musi być marker):
_pos = "logic" camcreate getmarkerpos /marker/
@(_pos distance /jednostka/</odległość/)
/warunek/=true
exit
TEST
OMGWTFBBQ
Offline
Avatar użytkownika

JaFranek

Major

Major

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

PostCz 17 lut, 2005 15:20

Panda napisał(a):Spróbuj tak (jeśli koniecznie to musi być marker):
_pos = "logic" camcreate getmarkerpos /marker/
@(_pos distance /jednostka/</odległość/)

/warunek/=true
exit


Jesteś pewien, że to powinno działać? Bo mi jakoś nie chce :?

Ostatnio wymyśliłem kulfona, który również niestety nie działa, ale może kogoś nakieruje na właściwe rozwiązanie :idea:

_oa = GetPos p1 Select 0
_ob = GetPos p1 Select 1
_oc = GetPos p1 Select 2

#Dalej3

p1 DoMove getMarkerPos "w1"

#Loop

_ox = GetMarkerPos w1 Select 0
_oy = GetMarkerPos w1 Select 1
_oz = GetMarkerPos w1 Select 2



_d = (_ox - _oa) + 1
_e = _ox - _oa
_f = (_oy - _ob) + 1
_g = _oy - _ob

?(_d<2):Goto "Dalej"
?(_e<2):Goto "Dalej"
?(_f<2):Goto "Dalej"
?(_g<2):Goto "Dalej"

~0.05

@Goto "Loop"

#Loop2

#Dalej


p1 DoMove getMarkerPos "w2"

_ox = GetMarkerPos w2 Select 0
_oy = GetMarkerPos w2 Select 1
_oz = GetMarkerPos w2 Select 2

_d = (_ox - _oa) + 1
_e = _ox - _oa
_f = (_oy - _ob) + 1
_g = _oy - _ob

?(_d = 0):Goto "Dalej2"
?(_e = 0):Goto "Dalej2"
?(_f = 0):Goto "Dalej2"
?(_g = 0):Goto "Dalej2"

~0.05

@Goto "Loop2"

#Dalej2
#Loop3

p1 DoMove getMarkerPos "w3"

_ox = GetMarkerPos w3 Select 0
_oy = GetMarkerPos w3 Select 1
_oz = GetMarkerPos w3 Select 2

_d = (_ox - _oa) + 1
_e = _ox - _oa
_f = (_oy - _ob) + 1
_g = _oy - _ob

?(_d = 0):Goto "Dalej3"
?(_e = 0):Goto "Dalej3"
?(_f = 0):Goto "Dalej3"
?(_g = 0):Goto "Dalej3"

~0.05

@Goto "Loop3"


p1 - jednostka
w1, w2, w3 - markery
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline
Avatar użytkownika

Panda

Chorąży

Chorąży

  • Posty: 179
  • Dołączył(a): N 09 sty, 2005 18:33
  • Lokalizacja: Warszawa

PostCz 17 lut, 2005 18:48

Spróbuj tak (jeśli koniecznie to musi być marker):
_pos = "logic" camcreate getmarkerpos /marker/
@(_pos distance /jednostka/</odległość/)

/warunek/=true
exit
Jesteś pewien, że to powinno działać? Bo mi jakoś nie chce



Niestety rzeczywiście nie działa. Skrypt był OK dla obiektu ("getPos Ap"), niestety po zastąpieniu "getMarkerPos mark1" przestaje działać.
Pomimo, że zmieniam tylko jeden element - może to polecenie źle działa, bo nie widziałem jeszcze, żeby go ktoś w misjach używał...

Jedyne co można poradzić, to przestać używać GetMarkerPos i po prostu umieszczać obiekty GameLogic - wtedy wszystko działa.

Czegoś wciąż nie rozumiem: mianowicie po co koniecznie używać markera? Chodzi o to, żeby punkty były widoczne dla gracza? Jeżeli nie o to chodzi to przecież różnica jest żadna (poza tym, że dla GameLogic działa).
Offline
Avatar użytkownika

JaFranek

Major

Major

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

PostCz 17 lut, 2005 19:35

Ponieważ na początku używałem markerów i nie wiedziałem, że biedzie taki problem. Ale teraz doszyłem do wniosku, że równie dobrze mogę użyć wyzwalaczy.
Nie pytaj, co OF może zrobić dla ciebie, ale co Ty możesz zrobić dla OF
Offline

PoP

Chorąży

Chorąży

  • Posty: 238
  • Dołączył(a): Pt 14 sty, 2005 17:11

PostPt 18 lut, 2005 10:40

Ale przeciez wystarczy dac nazwe markera w cudzyslowy :)
Poprzednia strona

Powrót do Operation Flashpoint

Kto przegląda forum

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

cron