Дата: Вторник, 07.06.2011, 22:46 | Сообщение # 211
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Денис, о_О Нерешаемых задач же нету. У меня "на запас" ещё одна идейка - прицепить к авто обьект с 2dfx - короной (которую надо будет как-то убрать) и проекцией. Ах, да, ещё к тачке можно партикл прицепить. Так и делают в модах с неоном. Но тогда не будет взаимодействия с поверхностью. А способ с инжектором я ещё буду тестировать.
Дата: Понедельник, 13.06.2011, 03:44 | Сообщение # 216
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Ссылок на смещения структур IDA вроде не даёт. Поэтому я могу предложить только один способ - текстовый поиск по базе (Search-Text). Т.к. указатель на структуру обычно записан в ecx или в esi, то искать следует подобные комбинации: [ecx+14h] и [esi+14h]
Дата: Воскресенье, 26.06.2011, 23:59 | Сообщение # 218
Создатель сайта
Группа: Администраторы
Сообщений: 1595
Статус: Offline
Это разновидности опкода присвоения. Описания неизвестных команд можно найти в статьях по ассемблеру, которые выложены на соответствующих сайтах. Вот одна из статей: http://www.ratprog.msevm.com/assembler/pr/19.htm
Дата: Вторник, 28.06.2011, 23:51 | Сообщение # 219
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Спасибо.
Code
sub_4A0DE0
Занимается созданием выстрела. Принимает много параметров, вызывается как метод к dword_A9AE00 (Что это - без понятия). В общем, там всё зашито в EventGroup, мне даже не удалось найти как применяется анимация пальбы к педу. Вот таки дела... Так и ещё вопрос что это значит
Code
CVector__normalize
Я вэто вообще плохо разбираюсь, елё допёр, что есть вектор... Желательно своими словами (если знаешь), ибо википедия сильно мудрит в этих вещах.
@@opcode_058A: ; create_gun_flash_from %1d% %2d% %3d% to %4d% %5d% %6d%
Это не выстрел, а эффект частиц (вспышка у дула).
Quote (DK22Pac)
Я вэто вообще плохо разбираюсь, елё допёр, что есть вектор...
Вектор - набор из трёх координат. В чём тут подвох?
Quote (DK22Pac)
"CVector__normalize"
Не думаю, что Википедия знает, что это такое Судя по коду, осуществляется деление координат вектора на его длину, т.е. вектор преобразуется в единичный.
Ну я, честно, долго этого понять не мог. В школе я это как-то "упустил"...
Quote (Den_spb)
Занимается созданием выстрела.
Тут я имел ввиду: создание партиклов (дым, вспышка огня), создание bullettrack (жёлтая линия - след движения пули), и, возможно, что-то ещё. Хотя мне это уже не сильно нужно, т.к. я пошёл простым путём: создавал gunflash и m4shot из одной точки в другую. (раньше я хотел найти способ произвести выстрел педа из его оружия).
Quote (Den_spb)
Судя по коду, осуществляется деление координат вектора на его длину, т.е. вектор преобразуется в единичный.
Дата: Воскресенье, 03.07.2011, 22:35 | Сообщение # 223
Группа: Проверенные
Сообщений: 206
Статус: Offline
Вот вопросик: почему, когда я изменяю громкость радио через память, она изменяется только в меню, но в игре остается прежней? Я пытался выйти из машины и войти снова, но ничего не произошло. Измененная громкость была только в меню. Вот скрипт:
Code
{$CLEO .cs} thread "RADIO"
:Radio1 wait 0 if and not actor.Dead($PLAYER_ACTOR) actor.Driving($PLAYER_ACTOR) 0AB0: key_pressed 0x6B jf @Radio2 gosub @GetVolume if not 1@ > 63 jf @Radio1 1@ += 1 0A8C: write_memory 0xBA6798 size 1 value 1@ virtual_protect 0 018C: play_sound 1054 at 0.0 0.0 0.0 wait 250 jump to @Radio1
:Radio2 wait 0 if and not actor.Dead($PLAYER_ACTOR) actor.Driving($PLAYER_ACTOR) 0AB0: key_pressed 0x6D jf @Radio1 gosub @GetVolume if not 1@ < 1 jf @Radio2 1@ += -1 0A8C: write_memory 0xBA6798 size 1 value 1@ virtual_protect 0 018C: play_sound 1054 at 0.0 0.0 0.0 wait 250 jump to @Radio1
Дата: Четверг, 07.07.2011, 10:13 | Сообщение # 224
Группа: Проверенные
Сообщений: 96
Статус: Offline
Vital, То что ты изменяешь, меняет значения только меню, на игровых это никак не отразится. За игровую громкость, скорей всего отвечает CAudio.
Вопрос к опытным:
Code
for 10@ = 0xBA86F0 to 0xBAA248 step 0x28
Интересует следующее, откуда взято 0xBAA248? И объясните простым языком, как работает эта часть кода
Code
while true wait 0 for 10@ = 0xBA86F0 to 0xBAA248 step 0x28 0A8D: 22@ = read_memory 10@ size 4 virtual_protect 0 0A8E: 11@ = 10@ + 0x1C 0A8D: 12@ = read_memory 11@ size 4 virtual_protect 0 //DWORD dwIconSize; if 12@ == 3 then 0A8C: write_memory 11@ size 4 value 2 virtual_protect 0 end end end
Автор Sergey81
Добавлено (07.07.2011, 10:13) --------------------------------------------- Ещё вопрос, написал скрипт, по которому возле каждой сферы создаётся эффект, но почему-то эффект создаётся только около сферы, созданной в этом же скрипте. А допустим у сфер миссий ничего не происходит
Дата: Четверг, 07.07.2011, 13:35 | Сообщение # 225
$player_actor
Группа: Проверенные
Сообщений: 559
Статус: Offline
Quote (walk)
Интересует следующее, откуда взято 0xBAA248?
Обычно массив структур "перебирается" так: for0@ = <адресс первой структуры в массиве> to <адресс последней структуры в массиве> step <размер одной структуры> Адресс первой структуры в массиве является адрессом начала самого массива струкур. Адресс последней структуры в массиве выщитывается так: <адресс последней структуры в массиве> = <адресс первой структуры в массиве> + <размер одной структуры> * <количество структур в массиве>