Заработай на своем сайте Купите рекламу от 5 центов за клиента!
GTA Скриптинг
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Научись скриптить

Реклама

Главная » Статьи » Учения скриптингу » Уроки

АКТЁРЫ

 

Чтобы создать актёра,надо сначало загрузить его модель в память,делается это вот этой ко-

мандой:

model.load(#модель)

Этой командой мы только объявили нужную для загрузки модель,а вот загружаются все модели

вот этой командой:

038B: load_requested_models

Эта команда пишется после объявки уже всех используемых в вашем потоке объектов.Вот как бу-

дет выглядить то,что я только-что описал:

model.load(#модель1)

model.load(#модель2)

model.load(#модель3)

model.load(#модельN)

038B: load_requested_models

Теперь нужно проверить,загрузились ли все модели в память,а то если не загрузились,а мы с

ними что-то делаем,то игра естественно вылетит.Проверка делается следующим способом:

:Check

wait 0

if and

model.available(#модель1)

model.available(#модель2)

model.available(#модель3)

model.available(#модельN)

jf @Check

Полная загрузка делается соединением этих двух вышеописанных выражений:

:MyThread // Первый label потока.Не забудьте,что поток тоже надо создать.

wait 0 // Ждём 0 миллисекунд,если не напишем,то игра вылетит.

model.load(#модель1) // Тут объявляем нужные для потока модели.

model.load(#модель2)

model.load(#модель3)

model.load(#модельN)

038B: load_requested_models // А вот тут уже загружаем нужные для потока модели.

:Check // Создаём другой label.

wait 0 // Ждём 0 миллисекунд,если не напишем,то игра вылетит.

if and // Пишем условие с выполнением всех подусловий(проверок).

model.available(#модель1) // Подусловие на загруженность модели в память.

model.available(#модель2)

model.available(#модель3)

model.available(#модельN)

jf @Check // Если в условии не выполнились подусловия,то перходим в

начало проверки,если же все выполнились,то выполнение

скрипта идёт дальше.

Актёр создаётся следующей командой:

actor.create(name,type,model,x,y,z)

name - имя актёра,должно обязательно начинаться на $(глобальная переменная) или заканчивать-

ся на @(переменная,действующая только в том потоке,в котором вы её объявили),а вобщем-то всё

по поводу типов данных написано в главе "Математика".

type - это тип актёра,тип актёра-целое число,типы приведены ниже .

model - это модель актёра,все модели обыкновенных актёров написаны во втором столбике файла

"Peds.ide",который находится в папке "data" вашего GTA San Andreas.Откройте его любым тексто-

вым редактором.Перед именем модели всегда надо ставить знак "#",кавычек не надо.

x - координата по оси X

y - координата по оси Y

z - координата по оси Z

Вот например:

actor.create($MyAct,4,#FAM1,-2400.0,500.8,24.2) //заметьте,что координата всегда число с

точкой,всё по поводу чисел в главе "Числа".

Давайте создадим актёра возле дома CJ'я:

Я создал поток с именем MAN,как создавать потоки писалось в первой главе,вот этой командой:

create_thread @MAN

Затем нашёл строчку -Mission 0- и выше неё написал:

:MAN //имя нашего потока

wait 0 // поставил нулевую задержку,если не поставить,то игра вылетит

model.load(#FAM1) // объявил нужную для загрузки модель актёра

038B: load_requested_models // загрузил ранее объявленые модели

:MAN_2 // создал второй label нашего потока

wait 0 // поставил нулевую задержку,если не поставить,то игра вылетит

if // Пишем условие для одной проверки

model.available(#FAM1) // проверяем загрузилась ли наша модель

jf @MAN_2 // если ещё не загрузилась,то выполнение скрипта переходит на label "MAN_2"

// если уже загрузилась,то выполнение скрипта пойдёт дальше.

actor.create($MyAct,4,#FAM1,2494.4622,-1680.92,13.3385) // написал вот эту команду,затем нашёл

//координаты Coords Manager'oм,как это делать писалось в первой главе,и подставил их в ко-

//манду,не забудьте про запятые между параметрами! И вот такой чувачок возле входа в дом CJ'я

//получился.

Model.Destroy(#FAM1) // удаляем модель из памяти

end_thread // И заканчиваем наш поток.

Потренеруйтесь,меняя координаты актёра,меняя его модель,увеличиваяя кол-во актёров.

Вот типы актёров,которые есть в игре:

0 - Игрок 1

1 - Игрок 2

2 - Игрок 3

3 - не используется

4 - мужчина

5 - женщина

6 - полицейский

7 - гангстер 1

8 - гангстер 2

9 - гангстер 3

10 - гангстер 4

11 - гангстер 5

12 - гангстер 6

13 - гангстер 7

14 - гангстер 8

15 - гангстер 9

16 - гангстер 10

17 - чувак,который продаёт наркоту

18 - врач

19 - пожарник

20 - криминал

21 - не нашёл

22 - проститутка

23 - специальный,как Смоук,Свит,Райдер и другие, которые испоьзуются в миссиях.

24 - миссия 1

25 - миссия 2

26 - миссия 3

27 - миссия 4

28 - миссия 5

29 - миссия 6

30 - миссия 7

31 - миссия 8

Тут я описал то,что можно делать с актёрами и игроком,проверки потом.

1) То,что применяется только к игроку($PLAYER_CHAR):

052C: set_player $PLAYER_CHAR drunk_visuals 100 - экран шатается,как-будто CJ пьяный.

player.CanMove($PLAYER_CHAR) = false - игрок не может двигаться(true-может,false-не может).

player.ClearWantedLevel($PLAYER_CHAR) - убрать игроку звёзды розыска.

player.Money($PLAYER_CHAR) += 1000000 - добавить игроку деньги.

0998: add respect 5 - добавляет респект(только для игрока).

0992: set_player $PLAYER_CHAR weapons_scrollable 1 - даёт игроку возможность менять оружее,

которое у него в руках(0 - не даёт,1 - даёт).

0221: set_player $PLAYER_CHAR trapped_in_car 1 - закрепляет игрока в машине,не давая

возможности выйти оттуда(если 0,то можно).

2) То,что применяется ко всем актёрам и игроку $PLAYER_ACTOR:

0503: create_rappel 27 #MODEL at 2223.5601 -1168.05 32.28 with_actor $Act -

создаёт верёвку длинной 27 с актёром $Act (#MODEL-модель актёра) в заданных кооринатах.

Actor.Health($Actor) = 1000 - устанавливает кол-во жизи у актёра.

Actor.Armour($Actor) = 150 - устанавливает кол-во брони актёра.

Actor.Angle($Actor) = 250.24 - устанавливает угол поворота актёра.

01B2: give_actor $Actor weapon 38 ammo 2000 - даёт актёру оружее,сначало загрузите модель.

Цифра 38-это номер оружия,номера можно посмотреть в главе "Пикапы (Pickups)",модели там же.

0555: remove_weapon 38 from_actor $Actor - забирает у актёра оружее (#MINIGUN).

actor.DestroyInstantly($Actor) - уничтожает актёра.

0819: $Dist = actor $PLAYER_ACTOR distance_from_ground - записывает в переменную $Dist рас-

// стояние между актёром и землёй

054A: set_actor $Actor immune_to_car_headshots 1 // устанавливает актёру иммунитет от выс-

// трелов в голову из машины.

$Car = Actor.Car($Actor) - заносит в переменную $Car имя машины актёра $Actor.

actor.PutAt($Actor,1234.0,-189.0,36.0) - перемещает актёра $Actor в заданные координаты.

05D1: AS_actor $Actor drive_car $Car to 1234.0 -189.0 36.0 speed 15.0 0 0 0 -актёр $Actor

садится в машину $Car и едет в заданную точку(X,Y,Z) с заданной скоростью($Speed).

05D4: AS_actor $Actor rotate_angle 175.8 - актёр поворачивается на угол.

069B: attach_object $Obj to_actor $Actor at_offset 0.0 0.0 0.0 rotation 0.0 0.0 0.0 -

прицепляет к актёру объект на опред. расстоянии от цетра актёра и под опред. углом.

0672: AS_actor $Actor attack_car $Car- актёр атакует машину.

0850: (unknown) $Act1 $Act2-актёр один следует за актёром два.

04EB: AS_actor $Actor crouch 1-актёр приседает,если 1,то присел,0-встал.

0332: set_actor $Actor bleeding_to 1 -актёр истекает кровью(1-истекает,0-не истекает).

06BA: unknown_action_sequence $Actor 1234.0,-189.0,36.0 - актёр смотроит в точку .

04C4: create_coordinate $1 $2 $3 from_actor $Actor offset 10.0 12.6 3.0 - создаёт точку с

координатами $1 $2 $3 от актёра на заданном расстоянии по координатным осям.

actor.StorePos($Actor,$1,$2,$3) - записывает координаты актёра в переменные $1,$2,$3.

011A: set actor $Actor flags 64 - задаёт актёру флаги.

03FE: set actor $Actor money 0 - устанавливает кол-во денег актёру.

05CD: AS_actor $Actor exit_car $Car - актёр выходит из машины.

054A: set_actor $Actor immune_to_car_headshots 0 -устанавливает иммунитет к headshot'у.

0631: put_actor $Actor in_group $PLAYER_GROUP - устанавливает актёру принадлежность к группе

игрока.

Actor.WeaponAccuracy($Actor) = 95 - устанавливает точность стрельбы(проценты).

089E: $X $Y $Z radius 5.0 $Actor- выбрать произвольного актёра из точки с радиусом

091C: $Actor = get_random_actor_from $X $Y $Z radius 9.5 model #FAM1 anim "BOMBER" - получить

любого актёра из точки с радиусом,с определённой моделью и анимацией.

0432: $Act = get actor handle from car $Car passenger 0 - записывает в переменную $Act актё-

ра,который сидит на месте пассажира № 0(0-около водителя,1 и 2-на заднем сидении).

05CA: AS_actor $Actor enter_car $Car passenger_seat 0 10000 ms - актёр садится в машину на

место возле водителя за 10000 миллисекунд (10 секунд).

09B8: create_blood_gush_at $X_1 $Y_1 $Z_1 offset 1.0 1.0 0.2 density 20 on_actor $Actor -

создание кровавого пятна на актёре .

07A5: unknown_action_sequence $Act1 $Act2 1500 - актёр 1 атакует актёра 2 опред.время.

05E2: actor $act1 kill_actor $act2 - актёр 1 убивает актёра 2.

0639: AS_actor $act1 rotate_to_actor $act2 - актёр 1 поворачивается и смотрит на актёра 2.

0967: actor $Actor move_mouth 40000 ms - актёр разговаривает (шевелит губами) опр. время.

0968: actor $Actor stop_mouth - актёр перестаёт разговаривать.

08E5: $Actor = get_created_actor_from_point $X $Y $Z radius 24.0 - получить актёра,который

только что появился в точке с заданным радиусом.

06A9: AS_actor $Actor look_at_point -1464.3199 1556.6899 1051.75 6000 ms - заставляет актёра

смотреть в определённую точку.

0464: put_actor $Actor into_turret_on_car $Car at_car_offset -1.0 0.1 0.7 position 0.

shooting_angle 270.0 with_weapon 38 - помещает актёра в машину,давая возможность стрелять

из неё.-1.0 0.1 0.7-это координаты,относительно геом. центра машины,в которые будет помещён

актёр,270.0 - это угол обзора актёра,38-оружее,с которым он будет сидеть,не забудьте за-

грузить модель оружия.

marker.CreateAboveActor($mark,$Act) - создаёт маркер с названием $mark над актёром $Act.

05BB: AS_actor $Actor fall_down 0 time_on_ground -1 - актёр падает на землю,как-будто его

прибили и практически сразу встаёт(от изменения параметров ничего не будет).

0729: AS_actor $Actor hold_cellphone 1 - анимация телефона (1-прикладывает,0-убирает),но

сначало надо загрузить модель #CELLPHONE,иначе актёр к уху приложит только руку.

062A: change_stat 24 to 1000 - изменяет статистику игрока.О статистиках написано в главе

"Статистики".

0376: $Actor = create_random_actor -2107.7 155.1 8.0 - создёт случайного игрока.

087E: set_actor $Actor weapon_droppable 0 - актёр оставляет (не оставляет) оружее после

смерти.

0321: kill_actor $Actor - убивает актёра.

05BC: AS_actor $Actor jump 0 - актёр прыгает,0-стиль прыжка,есть и 1,но особого отличия не

видно.

actor.SetImmunities($Actor,1,1,1,1,1) - устанавливает актёру определённые имунитеты,тут

первая цифра - защита от пуль, вторая - от огня, третья - от взрывов, четвертая - от

оружия ближнего боя,а вот пятая наверно от падения.

07FE: set_actor $Actor fighting_style_to 5 6 - устанавливает актёру стиль борьбы,по идее в

игре много стилей,но в оригинальном main'e встречаются только 5-6,6-6 и 7-6.

08C6: set_actor $Actor stay_on_bike 1 - актёр не может упасть с байка никаким образом,если

поставить 0 , то может.

05C9: AS_actor $Actor on_guard -1 ms - заставляет актёра быть охранником,типа как в казино.

081A: $Actor 2 - даёт актёру возможность ходить с двумя оружиями сразу.

06B0: AS_actor $Actor sit_down 99999999 ms - актёр сидит опред. время.

05C5: AS_actor $Actor cower 10000 ms - актёр пятиться назад опред. время.

06E3: AS_actor $Actor roll_sideways 1 - актёр идёт в бок или что-то типа этого.

0672: AS_actor $Actor attack_car $Car - актёр атакует машину.

0677: AS_actor $Act1 chat_with_actor $Act2 1 1 - актёр1 разговаривает с актёром2

0467: clear_actor $Actor last_weapon_damage - убирает повреждения,нанесённые актёру в пос-

// ледний раз.

05BA: AS_actor $Actor chew_gum 40000 ms - актёр жуёт жвачку опред.время(временами не жуёт).

0638: AS_actor $Actor stay_put 1 - актёр остаётся на месте,чтобы ему не приказали.

0245: set_actor $Actor walk_style_to "FATMAN" - стиль походки актёра,в оригинальном main'e

есть следующие стили походки:

"FATMAN" - толстяк

"GANG1" - гангстер 1

"GANG2" - гангстер 2

"MAN" - мужчина

"WOMAN" - женщина

"BLINDMAN" - слепой мужчина

"SEXYWOMAN" - сексуальная женщина

"DRUNKMAN" - алкаш

 

Рассмотрим проверки,которые можно применять к актёрам и игроку,т.е. к CJ'ю:

Игрок ($PLAYER_CAHR):

Player.Defined($PLAYER_CAHR) - игрок найден или уже создан.

player.PressingHorn($PLAYER_CAHR) - игрок бибикает,сидя в машине.

wasted_or_busted - игрок арестован или убит.

Player.Controllable($PLAYER_CHAR) - игрок контролируем.

0457: player $PLAYER_CHAR aiming_at_actor $Act - игрок целится в актёра c именем $Act.

Player.WantedLevel($PLAYER_CHAR) > 0 - проверяет уровень розыска у игрока.

Player.Money($PLAYER_CHAR) > $money - cравнивает ваши деньги с целым числом $money.

Игрок ($PLAYER_ACTOR) и актёры:

Actor.Animation($PLAYER_ACTOR) == "FIGHTC_SPAR" - является ли анимация актёра данной.

0965: actor $PLAYER_ACTOR swimming_in_water - актёр плавает в воде.

06EE: actor $PLAYER_ACTOR in_group 260@ - актёр в определённой группе актёров.

actor.InCar($PLAYER_ACTOR,$Car) - $PLAYER_ACTOR в машине $Car.

actor.Driving($PLAYER_ACTOR) - актёр $PLAYER_ACTOR за рулём.

actor.DrivingPoliceVehicle($PLAYER_ACTOR) - актёр $PLAYER_ACTOR за рулём ментовской тачки.

actor.DrivingTaxiVehicle($PLAYER_ACTOR) - актёр $PLAYER_ACTOR за рулём такси.

04A7: actor $PLAYER_ACTOR driving_boat - актёр $PLAYER_ACTOR плывёт на лодке.

actor.DrivingVehicleType($ACTOR,#CAR_MODEl)-актёр $ACTOR в маш. типа #CAR_MODEl.

actor.Dead($PLAYER_ACTOR) - актёр $PLAYER_ACTOR умер.

actor.HasWeapon($ACTOR,Number) - актёр $ACTOR имеет оружее с номером Number, номера

можно посмотреть в главе "ПикАпы (PickUps)".

actor.Stopped($PLAYER_ACTOR) - актёр $PLAYER_ACTOR остановился.

actor.Dead($PLAYER_ACTOR) - актёр $PLAYER_ACTOR умер.

04AD: actor $PLAYER_ACTOR touching_water - актёр $PLAYER_ACTOR касается воды.

04C5: actor $PLAYER_ACTOR photographed - актёр фотографирует.

051A: actor $Act1 damaged_by_actor $Act2 - получил ли актёр1 к-л повреждения от актёра2

031D: actor $Act hit_by_weapon 23 - получил ли актёр к-л повреждения от опред. оружия

04C5: actor $Act photographed - актёр фотографирует .

 

 

Ещё актёрам можно присваивать сложные анимации,о них в главе "Анимации для актёров".

На основе нескольких из написанных мною команд давайте теперь создадим телохранителя с

шестистволкой,который будет охранять вас от нападающих и будет атаковать тех,на кого напада-

ете вы.Для этого нам понадобятся ещё 3 команды,что они точно означают я не знаю,но их надо

ставить для эффективности охранника.Вот они:

0568: (unknown) $Actor 1

08AF: (unknown) $Actor 1000

077A: (unknown) $Actor 4 25

А вот и сам код охранника:

create_thread @MyGuarder

:MyGuarder

wait 0

model.load(#FAM1)

model.load(#MINIGUN)

038B: load_requested_models

:MyGuarder_2

wait 100

if and

model.Available(#FAM1)

model.Available(#MINIGUN)

jf @MyGuarder_2

wait 5000

04C4: create_coordinate $X1 $Y1 $Z1 from_actor $PLAYER_ACTOR offset 0.0 5.0 0.0

actor.Create(1@,4,#FAM1,$X1,$Y1,$Z1)

0568: (unknown) 1@ 1

0446: set_actor 1@ immune_to_headshots 0

08AF: (unknown) 1@ 1000

077A: (unknown) 1@ 4 25

0631: put_actor 1@ in_group $PLAYER_GROUP

01B2: give_actor 1@ weapon 38 ammo 6000

Actor.WeaponAccuracy(1@) = 90

Actor.Health(1@) = 2000

:MyGuarder_3

wait 0

if or

wasted_or_busted

actor.dead(1@)

jf @MyGuarder_3

actor.DestroyInstantly(1@)

model.destroy(#FAM1)

model.destroy(#MINIGUN)

wait 10000

jump @MyGuarder

Вот Вам ещё полезная вещь - данным кодом можно заставить актёра из туррета атаковать игрока

и всю его команду из туррета машины:

060A: unknown_create_entity 2 1@

$Actor = Actor.Create(Mission4, #SWAT, 2161.8401, -1154.26, 25.09)

077A: (unknown) $Actor 4 23

077A: (unknown) $Actor 4 0

060B: unknown_actor_use_entity $Actor 1@

0464: put_actor $Actor into_turret_on_car $Car at_car_offset 1.4 1.3 -0.1 position 3 shooting_angle 190.0 with_weapon 29

07DD: (unknown) $Actor 70

Думаю,что тут разберётесь...

Категория: Уроки | Добавил: gtascript (11.08.2007)
Просмотров: 899 | Комментарии: 1 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Часы

Скорость интернета

Друзья сайта

eServer.ru :: Хостинг-оператор #1 Сайт полностью посвящен мультфильму
САЙТ КАМРАНА!!!! Бесплатные игры, программы, МР3, новости и многое другое Только на сайте КАМРАНА!!!!! Все о Mafia 2 GTAIV Портал Только русские файлы для gta san andreas Софт для gta sanandreas Лада-тюнинг-эксклюзивные тюнингованые авто для GTA:SA


Статистика

Dating.ru Топ100 - Игры RusTusovka.COM - ТОП 100 Русско-Язычных Сайтов Русский Топ Рейтинг Топ GamerPro SERP: gta скрипты программы миссии


Copyright MyCorp © 2025 Конструктор сайтов - uCoz