Postów:
9
Dołączył:
2011-06-28
Napisano dnia: 2011-06-28 23:01:27
Witam. Od dawna nie zajmowałem się cleo, ale nadszedł moment gdy potrzebny mi jest jeden skrypt. Ma to być najprostszy skrypt aby w danym miejscu utworzył mi się dany efekt. Niestety, ale coś mi to nie chcę działać..
Oto kod:
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---------------
thread 'JPR'
064B: 7@ = create_particle "WATER_SPLASH_BIG" at 1447.86 -1619.07 22 type 1
064C: make_particle 7@ visible
jump @JPR_60
:JPR_60
0A93: end_custom_thread
Postów:
1004
Dołączył:
2009-01-20
Napisano dnia: 2011-06-28 23:12:27
Powinienś chyba jeszcze to dodać do tamtego kodu
Kod:
064C: play_particle 7@
Po za tym zerknij
tu jeszcze.
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-06-29 00:40:57
SabaruPL: Użył tego opcodu, tylko jest on inaczej opisany (inna baza opcodów).
Nie jestem pewien, czy ten efekt nie jest tymczasowy, tj. odtwarzany jest tylko przez kilka sekund. Jeśli tak, to musisz go wywołać dopiero w odpowiednim momencie. Poza tym warto by sprawdzić zainicjowanie gry dodając na początku (po "thread 'JPR'"):
Kod:
:start
wait 0if
Player.Defined($PLAYER_CHAR)
jf @start
___________________
Administrator
Postów:
9
Dołączył:
2011-06-28
Napisano dnia: 2011-06-29 11:11:15
Skonstruowałem taki kod:
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---------------
thread 'JPR'
:JPR_11
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @JPR_11
064B: 7@ = create_particle "WATER_SPLASH_BIG" at 1447.86 -1619.07 22 type 1
064C: make_particle 7@ visible
jump @JPR_80
:JPR_80
0A93: end_custom_thread
Jednak nadal nic nie działa, dziwne.. Koordynaty na 100% się zgadzają, może rzeczywiście efekt jest tymczasowy, bo zanim dostanę się do miejsca efektu to trochę potrwa. Czy jest możliwość żeby efekt działał nieskończenie, czy z takim kodem efekt by działał bez końca? :
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---------------
thread 'JPR'
:JPR_11
wait 0
if
Player.Defined($PLAYER_CHAR)
else_jump @JPR_11
064B: 7@ = create_particle "WATER_SPLASH_BIG" at 1447.86 -1619.07 22 type 1
064C: make_particle 7@ visible
jump @JPR_11
0A93: end_custom_thread
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-06-29 13:13:19
Sprawdziłem, efekt jest tymczasowy, trwa około 1-2 sekundy. Wystarczy go zapętlić:
Kod:
{
$CLEO .cs}
thread 'JPR'
:JPR_11
wait 0
if
Player.Defined(
$PLAYER_CHAR)
else_jump @JPR_11
064B: 7@ = create_particle
"WATER_SPLASH_BIG" at 1447.86 -1619.07 22 type 1
while true
wait 10
064C: make_particle
7@ visible
end
0A93: end_custom_thread
___________________
Administrator
Postów:
9
Dołączył:
2011-06-28
Napisano dnia: 2011-06-29 13:40:24
Nie wiem dlaczego, ale gdy kompiluje ten kod to mi Sanny Builder go przerabia.. Tak wygląda kod po przerobieniu przez program:
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---------------
thread 'JPR'
:JPR_11
wait 0
if
Player.Defined($PLAYER_CHAR)
jf @JPR_11
064B: 7@ = create_particle "WATER_SPLASH_BIG" at 1447.86 -1619.07 22 type 1
:JPR_68
wait 10
064C: make_particle 7@ visible
jump @JPR_68
0A93: end_custom_thread
I efekt nie działa..
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-06-29 15:37:11
To, co tutaj wklejasz to dekompilacja skompilowanego skryptu. W swoim kodzie źródłowym możesz stosować konstrukcje wysokiego poziomu w celu szybszego i bardziej czytelnego pisania (więcej o tym w
tym tutorialu). Sanny Builder kompiluje te konstrukcje do niskiego poziomu stosując przeskoki do odpowiednich procedur.
Tak, czy inaczej, kod robi dokładnie to samo.
___________________
Administrator
Postów:
9
Dołączył:
2011-06-28
Napisano dnia: 2011-06-29 17:24:00
Rozumiem, tylko nie wiem czemu u mnie skrypt nie chce działać..
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-06-29 18:08:35
Teraz dopiero zauważyłem. Podałeś współrzędne "1447.86 -1619.07 22". Ostatnia współrzędna Z jest jako liczba całkowita, a musi być liczbą zmiennoprzecinkową (float). Zmień na 22.0 i będzie działać. U siebie testowałem na innych współrzędnych.
___________________
Administrator
Postów:
9
Dołączył:
2011-06-28
Napisano dnia: 2011-06-29 18:29:12
No, nareszcie działa :).
Dziękuje bardzo za pomoc, nawet nie sądziłem że błąd jest tak prosty!
Edit:
Jeszcze pytanko, czy można zmienić rotacje stworzonego efektu w cleo?
Postów:
878
Dołączył:
2009-01-20
Napisano dnia: 2011-06-29 19:13:52
http://www.gta-mods.pl/baza-opcodow/szukaj?search=particle+rot
Tu są opcody związane z efektami, które jako jeden z parametrów przyjmują rotację. Możesz pokombinować z tym pierwszym, reszta dotyczy tylko efektów przyczepianych do aktora, pojazdu lub obiektu.
___________________
Administrator