Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Prographer

Страницы: 1 [2] 3 4 ... 7
16
Скриптинг / Re: Dubstep-пушка
« : Май 20, 2017, 12:14:59 pm »
Если надо работать с памятью - просто откладываете "скриптинг" и начинаете программировать.
Не надо себя мучать.
Ну это только если работа с памятью занимает бОльшую часть работы. А крупные скриптовые моды(что сюжетные, что просто "скриптовый комплекс") как раз вызовут мучения, если пытаться написать их на c++
Мне кажется, что на этом форуме уже столько всего разобрали, что проще все наработки перенести на OpenRW ;D

17
О сайте и форумах / Хостинг
« : Апрель 29, 2017, 10:31:43 am »
Админы, сколько отдаёте за хостинг? Есть отличная контора ihor.ru. Очень привлекательные цены. Пользуюсь сам.

18
Скриптинг / Re: Dubstep-пушка
« : Апрель 29, 2017, 10:03:42 am »
Забыл дополнительные файлы: модель дабстеп-пушки и аудиофайл.
https://yadi.sk/d/tLYWg6D_3HU87R

19
Скриптинг / Dubstep-пушка
« : Апрель 28, 2017, 04:22:25 pm »
Всем привет. Написал тут скрипт на дабстеп-пушку, но работает он как-то не стабильно. Помогите разобраться, в чём проблема? Закомментировал всё, что вспомнил (что-то может быть не совсем верно :) ). Всем заранее спасибо.
{$CLEO}
0000:
thread 'DubGun'
    wait 0
        :start
        wait 0
       
        if or
            Player.Defined($PLAYER_CHAR)
            Player.Wasted($PLAYER_CHAR)
            Model.Available(#RUGER)
        jf @start
       
        Model.Load(#RUGER)
        038B: load_requested_models
        :check
            wait 0
            3@ = 0x0 // отступ от нулевого элемента в массиве указателей на педов
            if and
                02D7: player $PLAYER_CHAR currentweapon == 27           // 27 - Ruger
                05EE: key_pressed 0x1                                   // 0x1 - левый клик
                02E0: actor $PLAYER_ACTOR firing_weapon
            then
                03CF: load_wav 'bust_07' as 1
                04ED: load_animation 'STRIP'
               
                repeat
                    wait 0
                until 04EE: has_animation_loaded 'STRIP'
               
                repeat
                    wait 0
                until 03D0: wav 1 loaded
                       
                03D1: play_wav 1
               
                /* * * ЛОГИКА * * */
                /*
                    1. Получаем структуру игрока и кладём в 1@
                    2. Преобразуем 1@ в массив указателей на 10 педов (0x56С)
                    3. Прибавляем размер указателей, которые уже обработали
                    4. Получаем структуру из адреса на педа
                    5. Применяем ему анимацию
                    6. Прибавляем к 3@ размер текущего указателя на педа
                */
               
                for 2@ = 0 to 5                                         // применяем анимацию к пяти педам
               
                    05E6: 1@ = actor $PLAYER_ACTOR struct               // структура игрока
                    1@ += 0x56C                                         // адрес нулевого элемента в массиве указателей на ближайших десяти педов
                   
                    005A: 1@ += 3@
                    05E0: 1@ = read_memory 1@ size 4 virtual_protect 0  // 1@ - адрес n-го педа
                   
                    05E9: 1@ = ped_struct 1@ handle                     // переводим структуру в дискриптор, чтобы применить анимацию
                    0372: set_actor 1@ anim 32 wait_state_time 3000 ms  // применяем анимацию
                    3@ += 0x4                                           // 0x4 - размерность указателя на педа
                   
                end
               
                2@ = 0                                                  // обнуляем счётчик
                01E3: text_1number_styled 'REWARD' number 1@ time 6000 style 6
               
                while 05EE: key_pressed 0x1                             // левый клик мыши (стрельба)
                    wait 0
                    0419: 0@ = player $PLAYER_CHAR weapon 27 ammo
                    if
                        0@ == 0
                    then
                        01C2: remove_references_to_actor 1@
                        040D: unload_wav 1
                        //04EF: release_animation 'STRIP'
                    end
                end
               
                01C2: remove_references_to_actor 1@
                040D: unload_wav 1
                3@ = 0x0
            end
        //04EF: release_animation 'STRIP'   
        jump @check
end_thread

20
Скриптинг / Re: Адрес актёра в дескриптор
« : Февраль 05, 2017, 11:01:17 am »
Точно. Спасибо :)

21
Скриптинг / Адрес актёра в дескриптор
« : Февраль 04, 2017, 04:24:38 pm »
Всем привет! Недавно появилась необходимость как-то конвертировать адрес некого актёра в дескриптор (handle). Есть какие-то опкоды для этого или какие-то альтернативные методы?

22
Предлагаю в этой теме поделиться своими самыми любимыми треками, исполнителями или жанрами.
Также предлагаю посетить интересный сайт, своеобразные навигатор по музыкальным жанрам. Может быть, кто-то откроет для себя что-то новое :)

23
А зачем это докумментировать? Есть база по вайсу.
В структуре транспорта (CAutomobile, CHeli и т.д.) сохраняется массив указателей на "базовые" компоненты - колёса, двери, и т.п. Для CAutomobile этот массив начинается с оффсета 0x394.
Для каждого вида транспорта этот массив может различаться - как его размер, так и типы компонентов. В игре есть таблицы (для каждого типа транспорта), по которым можно определить формат этого массива.
Для CAutomobile сохраняются такие компоненты:
Код: C++
  1. enum eCarNodes_VC {
  2.     CAR_NODE_NONE = 0, // в начале массива - пустой указатель
  3.     CAR_WHEEL_RF = 1,
  4.     CAR_WHEEL_RM = 2,
  5.     CAR_WHEEL_RB = 3,
  6.     CAR_WHEEL_LF = 4,
  7.     CAR_WHEEL_LM = 5,
  8.     CAR_WHEEL_LB = 6,
  9.     CAR_BUMP_FRONT = 7,
  10.     CAR_BUMP_REAR = 8,
  11.     CAR_WING_RF = 9,
  12.     CAR_WING_RR = 10,
  13.     CAR_DOOR_RF = 11,
  14.     CAR_DOOR_RR = 12,
  15.     CAR_WING_LF = 13,
  16.     CAR_WING_LR = 14,
  17.     CAR_DOOR_LF = 15,
  18.     CAR_DOOR_LR = 16,
  19.     CAR_BONNET = 17,
  20.     CAR_BOOT = 18,
  21.     CAR_WINDSCREEN = 19
  22. };
Фреймы, которые в игре используются только для определения позиции (эффекта, света и пр.), в этот массив не сохраняются. Они удаляются из иерархии модели (клампа), а позиция (3d-координаты) записывается в структуре CVehicleModelInfo.

Вообще, учись работать с базой и исследовать код exe. Вся документация - именно там.
Не понимаю людей, которые столько лет занимаются скриптингом, интересуются им, интересуются самой игрой, и боятся залезть куда-то "поглубже".
Это абсолютно нормально, я считаю. Скриптинг по своей сути вообще не подразумевает явную работу с памятью. Большинство людей, пишущих сценарии на LUA понятия не имеют как это будет выполнять машина, а работа с idb-базой как раз требует этого понимания, и ещё много чего. Здесь уже необходимы определённые знания в соответствующей сфере.

24
Моды / Re: Radio Stations' Icons
« : Август 25, 2016, 03:22:50 pm »
Я кажись понял, отчего у меня задержки вывода иконок при переключении станций... Это видно игра так долго загружает txd :( Большая проблема, когда надо быстро переключить станции...
Но все остальное работает отлично!!
Не думаю. Попробуй поставить этот скрипт. Покрути колёсико мыши вниз. Задержек быть не должно.

25
Скриптинг / Гидравлика на автомобиле педа
« : Август 20, 2016, 12:03:11 pm »
Всем привет. В Вайсе есть возможность управлять гидравликой на автомобиле игрока, но если ли возможность управлять ею на автомобиле другого актёра?

26
Идеи / Динамичные облака
« : Август 18, 2016, 04:49:04 pm »
Всем привет. Недавно вспомнил такой опкод, 039D. С его помощью можно создавать систему частиц в  определённой области определённое время. Можете предложить свои идеи как это лучше реализовать.

27
Моды / Re: Radio Stations' Icons
« : Август 15, 2016, 06:56:59 pm »
Теперь, думаю, допилено окончательно, заценивайте. Смотрим тут.

28
Скриптинг / Re: Новые возможности Cleo 2.0.0.4
« : Август 10, 2016, 08:43:45 pm »
Здорово. Странно, что никто ещё до сих пор не использовал эту возможность в Vice City

29
Скриптинг / Re: Новые возможности Cleo 2.0.0.4
« : Август 10, 2016, 08:24:28 pm »
То есть благодаря этим файлам я могу работать, допустим, с ini-файлами, как в GTA SA?

30
Моды / Re: Radio Stations' Icons
« : Июль 26, 2016, 06:55:04 pm »
Почему это проблема? Вроде бы как ребят, нужно не использовать сжатие, тогда края резкими не будут. Можно собирать текстуры без сжатия с помощью MAGIC - TXD BUILDER

А можно с помощью неё собрать текстуры сразу с alpha-каналом?

Страницы: 1 [2] 3 4 ... 7