Postów:
32
Dołączył:
2012-07-15
Napisano dnia: 2014-01-31 23:58:26
Witam, mam problem z pickupem. Mianowicie zrobilem takiego moda który na grove street dodaje 2głowy czaszki (pickup id 1313) i gdy w niego wejdziemy to pojawia sie czarny ekran na 5 czy tam iles sekund po czym rozjasnia sie, jednak nic sie nie dzieje gdy wchodze w pickupa.
To akurat nie jest skonczony mod bo po rozjasnieniu obrazu pickup znikcie a na jego miejsce wejdzie Sweet ktory bedzie nas chronil itp (jak zrekrutowany członek gangu).
O to kod który zrobilem z pomocą tutoriala "Save Game":
Kod:
{
$CLEO .cs}
thread 'SWEET'
:SWEET
wait 10
if and
Player.Defined(
$PLAYER_CHAR)
$ONMISSION == 0
jf @SWEET
0213: $2Skulls = create_pickup 1313 type 16 at 2499.2405 -1682.202 13.3649
:SWEET1
wait 10
if
$ONMISSION == 1
jf @SWEET
Pickup.Destroy(
$2Skulls)
jump @SWEET2
:SWEET2
wait 10
if and
not Actor.Driving(
$PLAYER_ACTOR)
Pickup.Picked_up(
$2Skulls)
jf @SWEET
Player.CanMove(
$PLAYER_CHAR) =
False
fade 0 500
:FADING
wait 10
if
816B: not fading
jf @FADING
fade 1 500
Player.CanMove(
$PLAYER_CHAR) =
True
jump
@SWEET
end_thread
Dodam jeszcze że po skompilowaniu skryptu:
- tego kogo zabije nie wypada z niego żadna bron ani kasa (oczywiscie jesli ma)
- po wyłaczeniu gry pojawia sie czarny ekran i musze kliknac spacje aby wyszło z gry
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2014-02-01 13:22:48
Nic dziwnego że z ludzi nie wypada kasa, tworzysz pickupa w nieskończoność:
Kod:
:SWEET1
wait 10
if
$ONMISSION == 1
jf @SWEET
Z powodu tej pętli gra nigdy nie sprawdzi czy podniosłeś ten pickup.
Poza tym:
NIE używaj zmiennych globalnych w CLEO, poza $PLAYER_CHAR, $PLAYER_ACTOR i $ONMISSION. end_thread także nie można używać w CLEO.
Poprawiony i ulepszony kod:
Kod:
{
$CLEO}
0A95: save_this_custom_script
while true
wait 0
if 0@ == 0
then
if
$ONMISSION == 0
then
0213: 0@ = create_pickup 1313 type 3 at 2499.2405 -1682.202 13.3649
end
else
if $ONMISSION == 1
then
0215: remove_pickup
0@
0@ = 0
end
if
0214: has_pickup_been_collected
0@
then
0215: remove_pickup
0@
0@ = 0
01B4: set_player_control
$PLAYER_CHAR to FALSE
016A: do_fade 0 500
while 016B: get_fading_status
wait 0
end
01B4: set_player_control
$PLAYER_CHAR to TRUE
016A: do_fade 1 500
00EC: locate_char_any_means_2d
$PLAYER_ACTOR sphere 0 coords 2499.2405 -1682.202 radius 2.5 2.5
wait 0
end
end
end
end
___________________
Moderator
Postów:
32
Dołączył:
2012-07-15
Napisano dnia: 2014-02-01 13:36:48
1. A jak jaki jest opcod dzięki któremu pickup pojawi się dopiero po ukończeniu danej misji? Czy da się to zrobić w cleo czy to już robota z main.scm?
2. Dlaczego na końcu jest tyle endów?
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2014-02-01 13:40:53
Grooviec4 napisał(a):
1. A jak jaki jest opcod dzięki któremu pickup pojawi się dopiero po ukończeniu danej misji? Czy da się to zrobić w cleo czy to już robota z main.scm?
2. Dlaczego na końcu jest tyle endów?
1. Wyjątkowo trzeba by było sprawdzić stan zmiennej globalnej z SCM, która ustawiana jest na konkretną wartość po ukończeniu danej misji.
2. Skrypt przepisałem przy użyciu wysokopoziomowych konstrukcji, a te trzeba zamykać.
___________________
Moderator
Postów:
32
Dołączył:
2012-07-15
Napisano dnia: 2014-02-01 14:05:10
Pojawiły sie 2 problemy:
- gdy zaczynam nową gre to pojawia sie takie
coś a potem filmik normalnie idzie
-
Cytat:
po wyłaczeniu gry pojawia sie czarny ekran i musze kliknac spacje aby wyszło z gry
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2014-02-01 14:11:36
Wychodzi na to że nie najlepiej uszeregowałem sprawdzenia, gdy pickup jest stworzony. Spróbuj:
Kod:
{
$CLEO}
0A95: save_this_custom_script
while true
wait 0
if 0@ == 0
then
if
$ONMISSION == 0
then
0213: 0@ = create_pickup 1313 type 3 at 2499.2405 -1682.202 13.3649
end
else
if 0214: has_pickup_been_collected
0@
then
0215: remove_pickup
0@
0@ = 0
01B4: set_player_control
$PLAYER_CHAR to FALSE
016A: do_fade 0 500
while 016B: get_fading_status
wait 0
end
01B4: set_player_control
$PLAYER_CHAR to TRUE
016A: do_fade 1 500
00EC: locate_char_any_means_2d
$PLAYER_ACTOR sphere 0 coords 2499.2405 -1682.202 radius 2.5 2.5
wait 0
end
end
if $ONMISSION == 1
then
0215: remove_pickup
0@
0@ = 0
end
end
end
___________________
Moderator
Postów:
32
Dołączył:
2012-07-15
Napisano dnia: 2014-02-01 14:40:21
Problem pierwszy naprawiony ale drugi nadal jest...
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2014-02-01 14:45:15
To już na pewno nie wina skryptu. Używasz CLEO 4.3.xx? Ta wersja ciągle się rozwija, więc kilka bugów ma.
___________________
Moderator
Postów:
32
Dołączył:
2012-07-15
Napisano dnia: 2014-02-01 14:51:33
Cytat:
To już na pewno nie wina skryptu. Używasz CLEO 4.3.xx? Ta wersja ciągle się rozwija, więc kilka bugów ma.
A to już wszystko jasne, dzieki za wyjasnienie :)
Postów:
628
Dołączył:
2009-01-22
Napisano dnia: 2014-02-01 14:55:34
Swoją drogą, podeślij tu zawartość Twojego cleo.log. Przekażę go twórcy CLEO 4.3 i może poprawi ten błąd.
___________________
Moderator
Postów:
32
Dołączył:
2012-07-15
Napisano dnia: 2014-02-01 15:23:57
Cytat:
Swoją drogą, podeślij tu zawartość Twojego cleo.log. Przekażę go twórcy CLEO 4.3 i może poprawi ten błąd.
U mnie nie ma tego pliku chyba ze źle patrze ._.