Каждый актёр выполняет какое то действие. Оно записывается в специальную переменную, в которой хранится событие, совершающее актёром в текущий момент. Событий не так уж много, но из них можно сделать неплохие скрипты. Давайте рассмотрим список событий:
ID
Константа
Описание
1
EVENT_VEHICLE_COLLISION
*
2
EVENT_PED_COLLISION_WITH_PED
Педа касается другой пед
3
EVENT_PED_COLLISION_WITH_PLAYER
Педа каксается игрок
4
EVENT_PLAYER_COLLISION_WITH_PED
Игрока касается другой пед
6
EVENT_BUILDING_COLLISION
*
7
EVENT_DRAGGED_OUT_CAR
*
8
EVENT_KNOCK_OFF_BIKE
Удар при падении с велосипеда
9
EVENT_DAMAGE
Пед повреждён (поранился)
10
EVENT_DEAD
Актёр умер
11
EVENT_DEAD_PED
Актёр убил кого-либо
12
EVENT_POTENTIAL_GET_RUN_OVER
Есть вероятность наспупить не туда
13
EVENT_POTENTIAL_WALK_INTO_PED
Есть вероятность наткнуться на прохожего
15
EVENT_SHOT_FIRED
Актёр сфотографирован
16
EVENT_COP_CAR_BEING_STOLEN
Украл полицейскую машину(?)
17
EVENT_PED_ENTERED_MY_VEHICLE
В его машину кто-то залез
18
EVENT_REVIVED
Актёр вылечен медиком
20
EVENT_SEXY_PED
Видит сексуальную жещину
25
EVENT_PED_TO_CHASE
Гонится за кем-то
26
EVENT_PED_TO_FLEE
Убегает от кого-то
27
EVENT_ATTRACTOR
(Аттрактор)
28
EVENT_VEHICLE_TO_STEAL
Украл машину
30
EVENT_VEHICLE_THREAT
Угроза быть сбитым машиной
31
EVENT_GUN_AIMED_AT
*
32
EVENT_SCRIPT_COMMAND
создается при назначении любого действия из скрипта
33
EVENT_ACTOR_JUMPING
Пед прыгает
36
EVENT_ACQUAINTANCE_PED_HATE
Отношение - ненависть
37
EVENT_ACQUAINTANCE_PED_DISLIKE
Отношение - недолюбливание
38
EVENT_ACQUAINTANCE_PED_LIKE
Отношение - Like
39
EVENT_ACQUAINTANCE_PED_RESPECT
Отношение - уважение
41
EVENT_VEHICLE_DAMAGE_WEAPON
*
42
EVENT_SPECIAL
*
43
EVENT_GOT_KNOCKED_OVER_BY_CAR
*
44
EVENT_POTENTIAL_WALK_INTO_OBJECT
Есть вероятность наступить на объект
45
EVENT_CAR_UNDRIVEABLE
Машина неуправляема (?)
46
EVENT_POTENTIAL_WALK_INTO_FIRE
Есть вероятность попасть в огонь
48
EVENT_SCRIPTED_ATTRACTOR
*
49
EVENT_SHOT_FIRED_WHIZZED_BY
Мимо просвистела пуля
50
EVENT_LOW_ANGER_AT_PLAYER
Малый гнев на игрока
51
EVENT_HIGH_ANGER_AT_PLAYER
Большой гнев на игрока
52
EVENT_HEALTH_REALLY_LOW
Здоровья очень мало
53
EVENT_HEALTH_LOW
Здоровья мало
54
EVENT_LEADER_ENTERED_CAR_AS_DRIVER
Лидер группы сел в машину
55
EVENT_LEADER_EXITED_CAR_AS_DRIVER
Лидер группы вышел из машины
56
EVENT_POTENTIAL_WALK_INTO_VEHICLE
Есть вероятность наткнуться на машину
58
EVENT_BURNING
Пед горит
59
EVENT_FIRE_NEARBY
Близко огонь
61
EVENT_SOUND_LOUD
Слышит громкий звук
62
EVENT_SOUND_QUIET
Слышит тихий звук
63
EVENT_ACQUAINTANCE_PED_HATE_BADLY_LIT
Отношение - очень сильная ярость
64
* Сбила струя воды от пожарной машины
65
EVENT_SEEN_PANICKED_PED
Увидел паникующего педа
66
EVENT_DIVING
Актёр тонет
71
EVENT_PLAYER_COMMAND_TO_GROUP
Команда игрока группе
72
EVENT_SEEN_COP
Коп увидел педа
73
EVENT_VEHICLE_DAMAGE_COLLISION
*
75
EVENT_DANGER
Опасность (?)
76
EVENT_PLAYER_COMMAND_TO_GROUP_GATHER
Найм в группу игрока
78
EVENT_PLAYER_LOCK_ON_TARGET
*
79
EVENT_VEHICLE_ON_FIRE
Машина актёра в огне
83
EVENT_PED_ON_CAR_ROOF
Пед на крыше машины
93
EVENT_STUCK_IN_AIR
Пед заходит в кабину самолёта
* - точное описание неизвестно мне,
Таблица 1
А теперь рассмотрим опкоды для работы с событиями:
074F: actor 1@ ped_event == 10
Проверка: "Актёр выполняет событие 10?"
Здесь:
1@ - хендл актёра
10 - ID события(см. таблица 1)
080E: get_actor 1@ ped_event_to 0@
Опкод записывает в переменную текущее событие актёра
Здесь:
1@ - хендл актёра
0@ - в эту переменную будет записан ID события, выполняющегося в данный момент
Используя эти опкоды, давайте напишем скрипт, который будет хранить количество убитых CJ-ем персов. Для этого создадим в папке Cleo ini-файл kill.ini, содержание которого:
[a]
kill=0
Здесь будет хранится количество убитых персов. Вот код самого скрипта:
{$CLEO}
0000:
while true
03F0: enable_text_draw 1
0AF0: 0@ = get_int_from_ini_file "CLEO\kill.ini" section "a" key "kill"
045A: draw_text_1number 20.0 20.0 GXT 'GXTNAME' number 0@ // Kills: ~1~
if
0AD2: 1@ = player $PLAYER_CHAR targeted_actor //IF and SET
then
if
074F: actor 1@ ped_event == 10
then
0@ += 1
0AF1: write_int 0@ to_ini_file "CLEO\kill.ini" section "a" key "kill"
end
end
wait 0
end
Так же на экране будет выведено количество жертв Правда минус в том, что нужно всегда целится в актёра, иначе не сработает условие. Вы можете использовать события актёров для написания то вперёд!