МЕНЮХА
CMc0Xzhp0go
TEMPLATE-POST.PHP
#Уроки
Сегодня на уроке мы изучим:
-Пикапы, сейвинг, телепортацию и интерьеры.

Итак, начнем

Теория:

-С помощью определеных опкодов можно вызвать save меню
-С помощью определеных опкодов можно сделать телепортацию и смену интерьера игроку
-pawnokit.com/Ru/Interiors- тут можно найти id всех интерьеров(Мне не платили)

Конец теории

Практика:
Эм... ну что же начнем

Значит создаем новый скрипт-файл(ctrl+n)
Жмем F6(компиляция, да и кстати после завершения работы надо делать компиляцию, что бы получить готовый файл иначе игра не распознает его)

Путь сохранения (путь к GTA)/cleo//
В графе название пишим "MyFirstHouse"

Далее

В скрипте пишим
{$cleo .формат}(формат смотри в первом уроке)
0000:
thread 'MyFirstHouse'
end_thread

После thread 'MyFirstHouse'
0518: 1@ = create_available_asset_pickup 'PROP_3' at 2498.5393 -1642.2543 14.1131 price 120000 // Пикап покупки
Marker.CreateIconWithoutSphere(2@,31,2498.539, -1642.254, 0.0)
Далее пишим условие
if
$MyFirstHouseBuy == 0
jf @Buy1
Сразу же после пишим :NotBuy1
И :Buy1
После :NotBuy1
Пишим условие
if and
0214: pickup 1@ picked_up
jf @NotBuy1

Дальше сетим поворот и координаты игроку и ещё камеру
Actor.PutAt($PLAYER_ACTOR,2498.4053, -1645.4764, 13.537)
Actor.Angle($PLAYER_ACTOR) = 180.0
Camera.SetBehindPlayer()
$MyFirstHouseBuy = 1

Потом уничтожаем на всякий случай прошлый пикап и на место него ставим другой пикап входа/выхода и убераем метку

Pickup.Destroy(1@)
0A40: 1@ = create_entrance_marker_at 2498.539 -1642.254 14.1131 color 14
Marker.Disable(2@)

Потом условие
:1
wait 0
if
00ED: actor $PLAYER_ACTOR sphere 0 near_point 2498.539 -1642.254 radius 1.0 1.0 on_foot
jf @1

Ииииииии...
Телепортируем игрока, разворот ставим, камеру, интерьер, присоединяем игрока к интерьеру.... дальше делаем функционал сами
!!!ПОСЛЕ ЗАВЕРШЕНИЯ РАБОТЫ КОМПИЛИРУЙТЕ СКРИПТ!!!
!!!КООРДИНАТЫ ТУТ ТОЛЬКО ДЛЯ ПРИМЕРА! СТАВЬТЕ СВОИ И РАЗВОРОТ И ИНТЕРЬЕР ТОЖЕ СВОЙ!!!
Actor.PutAt($PLAYER_ACTOR,-42.5258, 1408.2278, 1084.4297)
Actor.Angle($PLAYER_ACTOR) = 0.0
Camera.SetBehindPlayer()
04BB: select_interior 8
0860: link_actor $PLAYER_ACTOR to_interior 8

После :Buy1

0A40: 1@ = create_entrance_marker_at 2498.539 -1642.254 14.1131 color 14
:2
wait 0
if
00ED: actor $PLAYER_ACTOR sphere 0 near_point 2498.539 -1642.254 radius 1.0 1.0 on_foot
jf @2
Actor.PutAt($PLAYER_ACTOR,-42.5258, 1408.2278, 1084.4297)
Actor.Angle($PLAYER_ACTOR) = 0.0
Camera.SetBehindPlayer()
04BB: select_interior 8
0860: link_actor $PLAYER_ACTOR to_interior 8
И тут тоже сами функционал...
!!!ПОСЛЕ ЗАВЕРШЕНИЯ РАБОТЫ КОМПИЛИРУЙТЕ СКРИПТ!!!
!!!КООРДИНАТЫ ТУТ ТОЛЬКО ДЛЯ ПРИМЕРА! СТАВЬТЕ СВОИ И РАЗВОРОТ И ИНТЕРЬЕР ТОЖЕ СВОЙ!!!

Практика кончилась теперь бонус

3@ = Pickup.Create(модель,коорд_x,коорд_y,коорд_z)
:228
wait 0
if
Pickup.picked_up
jf @228
03D8: show_save_screen

!!!03D8-ой опкод показывает save меню!!!

Итог:

-Мы умеем телепортровать игрока
-Мы умеем устанавлить игроку угол разворота
-Менять интерьер
-Присоединять актера к интерьеру
-Делать сохранение
-Устанавливать камеру за игроком
-Делать проверки на поднятие пикапа
-Делать маркеры входа/выхода
-Создавать маркер для покупки имущества(не только дома, но и бизнесы можно сделать через это)
-Все то что мы умели делать в прошлом уроке

В следущем уроке:

-Мы разберем объекты
-Мы разберем анимации
-Мы разберем активации на зоны

Да и кстати, большое тебе спасибо, что прочитал это, потому что на этот мануал я убил один час своего сна :(
КОНЕЦ