Czy wiesz, że... na forum możesz uzyskać pomoc nt. modowania GTA?
Strona główna forum Szukaj Rejestracja
Witaj, nieznajomy!
Poprzedni 1 Następny
Postów: 20 Dołączył: 2010-03-14
#
Witam.
Stworzyłem nową animację za pomocą Endorphina i 3DS max.Wszystko działa jak pomieniam jakieś inne animacje ale...nie o to chodzi.

Mój problem: Jak powinien wyglądać skrypt CELO dla nowej animacji IFP "DEMO" (nie wiem czy jest różnica czy wrzucam go do anim.img czy do gta3.img) gdzie po wciśnięciu powiedzmy 1 (opcode "49")

Sam namodziłem coś takiego ale nie działa ;(

Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}
0000: NOP 
thread 'DEMO' <- do czego to się odwołuje-plik CELO musi się tak samo nazywać?

wait 10 
if 
Player.Defined($PLAYER_CHAR)

wait 10 
if and
0AB0:   key_pressed 49 
8449:   not actor $PLAYER_ACTOR in_a_car 
847A:   not actor $PLAYER_ACTOR driving_bike 
84A7:   not actor $PLAYER_ACTOR driving_boat 
84C8:   not actor $PLAYER_ACTOR driving_flying_vehicle 
84A9:   not actor $PLAYER_ACTOR driving_heli 

04ED: load_animation "TEST" <- to jest nazwa pliku z animacjami IFP(gdzie ma  być umieszczona)
0605: actor $player perform_animation_sequence "SKACZ" from_file "TEST" 4.0 loop 1 1 1 0 time -1


0A93: end_custom_thread 


Dzięki za każda odp.
Postów: 159 Dołączył: 2009-02-05
#
Najprawdopodobniej błędem jest brak jakichkolwiek pętli. Skrypt powinien wyglądać(najprawdopodobniej) tak:

Kod:
{$VERSION 3.1.0027}
{$CLEO .cs}
0000: NOP
thread 'DEMO' <- do czego to się odwołuje-plik CELO musi się tak samo nazywać?

:Petla1
wait 10
if
Player.Defined($PLAYER_CHAR)
jf @Petla1

:Petla2
wait 10
if and
0AB0: key_pressed 49
8449: not actor $PLAYER_ACTOR in_a_car
847A: not actor $PLAYER_ACTOR driving_bike
84A7: not actor $PLAYER_ACTOR driving_boat
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
84A9: not actor $PLAYER_ACTOR driving_heli
jf @Petla2

04ED: load_animation "TEST" <- to jest nazwa pliku z animacjami IFP(gdzie ma być umieszczona)
0605: actor $player perform_animation_sequence "SKACZ" from_file "TEST" 4.0 loop 1 1 1 0 time -1
wait 1000

jump @Petla2

0A93: end_custom_thread 


Poczytaj trochę o pętlach, a i jeszcze jest możliwość że źle załadowałeś animacje pobierz jakiś podobny Mod, chyba w tym Parkour Mod jest to zrobione.

___________________

Postów: 878 Dołączył: 2009-01-20
#
Tak jak napisał extermin, brakuje pętli przy sprawdzaniu wciśnięcia klawisza. Pozatym należałoby jeszcze umieścić pętlę sprawdzającą, czy dana animacja została załadowana przed jej użyciem:

Kod:
:load
wait 0
if
 04EE:   animation "TEST" loaded 
jf @load


Umieszczasz to po:

Kod:
04ED: load_animation "TEST"

___________________
Administrator
Postów: 20 Dołączył: 2010-03-14
#
Tak testowałem tego moda i widziałem tam stosowanie pętli ale skoro nie rozumiałem ich zastosowania więc nie używałem. Dziękuję za odp i zabieram się za sprawdzenie podanych kodów.Napiszę o wynikach testu.
Postów: 20 Dołączył: 2010-03-14
#
Udało się po wielu próbach...w linijce
Kod:
0605: actor $player perform_animation_sequence "SKACZ" from_file "TEST" 4.0 loop 1 1 1 0 time -1


zamieniłem na
Kod:
0605: actor $PLAYER_ACTOR...


a plik animacji zamieściłem w pliku ped.ifp. Dzięki aplikacji "GTA Animation Menager" by Ryosuke można otworzyć archiwum .ifp nastepnie dokonać duplikatu jakiejś animacji a następnie zrobic rename. W następnym kroku otwieramy 3ds Max z wgranymi już skryptami GTA Kam's i przy użyciu narzędzia "IFP IO" dokonujemu raplace zduplikowanej wcześniej animacji(tej której zmieniliśmy nazwę) na naszą. Efekt końcowy to :wzbogacenie pliku PED.ifp o odatkowa animację z naszą nazwą.
Teraz wystarczy do folderu CELO w GTA wrzucić skrypt i gotowe.

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
thread 'TRICKS1'

:TRICKS1_13
wait 10
if
Player.Defined($PLAYER_CHAR)
jf @TRICKS1_13

:TRICKS1_33
wait 10
if and
0AB0: key_pressed 80
8449: not actor $PLAYER_ACTOR in_a_car
847A: not actor $PLAYER_ACTOR driving_bike
84A7: not actor $PLAYER_ACTOR driving_boat
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
84A9: not actor $PLAYER_ACTOR driving_heli
jf @TRICKS1_33
04ED: load_animation "PED"

:TRICKS1_86
wait 10
if
04EE: animation "PED" loaded
jf @TRICKS1_86
0605: actor $PLAYER_ACTOR perform_animation_sequence "BALL_CONTROL" IFP_file "PED" 4.0 loop 1 1 1 0 time -1 // versionA
wait 1000
jump @TRICKS1_33
0A93: end_custom_thread 


Jak znajde trochę wolnego czasu przygotuję szczegółowy tutorial. Dziekuje za pomoc.

Pozdrawiam:BESTEK
Poprzedni 1 Następny
Zaloguj się lub zarejestruj się, żeby pisać na forum.
Created & Powered by MakG