# 00089. Интересные опкоды (Часть 2)

Интересные опкоды (Часть 2)|Всем привет! Сегодня мы продолжим рассматривать интересные опкоды. Некоторые из них были и для меня открытием, так как я и не думал, что такое можно создать обычным опкодом, но об этом написано в этой статье.|wmysterio|wmysterio||||1. Первые опкоды в нашем списке касаются зрения, а точнее включение и отключения видов зрения ( по-другому - эффектов зрения ). Думаю, Вы знаете, что когда мы надеваем очки ночного виденья, то всё вокруг будет зелёным. Так вот, этот режим, режим ночного виденья, можно включить опкодом:

```
08B1: enable_night_vision 1 // 0 - выключить режим
```

При этом неважно будет ли в вашем комплекте оружия эти самые очки. Есть и аналогичный опкод, только включает режим теплового виденья ( видно только тепло субъектов на синем фоне ):

```
08B2: enable_thermal_vision 1 // 0 -выключить режим
```

Ну и есть проверка "Режим ночного виденья включен?":

```
099D: night_vision_enabled
```

1. Следующий пак опкодов касается банд. Первый опкод:

```
08EA: enable_gangs_spawn 0 // 1 - включить
```

Выключает генератор создания членов банд. Одними словами - Вы не найдете ни одного представителя любой банды на улице.

```
08AC: hide_gang_zones_on_map 1
```

Опкод скрывает на карте зоны банд, которые видны на карте. Если поставить 0 - показывает зоны на карте, но при условии, что включена война за территории опкодом:

```
0879: enable_gang_wars 1 // 0 - отключить войну
```

Далее в нас:

```
07B4: set_player $PLAYER_CHAR gang_recruitment_enabled 0
```

Опкод запрещает найм братков в свою банду, даже когда уважение на максимум. Полезно использовать в миссиях, где нужно, чтобы игрок проходил задание в одиночку. Если поставить 1 - то найм разрешается.

```
08F4: set_max_group_members 2
```

Устанавливает к-во братков, которые можно нанять. Даже если у вас будет максимально прокачан респект можно будет нанять только 2 человека. Максимально можно набрать до 7 людей, даже если установить параметр на 8 или больше.

```
092B: 8@ = group $PLAYER_GROUP member 2
```

Записывает в переменную "8@" актёра, который находится под номером "2" в группе "$PLAYER\_GROUP".

1. Также есть возможность включить режим бунта - везде пожары, люди носят на руках телики, перестрелки с копами и драки между собой:

```
06C8: enable_riot 1 // 0 - отключить режим
```

1. Следующие опкоды связаны с копами и розыском. Начнём:

```
0A24: enable_military_zones_wanted_level 0
```

Опкод выключает контроль над секретными зонами. Одними словами Вам не будут давать 5 звёзд, когда вы зайдёте в одну из этих зон. Если поставить 1, то включается обычный режим для этих зон.

```
0503: create_actor_on_rope_with_pedtype 27 model #SWAT at 2223.56 -1168.05 32.28 handle_as 47@
```

Опкод создаёт верёвку в точке "2223.56 -1168.05 32.28", где создаётся актёр "47@" с моделью "#SWAT". "27" - длина этой верёвки. По ней он спускается вниз. Это событие наблюдается, когда из вертолета спускаются "SWAT-овцы".

```
04C0: create_roadblock_in_area_cornerA 2484.5054 -1655.8033 12.3256 cornerB 2484.3508 -1680.8092 20.3347 type 0
```

Вот этот опкод меня удивил, так как я до вчерашнего дня не знал о его функции. Оказывается, он создаёт блокпост полиции вдоль линии между точками A ( "2484.5054 -1655.8033 12.3256" ) и B( "2484.3508 -1680.8092 20.3347" ). Этот приём видно, когда вы набираете больше 3-х звёзд и вам на встречу стоят полицейские автомобили и копы стреляют в вас. Тип ( type ) оставляйте "0", так как изменения привело к ошибке.

1. Следующие опкоды являются элементами оружия. Мы можем воспроизвести основные эффекты, свойственны пушкам.

```
058A: create_gun_flash_from 2484.5054 -1655.8033 13.3256 to 2484.3508 -1680.8092 13.3347
```

Создаёт эффект вспышки со ствола.

Здесь:\
2484.5054 -1655.8033 13.3256 - координаты, где создается эффект\
2484.3508 -1680.8092 13.3347 - координаты, куда направлен эффект

Далее:

```
08EB: create_sparks_at 2484.5054 -1655.8033 13.3256 velocity_direction 0.0 0.0 1.0 density 60
```

Создаёт эффект попадания патрона по точке "2484.5054 -1655.8033 13.3256" ( как будто в стену ). "0.0 0.0 1.0" разворот эффекта, относительно координат, "60" - как бы распространённость, радиус вспышки.

```
09B8: create_blood_gush_at 1@ 2@ 3@ with_offset 0.0 0.0 0.0 density 20 on_actor $PLAYER_ACTOR
```

Создаёт эффект попадания пули по актёру "$PLAYER\_ACTOR" в точке "1@ 2@ 3@" ( это должны быть текущие координаты актёра ). "0.0 0.0 0.0" - оффсет, относительно актёра. "20" - распространённость или к-во крови, которое "выскакивает" с актёра.

```
06BC: create_M4_shoot_from 2484.2993 -1662.7245 13.3359 target 2485.2795 -1670.8452 13.3359 energy 10
```

Создать патрон и эффект его полёта, который будет лететь с точки "2484.2993 -1662.7245 13.3359" в точку "2485.2795 -1670.8452 13.3359". Если кто-то попадёт под траекторию патрона, то он получит урон в размере "10" жизни.

1. Так же можно создать эффект солнечного цвета опкодом:

```
09E5: create_flash_light_at 2485.5708 -1661.1194 20.3359 RGB_mask 0 255 0 radius 200.0
```

Здесь:\
2485.5708 -1661.1194 20.3359 - точка, где будет размещаться "солнце"\
0 255 0 - цвет света в RGB ( red - green - blue ) диапазоном от 0 до 255\
200.0 - дальность свечения

Этот опкод нужно использовать в цикле, так как эффект нужно постоянно создавать.

1. Оподы, связаны с игроком:

```
0330: set_player $PLAYER_CHAR infinite_run 1 // 0 - выключить
```

Опкод включает бесконечный бег.

```
06AF: set_player $PLAYER_CHAR sprint_mode 1 // 0 - отключить
```

Установить режим спринта. Игрок не сможет быстро бежать ( по-умолчанию при нажатии пробел ), а только стандартное передвижение. Этот эффект встречается в интерьерах, где быстро бежать не получится. Этот режим лучше размещать в цикле, так как он не имеет постоянного действия.

```
0806: get_player $PLAYER_CHAR kills_from_last_checkpoint 0@
```

Опкод записывает в переменную "0@" количество убитых вами актёров с момента загрузки игры.

```
0842: 0@ = player $PLAYER_CHAR town_number
```

Опкод записывает в переменную "0@" номер города ( или даже территории ), в котором ( ой ) Вы сейчас находитесь.

```
09C7: change_player $PLAYER_CHAR model_to #SPECIAL01
```

Опкод меняет скин СЖ на модель "#SPECIAL01" ( нужно сначала загрузить модель ). Чтобы поменять скин на обычную модель, то используем - "#NULL".

1. Ну и последняя тройка интересных опкодов:

```
09E6: set_burglary_houses_accessible 1 // 0 - отключить режим
```

Опкод позволяет входить во все дома ( в те, которые работают при миссии грабителя ).

```
05C4: AS_actor $PLAYER_ACTOR hands_up 15000 ms
```

Опкод заставляет актёра "$PLAYER\_ACTOR" поднять руки на 15 секунд, мол "сдаюсь!".

```
083E: set_actor $PLAYER_ACTOR rotation 0.0 90.0 0.0 while_in_air
```

Разворачивает актёра "$PLAYER\_ACTOR" по всем возможным осям ( пока актёр находится в воздухе ).

Надеюсь, вторая часть была для Вас полезной и в первую очередь интересной.|3236|1|0||interesnye\_opkody\_chast\_2|1500809226


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lessons.sannybuilder.com/00100/00400/00089.-interesnye-opkody-chast-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
