#4251 23-07-2013 19:37

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

Hetzer wrote:

Скажите. А вот как сделать, чтобы солдаты, которые стоят на полозьях вертолёта когда их убьёшь, падали бы на землю, как в некоторых миссиях. Я пробовал чисто сделать по образцу, но не вышло... Вот скрип мой. Всё работает, но дописать новые команды для дела не вышло. Что делать?

3@ = Actor.CreateAsDriver(Cop, #SWAT, 1@)
4@ = Actor.CreateAsPassenger(Cop, #SWAT, 1@, 0)
5@ = Actor.CreateAsPassenger(Cop, #SWAT, 1@, 1)
6@ = Actor.CreateAsPassenger(Cop, #SWAT, 1@, 2)
Actor.GiveWeaponAndAmmo(5@, M4, 9999)
Actor.WeaponAccuracy(5@) = 70
Actor.GiveWeaponAndAmmo(6@, M4, 9999)
Actor.WeaponAccuracy(6@) = 70
054A: set_actor 3@ can_be_shot_in_a_car 1 
054A: set_actor 4@ can_be_shot_in_a_car 1 
054A: set_actor 5@ can_be_shot_in_a_car 1 
054A: set_actor 6@ can_be_shot_in_a_car 1 
Actor.SetMaxHealth(3@, 1500)
Actor.SetMaxHealth(4@, 1500)
039E: set_actor 3@ locked 1 while_in_car 
Car.StorePos(1@, $TEMPVAR_FLOAT_1, $TEMPVAR_FLOAT_2, $TEMPVAR_FLOAT_3)
0362: remove_actor 5@ from_car_and_place_at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 
0639: AS_actor 5@ rotate_to_actor $PLAYER_ACTOR 
0465: remove_actor 5@ from_turret_mode 
0856: set_actor 5@ enable_crouch 1 
0464: put_actor 5@ into_turret_on_car 1@ at_car_offset -1.0 -0.3 0.0 position 1 shooting_angle_limit 180.0 with_weapon 31 
Actor.Angle(5@) = 200.0
0362: remove_actor 6@ from_car_and_place_at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 
0465: remove_actor 6@ from_turret_mode 
0856: set_actor 6@ enable_crouch 1 
0464: put_actor 6@ into_turret_on_car 1@ at_car_offset 1.2 -0.3 0.0 position 3 shooting_angle_limit 180.0 with_weapon 31 
0639: AS_actor 6@ rotate_to_actor $PLAYER_ACTOR 
05E2: AS_actor 5@ kill_actor $PLAYER_ACTOR 
0350: set_actor 5@ maintain_position_when_attacked 1 
05E2: AS_actor 6@ kill_actor $PLAYER_ACTOR 
0350: set_actor 6@ maintain_position_when_attacked 1 
Model.Destroy(#SWAT)
Model.Destroy(#M4)

можно сделать проверку: если в врага здоровья <==10, то он выходит с вертолета:D

Offline

#4252 23-07-2013 20:38

RitrS
From: Downtown
Registered: 11-07-2013
Posts: 62
Website

Re: Один вопрос

Подскажите как убрать увел. Хп до 250 после завершения мед.работ cj что бы например есть у меня сейв 100% проходняк и там 250 хп. Поставил скрипт а там огран токо 100(и полоска меньше)

Offline

#4253 23-07-2013 20:45

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

RitrS wrote:

Подскажите как убрать увел. Хп до 250 после завершения мед.работ cj что бы например есть у меня сейв 100% проходняк и там 250 хп. Поставил скрипт а там огран токо 100(и полоска меньше)

Code:
0627: change_stat 24 to 100

Last edited by SHooZ (23-07-2013 20:46)

Offline

#4254 24-07-2013 07:27

RitrS
From: Downtown
Registered: 11-07-2013
Posts: 62
Website

Re: Один вопрос

SHooZ wrote:
RitrS wrote:

Подскажите как убрать увел. Хп до 250 после завершения мед.работ cj что бы например есть у меня сейв 100% проходняк и там 250 хп. Поставил скрипт а там огран токо 100(и полоска меньше)

Code:
0627: change_stat 24 to 100

Вот спасибо

Offline

#4255 26-07-2013 08:59

Procion
Registered: 23-07-2013
Posts: 12

Re: Один вопрос

кто знает, можно ли сделать так, чтобы автомобили двигались только по одной полосе, иными словами чтобы моя полоса была всегда пуста?

Offline

#4256 26-07-2013 21:06

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Я делал скрипт, который отключает движение по крайней правой полосе на шоссе: http://modsforgta.ucoz.ru/load/modifika … 4/2-1-0-64

Offline

#4257 27-07-2013 09:35

Procion
Registered: 23-07-2013
Posts: 12

Re: Один вопрос

спасибо, это как раз то, что нужно:)

Offline

#4258 29-07-2013 12:13

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

Можно ли сделать педа управляемым игроком без замены модели?

Offline

#4259 29-07-2013 15:31

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Один вопрос

09C7: change_player $PLAYER_CHAR model_to #MODEL

Offline

#4260 29-07-2013 16:41

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

НикИТОС wrote:

09C7: change_player $PLAYER_CHAR model_to #MODEL

Не поменять модель, а управлять другим актёром

Offline

#4261 29-07-2013 18:36

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Один вопрос

А тебе какая разница? Будешь другой моделью управлять, бегать, прыгать, анимации проигрывать. Или тебе что-то другое нужно?

Offline

#4262 30-07-2013 01:00

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

Попробуй такой вариант, но не знаю, что получится:

008A: $player_actor = 0@ // (int) 0@ - переменная педа

Offline

#4263 30-07-2013 10:37

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

НикИТОС wrote:

А тебе какая разница? Будешь другой моделью управлять, бегать, прыгать, анимации проигрывать. Или тебе что-то другое нужно?

Разница есть, но я уже решил проблему

Den_spb wrote:

Попробуй такой вариант, но не знаю, что получится:

008A: $player_actor = 0@ // (int) 0@ - переменная педа

Не, не катит)

Offline

#4264 31-07-2013 07:59

Voron295
From: Каушаны
Registered: 06-12-2010
Posts: 425
Website

Re: Один вопрос

Den_spb wrote:

Попробуй такой вариант, но не знаю, что получится:

008A: $player_actor = 0@ // (int) 0@ - переменная педа

Полный бред. Управление игроком никак не зависит от переменной, куда записан его хендл.
Можно посмотреть структуру CPlayer. Там в самом первом поле стоит указатель на структуру педа игрока. Можно попробовать подменить указатель.

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

Last edited by Voron295 (31-07-2013 08:11)


Добро всегда побеждает зло. Кто победил, тот и добрый!
userbar.png

Offline

#4265 31-07-2013 08:30

Procion
Registered: 23-07-2013
Posts: 12

Re: Один вопрос

где-то видел скрипт, в котором при нажатии 'F' активируется управление ближайшим педом.

Offline

#4266 31-07-2013 11:09

Dark_Knight
From: г. Полтава
Registered: 09-07-2013
Posts: 33

Re: Один вопрос

Как получить хендл кара на который я целюсь?

Offline

#4267 31-07-2013 22:22

DK22Pac
From: Ukraine
Registered: 26-03-2010
Posts: 447
Website

Re: Один вопрос

1) Получить координаты прицеливания игрока + проверить, что он целится.

// Проверяем, что игрок прицеливается.
0A8D: 0@ = read_memory {CCamera > CCam > camMode } 0xB6F1A8 size 2 virtual_protect 0
if and
    0@ <> 8
    0@ <> 51
    0@ <> 53
then
    continue
end

// Нам нужно построить линию прицеливания игрока. Начало этой линий - позиция кости правой руки + оффсет.
// Конец - координаты прицеливания камеры.

// Находим координаты начала линии прицеливания игрока (2@, 3@, 4@).
0A96: 0@ = actor $PLAYER_ACTOR struct
0A8E: 1@ = 0@ + 0x18
0A8D: 1@ = read_memory {CPed > rwObject} 1@ size 4 virtual_protect 0
0AA7: call_function {GetAnimHierarchyFromSkinClump} 0x734A40 num_params 1 pop 1 _clump 1@ _result 1@
if
    1@ <> 0 // Если у скина есть иерархия - получаем координаты кости правой руки и добавляем к ним оффсет.
then
    0AA7: call_function {RpHAnimIDGetIndex} 0x7C51A0 num_params 2 pop 2 _boneId 24 _hierarchy 1@ _result 2@
    1@ += 8
    0A8D: 1@ = read_memory {RpHAnimHierarchy > pMatrixArray} 1@ size 4 virtual_protect 0
    2@ *= 0x40
    005A: 1@ += 2@
    5@ = 1.0
    6@ = 0.0
    7@ = 0.0
    0AA5: call {RwV3dTransformPoint} 0x7EDD60 num_params 3 pop 3 _transformMatrix 1@ _pointIn 5@v _pointOut 2@v
else
    // Если у скина нет иерархии - получаем кординаты скина и добавляем к ним оффсет.
    04C4: store_coords_to 2@ 3@ 4@ from_actor $PLAYER_ACTOR with_offset 0.0 1.5 0.7
end

// Находим координаты конца линии прицеливания игрока (5@, 6@, 7@).
0AA6: call_method {CCamera::Find3rdPersonCamTargetVector} 0x514970 struct 0xB6F028 num_params 6 pop 0 _targetOut 5@v _cameraOut 8@v _z 4@ _y 3@ _x 2@ _range 15.0

// На выходе, получили - 
//    2@, 3@, 4@ - начало линии прицеливания игрока
//    5@, 6@, 7@ - конец линии прицеливания игрока

2) Выполнить ProcessLineOfSight для этих координат.

0AA7: call_function {CWorld::ProcessLineOfSight} 0x56BA00 num_params 12 pop 12 0 0 0 0 _objects 1 _peds 1 _vehicles 1 _buildings 1 _pEntity 1@v _colPoint 20@ _end 5@v _start 2@v _result: 13@
if
    08B7: test 13@ bit 0
then
    continue
end

3) Проверить, что полученный Entity - автомобиль.

0A8E: 2@ = 1@ + 0x36
0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0
0B10: 2@ = 2@ AND 7
if
    2@ <> 2
then
    continue
end

4) Перевести struct в handle.

0AEB: 0@ = car_struct 1@ handlep

Также к просмотру: скрипт Aimdrivers с исходным кодом.


Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Offline

#4268 01-08-2013 01:51

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

Есть так называемые косяки с баскетболом и пулом в san andreas. При сохранении рядом с тригерами этих скриптов, далее такие скрипты больше не запускаются (после загрузки конечно). Проблема может решиться: надо обнулить глобальные переменные, но я не знаю как их обнулить так, чтобы перед сохранением обнулилось, а потом вернулось, если тригер включен, для текущей игры. Я смотрел скрипт supervars, а именно метод сохранения доп. переменных, но тут немного другая ситуация, так как надо обнулить перед сохранением.


I know everything and nothing...

Offline

#4269 01-08-2013 07:31

Procion
Registered: 23-07-2013
Posts: 12

Re: Один вопрос

каким опкодом заставить автомобиль двигаться с соблюдением правил (остановка на светофорах и т.п.)?

Offline

#4270 01-08-2013 10:55

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Один вопрос

@mfisto - баги с пулом и баскетболом и пути их решения описаны тут
http://www.gtaforums.com/index.php?showtopic=159320

Offline

#4271 01-08-2013 11:36

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Один вопрос

я прочитал, и понял как исправить, но там все сводится к изменению save файла, может как то в клео это оформить?


I know everything and nothing...

Offline

#4272 01-08-2013 23:50

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Один вопрос

каким опкодом заставить автомобиль двигаться с соблюдением правил (остановка на светофорах и т.п.)?

В справке (раздел Статьи - Транспорт) есть такие опкоды:

Car.SetToNormalDriver($Car) - устанавливает машине нормального водителя.
00AE: unknown_set_car 71@ to_ignore_traffic_lights 2 - машина игнорирует светофоры(2-да).

Last edited by Den_spb (01-08-2013 23:51)

Offline

#4273 06-08-2013 09:20

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

Как узнать/записать в переменную текущую одежду/татуировки/стрижку игрока?

Offline

#4274 07-08-2013 00:00

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Один вопрос

@SHooZ -

08F7: get_player $PLAYER_CHAR bodypart 0 textureCRC_to $9665 modelCRC_to $9666
0942:   item_with_textureCRC $SELECTED_MENU_ITEM is_clothing

Offline

#4275 08-08-2013 14:39

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Один вопрос

спасибо

Offline

Board footer

Powered by FluxBB