Czy wiesz, że... możesz podsyłać newsy, artykuły, pliki i zdjęcia?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Postów: 878 Dołączył: 2009-01-20
#
Tego w ogóle nie ruszasz, to zmienne już zdefiniowane w main.scm. W CLEO możesz z nich korzystać w normalne postaci $PLAYER_ACTOR. Chodzi o to, żebyś sobie nie wymyślał swoich nazw np.
Kod:
$ZMIENNA = 1


Zamiast tego dajesz:

Kod:
0@ = 1

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Zmienne lokalne są w postaci 3@ - "@" jest po liczbie. Poza tym w skryptach CLEO .cs zmienne lokalne są z zakresu 0@ - 33@, a w misjach CLEO z 0@-1024@.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Artykuł o zmiennych

Nie używaj zmiennych globalnych w skryptach CLEO, stosuj tylko zmienne lokalne, chyba że chcesz odczytać/ustawić jakąś zmienną z main.scm, np. $ONMISSION.

Po drugie, tak jak już pisałem wcześniej, w instrukcji if umieszczaj tylko warunki - nie możesz w niej tworzyć markerów.

Po trzecie, twoje warunki są niepoprawne - dałeś tylko sam warunek bez definicji co ma się stać, jeżeli jest prawdziwy, bądź fałszywy.

Zapoznaj się z poradnikami o pętlach, do których linki dałem wcześniej. Tam masz wszystko dokładnie wyjaśnione.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Skryptu .cs będziesz potrzebował i tak jako starter misji - do tworzenia markerów startowych itd. Tutaj przykład:
http://www.gta-mods.pl/forum/temat/850/misja-cleo-czy#post4661

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Do 33 zmiennych mają tylko skrypty .cs, a .cm ma 1024. Przeszkadza to w tym, że przy bardzo złożonych skryptach nie starcza taka ilość zmiennych i trzeba wtedy kombinować inaczej. Można je natomiast nadpisywać, więc jeżeli coś przestanie być potrzebne, to w miejsce tej rzeczy przypiszesz co innego.

Zarówno w CLEO, jak i w main.scm możesz zrobić takie same misje. Musisz się tylko liczyć z tym, że w przypadku zmodyfikowanego main.scm trzeba zaczynać grę od nowa, nie można rozpocząć poprzez wczytanie starych zapisów gry, które były zrobione na oryginalnym, bądź innym pliku main.scm.

A to, czy chcesz robić na GTA United, czy na czystym GTA to już twoja decyzja, w CLEO możesz bezproblemowo zrobić misje dla obu, aczkolwiek większa grupa docelowa graczy by była w przypadku oryginalnej mapy GTA SA.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
1. Pliki .fxt są w formacie:
Kod:
TEKST1 Przykładowy tekst do użycia w grze...
TEKST2 Drugi tekst
TEKST3 sadeignds gdsfug sdgu iewgf


2. Pliki o rozszerzeniu *.cs to skrypty CLEO i trzeba je umieścić w katalogu CLEO, wtedy są uruchamiane automatycznie razem z grą

Natomiast pliki .cm to misje CLEO, które możesz umieścić gdziekolwiek, a wywołujesz je w skrypcie CLEO przy pomocy:
http://www.gta-mods.pl/baza-opcodow/0A94

Główną różnicą jest to, że w skryptach .cs masz do dyspozycji tylko zmienne z przedziału 0@ - 33@, gdzie 32@ i 33@ to wbudowane timery.

Ogólnie temat już przewijał się kilka razy przez forum, na górze jest link do wyszukiwarki:
http://www.gta-mods.pl/forum/temat/604/pliki-z-rozszerzeniem-cm-ktos-mnie-wprowadzi

To samo z plikami FXT:
http://www.gta-mods.pl/forum/temat/75/tekst-cleo

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
dawio966 napisał(a):
Przydaloby sie jakies FAQ do CLEO na stronie glownej :)

Jest u nas baza opcodów, duża część z nich jest szczegółowo opisana.
http://www.gta-mods.pl/baza-opcodow

To, czego ty użyłeś to wbudowana klasa w Sanny Builder i jest po prostu aliasem do tego opcodu:
Kod:
00A5: 0@ = create_car #PONY at 0.0 0.0 0.0


Ty akurat zapomniałeś powstawiać przecinków pomiędzy współrzędnymi. Klasy w SB tego wymagają.

Co do niedziałającego kodu, możesz spróbować zwiększyć promienie przy sprawdzaniu miejsca pojazdu.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Nie zakończyłeś konstrukcji if, na końcu musisz dać end.

Poza tym, nie zapętliłeś tego warunku, przez co skrypt sprawdzi go tylko raz i zakończy skrypt.

I trzecia sprawa, najważniejsza, jako warunku if możesz użyć tylko tzw. funkcji sprawdzających, czyli funkcji, które zwracają prawdę lub fałsz. Opcode, którego ty użyłeś po prostu wykonuje jakieś działanie, niczego on nie sprawdza i nie ma zastosowania w konstrukcji if.

Pętle w SCM można tworzyć na dwa sposoby: na bazie procedur i przeskoków lub korzystając z pętli while, bądź for. Po szczegóły odsyłam do poradników na naszej stronie:
Pętle proceduralne
Pętle wysokiego poziomu

Do tej pory tworzyłeś je jako procedury, więc podam kod w tej konwencji:

Kod:
:check
wait 
0
if 
and
  01AD: car 0@ sphere 0 near_point 1950.764 -2431.873 radius 2.0 2.0
  80DB: not actor $PLAYER_ACTOR in_car 0@
jf 
@check

05D1: AS_actor 1@ drive_car 0@ to 1929.5352 -2542.6182 4.5855 speed 50.0 0 model #NULL 0

:check2
wait 
0
if
  
01AD: car 0@ sphere 0 near_point 1950.764 -2431.873 radius 2.0 2.0
jf 
@check2

05CD: AS_actor 1@ exit_car 0@


Jeżeli którakolwiek część kodu jest dla ciebie niezrozumiała, to pytaj. Dodam jeszcze tylko, że przeciwne funkcje sprawdzające tworzy się poprzez zmianę 0 na 8 na początku identyfikatora opcode'u.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Witamy nowego moddera, powodzenia! :)

dawio966 napisał(a):
I tutaj będę wrzucał pytania (nie zamykajcie tematu, co jakiś czas będą nowe :))

Lepiej będzie, jeżeli dla każdego problemu będziesz zakładał oddzielny temat ze stosowną nazwą - ułatwi to późniejsze wyszukiwanie i nawigację.

dawio966 napisał(a):
1.Dlaczego gdy wejdę jako pasażer samochód jedzie tylko ymmm 5km/h ? Gdy edytuję linijkę 00AD: set_car 0@ max_speed_to 15.0 na 00AD: set_car 0@ max_speed_to 150.0 to żadnych zmian nie ma. Czy to może być taki błąd, ponieważ w tym moim modzie w tych miastach są złe jakieś ścieżki poruszania się?


Funkcja, której użyłeś nie pobiera prędkości jako argumentu i automatycznie ustawia na domyślną. Skorzystaj z alternatywnej:
Kod:
05D1: AS_actor 1@ drive_car 0@ to 1950.764 -2431.873 4.3873 speed 15.0 0 model #NULL 0


dawio966 napisał(a):
2.Wstawiłem marker na samochód, chcę go teraz usunąć, gdy wsiądę do samohodu, jaką linijkę kodu dodać?

Kod:
0164: disable_marker 30@

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
A próbowałeś po zmianie ustawień restartować program? Powinno działać, nie ma innych ustawień odnośnie języków. W ostateczności możesz spróbować odinstalować OO i zainstalować ponownie najnowszą wersję z oficjalnej strony:

http://www.openoffice.org/pl/product.download.html

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Ok, to zobacz jeszcze jedną rzecz. Być może domyślny język dokumentów jest ustawiony na inny, bądź żaden.

Kod:
Narzędzia / Opcje/ Ustawienia językowe / Języki


W drugiej sekcji zatytułowanej "Domyślny język dokumentów" jest pole "Zachodnie". Powinno być wybrane "Polski".

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
A jak klikniesz na "Edycja" przy Hunspell SpellChecker, to masz wybrany język polski, czy może w ogóle go tam nie ma?

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Kod:
Narzędzia / Opcje/ Ustawienia językowe / Pisownia

Zobacz, czy tam wszystko jest w porządku, tj. zainstalowane są moduły językowe, słowniki i zaznaczone jest "Automatyczne sprawdzanie".

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
Travisz napisał(a):
po czym wyskakuje CRASH

Wyskakuje crash? Chyba błąd :P

Problem jest w tej części kodu:
Kod:
:MISJA_321
wait  
0  
if 
    
Actor.Dead(1@)
else_jump  
@MISJA_321  
gosub  
@MISJA_391  
return 
return 
Actor.DestroyInstantly(1@)
Marker.Disable(2@)
mission_cleanup 
$ONMISSION = 0  
return 
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1  // ~r~MISSION FAILED!

return 


Po co żeś nawalił tyle tych "return"? Funkcji "return" używa się przy "gosubach", aby powrócić do miejsca, w którym została wywołana dana procedura przy pomocy "gosub". Ty masz 3 niepotrzebne "return", bo nie masz do czego wracać.

Ponadto, kiedy dojdziesz do końca kodu misji, użyj instrukcji:
Kod:
end_thread

aby zakończyć wykonywanie skryptu CLEO.

Pozdrawiam.

___________________
Administrator
Postów: 878 Dołączył: 2009-01-20
#
ToyotaSupra napisał(a):
a polski [tylko pierwsza cześć] średnio 40-45%.

ToyotaSupra napisał(a):
a z matmy to 20%:)


Nie no, to żeś pocisnął. Przecież pierwsza część z jęz. polskiego to czytanie ze zrozumieniem + jakieś rozpoznawanie porównań itp. Z matematyki podstawowej korzystałeś z tablic? Bo naprawdę tam nie ma żadnej filozofii, większość zadań jest na podstawienie do wzoru.

Z każdego egzaminu obowiązkowego musisz mieć minimum 30% punktów.

// Edit: Z polskiego to miałeś 45% z puli punktów za samą pierwszą część, czy ogólnie? Jeżeli ogólnie, to nieźle, bo chyba za wypracowanie jest maksymalnie 50%?

___________________
Administrator
Created & Powered by MakG