Teraz jest So 28 lut, 2026 17:46


Saper...

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

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

Saper...

PostSo 21 cze, 2008 16:29

Sytuacja: VC złapało amerykańskiego żołnierza i obwiązało minami. Podchodzi do niego gracz i od momentu aktywowania wyzwalacza ma 10 sekund na podjęcie decyzji, który przeciąć kabel, by rozbroić bombę (lub czy zwiewać).

Pytanie: Jak to zrobić? :]

Mam już obminowanego gościa i sytuacje, w której wybucha. Wydaje mi się, że najlepszym rozwiązaniem tego problemu byłoby menu akcji. Każda akacja powoduje uklęknięcie gracza (animacja leczącego medyka) i każda ma 60% powodzenia, że materiał wybuchnie.
Jeśli całość wybuchnie lub gracz się oddali akcje usuwane są z menu akcji gracza.
Pomoże mi ktoś w napisaniu tego skryptu
(tylko te części: pojawiają się akcje w menu akcji oraz znikają gdy gracz się oddali lub postać wybuchnie oraz, że powodzenie gracza w rozbrajaniu wynosi 60%)

Efekt samego wybuchu
Kod: Zaznacz cały
_AmmoType = "Heat120"
_Unit = _this select 0

_Explosion = GetPos _Unit

_cx = _Explosion select 0
_cy = _Explosion select 1
_cz = _Explosion select 2

_tempObj = _AmmoType camCreate[_cx, _cy, _cz]
~0.01
_tempobj = objNull

exit
Obrazek
Offline
Avatar użytkownika

Remcio

Major

Major

  • Posty: 500
  • Dołączył(a): N 25 lip, 2004 20:54
  • Lokalizacja: Brwinów

PostSo 21 cze, 2008 17:33

To Ci się przyda do dodawania akcji do menu.

A To pomoże Ci z losowością wybuchu. Mam nadzieję, że sam sobie poradzisz z przerobieniem tych komend tak, by Ci pasowały :-)
Obrazek
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostSo 21 cze, 2008 18:31

Takie coś wysmażyłem:

Kod: Zaznacz cały
Warunek: (player distance uratowany) < 2

Przy aktywacji:
HintC "Wietnamczycy obwiązali minami jedynego ocalonego żołnierza. Spróbuj rozbroić to cholerstwo albo uciekaj!"
blue = player addAction ["Przetnij niebieski przewód!","blue.sqs"]
red = player addAction ["Przetnij czerwony przewód!","red.sqs"] 

przy deaktywacji:
player removeaction blue
player removeaction red


Kod: Zaznacz cały
"blue.sqs"

_los = random 3
?(_los <= 1):
_AmmoType = "Heat120"
_Unit = _this select 0

_Explosion = GetPos _Unit

_cx = _Explosion select 0
_cy = _Explosion select 1
_cz = _Explosion select 2

_tempObj = _AmmoType camCreate[_cx, _cy, _cz]
~0.01
_tempobj = objNull

exit

?(_los > 1 AND _los <= 3):
TitleCut ["Kuźwa, udało się! Nie wybuchło!","PLAIN DOWN",0.5]

?(_los > 3 AND _los <= 5):
TitleCut ["Kuźwa, udało się! Nie wybuchło!","PLAIN DOWN",0.5]


Kod: Zaznacz cały
red.sqs

_los = random 3
?(_los <= 1):
_AmmoType = "Heat120"
_Unit = _this select 0

_Explosion = GetPos _Unit

_cx = _Explosion select 0
_cy = _Explosion select 1
_cz = _Explosion select 2

_tempObj = _AmmoType camCreate[_cx, _cy, _cz]
~0.01
_tempobj = objNull

exit

?(_los > 1 AND _los <= 3):
TitleCut ["Kuźwa, udało się! Nie wybuchło!","PLAIN DOWN",0.5]

?(_los > 3 AND _los <= 5):
TitleCut ["Kuźwa, udało się! Nie wybuchło!","PLAIN DOWN",0.5]


Dobrze? Największe wątpliwości mam do deaktywacji akcji. Kiedy i czy w ogóle ono nastąpi? I jak zrobić by deaktywowały się po "zużyciu" ich i po oddaleniu od siebie dwóch gości?
Obrazek
Offline
Avatar użytkownika

Remcio

Major

Major

  • Posty: 500
  • Dołączył(a): N 25 lip, 2004 20:54
  • Lokalizacja: Brwinów

PostSo 21 cze, 2008 21:31

Na oko powinno działać. Ale jeśli oba skrypty mają taką samą zawartość, to chyba nie ma sensu tak tego motać. Proponuję obiema decyzjami (niebieski i czerwony przewód) wywoływać jeden skrypt, a w nim coś takiego:

Kod: Zaznacz cały
wybuch.sqs
_los = random 3
?(_los <= 1): goto "umrzyj"
?(_los > 1 AND _los <= 3): goto "przezyj"
?(_los > 3 AND _los <= 5): goto "przezyj"

#umrzyj
_AmmoType = "Heat120"
_Unit = _this select 0

_Explosion = GetPos _Unit

_cx = _Explosion select 0
_cy = _Explosion select 1
_cz = _Explosion select 2

_tempObj = _AmmoType camCreate[_cx, _cy, _cz]
~0.01
_tempobj = objNull
exit
#przezyj
TitleCut ["Kuźwa, udało się! Nie wybuchło!","PLAIN DOWN",0.5]
~5
exit
Obrazek
Offline

archiee

Chorąży

Chorąży

  • Posty: 100
  • Dołączył(a): Cz 16 mar, 2006 15:23
  • Lokalizacja: Łódź

PostSo 21 cze, 2008 23:37

Proponowałbym jeszcze przy #umrzyj zmienić _AmmoType na "Shell120", albo dopisać gdzieś _Unit setdamage 1, aby mieć stuprocentową pewność, że gracz zginie przy wybuchu. ;)
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostN 22 cze, 2008 00:34

No właśnie chodzi raczej o to, aby jako tako szanse gracz miał :]
Obrazek
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostPn 23 cze, 2008 19:29

Wszystko super śmiga oprócz dwóch rzeczy.
Po pierwsze po "zużyciu" jednej akcji nie znikają one.
Po drugie jak zrobić by bez względu na gracza wyczyny mina wybuchła po 5 sekundach i akcje znikły?
Obrazek
Offline
Avatar użytkownika

Remcio

Major

Major

  • Posty: 500
  • Dołączył(a): N 25 lip, 2004 20:54
  • Lokalizacja: Brwinów

PostPn 23 cze, 2008 20:15

Bo Ci tam brakuje linijek usuwający akcje. W dezaktywacji wrzuć to:

Kod: Zaznacz cały
player removeAction Act; Act = Act + 1


Bo to usunie wszystkie dodatkowe akcje z menu.

I czy stworzyłeś wyzwalacz z warunkiem true i "przy aktywacji"
Kod: Zaznacz cały
Act = true; Act = 0
?
Obrazek
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostPn 23 cze, 2008 23:07

Nie, nie stworzyłem.
Zaraz wprowadzę poprawki i powiem co i jak.


EDIT: Coś robię źle tylko nie mam pojęcia co :co:

Pierwszy wyzwalacz:

warunek
Kod: Zaznacz cały
(player distance r1) < 3


przy aktywacji
Kod: Zaznacz cały
[] exec "bum1.sqs"


przy dezaktywacji
Kod: Zaznacz cały
player removeaction blue; player removeaction red

lub
Kod: Zaznacz cały
player removeAction Act; Act = Act + 1

lub
Kod: Zaznacz cały
player removeaction blue; player removeaction red; player removeAction Act; Act = Act + 1


Zawartość bum1.sqs
Kod: Zaznacz cały
blue = player addAction ["Przetnij niebieski przewód!","blue.sqs"]
red = player addAction ["Przetnij czerwony przewód!","red.sqs"]


obok daje drugi wyzwalacz:
warunek
Kod: Zaznacz cały
true

przy aktwacji:
Kod: Zaznacz cały
Act = true; Act = 0


I nie chce dalej wykasować akcji z menu akcji :cry:
Obrazek
Offline
Avatar użytkownika

Remcio

Major

Major

  • Posty: 500
  • Dołączył(a): N 25 lip, 2004 20:54
  • Lokalizacja: Brwinów

PostWt 24 cze, 2008 11:22

Ok, już wiem co jest nie tak.
W dezaktywacji pierwszego wyzwalacza musisz wpisać
Kod: Zaznacz cały
player removeAction Act; Act = Act + 1; player removeAction Act; Act = Act + 1

koniecznie dwa razy, ponieważ ta komenda pojedynczo usuwa tylko jedną akcjęz menu.
To sprawi, że po odejściu od kolesia R1 akcje z menu znikną.
I musisz na samym początku skryptu "red.sqs" oraz skryptu "blue.sqs" tak samo - powtórzyć komendę, czyli wpisać
Kod: Zaznacz cały
player removeAction Act; Act = Act + 1
player removeAction Act; Act = Act + 1


I teraz już musi wszystko działać, bo sprawdziłem u siebie.


Ah! I w "bum1.sqs" dla pewności zamień zawartość
Kod: Zaznacz cały
blue = player addAction ["Przetnij niebieski przewód!","blue.sqs"]
red = player addAction ["Przetnij czerwony przewód!","red.sqs"]

na
Kod: Zaznacz cały
player addAction ["Przetnij niebieski przewód!","blue.sqs"]
player addAction ["Przetnij czerwony przewód!","red.sqs"]
Obrazek
Offline
Avatar użytkownika

LostBeyondRetri

Porucznik

Porucznik

  • Posty: 254
  • Dołączył(a): Pt 08 cze, 2007 22:22
  • Lokalizacja: Stąd?

PostWt 24 cze, 2008 18:16

Remcio, trochę pomyliłem, bo tam zamiast blue.sqs i red.sqs jest twój wybuch.sqs
Czyli rozumiem, że wszystko robię tak samo tylko, że z wybuch.sqs?
Sprawdzę i napiszę co i jak;)

EDIT: DZIAłA!!
Obrazek

Powrót do Operation Flashpoint

Kto przegląda forum

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