You are not logged in.
Скажите. А вот как сделать, чтобы солдаты, которые стоят на полозьях вертолёта когда их убьёшь, падали бы на землю, как в некоторых миссиях. Я пробовал чисто сделать по образцу, но не вышло... Вот скрип мой. Всё работает, но дописать новые команды для дела не вышло. Что делать?
1234567891011121314151617181920212223242526272829303132333@
= 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
Подскажите как убрать увел. Хп до 250 после завершения мед.работ cj что бы например есть у меня сейв 100% проходняк и там 250 хп. Поставил скрипт а там огран токо 100(и полоска меньше)
Code:
0627: change_stat 24 to 100
Last edited by SHooZ (23-07-2013 20:46)
Offline
RitrS wrote:Подскажите как убрать увел. Хп до 250 после завершения мед.работ cj что бы например есть у меня сейв 100% проходняк и там 250 хп. Поставил скрипт а там огран токо 100(и полоска меньше)
Code:
0627: change_stat 24 to 100
Вот спасибо
Offline
кто знает, можно ли сделать так, чтобы автомобили двигались только по одной полосе, иными словами чтобы моя полоса была всегда пуста?
Offline
Я делал скрипт, который отключает движение по крайней правой полосе на шоссе: http://modsforgta.ucoz.ru/load/modifika … 4/2-1-0-64
Offline
спасибо, это как раз то, что нужно:)
Offline
Можно ли сделать педа управляемым игроком без замены модели?
Offline
Offline
09C7: change_player $PLAYER_CHAR model_to #MODEL
Не поменять модель, а управлять другим актёром
Offline
А тебе какая разница? Будешь другой моделью управлять, бегать, прыгать, анимации проигрывать. Или тебе что-то другое нужно?
Offline
А тебе какая разница? Будешь другой моделью управлять, бегать, прыгать, анимации проигрывать. Или тебе что-то другое нужно?
Разница есть, но я уже решил проблему
Попробуй такой вариант, но не знаю, что получится:
1008A:
$player_actor
=
0@
// (int) 0@ - переменная педа
Не, не катит)
Offline
Попробуй такой вариант, но не знаю, что получится:
1008A:
$player_actor
=
0@
// (int) 0@ - переменная педа
Полный бред. Управление игроком никак не зависит от переменной, куда записан его хендл.
Можно посмотреть структуру CPlayer. Там в самом первом поле стоит указатель на структуру педа игрока. Можно попробовать подменить указатель.
UPD. Если подменить указатель - вылет. Видимо нужно ещё что-то где-то менять.
Last edited by Voron295 (31-07-2013 08:11)
Offline
где-то видел скрипт, в котором при нажатии 'F' активируется управление ближайшим педом.
Offline
Как получить хендл кара на который я целюсь?
Offline
1) Получить координаты прицеливания игрока + проверить, что он целится.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | // Проверяем, что игрок прицеливается. 0A8D: 0@ = read_memory {CCamera > CCam > camMode } 0xB6F1A 8 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@ + 0x 18 0A8D: 1@ = read_memory {CPed > rwObject} 1@ size 4 virtual_protect 0 0AA7: call_function {GetAnimHierarchyFromSkinClump} 0x734A 40 num_params 1 pop 1 _clump 1@ _result 1@ if 1@ <> 0 // Если у скина есть иерархия - получаем координаты кости правой руки и добавляем к ним оффсет. then 0AA7: call_function {RpHAnimIDGetIndex} 0x7C51A 0 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@ *= 0x 40 005A: 1@ += 2@ 5@ = 1.0 6@ = 0.0 7@ = 0.0 0AA5: call {RwV3dTransformPoint} 0x7EDD 60 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} 0x 514970 struct 0xB6F 028 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 для этих координат.
1 2 3 4 5 6 | 0AA7: call_function {CWorld::ProcessLineOfSight} 0x56BA 00 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 - автомобиль.
1 2 3 4 5 6 7 8 | 0A8E: 2@ = 1@ + 0x 36 0A8D: 2@ = read_memory 2@ size 1 virtual_protect 0 0B10: 2@ = 2@ AND 7 if 2@ <> 2 then continue end |
4) Перевести struct в handle.
1 | 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
Есть так называемые косяки с баскетболом и пулом в san andreas. При сохранении рядом с тригерами этих скриптов, далее такие скрипты больше не запускаются (после загрузки конечно). Проблема может решиться: надо обнулить глобальные переменные, но я не знаю как их обнулить так, чтобы перед сохранением обнулилось, а потом вернулось, если тригер включен, для текущей игры. Я смотрел скрипт supervars, а именно метод сохранения доп. переменных, но тут немного другая ситуация, так как надо обнулить перед сохранением.
I know everything and nothing...
Offline
каким опкодом заставить автомобиль двигаться с соблюдением правил (остановка на светофорах и т.п.)?
Offline
@mfisto - баги с пулом и баскетболом и пути их решения описаны тут
http://www.gtaforums.com/index.php?showtopic=159320
Offline
каким опкодом заставить автомобиль двигаться с соблюдением правил (остановка на светофорах и т.п.)?
В справке (раздел Статьи - Транспорт) есть такие опкоды:
1 2 | 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
Как узнать/записать в переменную текущую одежду/татуировки/стрижку игрока?
Offline
@SHooZ -
1 2 | 08F7: get_player $PLAYER_CHAR bodypart 0 textureCRC_to $9665 modelCRC_to $9666 0942: item_with_textureCRC $SELECTED_MENU_ITEM is_clothing |
Offline
спасибо
Offline