Работа с компонентами моделей
|
|
kenking | Дата: Четверг, 03.11.2011, 10:43 | Сообщение # 61 |
Группа: Проверенные
Сообщений: 22
Статус: Offline
| Quote (Den_spb) Можно попробовать запиcать 0 в RwFrame + 4. Так и сделал. Достаточно записать ноль в любой из четырёх байтов соответствующего адреса родителя компонента и компонент исчезает. Quote (Den_spb) Из-за чего пропадают компоненты? Из-за изменения родителя? Точно из-за изменения родителя компонента. RwFrame+2 и RwFrame+3 здесь вообще не причём.
Вот соответственно исправленный код Доступно только для пользователей
Сообщение отредактировал kenking - Четверг, 03.11.2011, 10:43 |
|
| |
izerli | Дата: Понедельник, 14.11.2011, 17:21 | Сообщение # 62 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Снова вопрос. http://78.24.218.65/forums/viewtopic.php?pid=15584#p15584 а способ проверки названия компонента, представленный в этом сообщении, работает с добавленными компонентами, или только со стандартными?
|
|
| |
Den_spb | Дата: Понедельник, 14.11.2011, 18:41 | Сообщение # 63 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Со всеми. Добавленный компонент ничем не отличается от стандартного - их структуры одинаковы.
|
|
| |
izerli | Дата: Понедельник, 14.11.2011, 18:45 | Сообщение # 64 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Денис, я не совсем понимаю вот эту часть Code 0087: 30@ = 31@ // (float) 0A8D: 1@ = read_memory 31@ size 4 virtual_protect 0 31@ += 4 0A8D: 2@ = read_memory 31@ size 4 virtual_protect 0 я так понимаю, считывать надо в 2 переменных, потому что размер 1@s = 8 байт? и вот еще, Code 05AE: 1@s == 'chassis' при проверке этого условия у меня вылет. если убрать, то все нормально.
|
|
| |
Den_spb | Дата: Понедельник, 14.11.2011, 18:57 | Сообщение # 65 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Quote (izerli) я так понимаю, считывать надо в 2 переменных, потому что размер 1@s = 8 байт? Да, именно так.
Quote (izerli) при проверке этого условия у меня вылет. если убрать, то все нормально. Какой опкод последний в логе?
|
|
| |
izerli | Дата: Понедельник, 14.11.2011, 19:40 | Сообщение # 66 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| Den_spb, подскажи, а где этот лог посмотреть?
|
|
| |
Den_spb | Дата: Понедельник, 14.11.2011, 19:47 | Сообщение # 67 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Плагин ScmLog можно скачать с сайта cleo.sannybuilder.com или из архива данного сайта. Для установки плагина нужно поместить файлы scmlog.cleo и scmlog.ini в папку cleo. Плагин будет создавать текстовый файл scmlog.log каждый раз после завершения игры. Если игра была завершена из-за ошибки при выполнении скриптов, то с помощью лога можно определить, при выполнении какого опкода произошёл вылет (он будет указан в логе последним). П.С. Из-за 05AE: 1@s == 'chassis' вылетать не должно, т.к. здесь используются правильные типы данных.
|
|
| |
izerli | Дата: Понедельник, 14.11.2011, 20:06 | Сообщение # 68 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| спасибо, сейчас посмотрю. Добавлено (14.11.2011, 20:06) --------------------------------------------- так, понял почему вылетало, но почему то условие не выполняется.. могло ли это быть вызвано тем, что я использую не переменные 1@ и 2@, а 15@ и 16@? соответственно код использую следующий: Code 12@ +=172 0A8D: 15@ = read_memory 12@ size 4 virtual_protect 0 12@ += 4 0A8D: 16@ = read_memory 12@ size 4 virtual_protect 0 12@ -= 176 if 05AE: 15@s == 'speedo_ok' then ... end
|
|
| |
Den_spb | Дата: Понедельник, 14.11.2011, 20:17 | Сообщение # 69 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| В строках на каждый символ отводится один байт. Поэтому для короткой (8-байтовой) строки надо проверять 8 символов:Code 05AE: 15@s == 'speedo_o'
|
|
| |
izerli | Дата: Понедельник, 14.11.2011, 20:33 | Сообщение # 70 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| к сожалению, не помогло. Добавлено (14.11.2011, 20:29) --------------------------------------------- быть может попробовать дать в занозе более короткие названия компонентам? Добавлено (14.11.2011, 20:33) --------------------------------------------- верно мыслишь. щас попробую.
|
|
| |
Den_spb | Дата: Понедельник, 14.11.2011, 20:35 | Сообщение # 71 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Я бы вывел строку на экран, чтобы узнать её значение: 0ACD: show_text_highpriority 15@s time 10000
UPD: Проверь, чтобы в настройках SB регистр букв был выставлен "Как есть" (Настройки - Форматирование - Регистр букв)
Сообщение отредактировал Den_spb - Понедельник, 14.11.2011, 20:36 |
|
| |
izerli | Дата: Понедельник, 14.11.2011, 20:48 | Сообщение # 72 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| на экран выводит "speedo o", без "_". попробовал в проверку забить так же, результата 0.
|
|
| |
Den_spb | Дата: Понедельник, 14.11.2011, 20:49 | Сообщение # 73 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| А настройки регистра проверил?
|
|
| |
izerli | Дата: Понедельник, 14.11.2011, 20:50 | Сообщение # 74 |
Группа: Проверенные
Сообщений: 90
Статус: Offline
| да, конечно.
|
|
| |
Den_spb | Дата: Понедельник, 14.11.2011, 20:56 | Сообщение # 75 |
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
| Попробуй убрать "_" из названия компонента в модели.
|
|
| |