You are not logged in.
thread 'CSALST' wait 1000 0A95: enable_thread_saving 014B: 0@ = init_parked_car_generator #NRG500 color 0 17 1 alarm 0 door_lock 0 0 10000 at -1667.8 1208.7 7.3 angle 270.0 014C: set_parked_car_generator 0@ cars_to_generate_to 101 0570: 1@ = create_asset_radar_marker_with_icon 35 at -1663.334 1208.753 7.1 018B: set_marker 1@ radar_mode 2 5@ = Pickup.Create(1277, 3, -1663.334, 1208.753, 7.3)
Похоже, вот он, злобный кусок кода, который вызывает ошибку "SCM object limit breached". Я уже говорил, что все скрипты, которые используют генератор и маркеры у меня убраны, однако вот этот я пропустил как то. Чтож, осталось только протестировать оставшиеся скрипты на предмет отсутствия этой ошибки, и больше серьёзных багов у меня не будет. Скрипт этот - CarSaloon.
А вобще у кого-нибудь есть идеи почему так происходит? Вроде ж 0A95 должен предотвращать появление такой ошибки...
Offline
К сожалению я не могу здесь использовать Interceptor, он плоховлияет на цикл.
Чем он влияет?.
Ну я там в цикле создаю корону, и если использоваю Interceptor, то корону не видно.
А снять флаг уникальности - как это сделать если код его записывает?
Не понял вопрос.
Там должно было быть «Не записывает».
Ну как я сниму флаг уникальности, ведь для этого сначала нужно записать актёра в переменную. Но как раз это и не получается.
Offline
thread 'CSALST' wait 1000 0A95: enable_thread_saving 014B: 0@ = init_parked_car_generator #NRG500 color 0 17 1 alarm 0 door_lock 0 0 10000 at -1667.8 1208.7 7.3 angle 270.0 014C: set_parked_car_generator 0@ cars_to_generate_to 101 0570: 1@ = create_asset_radar_marker_with_icon 35 at -1663.334 1208.753 7.1 018B: set_marker 1@ radar_mode 2 5@ = Pickup.Create(1277, 3, -1663.334, 1208.753, 7.3)Похоже, вот он, злобный кусок кода, который вызывает ошибку "SCM object limit breached". Я уже говорил, что все скрипты, которые используют генератор и маркеры у меня убраны, однако вот этот я пропустил как то. Чтож, осталось только протестировать оставшиеся скрипты на предмет отсутствия этой ошибки, и больше серьёзных багов у меня не будет. Скрипт этот - CarSaloon.
А вобще у кого-нибудь есть идеи почему так происходит? Вроде ж 0A95 должен предотвращать появление такой ошибки...
модель 3 для пикапа не загружена
GIMS developer
Offline
модель 3 для пикапа не загружена
Убрал я этот код совсем. Однако, что странно, ошибка осталась.:rolleyes:
Нашёл ещё один скрипт с 0a95, убрал его, тестирую. клео миссии случайно не грузятся в память, даже если их не запускать? А то в папке с клео лежат несколько штук, но не используются пока. А ещё я заметил, что скриптов с 0a95 у меня нет, но клео сейвы продолжают появляться. Почему?
Offline
В клео-сейве (3 версии) записывались не только 0a95, но и блок клео-переменных (т.е. эти сейвы создаются всегда). миссии сами по себе не грузятся.
Не думаешь, что проблема из-за самого SALA, а не скриптов?
Offline
В клео-сейве (3 версии) записывались не только 0a95, но и блок клео-переменных (т.е. эти сейвы создаются всегда). миссии сами по себе не грузятся.
Не думаешь, что проблема из-за самого SALA, а не скриптов?
Хм, я раньше использовал штук 30-40 скриптов, SALA + streammemoryfix.asi. Работало всё железно. Потом фикс я убрал за ненадобностью, т.к. в SALA есть такая функция. Сейчас у меня около 60 скриптов, игра полностью проходима, вылеты если и есть, то редко. Но из за этой SCM-object ошибки нужно после каждой трети игры менять сейв на чистый. Так что не думаю что проблема в SALA(но если других вариантов не останется, проверю и его).
На данный момент убрал все сомнительные правки в память и скрипт автосейва, если и в этом ошибки нет - тогда придётся отключать клео совсем и смотреть, точно ли ошибка в клео-скриптах.
ЗЫ. Если кто в сейвах разбирается, в аттаче проблемный. Начинаем миссию, и практически сразу вылет. Причём даже на чистой игре.
UPD. Проверил лимит аджастер. Взял сейв чистый до миссии Are you going to San Fierro. Через mission starter запускаю - вылет(ошибка unknown, не SCM). Убираю SALA, вылета нет, но текстуры не подружаются нормально. Ставлю александровский меморификс, краш при запуске Попробую через cleo загружать.
UPD2.
0000: NOP 0A95: enable_thread_saving 0AA2: 0@ = load_library "radio.dll" // IF and SET 0AA2: 1@ = load_library "StreamMemFix.dll" // IF and SET wait 1000 0AA3: free_library 0@ 0AA3: free_library 1@ 0A93: end_custom_thread
Вот так работает, это хорошо(а нужен тут 0a95?). Вылета в миссии нет, буду тестить ещё. Но всё равно спасибо Seemann'у за то, что обратил внимание на SALA )
Last edited by Sergey81 (09-12-2010 04:20)
Offline
Если 0A95 оставить, то после сохранения скрипт больше не будет запускаться при загрузке игры. Если 0A95 не будет, скрипт будет стартовать вместе с игрой (новой или сохраненной).
Offline
Если 0A95 оставить, то после сохранения скрипт больше не будет запускаться при загрузке игры. Если 0A95 не будет, скрипт будет стартовать вместе с игрой (новой или сохраненной).
Понятно. Но как оказалось, проблема из поста выше не та же самая. Дошёл до миссии Are you going to San Fierro - вылет. Ставлю SALA посмотреть лог, ошибка та же, Exception At Address: 0x00544BC8, Error: SCM Object Limit Breached
Offline
Как в Вайсе сделать игрока невидимым? 0337: set_actor $PLAYER_ACTOR visibility 0 не помогает.
Offline
И в трешке и Васе и Сане игрока невидимым таким опкодом сделать нельзя.
Я делал очень просто, брал любого педа, называл его по новому, обрабатывал в 3d max, делал текстуру с прозрачной альфой. Все актер невидимый, а потом просто менял скин у игрока на вот этот и все работает.=)
I know everything and nothing...
Offline
Игра вылетает - вот лог.
Я так понял, что если запись заканчивается Waitом , то вылет, возможно не из за мэйна ?
Причем игра вылетает не на конкретном месте. А в любое время выполнения
одного из потоков. (кстати в лог этот поток почемто не записался)...
******************************************** thread main Local variables dump: 354189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ******************************************** 00048040: 00D6 get numeric params: 1 param 1 = 0 00048044: 0256 get numeric params: 1 param 1 = 0 00048049: 004D (&IFresult = True) get numeric params: 1 param 1 = 48064 (&label: 00BF) 00048056: 09E8 get numeric params: 1 param 1 = 1 00048064: 00BF 00048072: 01BD 00048077: 008D 00048085: 008D 00048093: 0086 00048101: 0011 get numeric params: 1 param 1 = 30.00 00048111: 0011 get numeric params: 1 param 1 = 6.00 00048121: 0011 get numeric params: 1 param 1 = 0.50 00048131: 0059 00048139: 0002 get numeric params: 1 param 1 = 48036 (&label: 0001) 00048036: 0001 get numeric params: 1 param 1 = 0 ********************************* > Total opcodes: 24983560 > Logging finished: 1:01:59 Powered by SCMLog v1.04 *********************************
Offline
Если последний в логе - wait, то значит в момент вылета ни один скрипт (или поток мейна) не выполнялся. Скрипт в данном случае может быть косвенной причиной вылета (например, если написать и установить скрипт, удаляющий ближайшие к игроку объекты, а затем попытаться выстрелить из ракетницы, то игра вылетит, т.к. скрипт удалит ракету и возникнет ошибка в процессе, управляющем ракетами).
Offline
Если последний в логе - wait, то значит в момент вылета ни один скрипт (или поток мейна) не выполнялся. Скрипт в данном случае может быть косвенной причиной вылета (например, если написать и установить скрипт, удаляющий ближайшие к игроку объекты, а затем попытаться выстрелить из ракетницы, то игра вылетит, т.к. скрипт удалит ракету и возникнет ошибка в процессе, управляющем ракетами).
Да уж, косвенные причины тяжелее найти...
Ну ты прям ясновидящий на тему ракет. Как раз в этом месте они обильно юзаются акторами...
Спасибки - будем искать.
Offline
Здраствуйте. У меня вопросик) (GTA SA)
Я создал машину. У нее есть свой хэндл. Потом я применил опкод, который выбирает случайную машину, рядом с созданной мной. Так вот как проверить, была ли выбрана машина, которую создал я? а не из проезжающих мимо.)
Offline
Я создал машину. У нее есть свой хэндл. Потом я применил опкод, который выбирает случайную машину, рядом с созданной мной. Так вот как проверить, была ли выбрана машина, которую создал я? а не из проезжающих мимо.)
сравнивай эти 2 переменные, они кажется типа integer.
if 003B: $car1 == $car2 // (int) jf @CAR_NE_RAVNO jump @CAR_RAVNO
что-то вроде этого...
у меня тож вопрос, придумал как улучшить First-person мод...хотя нет, не улучшить а сделать с нуля, у меня давно идея крутилась....
как-то пару месяцев назад я спрашивал здесь, нет ли опкода, который прикрепит камеру к объекту...такого не оказалось...а у меня была такая идея - крепим объект (любой, сигарету например) к голове актёра (тут надо найти номер кости), крепим камеру к объекту (такого опкода к сожалению нету) и вуаля - самый настоящий вид от первого лица готов....сегодня обнаружил наличие опкода прикрепляющего машину к объекту (не наоборот)...короче говоря всё получилось, только камеру трясёт сильно и тянет то влево, то вправо...эм, стоит создавать новую тему?
Offline
Да, стОит. А что такое set_camera_before_player?
Offline
Ruzel wrote:Я создал машину. У нее есть свой хэндл. Потом я применил опкод, который выбирает случайную машину, рядом с созданной мной. Так вот как проверить, была ли выбрана машина, которую создал я? а не из проезжающих мимо.)
сравнивай эти 2 переменные, они кажется типа integer.
if 003B: $car1 == $car2 // (int) jf @CAR_NE_RAVNO jump @CAR_RAVNOчто-то вроде этого...
у меня тож вопрос, придумал как улучшить First-person мод...хотя нет, не улучшить а сделать с нуля, у меня давно идея крутилась....
как-то пару месяцев назад я спрашивал здесь, нет ли опкода, который прикрепит камеру к объекту...такого не оказалось...а у меня была такая идея - крепим объект (любой, сигарету например) к голове актёра (тут надо найти номер кости), крепим камеру к объекту (такого опкода к сожалению нету) и вуаля - самый настоящий вид от первого лица готов....сегодня обнаружил наличие опкода прикрепляющего машину к объекту (не наоборот)...короче говоря всё получилось, только камеру трясёт сильно и тянет то влево, то вправо...эм, стоит создавать новую тему?
это было первым, что я попробовал когда-то на тему ФПС))))
минусы очевидны - тряска камеры(анимация же) и видно части внутренностей головы(глаза, рот)
и ещё, поворачиваться нельзя, или же назад идти нельзя при этом...короче, тупо)
GIMS developer
Offline
сравнивай эти 2 переменные, они кажется типа integer.
if 003B: $car1 == $car2 // (int) jf @CAR_NE_RAVNO jump @CAR_RAVNO
Ещё можно проверять на соответствие модели машины.
0441: $car2m = car $car2 model if 0137: car $car1 model == $car2m jf @CAR_NE_RAVNO jump @CAR_RAVNO
Получилось более громоздко, да и вообще, лучше использовать сравнение хендлов
Offline
я нашёл кое-какой способ уменьшить тряску, но здесь есть свои проблемы...насчёт того, что видны глаза и всё остальное - если поставить правильный оффсет, то всё нормально, правда если быстро бежать, то машина не успевает так быстро перемещаться, и приходится брать оффсет почти полметра...а это довольно много, всё-таки было бы намного лучше, если бы можно было прикрепить камеру к объекту...ещё не могу найти номер самой верхней кости головы, нашёл только кость брови...вобщем, сейчас создам тему...
кстати, как использовать опкод 0834: set_player_head_temporary_turn_rotation_Z -2.2 rotation_Y 1.7 а то что-то он у меня не работает
Last edited by Voron295 (13-12-2010 14:56)
Offline
0327: $TEMPVAR_ACTOR_CAR = get_random_car_with_model -1 in_rectangle_cornerA $111 $112 cornerB $114 $115
Этот опкод выбирает случайную машину в зоне из прямоугольника? $111 и $112 — это координаты левого нижнего угла? или правого верхнего?
Offline
0327: $TEMPVAR_ACTOR_CAR = get_random_car_with_model -1 in_rectangle_cornerA $111 $112 cornerB $114 $115Этот опкод выбирает случайную машину в зоне из прямоугольника?
да
$111 и $112 — это координаты левого нижнего угла? или правого верхнего?
2 координаты одного угла, и 2 координаты другого угла, разницы нет, какой из них нижний левый, а какой правый верхний...
вот создал тему - http://sannybuilder.com/forums/viewtopi … 433#p13433
Last edited by Voron295 (13-12-2010 16:11)
Offline
Когда то задавал этот вопрос.
Есть пед из трафика. Как промыть ему мозг ? Что бы он встал как вкопаный, как после
actor.create() и пустого DM.
Дело в том, что после любого задания, которое ему даётся (типа пойти туда-сюда,
проиграть аниму...) он всё равно прёт по своим делам. Вроде как к нему применили
05DE: AS_actor 54@ walk_around_ped_path
Как то можно закрыть ему все TASKи, которые он получил при генерации ?
Пробовал следующее:
1. Нашел нужного педа в трафике
2. Присвоил ему флаг уникальности
3. поставил ему EMPTY_DM (0) - нифига не помогло, он просто перестал реагировать
на плеера и остальных педов, но как пёр по своим педовским делам - так и пёр.
4. Пробовал 0687: clear_actor 0@ task = ессно тоже не помогло (я так понял этот
опкод отбивает у него желание исполнять только скриптовые TASKи)
Просто в некоторых ситуациях приходится создавать нового актора, причем чтоб он не был
виден в момент создания, т.к. это сильно бросается в глаза т.е. в 90% случаев за спиной плеера.
А по идее это должен быть пед из трафика.
Offline
кстати, каким образом камера "приседает" вместе с игроком, когда тот тоже приседает? и снова я спрошу, как переместить камеру так же как при анимации залазания или перелазания, т.е. перемещать точку её зрения (не знаю как правильней выразиться), чтобы при этом можно было вращать камеру, как вокруг игрока??? это пожалуй мой вечный вопрос уже....
Offline