# 00076. Статистика игрока

Статистика игрока|Сегодня мы рассмотрим опкоды для изменения статистики игрока.|wmysterio|wmysterio||||Всем привет! Статистика - это то, чего достиг игрок за игровое время. Например: уровень стрельбы с АК-47, насколько от сыт и т.п. Для изменения какой то статистики, обычно используют 2 опкода:

```
0629: change_integer_stat 181 to 0
062A: change_float_stat 21 to 800.0
```

Опкоды устанавливают значения для ID статистики игрока.

Здесь:\
21 и 181 - ID статистики ( см. [Статистика игрока](https://github.com/wmysterio/scm-scripting-lessons/blob/main/dir/gta_sa/statistika_igroka_staty/1-1-0-32/README.md) )\
0 и 800.0 - соответственно значения, которые принимает статистика

Давайте напишем скрипт, который стразу даёт максимальные навыки оружия, максимальная жизнь - 1450.0 ( в такой настройке полоска выход даже за пределы обычного ):

```
{$CLEO}
0000:

:STAT_PL
thread 'STAT_PL'
wait 0
062A: change_float_stat 165 to 2000.0
062A: change_float_stat 23 to 1000.0
062A: change_float_stat 21 to 0.0
0629: change_float_stat 22 to 1000
062A: change_float_stat 80 to 2000.0
062A: change_float_stat 225 to 2000.0
062A: change_float_stat 223 to 1000.0
062A: change_float_stat 229 to 1000.0
062A: change_float_stat 230 to 2000.0
062A: change_float_stat 24 to 1450.0
062A: change_float_stat 69 to 1000.0
062A: change_float_stat 70 to 1000.0
062A: change_float_stat 71 to 1000.0
062A: change_float_stat 72 to 1000.0
062A: change_float_stat 73 to 1000.0
062A: change_float_stat 74 to 1000.0
062A: change_float_stat 75 to 1000.0
062A: change_float_stat 76 to 1000.0
062A: change_float_stat 77 to 1000.0
062A: change_float_stat 78 to 1000.0
062A: change_float_stat 160 to 1000.0
0A93: end_custom_thread
```

В результате игрок станет "прокачанным" в любой момент. Обратите внимание на полоску жизни:

![](https://github.com/wmysterio/scm-scripting-lessons/raw/resources/_pu/1/63682838.png)

Так же мы можем узнать текущее значение статистики, используя опкоды:

```
0653: 0@ = float_stat 21
0652: 0@ = integer_stat 181
```

Здесь:\
0@ - переменная, в которую будет записано значение\
21 - ID статистики ( дробное )\
181 - ID статистики ( целое )

Полученный результат можно использовать в проверках:

```
0653: 0@ = float_stat 21
if
0@ > 300.0
then
 // выполнять какие то действие, например написать "Нужно есть больше или меньше"
end
```

Статистика 181: при установке следующих значений будут "открыты" такие территории ( города ):

| ID | Местность                                                     |
| -- | ------------------------------------------------------------- |
| 0  | Лос Сантос                                                    |
| 1  | Сельская местность возле Лос Сантос                           |
| 2  | Сан Фиеро и всё вышеперечисленное                             |
| 3  | Сельская местность возле Лас Вентурас и всё вышеперечисленное |
| 4  | Лас Вентурас и всё вышеперечисленное                          |

Если установить значение 0, то при попадании за территории Лос Сантоса Вы получите 5 звёзд.

Можно так же выполнять прямые записи к существующему значению статистики:

```
0623: add 1 to_integer_stat 214
0624: add 1.0 to_float_stat 160
0628: add 1@ to_float_stat 2
0625: decrease_integer_stat 184 by 1
0626: decrease_float_stat 21 by 1.0
0627: update_integer_stat 215 to $1922
0A10: increase_integer_stat 161 by 1
0A1F: increase_float_stat 24 by 196@
042E: downdate_integer_stat 212 to 448@
0582: downdate_integer_stat 175@($RACE_INDEX,30i) to 450@
```

Тоесть, чтобы не писать такой код:

```
0653: 0@ = float_stat 21
0@ += 100.0
062A: change_float_stat 21 to 0@
```

можно сразу прибавить к значению статистики своё число: "0624: add 100.0 to\_float\_stat 21". С остальными уже поэкспериментируйте, там можно сложить, вычитать делить и умножать значения статов.

Мимо этого существуют опкоды для узнавания значений некоторых ID статистики:

```
08E1: 0@ = total_tags_sprayed // Целое число
```

В переменную "0@" будет записано к-во закрашенных граффити.

```
08E2: 0@ = territories_controlled_percentage // Целое число
```

В переменную"0@" будет записано процент владения территориями. Если все территории принадлежат вам, то в переменную будет занесено 100.

Так же есть возможность отключить функцию показа статистики. Когда нажимаем "Действие" ( по-умолчанию кнопка TAB\` ) статистика не будет показана:

```
0960: enable_player $PLAYER_CHAR stats_box 0 // если поставить 1 - то будет
```

Этот опкод рекомендовано использовать в цикле.

× \*\*Примечание:\*\* Если изменить мышцы игрока или полноту, то визуально результат ничего не покажет. Что бы изменения были видны нужно зайти в какой то интерьер.|2653|1|0|63682838\`png\`500\`300\`400\`240\`\`\\||statistika\_igroka|1499752446


---

# 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/00200/00076.-statistika-igroka.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.
