Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-08 19:40:31
Jaki jest opcode na strefę? Taką że po wjechaniu w nią przez gracza coś się dzieje.
Szukałem w bazie ale nie wiem którego użyć
___________________
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2011-11-08 20:11:02
To może poeksperymentuj z tymi, które znalazłeś? Przecież jak mod scrashuje, PC nie wybucha.
___________________
Moderator
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-08 20:13:46
W pierwszym tutorialu o tworzeniu misji jest przykład zastosowania sfery.
Tworzenie Misji - Podstawy
Sferę można też utworzyć bezpośrednio podczas sprawdzenia, czy gracz dotarł do danego miejsca. Wszystko jest opisane w bazie opcodów:
Opcode 00EC
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-09 19:05:16
Więc napisałem coś takiego
Kod:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
00EC: actor $PLAYER_ACTOR sphere 1 near_point 2489.369 -1669.922 radius 80.0 80.0
:petla1
wait 10
if
0103: actor $PLAYER_ACTOR in_sphere 2489.369 -1669.922 13 radius 80.0 80.0 3.0 sphere 0 stopped_in_car
wait 10000
nie jest skończony ponieważ nie wiem jak dodać po
wait 10000 by w tym miejscu nastąpił wybuch
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-09 19:57:28
Człowieku, nikt nie będzie zgadywał, o co ci chodzi. Sprecyzuj, co chcesz zrobić. Jaki to ma być wybuch? Samochód ma eksplodować, czy wybuch w określonym miejscu?
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-09 20:03:20
No napisałem wybuch. Normalny w tym miejscu. Nie żadnego obiektu czy auta tylko w tej strefie
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-09 20:13:37
Zinterpretowałem "w tym miejscu" jako odwołanie do miejsca w kodzie źródłowym, bo napisałeś to odnośnie instrukcji
wait.
Wybuch w określonym miejscu możesz utworzyć przy pomocy opcodu
0948.
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-10 18:05:04
Napisałem coś takiego, ale wybuch następuje niezależnie od tego czy gracz był w tym punkcie czy nie. PO włączeniu gry po 20 s następuje wybuch. Dlaczego nie następuje po 20s wtedy gdy gracz dojedzie do tego punktu ?
Kod:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
00EC: actor $PLAYER_ACTOR 1 near_point 2489.897 -1669.733 radius 3.0 3.0
wait 10
if
0103: actor $PLAYER_ACTOR in_sphere 2489.897 -1669.733 13.33 radius 3.0 3.0 3.0 sphere 0 stopped_in_car
wait 20000
0565: create_explosion_at 2489.897 -1669.733 13.33 type 11
0A93: end_custom_thread
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-10 19:14:13
Proszę, przeczytaj podstawy tworzenia w SCM, dokładniej chodzi mi o
poradnik o pętlach. Wtedy będziesz wiedział, co jest nie tak.
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-10 21:56:07
Napisałem coś takiego ale działa to tylko wtedy gdy gracz jest przez te 20s w tej strefie a ja chce by po wjechaniu w tą strefę {nieważne czy w niej jesteśmy czy już wyjechaliśmy} nastąpił po 20s wybuch. Jak to zrobić?
Kod:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
00EC: actor $PLAYER_ACTOR 1 near_point 2489.897 -1669.733 radius 30.0 30.0
wait 10
:NONAME_33
wait 10
if and
00EC: actor $PLAYER_ACTOR 1 near_point 2489.897 -1669.733 radius 30.0 30.0
Player.WantedLevel($PLAYER_CHAR) > 0
else_jump @NONAME_33
018A: 1@ = create_marker_checkpoint_at 2489.897 -1669.733 13.33
wait 20000
0565: create_soundless_explosion_at 2489.897 -1669.733 13.33 type 11
0A93: end_custom_thread
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-11 08:45:39
Kod jest napisany dobrze, odliczanie uruchamia się po wjechaniu w strefę. Gdzie potem jest gracz już nie ma znaczenia. Ten pierwszy opcode 00EC jest niepotrzebny, bo to funkcja sprawdzająca, a nie stosujesz tam żadnego
ifa.
Kod:
{
$CLEO .cs}
:NONAME_33
wait 0
if and
00EC: actor
$PLAYER_ACTOR 1 near_point 2489.897 -1669.733 radius 30.0 30.0
Player.WantedLevel(
$PLAYER_CHAR) > 0
else_jump @NONAME_33
018A: 1@ = create_marker_checkpoint_at 2489.897 -1669.733 13.33
wait 20000
0565: create_soundless_explosion_at 2489.897 -1669.733 13.33 type 11
0A93: end_custom_thread
Ewentualnie zamiast zwykłego
waita możesz zastosować wbudowany licznik (timer). Więcej o licznikach
tutaj.
Kod:
32@ = 0
:check1
wait 0
32@ >= 20000
jf @check1
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-11 12:53:30
Nie wiem co jest , ale po wklejeniu Twojego kodu gra zgłupiała. Tzn. Gdy wczytuje zapis to rozpoczyna nową grę a gdy rozpoczynam nową grę to wczytuje zapis. Po dotarciu do tego punktu wywala grę.
Dlaczego w moim skrypcie marker pojawia się po włączeniu gry a znika po tym jak nas goni policja? Przecież napisałem , że jak goni nas więcej niż 0 gwiazdek to wtedy tworzy marker.
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-11 12:58:20
Spróbuj z tym:
Kod:
{
$CLEO .cs}
:check
wait 10
if
Player.Defined(
$PLAYER_CHAR)
jf @check
:hasArrived
wait 0
if and
00EC: actor
$PLAYER_ACTOR 1 near_point 2489.897 -1669.733 radius 30.0 30.0
Player.WantedLevel(
$PLAYER_CHAR) > 0
jf @hasArrived
018A: 1@ = create_marker_checkpoint_at 2489.897 -1669.733 13.33
32@ = 0
:wait
wait 0
if
32@ >= 20000
jf @wait
0565: create_soundless_explosion_at 2489.897 -1669.733 13.33 type 11
0A93: end_custom_thread
Gra wywalała, bo zapomniałem o
if przy sprawdzaniu wartości timera.
___________________
Administrator
Postów:
536
Dołączył:
2011-04-12
Napisano dnia: 2011-11-11 13:07:28
Zadanie chceck nie zostało znalezione.
___________________
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-11-11 13:11:20
Mogłeś już sam poprawić tę literówkę :) Zaktualizowałem posta.
___________________
Administrator