Teraz jest Pn 23 cze, 2025 22:57


Warunki w skryptach

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

Marcin_BM

Porucznik

Porucznik

  • Posty: 330
  • Dołączył(a): N 25 lip, 2004 20:49

Warunki w skryptach

PostCz 24 lut, 2005 20:31

Jak napisa w skrypcie warunek i pozniej jego nastepstwo ??
Co oznaczaja symbole na poczatku niektorych warunkow "@" "?" ??
Ten który rzucił na mnie się niewiele szczęścia miał,Bo wypadł prosto mi na kły i krew trysnęła z rany
Offline
Avatar użytkownika

Ravq

Porucznik

Porucznik

  • Posty: 315
  • Dołączył(a): Wt 12 paź, 2004 14:36

PostCz 24 lut, 2005 20:46

ale o co ci chodzi? o cos np.; takiego?

Kod: Zaznacz cały
lol.sqs

base sidechat "macie juz dziewczyny?"
~3
ja sidechat "2 blondynki"
~3
base "dawac ja"
~3
exec "mam to gdzies.sqs"

Obrazek
Offline
Avatar użytkownika

Panda

Chorąży

Chorąży

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

PostCz 24 lut, 2005 20:50

~x
Wstrzymanie skryptu na x sekund:
Kod: Zaznacz cały
_s2 move getpos _p2
~_t
_s3 move getpos _p5
~_t
_s4 move getpos _p8

@(warunek)
Wstrzymuje skrypt do czasu spełnienia warunku:
Kod: Zaznacz cały
@(((_p1 distance _s1)>_groupspacing/2)&&(not DontfollowMe))

?(warunek):następstwo
Robi dokładnie to, na co wygląda:
Kod: Zaznacz cały
?!(canmove _heli):exit

"!" przed warynkiem logicznym znaczy "nieprawda że...", więc czyta się to tak:
"Jeżeli nieprawda że (canmove _heli) wyjdź"
Albo twożąc pętlę:
Kod: Zaznacz cały
_hCount=0
#hit
_hCount=_hCount+1
.....
?(_hcount<100):Goto "hit"
Ostatnio edytowano N 06 mar, 2005 21:25 przez Panda, łącznie edytowano 1 raz
Offline
Avatar użytkownika

Marcin_BM

Porucznik

Porucznik

  • Posty: 330
  • Dołączył(a): N 25 lip, 2004 20:49

PostCz 24 lut, 2005 21:13

to by byl poprawny skrypt ?? :

Kod: Zaznacz cały
#INIT
     
        _soldier = _this select 0

#BEGIN
         
         ?  ( _soldier hasweapon "M16" ) : goto "AMMO"

#AMMO
           
           _soldier setObjectTexture [0,""];
           
           goto "END";
#END
          ~1
   goto "BEGIN"


Jerry: Przypominam, że skrypty umieszczamy w tagach [ code ] [ /code ]
Ten który rzucił na mnie się niewiele szczęścia miał,Bo wypadł prosto mi na kły i krew trysnęła z rany
Offline

Oscypek

Major

Major

  • Posty: 858
  • Dołączył(a): Pn 01 lis, 2004 12:12
  • Lokalizacja: Maków Podhalański

PostCz 24 lut, 2005 21:16

Ułatw sobie prace :
#INIT

_soldier = _this select 0

#BEGIN

@( _soldier hasweapon "M16" )

#AMMO

_soldier setObjectTexture [0,""];

~1
goto "BEGIN"


Usunołem 3 rzeczy - jeśli to cały skrypt to nie będą potrzebne
Offline
Avatar użytkownika

Panda

Chorąży

Chorąży

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

PostCz 24 lut, 2005 22:51

Marcin_BM:
widzę, że temat się rozrasta. :) Widzę też, że jeszcze do Pascala nie doszliście w szkole.
Więc: Takie oto rzeczy:
Kod: Zaznacz cały
#INIT

To znaczniki (zakładki, bookmarks - nazywaj jak chcesz). To czy wstawiasz #init nie ma znaczenia - nie jest on potrzebny, skoro nie musisz się do niego odwoływać.
Skrypty w OFP działają jak taki np. dla Pascala: czyli są wykonywane w ścisłej kolejności linia po lini. W momencie kiedy pada polecenie
Kod: Zaznacz cały
Goto "init"
program nie wykonuje już dalszych poloeceń, tylko "przeskakuje" do linii tą zakładką wskazanej.
Dlatego "#INIT", "#AMMO" I "#END" nie są ci potrzebne.
Linie z zakładkami (bookmarks, tags) są i tak wykonywane, zgodnie z przebiegiem programu, dlatego test:
Kod: Zaznacz cały
         ?  ( _soldier hasweapon "M16" ) : goto "AMMO"

#AMMO
piszesz bez potrzeby. Bo popatrz: jeżeli zwrócona wartość to TRUE, to program przejdzie do #AMMO, czyli do następnej linii, natomiast jeżeli FALSE wtedy komenda GoTo "ammo" zostanie zignorowana, a tym samym zostanie wykonane następne polecenie, czyli zgodnie z naturalnym biegiem programu - następna linia. Efekt jest więc ten sam.
Podobnie ma się sprawa z
Kod: Zaznacz cały
           goto "END";
#END
          ~1
Jeżeli usunąć wszystko co nie wywiera żadnego efektu, to w skrypcie pozostanie:
Kod: Zaznacz cały
 _soldier = _this select 0
#BEGIN
      ?  ( _soldier hasweapon "M16" ) :  _soldier setObjectTexture [0,""]
      ~1
goto "BEGIN"

Przy czym pętla jest także zbędna, chyba że stwożyłeś drógi skrypt odmieniający teksturę z powrotem dla odwrotnego warunku. (Miłym zwyczjem na forum byłoby pisanie, co dany skrypt miał robić, a tak to się musimy domyślać...).
Jeżeli chcesz, aby skrypt zmieniał teksturę na "a" gdy Zołnierz weźmie M16, a potem na "b" gdy ją odłoży, to rób tak (chyba już wszystko rozumiesz, jak nie to pomyśl jeszcze):
Kod: Zaznacz cały
_soldier = _this select 0
#loop
@( _soldier hasweapon "M16" )
_soldier setObjectTexture [0,"a"]
@!( _soldier hasweapon "M16" )
_soldier setObjectTexture [0,"b"]
goto "loop"
Jeśli nie o to chodziło, to pisz - chętnie pomogę.
Offline
Avatar użytkownika

Marcin_BM

Porucznik

Porucznik

  • Posty: 330
  • Dołączył(a): N 25 lip, 2004 20:49

PostCz 24 lut, 2005 23:44

Jeśli nie o to chodziło, to pisz - chętnie pomogę.


Prawie o to , a co do skryptu :
Skrypt mi jest potrzebny do tego zeby na jednostce (wojaku) zrobic cos takiego ze jak wezmie sie bron albo lepiej jak wojak bedzie mial amunicje do km (tasmowa) to pojawi sie na nim wspomniana tasma amunicji (tak jak kolesie w Wietnamie czesto nosili) skrypt musi sie powtarzac tak aby byl caly czas aktywny (tj. jak bedzie mial amunicje oraz jak nie bedzie mial amunicji)
Zreszta chyba to sie nada :
Kod: Zaznacz cały
_soldier = _this select 0
#loop
@( _soldier hasweapon "M16" )
_soldier setObjectTexture [0,"a"]
@!( _soldier hasweapon "M16" )
_soldier setObjectTexture [0,"b"]
goto "loop"

tylko tra odrobine przerobic ale chyba wiem jak :grin:
Ten który rzucił na mnie się niewiele szczęścia miał,Bo wypadł prosto mi na kły i krew trysnęła z rany
Offline
Avatar użytkownika

Panda

Chorąży

Chorąży

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

PostPt 25 lut, 2005 14:50

Właściwy warunek to
Kod: Zaznacz cały
_soldier ammo"m60">0
Piszę, bo gdzie indziej ktoś napisał to z błędem.
Offline
Avatar użytkownika

Marcin_BM

Porucznik

Porucznik

  • Posty: 330
  • Dołączył(a): N 25 lip, 2004 20:49

PostN 06 mar, 2005 21:03

a zwrot jeżeli to OR ??
np może być tak :
Kod: Zaznacz cały
 _soldier ammo"M60">0 OR
 _soldier ammo"MP5">0
??
Ten który rzucił na mnie się niewiele szczęścia miał,Bo wypadł prosto mi na kły i krew trysnęła z rany
Offline

Oscypek

Major

Major

  • Posty: 858
  • Dołączył(a): Pn 01 lis, 2004 12:12
  • Lokalizacja: Maków Podhalański

PostN 06 mar, 2005 21:08

Skrypt nie wie co z tym zrobić
Brakuje ci "@" albo "?"
I chciałbym zapytać, skoro to jest temat o warunkach w skrypcie.
Jak działo to :
? (warunek)&&(warunek)
Offline
Avatar użytkownika

Panda

Chorąży

Chorąży

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

PostN 06 mar, 2005 21:17

Oscypek napisał(a):I chciałbym zapytać, skoro to jest temat o warunkach w skrypcie.
Jak działo to :
? (warunek)&&(warunek)

Nie działa, Oscypek, nie działa :D
Kod: Zaznacz cały
? ((warunek)&&(warunek)):skutek

Taka jest prawidłowa formuła. Skrypt sprawdzi i jeśli oba warunki są prawdziwe nastąpi skótek, po czym dalsze polecewnia zostaną zrealizowane normalnie. Jeśli nie to skótek nie nastąpi, ale dalsze polecewnia i tak zostaną zrealizowane normalnie.

W skryptach język jest ciut inny: "||" zamiast "or" i "&&" zamiast "and".
Znaczenie "@" oraz "?" było już wyjaśniane na tym forum: opcja "szukaj" czeka. Ewentualnie kilka postów wyżej... :wink:
Offline
Avatar użytkownika

Marcin_BM

Porucznik

Porucznik

  • Posty: 330
  • Dołączył(a): N 25 lip, 2004 20:49

PostN 06 mar, 2005 22:52

W skryptach język jest ciut inny: "||" zamiast "or" i "&&" zamiast "and".
Znaczenie "@" oraz "?" było już wyjaśniane na tym forum: opcja "szukaj" czeka. Ewentualnie kilka postów wyżej...

Mogłbyś mi napisąc jakis mały prosty przykład z "albo"
P.S co to jest na klawiaturze ?? :oops:
"||" zamiast "or"
Ten który rzucił na mnie się niewiele szczęścia miał,Bo wypadł prosto mi na kły i krew trysnęła z rany
Offline
Avatar użytkownika

Panda

Chorąży

Chorąży

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

PostN 06 mar, 2005 23:40

|| to dwa razy | - taki znaczek : \ (środkowy rząd na klawiaturze, tuż przy ENTER)+SHIFT

Przykłady dam z "żywego" skryptu.
Kod: Zaznacz cały
?((isengineon _heli)&&(alive _heli)&&((Getdammage _heli) >= _startlevel)):goto "burn"

Kod: Zaznacz cały
?(!(isengineon _heli)||_kk<10):goto"deleyingloop"
Online

xersius

Pułkownik

Pułkownik

  • Posty: 99987
  • Dołączył(a): Pn 29 lip, 2024 15:01

Re: Warunki w skryptach

Online

xersius

Pułkownik

Pułkownik

  • Posty: 99987
  • Dołączył(a): Pn 29 lip, 2024 15:01

Re: Warunki w skryptach

PostN 08 wrz, 2024 17:45

audiobookkeepercottageneteyesvisioneyesvisionsfactoringfeefilmzonesgadwallgaffertapegageboardgagrulegallductgalvanometricgangforemangangwayplatformgarbagechutegardeningleavegascauterygashbucketgasreturngatedsweepgaugemodelgaussianfiltergearpitchdiameter
geartreatinggeneralizedanalysisgeneralprovisionsgeophysicalprobegeriatricnursegetintoaflapgetthebouncehabeascorpushabituatehackedbolthackworkerhadronicannihilationhaemagglutininhailsquallhairyspherehalforderfringehalfsiblingshallofresidencehaltstatehandcodinghandportedheadhandradarhandsfreetelephone
hangonparthaphazardwindinghardalloyteethhardasironhardenedconcreteharmonicinteractionhartlaubgoosehatchholddownhaveafinetimehazardousatmosphereheadregulatorheartofgoldheatageingresistanceheatinggasheavydutymetalcuttingjacketedwalljapanesecedarjibtypecranejobabandonmentjobstressjogformationjointcapsulejointsealingmaterial
journallubricatorjuicecatcherjunctionofchannelsjusticiablehomicidejuxtapositiontwinkaposidiseasekeepagoodoffingkeepsmthinhandkentishglorykerbweightkerrrotationkeymanassurancekeyserumkickplatekillthefattedcalfkilowattsecondkingweakfishkinozoneskleinbottlekneejointknifesethouseknockonatomknowledgestate
kondoferromagnetlabeledgraphlaborracketlabourearningslabourleasinglaburnumtreelacingcourselacrimalpointlactogenicfactorlacunarycoefficientladletreatedironlaggingloadlaissezallerlambdatransitionlaminatedmateriallammasshootlamphouselancecorporallancingdielandingdoorlandmarksensorlandreformlanduseratio
languagelaboratorylargeheartlasercalibrationlaserlenslaserpulselatereventlatrinesergeantlayaboutleadcoatingleadingfirmlearningcurveleavewordmachinesensiblemagneticequatormagnetotelluricfieldmailinghousemajorconcernmammasdarlingmanagerialstaffmanipulatinghandmanualchokemedinfobooksmp3lists
nameresolutionnaphtheneseriesnarrowmouthednationalcensusnaturalfunctornavelseedneatplasternecroticcariesnegativefibrationneighbouringrightsobjectmoduleobservationballoonobstructivepatentoceanminingoctupolephononofflinesystemoffsetholderolibanumresinoidonesticketpackedspherespagingterminalpalatinebonespalmberry
papercoatingparaconvexgroupparasolmonoplaneparkingbrakepartfamilypartialmajorantquadruplewormqualityboosterquasimoneyquenchedsparkquodrecuperetrabbetledgeradialchaserradiationestimatorrailwaybridgerandomcolorationrapidgrowthrattlesnakemasterreachthroughregionreadingmagnifierrearchainrecessionconerecordedassignment
rectifiersubstationredemptionvaluereducingflangereferenceantigenregeneratedproteinreinvestmentplansafedrillingsagprofilesalestypeleasesamplingintervalsatellitehydrologyscarcecommodityscrapermatscrewingunitseawaterpumpsecondaryblocksecularclergyseismicefficiencyselectivediffusersemiasphalticfluxsemifinishmachiningspicetradespysale
stunguntacticaldiametertailstockcentertamecurvetapecorrectiontappingchucktaskreasoningtechnicalgradetelangiectaticlipomatelescopicdampertemperateclimatetemperedmeasuretenementbuildingtuchkasultramaficrockultraviolettesting
Następna strona

Powrót do Operation Flashpoint

Kto przegląda forum

Użytkownicy przeglądający ten dział: xersius i 14 gości