Нова одяг для Томмі в GTA Vice City за допомогою CLEO

В цій статті я опишу вам процес створення пікапу скіна в GTA Vice City.
Маленька передісторія
До моменту коли я почав робити якісь модифікації, мені завжди хотілося чогось нового в Vice City. Подивившись на GTA SA я здивувався тому, що у персонажа є величезний гардероб і впав в недоуміння коли зрозумів, що у Томмі немає такого різноманіття в одязі. Почавши шукати на різних сайтах, я мало чого знайшов, але все ж зрозумів, що можливість дати Томмі новий одяг - є! Приклади таких моделей/текстурок тут, тут і тут. Тоді я і подумав "А чим я гірший?". Встановивши 3ds max і витративши купу часу і сил(т.к. я нічого не вмів) я зробив свій перший скін.
Мені не подобалось, що він заміняє стандартні моделі і я почав шукати рішення. Знайшов я його в CLEO, почавши писати скрипт я зіткнувся з купою проблем(т.к. я мало що розумів) і на допомогу прийшов Shagg_E.
В результаті був написаний скрипт, яким би я хотів поділитися і розповісти пару зауважень до всього цього.
Підготовка
Все що нам потрібно - txd workshop/IMGtool, готовий скин(благо відео по створенню скинів - купа), CLEO, трохи терпіння.
Робота
Для початку, моделям і текстурам потрібно дати ім'я. Ім'я файлів не повинно перевищувати 7 символів, пізніше поясню чому. Свої файли я назвав testsk.

Після того як ми дали ім'я файлам, потрібно закинути їх в gta3.img. Я використовую для цього txd workshop але можна й іншими методами. Якщо ж вам не подобається додавати файли в gta3.img, то можете встановити modloader, з ним все так само працює.
Наступний крок буде CLEO скрипт. Для написання скрипта нам знадобиться Sanny Builder. Скачавши, встановивши і налаштувавши його(в інтернеті достатньо відео по SB) ми починаємо писати скрипт.
СКРИПТ
Вибираємо, що скрипт буде для GTA VC.
Одразу повідомлю, що я не професіонал у скриптингу, але цей скрипт не повинен видавати якихось помилок і вильотів гри.
Ось і сам скрипт з поясненнями:
thread 'newskin' // Даємо назву потоку. Назва будь-яка до 7-ми символів, т.к. в (') поміщається максимум 7 символів
:first //Створюємо першу групу
wait 0 //Ставимо 0-ву затримку на початку групи, вона потрібна, щоб гра не зависла.
00F5: player $player_char in_sphere 0 near_point x y z radius 30.0 30.0 30.0 // Опкод 00F5 запитує у гри, чи є гравець у сфері з центром у координаті X Y Z. 0 - означає, що сфера невидима для гравця. 30.0 30.0 30.0 це радіус сфери по X Y Z(думаю, що 30 це оптимальний радіус)
jf @first //Якщо дії вище не були виконані, то стрибаємо на first
model. Load(409) //Ставимо модель 409(модель пікапа одягу) на чергу в завантаження
038B: load_requested_models //Завантажуємо вибрані моделі
pickup. Create(0@, 409 ,2 , x, y, z) //Створюємо пікап у координатах X Y Z, який займатиме локальну змінну 0@, модель пікапа буде під id 409, тип пікапа 2 - безкоштовний і відновлюється з часом
model. Destroy(409) //Вивантажуємо модель, оскільки ми її використали в пікапі
:second //Створюємо другу групу
wait 0 //Встановлюємо 0-ву затримку на початку групи, вона потрібна, щоб гра не зависла.
00F5: player $player_char in_sphere 0 near_point x y z radius 30.0 30.0 30.0 //Той же опкод, що й у first, повторна перевірка потрібна, щоб впевнитися, що гравець не покинув сферу
jf @destroy //Якщо дії вище не були виконані, то стрибаємо на destroy
pickup. Picked_up(0@)
jf @second //Якщо дії вище не були виконані, то стрибаємо на second
fade 0 250 //0 - означає початок затухання, 250 - час у мілісекундах
wait 250 //Встановлюємо затримку в 250 мілісекунд
0352: set_actor $player_actor skin_to 'testsk' //Змінюємо скин гравця на 'testsk'. Замість 'testsk' буде назва вашого скина, наприклад 'chel'. Важно, щоб назва txd і dff були однаковими і до 7 символів, оскільки в (') поміщається максимум 7 символів. Працює тільки на спеціальних і доданих вами.
038B: load_requested_models //Завантажуємо вибрані моделі, у цьому скрипті це модель 'testsk'
0353: refresh_actor $player_actor // Перезавантажуємо гравця
wait 250 //Встановлюємо затримку в 250 мілісекунд
fade 1 250 //1 - означає кінець затухання, 250 - час у мілісекундах
0ACE: show_formatted_text_box "my skin" //Виводимо на екран текст-бокс (як при введенні чит-коду) з текстом "my skin". Текст може бути будь-яким.
jump @second //Стрибаємо на second
:destroy //Створюємо групу для видалення пікапа
pickup. Destroy(0@) //Видаляємо пікап
jump @first //Стрибаємо на first
Щоб записати координати, потрібно зайти в гру, не вимикаючи SB, стати на місце, де ви хочете встановити пікап, і в SB натиснути ПКМ і вибрати цю дію

Важливе зауваження!!! Не ставте пікапи поруч із збереженнями (щоб пікап не був створений, коли ви зберігаєтеся). При кожному збереженні буде створюватися новий пікап на місці старого, і при цьому старий не видалиться, тим самим пікапи будуть створювати зайве навантаження, що в скорому часі може призвести до вильотів гри.
В результаті у мене ось що вийшло:

Компілюємо скрипт натисканням клавіші F6

Результат
Зайшовши в гру, на місці, де я хотів встановити пікап, ось що я виявив:
Рекомендуемые файлы
Створювач і розробник - Evgenii Sokolov
При використанні матеріалів посилання на LibertyCity.Ru обов'язкове.