Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-13 13:48:30
Poszukuje takiego opcodu. Znalazłem tylko taki :
Kod:
02E3: 188@ = car 3@ speed
, ale on odczytuje bieżącą prędkość a ja potrzebuje takiego który sprawdza czy jedziemy mniej niż np. 50 i drugi czy jedziemy więcej niż np. 100
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-13 14:06:06
No to nic nie stoi na przeszkodzie, żebyś sobie porównał odczytaną wartość z inną:
Kod:
02E3: 188@ = car
3@ speed
if
188@ > 15.0
then
end
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-13 14:33:53
Czyli coś takiego? Czy ta pętla będzie zawsze sprawdzać czy jedziemy tą prędkością czy np. podczas wykonywania dalszego kodu już nie?
Kod:
:predk
wait 10
if
02E3: 188@ = car 3@ speed
if
188@ > 15.0
jf @predk
dalszy kod
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-13 14:46:50
Ten kod jest w ogóle niepoprawny, bo nie zamknąłeś jednego warunku
if. Jeżeli chcesz, aby skrypt cały czas sprawdzał prędkość, to sprawdzenie musisz umieścić w pętli i później wrócić do tej pętli. Odczytywanie wartości prędkości też musi być zapętlone.
Kod:
:sprawdz
wait 0
02E3: 188@ = car
3@ speed
if
188@ > 15.0
jf @sprawdz
@sprawdz
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-13 14:54:53
I to będzie sprawdzało na okradło czy mamy taką prędkość nawet jak dalszy kod będzie trwał minute to podczas tej minuty też będzie sprawdzane?
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-13 14:56:11
Nie, ponowne sprawdzenie będzie dopiero po wykonaniu jump @sprawdz.
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-13 15:04:04
A jak zrobić by na okrągło sprawdzało?
Nie zależnie czy dalszy kod trwa minute czy mniej. Zawsze sprawdza. Nie ważne co się dzieje w kodzie. Próbowałem tak, ale nie działa.
Kod:
while true
wait 0
02E3: 188@ = car 3@ speed
if
188@ > 15.0
and
___________________
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2011-11-13 17:45:01
Nie można sprawdzać "nieważne co się dzieje w kodzie", musisz robić to sam w pętli.
___________________
Moderator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-13 19:46:49
No to zrobiłem pętle , ale ona nie działa przez cały skrypty tylko w tym momencie co ją wstawię. Dlaczego tak jest? Można jakoś to zrobić inaczej?
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-13 19:58:37
ToyotaSupra napisał(a):
Dlaczego tak jest?
Bo kod jest wykonywany po kolei.
Trzeba całą operację podzielić sobie na pomniejsze, a jeżeli korzystasz z instrukcji
wait, to musisz się przerzucić na wbudowane timery. Operacje możesz sobie podzielić stosując tzw. flagi, czyli w tym przypadku zmienne, które sobie będziesz odpowiednio ustawiał. Np.
Kod:
0@ = 0 true
wait 0
02E3: 1@ = car
3@ speed
if
1@ > 15.0
then
0@ = 1
else
0@ = 0
end
if
0@ == 1
then
32@ = 0 if
0@ == 1
32@ > 2000
then
end
Przeanalizuj sobie spokojnie kod, zrozum jaka jest tego idea i zastosuj to do swojego przypadku.
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-13 20:12:59
Oki dzięki. Pokombinuje coś z tym. Zobaczymy co wyjdzie.
___________________
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-14 17:45:03
Przeglądałem kilka razy ten kod co napisałeś ale go nie kapuje zbytnio. Ja się ,,bawię,, skryptami dopiero tydzień a Wy kilka lat więc jeszcze troche i moze zrozumiem co nie co.
Mam inny pomysł. Mamy dwa pliki misja.cm i startmisja.cs. W cm jest cała misja [tak jak
tu]
a w cs
Kod:
{$CLEO .cs}
0A94: start_custom_mission "mission"
petla sprawdzajaca czy wykonujemy tamta misje
petla sprawdzajaca ile jedziemy
. Dało by tak zrobić?
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-14 18:08:07
No jak nie miałeś styczności z żadnym językiem programowania, ani językiem skryptowym, to może być to dla ciebie niejasne.
Co do Twojego pomysłu - nie bardzo. Da się sprawdzić, czy misja jest włączona poprzez ustawienie globalnej flagi $ONMISSION, ale nijak ma się to do sprawdzenia prędkości. Nie ma prostego sposobu na odczytanie uchwytu pojazdu z innego skryptu.
Kod SCM jest wykonywany po kolei i nie można zrobić sprawdzenia "w tle", więc musisz podzielić swój kod na kilka sekcji i sterować nimi poprzez flagi, tak jak pokazałem w poprzednim poście.
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-14 18:24:27
No niestety nie miałem żadnej styczności.
Szkoda,ze nie da rady. Pokombinuje jakoś możne wyjdzie
___________________
Postów:
294
Dołączył:
2011-07-27
Napisano dnia: 2011-11-15 16:22:45
Ja mam takiego moda który daje nam 2 gwiazdki poszukiwań jak przekroczymy daną prędkość na danym obszarze. Nie wiem czy o to ci chodzi...