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

Интересные опкоды (Часть 1)|В этом уроке перечислены самые интересные и полезные опкодов, на мой взгляд.|wmysterio|wmysterio||||Всем привет! Этот урок будет посвящен исключительно опкодам.

1. Все мы помним, как тяжело иногда набрать 6 звёзд, не используя читы. Вот этот опкод позволит вам набрать все шесть звёзд за два убийства:

```
03C7: set_sensitivity_to_crime 20.0
```

Здесь:\
20.0 - процент возрастания криминального рейтинга. Если поставить 0.0, то, естественно, криминальный рейтинг возрастать не будет ( или будет возрастать, но очень долго )

1. Возможно так же записать в переменные текущие координаты трупа:

```
04A5: store_dead_actor 0@ position_to 1@ 2@ 3@
```

Здесь:\
0@ - мёртвый актёр\
1@ 2@ 3@ - переменные, в которых будут хранится координаты

1. Иногда возникает необходимость узнать текущую цену автомобиля. Пожалуйста:

```
09E1: get_car_model 0@ price_to $PRICE
```

Здесь:\
0@ - хендл автомобиля\
$PRICE - в эту переменную и заносится цена автомобиля ( целое число )

1. Вот интересные опкоды, которые убирают некоторый транспортный поток:

```
099E: enable_police_patrols 0 // Патрули полиции не будут встречаться по дороге
072C: generate_police_bikes 0 // Тоже самое, что и опкод 099E, только убирает полицейские байки
06D0: enable_emergency_traffic 0 // На убийства и пожары перестанут приезжать медики и пожарные
06D7: toggle_train_traffic 0 // Поезда перестанут ездить
0923: unknown_toggle_air_traffic 0 // Убирает воздушный трафик ( самолёты и вертолеты )
```

Здесь:\
0 - выключить, 1 - включить

1. Иногда нужно, что бы вертолёт начал падать. Не проблема:

```
0564: heli 0@ simulate_crash_landing
```

Опкод заставляет симулировать падение ( как это было в одной из миссий )

1. Хотите, чтобы звёзды уровня розыска мигали, как после перекраски, держите:

```
09D4: suspend_wanted_level
```

1. Вот ещё одна неплохая проверка:

```
0A29: player $PLAYER_CHAR climbing
```

Проверяет: "Игрок лезет на что то ( перелазит через что то )?".

1. Вот этот опкод вы не найдете в SASCM.INI, но SB не вызовет никаких ошибок:

```
0488: model 205 exists
```

Проверка: "Модель 205 существует?".

Здесь:\
205 - модель ID ( которое используется в команде Model.Load )

1. Вот ещё интересный опкод, связаный с Гидрой:

```
0745: set_hydra 0@ thrust_to_horizontal
```

Поворачивает турбины Гидры "0@" ( истребителя, если кто не понял :) ) по горизонтали.

1. Очень часто у меня спрашивали, как заставить актёра стрелять куда то. Вот:

```
0668: AS_actor 0@ rotate_and_shoot_at 374.2905 -125.681 1001.308 2000 ms
```

Актёр "0@" будет стрелять в точку "374.2905 -125.681 1001.308" на протяжении "2" секунд.

1. Бывает необходимость запретить возможность перекрашивать автомобиль:

```
0294: set_car $car sprayable 0
```

Если установить значение на "1" - разрешает перекраску.

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

```
0881: set_player $PLAYER_CHAR able_to_shoot_weapons 0 // 1 - обратное действие
0992: set_player $PLAYER_CHAR weapons_scrollable 0 // 1 - обратное действие
01B9: set_actor 0@ armed_weapon_to 30
```

Первый опкод запрещает игроку стрелять. Второй опкод запрещает игроку менять слоты оружия. Третий опкод устанавливает актёру "0@" оружие с номером "30". Оно не даёт само оружие, а только имитирует выбор. Полезно использовать, когда Вы дали актёру несколько типов оружия и хотите, что бы он начал стрелять именно с нужного номера.

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

```
01E9: 1@ = car 0@ num_passengers // Записать в переменную 1@ текущее количество пассажиров в автомобиле 0@
01EA: 1@ = car 0@ max_passengers // Записать в переменную 1@ максимальное количество мест в автомобиле 0@
01E0: 1@ = car 0@ occupied_seats // Записать в переменную 1@ количество зянятых мест в автомобиле 0@
0431: car 0@ passenger_seat_free 0 // Проверка: "Место с номером 0 занято в автомобиле 0@?"
```

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

```
04FE: deflate_tire 2 on_car 0@ // Повредить шину с номер 2 в автомобиле 0@
0699: set_car 0@ repair_tire 2 // Отремонтировать шину с номер 2 в автомобиле 0@
053F: set_car 0@ tires_vulnerability 0 // Устанавливает всем покрышкам автомобиля 0@ иммунитеты к выстрелам
0496: tire 0 on_car 0@ deflated // Проверка: "Шина 0 в машине 0@ повреждена?"
```

1. Так же есть возможность создать и удалять объектные группы:

```
0776: create_objects_in_object_group "BARRIERS1"
0777: delete_objects_in_object_group "BARRIERS1"
```

Опкод создаёт/удаляет препятствия на дороге. Например: барьер, который не даёт автомобилям ездить между городами. Все барьеры выставляются автоматически в нужных местах. Вот список известных мне объектных групп:

| Имя          |
| ------------ |
| "BARRIERS1"  |
| "BARRIERS2"  |
| "TRUTHSFARM" |
| "CRACK"      |

1. Если вас достало выскакивающее окошко статистики ( по-умолчанию кнопка TAB\` ), то вы можете отключить эту возможность опкодом:

```
0960: toggle_player_stats_box $PLAYER_CHAR flag 0 // 1- включить. Опкод нужно использовать в цикле!
```

Как видите, получился неплохой списочек =) Всё это я собирал на протяжении всей моей скриптерской деятельности. И, конечно же, это не всё! Так что время от времени я буду делится этой коллекцией с Вами, а пока, так сказать, урок, закончен. Надеюсь вы откроете что то новое для себя.|2595|1|0||interesnye\_opkody\_perechislenie\_na\_moj\_vzgljad\_samykh\_interesnykh\_i\_poleznykh\_opkodov|1500729419


---

# 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/00088.-interesnye-opkody-chast-1.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.
