You are not logged in.
Pages: 1
Объясните кто нибудь почему из игры постоянно выкидывет, то с ошибкой память не может быть read то вообще нечего не показывает. Перепробывал уже кучу методов от http://forum.igromania.ru/showthread.php?t=63795&page=2 до SAStreamMemFix2 ну и вообщем всё без полезно.
Список установленных скриптов:
братки по звонку на вертолёте_AK47
Машина не будет загораться при ударах, а просто заглохнет
Продать своё оружие или авто
сигнализация_Burglar_ala
спидометра YELMI
new_on_off_engine
007_Car(CLEO)
Бензин, замок, фары, двигатель
вот сылка на архив _http://www.datafilehost.com/download-2664ddfa.html так же там лог опкодов сделанный scmlog.
вес игрового exe 14 386 176
Last edited by DMK (20-01-2010 23:39)
Offline
попробывал, всё равно выкидывет. В чём ещё может быть проблема?
А может это быть из за версии GTA может 1.0 поставить, и норм идти будет?
У кого на какой версии всё норм идёт?
Last edited by DMK (21-01-2010 12:25)
Offline
Скорее всего потому, что стоит windows xp zver.
Offline
нет у меня не зверь, обычная xp sp3.
mfisto щас скачаю попробую, спасибо что сказал.
Last edited by DMK (23-01-2010 22:04)
Offline
Вообщем поставил этот ехе, и после того как проверял патчи, уберал по одному, выяснилось что проблема в сигнализации, ребята кто знает посмотрите что в коде не так, если не сложно, так хочется это скрипт поставить
Offline
// 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 'SIG'
:SIG_11
wait 0
if and
Player.Defined($PLAYER_CHAR)
Actor.Driving($PLAYER_ACTOR)
847A: not actor $PLAYER_ACTOR driving_bike
84A7: not actor $PLAYER_ACTOR driving_boat
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle
jf @SIG_11
03C0: 0@ = actor $PLAYER_ACTOR car
:SIG_59
wait 0
if
8448: not actor $PLAYER_ACTOR in_car 0@
jf @SIG_59
if
0202: actor $PLAYER_ACTOR near_car 0@ radius 60.0 60.0 flag 0
jf @SIG_59
if
0AB0: key_pressed 49
jf @SIG_59
wait 100
0AAC: 1@ = load_mp3 "CLEO\SOUND\PIK-PIK.MP3"
0AAD: set_mp3 1@ perform_action 1
03F0: enable_text_draw 1
00BA: show_text_styled GXT 'CLOSE' time 2000 style 6
Car.DoorStatus(0@) = 2
067F: set_car 0@ lights 2
wait 500
067F: set_car 0@ lights 0
wait 700
067F: set_car 0@ lights 2
wait 800
067F: set_car 0@ lights 0
:SIG_238
wait 0
if and
0202: actor $PLAYER_ACTOR near_car 0@ radius 60.0 60.0 flag 0
0AB0: key_pressed 50
jf @SIG_238
wait 100
0AAC: 2@ = load_mp3 "CLEO\SOUND\PIK-PIK.MP3"
0AAD: set_mp3 2@ perform_action 1
03F0: enable_text_draw 1
00BA: show_text_styled GXT 'OPEN' time 2000 style 4 // 'OPEN OCEAN'
067F: set_car 0@ lights 2
Car.DoorStatus(0@) = 0
wait 500
067F: set_car 0@ lights 0
wait 700
067F: set_car 0@ lights 2
wait 800
067F: set_car 0@ lights 0
jump @SIG_11
Last edited by DMK (24-01-2010 20:50)
Offline
Нашел ошибку с первого взгляда. Ну она может и не значительна, но в некоторых ситуациях из-за неё может вылететь.
if and Player.Defined($PLAYER_CHAR) Actor.Driving($PLAYER_ACTOR) 847A: not actor $PLAYER_ACTOR driving_bike 84A7: not actor $PLAYER_ACTOR driving_boat 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle jf @SIG_11
Так делать нежелательно!!! Проверку Player.Defined($PLAYER_CHAR) нужно ставить отдельно от других проверок. Например так:
if Player.Defined($PLAYER_CHAR) jf @SIG_11 if and Actor.Driving($PLAYER_ACTOR) 847A: not actor $PLAYER_ACTOR driving_bike 84A7: not actor $PLAYER_ACTOR driving_boat 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle jf @SIG_11
Да и к тому же раз скрипт используется для разных тачек то тут просто обязана быть команда car.RemoveReferences().
И еще после каждого использования звукового файла его нужно выгружать, а то у тебя получается, что не выгрузив файл, ты в ту же переменную загружаешь опять этот файл и это тоже через определенное число раз вызовет вылет.
У этого скрипта будет больше вероятности "невылетаемости" если он будет выглядеть примерно так:
{$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- 0000: thread 'SIG' :SIG_11 wait 0 if Player.Defined($PLAYER_CHAR) jf @SIG_11 if and Actor.Driving($PLAYER_ACTOR) 847A: not actor $PLAYER_ACTOR driving_bike 84A7: not actor $PLAYER_ACTOR driving_boat 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle jf @SIG_11 03C0: 0@ = actor $PLAYER_ACTOR car :SIG_59 wait 0 if 8448: not actor $PLAYER_ACTOR in_car 0@ jf @SIG_59 if 0202: actor $PLAYER_ACTOR near_car 0@ radius 60.0 60.0 flag 0 jf @SIG_59 if 0AB0: key_pressed 49 jf @SIG_59 wait 100 0AAC: 1@ = load_mp3 "CLEO\SOUND\PIK-PIK.MP3" 0AAD: set_mp3 1@ perform_action 1 03F0: enable_text_draw 1 00BA: show_text_styled GXT 'CLOSE' time 2000 style 6 Car.DoorStatus(0@) = 2 067F: set_car 0@ lights 2 wait 500 067F: set_car 0@ lights 0 wait 700 067F: set_car 0@ lights 2 wait 800 067F: set_car 0@ lights 0 0AAE: release_mp3 1@ :SIG_238 wait 0 if and 0202: actor $PLAYER_ACTOR near_car 0@ radius 60.0 60.0 flag 0 0AB0: key_pressed 50 jf @SIG_238 wait 100 0AAC: 2@ = load_mp3 "CLEO\SOUND\PIK-PIK.MP3" 0AAD: set_mp3 2@ perform_action 1 03F0: enable_text_draw 1 00BA: show_text_styled GXT 'OPEN' time 2000 style 4 // 'OPEN OCEAN' 067F: set_car 0@ lights 2 Car.DoorStatus(0@) = 0 wait 500 067F: set_car 0@ lights 0 wait 700 067F: set_car 0@ lights 2 wait 800 067F: set_car 0@ lights 0 0AAE: release_mp3 2@ car.RemoveReferences(0@) jump @SIG_11
Last edited by Gyr (25-01-2010 07:46)
Специально для тех, кто не умеет читать по английски. Мой ник читается как "ГИР"!!!
Народная мудрость:
Прежде чем задавать вопросы,ПОЧИТАЙ СПРАВКУ!!!!
Offline
Да и к тому же раз скрипт используется для разных тачек то тут просто обязана быть команда car.RemoveReferences().
По-моему это не обязательно. При записи в переменную нового значения старое значение всегда стирается.
Offline
Нашел ошибку с первого взгляда. Ну она может и не значительна, но в некоторых ситуациях из-за неё может вылететь.
Спасибо, посмотрю будут ли вылеты, потом отпишу.
Offline
Да и к тому же раз скрипт используется для разных тачек то тут просто обязана быть команда car.RemoveReferences().
По-моему это не обязательно. При записи в переменную нового значения старое значение всегда стирается.
В данном случае использовать removereference вообще не нужно.
При записи нового значения старое не стирается!
Что касается звуков то да из за них наблюдаются проблемы я имею ввиду mp3 конечно поэтому ждите версии cleo 4 которая скоро будет )))))
I know everything and nothing...
Offline
При записи нового значения старое не стирается!
Указатель на объект/транспорт/актёра - это целое число. Если в переменную сначала было записано одно число, а потом в неё записали другое число, то старое значение стирается. Разве не так?
Last edited by Den_spb (26-01-2010 08:07)
Offline
а разве дело в переменной? Машина не знает, что она записана в какую-то переменную. Что ей с того, что кто-то поменял значение переменной? Новый референс кто машине ставить будет?
{$CLEO .cs} 0000: while true wait 0 if player.Defined($PLAYER_CHAR) then if and Actor.Driving($PLAYER_ACTOR) 847A: not actor $PLAYER_ACTOR driving_bike 84A7: not actor $PLAYER_ACTOR driving_boat 84C8: not actor $PLAYER_ACTOR driving_flying_vehicle then 03C0: 0@ = actor $PLAYER_ACTOR car while Actor.Driving($PLAYER_ACTOR) wait 0 end repeat wait 0 if 0202: actor $PLAYER_ACTOR near_car 0@ radius 60.0 60.0 flag 0 then if 0AB0: key_pressed 49 then if 0AAB: file_exists "CLEO\SOUND\PIK-PIK.MP3" then 0AAC: 1@ = load_mp3 "CLEO\SOUND\PIK-PIK.MP3" 0AAD: set_mp3 1@ perform_action 1 wait 100 00BA: show_text_styled GXT 'CLOSE' time 2000 style 6 Car.DoorStatus(0@) = 2 067F: set_car 0@ lights 2 wait 500 067F: set_car 0@ lights 0 wait 700 067F: set_car 0@ lights 2 wait 800 067F: set_car 0@ lights 0 0AAE: release_mp3 1@ end end if 0AB0: key_pressed 50 then if 0AAB: file_exists "CLEO\SOUND\PIK-PIK.MP3" then 0AAC: 2@ = load_mp3 "CLEO\SOUND\PIK-PIK.MP3" 0AAD: set_mp3 2@ perform_action 1 wait 100 00BA: show_text_styled GXT 'OPEN' time 2000 style 4 067F: set_car 0@ lights 2 Car.DoorStatus(0@) = 0 wait 500 067F: set_car 0@ lights 0 wait 700 067F: set_car 0@ lights 2 wait 800 067F: set_car 0@ lights 0 0AAE: release_mp3 1@ end end end until Actor.Driving($PLAYER_ACTOR) car.RemoveReferences(0@) end end end
Offline
Не не, Alien, removereference делать не надо, т.к опкод 03C0: не меняет в структуре тачки ничего, посути тачка также с легкостью может исчезнуть, если это была тачка взятая в свободном использовании, а если тачка была создана create car, то она должна будет получить removereference в своем скрипте просто вот и все.
I know everything and nothing...
Offline
Всё равно глючит, наверное с какими то из скриптов конфликтует!
Offline
Не нужно references добавлять после каждого захвата т.к захват в большинстве не убирает references.
Я знаю, из памяти, только опкод:
0432: 18@ = get_actor_handle_from_car $TEMPVAR_ACTOR_CAR passenger_seat 0
и еще некоторые захваты тачек из сферы и даже может в rectangle.
Остальные особенно interceptor спокойно применяется и removereference ненужен.
I know everything and nothing...
Offline
Во-первых, у машин, "созданных игрой" отсутствуют references, и убирать там нечего. Поэтому я и интересуюсь, как включить на машине references после "захвата".
Во-вторых, если у машины есть references, то захват на неё и не действует (обо всех способах захвата сказать не могу, но для опкода 073E данное утверждение только что подтвердилось экспериментально).
Last edited by Den_spb (22-02-2010 20:31)
Offline
Провёл небольшое исследование различных способов "захвата" транспорта из игры. Результаты в таблице:
Способ захвата: Захват сработает, если references у машины: Меняет ли захват references: Можно ли применить для поездов: 073E отсутствуют не меняет нельзя 0327 отсутствуют включает нельзя 053E отсутствуют не меняет нельзя 0AB5 в любом случае не меняет можно Interceptor в любом случае не меняет можно
Т.о., если нужно включить references у машины, пойманной из игры, то надо применить опкод 0327. В этом случае пойманная машина не исчезнет, даже если игрок отойдёт от неё на большое расстояние.
Last edited by Den_spb (23-02-2010 22:16)
Offline
Offline
Pages: 1