#1 31-03-2012 20:40

Flame
Registered: 17-12-2011
Posts: 11

Специальный актер вылетает

Всем привет.) Опять пишу с довольно простым кодом, но и тут проблемы есть. Короче, суть такая: стоит актер, проигрывается анимка типа он куда-то смотрит, когда он будет куда-то идти (он должен стоять как грувовец), у него должна быть походка пьянчуги. Вроде все написал так, но игра вылетает при появлении актера. Думаю, там дофига ошибок. Помогите найти.)



// 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
3@ = 0

:acttest
wait 1000
if and
00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 2430.6116 -1228.952 25.116 radius 100.0 100.0 100.0
  3@ == 0

jf @actcheck2
023c: request_special_actor 'ppop' as 2
038B: load_requested_models
Actor.Create(2@, Mission1, #SPECIAL02, 2430.6116, -1228.952, 25.1162)
Actor.Angle(2@) = 180
Actor.SetImmunities(2@, 1, 1, 1, 1, 1)
0605: actor 2@ perform_animation_sequence "IDLE_STANCE" IFP_file "PED" 4.0 loop 1 0 0 0 time -1 // versionA
0245: set_actor 2@ walk_style_to "DRUNKMAN"
3@ = 1
0296: unload_special_actor 2

:actcheck2
if and
80FE:   not actor $PLAYER_ACTOR sphere 0 in_sphere 2430.6116 -1228.952 25.1162 radius 100.0 100.0 100.0
  3@ == 1
Actor.RemoveReferences(2@)

jf @return

:return
jump @acttest

Offline

#2 01-04-2012 00:29

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Специальный актер вылетает

1. 0296: unload_special_actor 2 надо применять после уничтожения спец. актёра.
2. Actor.RemoveReferences - не проверка, а команда. Поэтому между if..jf этот опкод вставлять нельзя.
3. jf @return - бессмысленная команда, выполнение кода в любом случае перейдёт на :return
4. Проверки переменной 3@ надо заменить на проверку существования актёра 2@.
В общем, код лучше переделать заново.
А определить опкод, при выполнении которого произошёл вылет, можно с помощью плагина Scmlog.

Last edited by Den_spb (01-04-2012 00:31)

Offline

#3 01-04-2012 12:54

Flame
Registered: 17-12-2011
Posts: 11

Re: Специальный актер вылетает

Понятно, спасибо. Код переписал, а вылеты оказывается вообще из-за другого были (вот что значит не проверять все возможные варианты вылетов). smile

Offline

Board footer

Powered by FluxBB