You are not logged in.
{$CLEO}
0@ = 0
while true
wait 0
if
Player.Defined($PLAYER_CHAR)
then
if and
0@ == 0
0AB0: key_pressed 0x73
then
0@ = 1
0A8C: write_memory 0x0073FA85 size 1 value 0x90 virtual_protect 1
0A8C: write_memory 0x0073FAAF size 1 value 0x90 virtual_protect 1
0A8C: write_memory 0x0073FAB0 size 2 value 0x9090 virtual_protect 1
0A8C: write_memory 0x007428AF size 1 value 0x90 virtual_protect 1
0A8C: write_memory 0x007428E6 size 1 value 0x90 virtual_protect 1
0A8C: write_memory 0x007428E7 size 2 value 0x9090 virtual_protect 1
wait 150
end
if and
0@ == 1
0AB0: key_pressed 0x73
then
0@ = 0
0A8C: write_memory 0x0073FA85 size 1 value 0x48 virtual_protect 1
0A8C: write_memory 0x0073FAAF size 1 value 0xFF virtual_protect 1
0A8C: write_memory 0x0073FAB0 size 2 value 0x0C4E virtual_protect 1
0A8C: write_memory 0x007428AF size 1 value 0x48 virtual_protect 1
0A8C: write_memory 0x007428E6 size 1 value 0xFF virtual_protect 1
0A8C: write_memory 0x007428E7 size 2 value 0x0C4E virtual_protect 1
wait 150
end
end
end
05D3: AS_actor $PLAYER_ACTOR goto_point 681.8004 -474.1063 15.5363 mode 4 3000 ms // versionA
1 параметр - переменная актера;
2, 3, 4 параметры - координаты места назначения;
5 параметр - если 4 идет, если 6 - бежит, 7 - бежит еще быстрее;
6 параметр - время в течении которого актер идет/бежит, если -1 ограничения по времени нет.
05D3 - идет/бежит напрямую; 05F5, 0603 - идет/бежит по дорогам.
@V!RU$ -
05D3: AS_actor $PLAYER_ACTOR goto_point 681.8004 -474.1063 15.5363 mode 4 3000 ms // versionA 05F5: AS_actor 43@ goto_point 2516.686 -1675.861 13.1227 mode 4 5500 ms // versionB 0603: AS_actor 65@(48@,3i) goto 2493.82 -1669.91 12.8 mode 7 timelimit -1 // versionC 0637: AS_actor -1 goto 2075.15 -1363.85 23.85 mode 6 turn_radius 0.5 stop_radius 5.0 look_at_actor $PLAYER_ACTOR 06C2: AS_actor -1 goto -1762.369 951.1278 23.7487 mode 4 turn_radius 1.0 stop_radius 1.0 actor 37@ with_offset 0.0 0.0 0.0
if and
0AB0: key_pressed 17
0AB0: key_pressed 53
then
// ...
end
Выводить на экран можно только целые числа, чтобы вывести дробное число его нужно представить в виде двух целых чисел, одно число будет отвечать за целую часть, другое за дробную. Вот код для вывода дробного числа (в 0@), в 2@ запишется целая часть в 0@ дробная, для вывода на экран нужно использовать строку вида "~1~.~1~".
008E: 1@ = float 0@ to_integer // 2@ 0@ 0085: 2@ = 1@ // (int) 1@ *= 1000 // кол-во цифр в дробной части (1000 - 3 цифры) 0@ *= 1000.0 // кол-во цифр в дробной части (1000 - 3 цифры) 008E: 0@ = float 0@ to_integer 0062: 0@ -= 1@ // (int) 0095: make 0@ absolute_integer 045B: draw_text_2numbers 320.0 390.0 GXT 'TXT' numbers 2@ 0@ // ~1~.~1~
Для начала нужно загрузить модель минигана, а потом уж использовать опкод 01B2. В опкоде 01B9 нужно указать номер оружия, которым нужно вооружить игрока, в данном случае 38.
{$CLEO}
0000:
while true
wait 250
if
Player.Defined($PLAYER_CHAR)
then
if
0AB0: key_pressed 105
then
#MINIGUN.Load
while not #MINIGUN.Available
wait 0
end
01B2: give_actor $PLAYER_ACTOR weapon 38 ammo 9999 // Load the weapon model before using this
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 38
#MINIGUN.Destroy
end
end
end
@Yarik -
#DUMPER #FIRETRUK #TRASH #MULE #MRWHOOP #RHINO #BARRACKS #MONSTER #YANKEE #SKIMMER #RCBARON #PATRIOT #RUSTLER #DOZER #BOXVILLE #BENSON #JOURNEY #BEAGLE #CROPDUST #STUNT #PETRO #RDTRAIN #SHAMAL #HYDRA #CEMENT #COMBINE #VORTEX #FIRELA #NEVADA #MONSTERA #MONSTERB #DUNERIDE #AT400 #DFT30 #HOTDOG #ANDROM #DODO #BOXBURG
Номер оружия можно найти опкодом:
0781: get_weapon_with_ID $AMMU_SELECTED_WEAPON model_to $AMMU_SELECTED_WEAPON_MODEL
---
Точнее наоборот позволяет узнать модель оружия по его ид, но в любом случае это позволяет использовать только один массив, экономя локальные переменные:
{$CLEO}
var
0@: Array 5 of Integer
5@: Integer
end
0@ = 29
1@ = 30
2@ = 31
3@ = 33
4@ = 38
while true
wait 250
if
Player.Defined($PLAYER_CHAR)
then
if
0AB0: key_pressed 90
then
0AB5: store_actor $PLAYER_ACTOR closest_vehicle_to 5@ closest_ped_to 6@
if
6@ > -1
then
5@ = Random(0, 5)
0781: get_weapon_with_ID 0@[5@] model_to 7@
Model.Load(7@)
while not Model.Available(7@)
wait 0
end
0631: put_actor 6@ in_group $PLAYER_GROUP
01B2: give_actor 6@ weapon 0@[5@] ammo 9999 // Load the weapon model before using this
Model.Destroy(7@)
end
end
if
0AB0: key_pressed 88
then
0632: release_group $PLAYER_GROUP
end
end
end
да, с wait'ом получилось. А что насчет пути? Почему оно улетает в небо?
Попробуй так:
if
Actor.InCar($PLAYER_ACTOR, 3@)
then
Player.CanMove($PLAYER_CHAR) = false
04BA: set_car 3@ speed_to 20.0
Car.DriveTo(3@, 1245.465, -2055.352, 59.82913)
Car.SetMaxSpeed(3@, 30.0)
00AE: set_car 3@ traffic_behaviour_to 2
while true
wait 0
if
01AF: car 3@ sphere 0 in_sphere 1245.465 -2055.352 59.82913 radius 3.0 3.0 4.0
then
0633: AS_actor $PLAYER_ACTOR exit_car
Break
end
end
Player.CanMove($PLAYER_CHAR) = true
end
@iKtulhu
Как я из этого понял, оно должно ехать ко мне? Но уезжает в хренпойминск
Попробуй убрать:
Car.RemoveReferences(3@) Actor.RemoveReferences(4@)
видимо из-за этого, сейчас игры нет точно не могу сказать. Проверь находиться ли машина около игрока иди нет, если да то делай ремув.
Ну, и немного по наглею, как можно проверить сел ли игрок именно в этом машину? Которую вызвал тильдой
if
Actor.InCar($PLAYER_ACTOR, 3@)
then
// ...
end
@iKtulhu
ну и sub-вопрос, почему, если раскоментировать строки с новым актером - игра зависает при вызове, может как то по другому надо создавать?
Сперва ты должен загрузить модель, которую собираешься использовать:
#HMOST.Load while not #HMOST.Available wait 0 end
actor.InCar
Это проверка находиться ли данный актер в машине. Если ты хочешь создать актера в машине используй опкод:
0129: 41@ = create_actor_pedtype 23 model #SPECIAL02 in_car 35@ driverseat
---
create_thread @taxi
// ...
:taxi
while true
wait 0
if
Player.Defined($PLAYER_CHAR)
then
if
0AB0: key_pressed 0xC0
then
#TAXI.Load
while not #TAXI.Available
wait 0
end
#WFYBU.Load
while not #WFYBU.Available
wait 0
end
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
0@ += 20.0
1@ += 1.0
3@ = Car.Create(#TAXI, 0@, 1@, 2@)
0129: 4@ = create_actor_pedtype 4 model #WFYBU in_car 3@ driverseat
Car.SetDriverBehaviour(3@, DriveToPlayer)
#TAXI.Destroy
#WFYBU.Destroy
Car.RemoveReferences(3@)
Actor.RemoveReferences(4@)
end
end
end
Убери строку:
05CD: AS_actor $10290 exit_car $10289