You are not logged in.
Тема: Езда по земле, горам, стенам, потолкам и др.
Мод, который позволяет ехать на любой поверхности - по отвесным стенам и даже по потолку. Включить/Выключить - буква Э, прыжок на стену - буква Ж. Как это работает? Как вы знаете из уроков физики, нет никакой разницы между ускорением и гравитацией. Т. е. если в невесомости комнате придать ускорение 9,8 м/с[sup]2[/sup], то нам будет казаться, что на нас действует гравитация.
Опкод
07D5: set_car 0@ acceleration_in_direction_XYZ 0.0 0.0 0.2 rotation_accelerationXY 9@ 8@ 0.0
придаёт машине ускорение по осям XYZ (первые три параметра) и момент силы по осям XYZ (последние параметры). и т.д.
К сожалению, этот опкод очень сильно зависит от FPS, так что нужно настроить константы ACC_VAL и ACC_VALNEG под себя (они должны быть равны по модулю), что бы машина не укатывалась вверх или вниз, а стояла на стене.
thread 'sticky'
{$CLEO}
const
ACC_VAL=0.01107
ACC_VALNEG=-0.01107
end
var
$PLAYER_ACTOR: Actor
$PLAYER_CHAR: Player
0@: Car
1@: Float
2@: Float
3@: Float
4@: Float
5@: Float
6@: Float
end
while true
//0A8D: 20@ = read_memory 0xB7CD9C size 4 virtual_protect 0
//0513: show_text_box_1number 'NUMBER' number 20@ // ~1~
if $PLAYER_CHAR.Defined
then
if and
$PLAYER_ACTOR.Driving
0AB0: key_pressed 222 // Э
then
00C0: set_current_time_hours_to 12 minutes_to 0
03C0: 0@ = actor $PLAYER_ACTOR car
32@=0
08C6: set_actor $PLAYER_ACTOR stay_on_bike 1
03E5: show_text_box 'CHEAT1'
//0A8C: write_memory 0x863984 size 4 value 0.00001 virtual_protect 1
while true
if $PLAYER_CHAR.Defined
jf @clear
if 056E: car 0@ defined
jf @clear
if $PLAYER_ACTOR.InCar(0@)
jf @clear
if and
32@>200
0AB0: key_pressed 222 // Э
then
Break
end
if 0AB0: key_pressed 186
then
var
7@: Float
8@: Float
9@: Float
end
7@ = 0@.Angle
7@+=90.0
02F6: 8@ = cosine 7@ // (float)
02F7: 9@ = sine 7@ // (float)
8@*=0.5
9@*=0.5
07D5: set_car 0@ acceleration_in_direction_XYZ 0.0 0.0 0.2 rotation_accelerationXY 9@ 8@ 0.0//unk 0.0
//wait 500
//07D5: set_car 0@ acceleration_in_direction_XYZ 0.0 0.0 0.01 rotation_accelerationXY 0.5 0.0 unk 0.0
wait 200
Continue
end
if or
81F3: not car 0@ in_air
02BF: car 0@ sunk
then
33@=0
end
if 33@>350
then
wait 0
Continue
end
0@.StorePos(1@, 2@, 3@)
0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 ACC_VALNEG
4@-=1@
5@-=2@
6@-=3@
6@+=ACC_VAL
07D5: set_car 0@ acceleration_in_direction_XYZ 4@ 5@ 6@ rotation_accelerationXY 0.0 0.0 unk 0.0
if and
6@>0.0045
8185: not car 0@ health >= 350
then
0@.Health = 350
end
// 07D5: set_car 0@ velocity_in_direction_XYZ 0.0 0.0 0.01109 rotation_velocitiesXY 0.0 0.0 unk 0.0
wait 0
end
:clear
0@.RemoveReferences
08C6: set_actor $PLAYER_ACTOR stay_on_bike 0
03E5: show_text_box 'CHEAT8'
wait 200
//0A8C: write_memory 0x863984 size 4 value 0.008 virtual_protect 1
end
end
wait 0
end
[small][/small]
Offline
Круто сделал.
Offline
Можно проще. Чтобы на машину не действовала гравитация, надо отключить один флаг в ее структуре.
0A97: 0@ = car 1@ struct
0@ += 0x40
0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0
08C3: clear 2@ bit 1
0A8C: write_memory 0@ size 4 value 2@ virtual_protect 0Этот метод используется в чите "Cars Float Away when hit ".
Offline
@Alien -
Можно проще. Чтобы на машину не действовала гравитация, надо отключить один флаг в ее структуре.
Спасибо
. Да, это частично решает проблему со скатыванием вниз (вверх) при низком (большом) FPS. Если ещё добавить задержку, то зависимости от FPS почти не будет, но машина будет ехать дёрганно.
Версия без задержки:
thread 'sticky'
{$CLEO}
const
ACC_VALNEG=-0.01107
end
var
$PLAYER_ACTOR: Actor
$PLAYER_CHAR: Player
0@: Car
1@: Float
2@: Float
3@: Float
4@: Float
5@: Float
6@: Float
13@: Integer
end
while true
//0A8D: 20@ = read_memory 0xB7CD9C size 4 virtual_protect 0
//0513: show_text_box_1number 'NUMBER' number 20@ // ~1~
if $PLAYER_CHAR.Defined
then
if and
$PLAYER_ACTOR.Driving
0AB0: key_pressed 222 // Э
then
00C0: set_current_time_hours_to 12 minutes_to 0
03C0: 0@ = actor $PLAYER_ACTOR car
32@=0
08C6: set_actor $PLAYER_ACTOR stay_on_bike 1
gosub @CarGravityOff
03E5: show_text_box 'CHEAT1'
while true
if $PLAYER_CHAR.Defined
jf @clear
if 056E: car 0@ defined
jf @clear
if $PLAYER_ACTOR.InCar(0@)
jf @clear
if and
32@>200
0AB0: key_pressed 222 // Э
then
Break
end
if 0AB0: key_pressed 186
then
var
7@: Float
8@: Float
9@: Float
end
7@ = 0@.Angle
7@+=90.0
02F6: 8@ = cosine 7@ // (float)
02F7: 9@ = sine 7@ // (float)
8@*=0.5
9@*=0.5
07D5: set_car 0@ acceleration_in_direction_XYZ 0.0 0.0 0.2 rotation_accelerationXY 9@ 8@ 0.0//unk 0.0
wait 200
Continue
end
if or
81F3: not car 0@ in_air
02BF: car 0@ sunk
then
33@=0
end
if 33@>350
then
wait 0
if 13@==true
then
gosub @CarGravityOn
end
Continue
end
if 13@==false
then
gosub @CarGravityOff
end
0@.StorePos(1@, 2@, 3@)
0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 ACC_VALNEG
4@-=1@
5@-=2@
6@-=3@
//6@+=ACC_VAL
07D5: set_car 0@ acceleration_in_direction_XYZ 4@ 5@ 6@ rotation_accelerationXY 0.0 0.0 unk 0.0
if and
6@>0.0045
8185: not car 0@ health >= 350
then
0@.Health = 350
end
wait 0
end
:clear
gosub @CarGravityOn
0@.RemoveReferences
08C6: set_actor $PLAYER_ACTOR stay_on_bike 0
03E5: show_text_box 'CHEAT8'
wait 200
end
end
wait 0 // <<< НЕ МЕНЯТЬ ПАРАМЕТР!!!
end
:CarGravityOff
0A97: 10@ = car 0@ struct
10@ += 0x40
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 0
08C3: clear 11@ bit 1
0A8C: write_memory 10@ size 4 value 11@ virtual_protect 0
13@=true
return
:CarGravityOn
0A97: 10@ = car 0@ struct
10@ += 0x40
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 0
08BD: set 11@ bit 1
0A8C: write_memory 10@ size 4 value 11@ virtual_protect 0
13@=false
returnВерсия с задержкой:
thread 'sticky'
{$CLEO}
const
ACC_VALNEG=-0.0275
end
var
$PLAYER_ACTOR: Actor
$PLAYER_CHAR: Player
0@: Car
1@: Float
2@: Float
3@: Float
4@: Float
5@: Float
6@: Float
13@: Integer
end
while true
//0A8D: 20@ = read_memory 0xB7CD9C size 4 virtual_protect 0
//0513: show_text_box_1number 'NUMBER' number 20@ // ~1~
if $PLAYER_CHAR.Defined
then
if and
$PLAYER_ACTOR.Driving
0AB0: key_pressed 222 // Э
then
00C0: set_current_time_hours_to 12 minutes_to 0
03C0: 0@ = actor $PLAYER_ACTOR car
32@=0
08C6: set_actor $PLAYER_ACTOR stay_on_bike 1
gosub @CarGravityOff
03E5: show_text_box 'CHEAT1'
while true
if $PLAYER_CHAR.Defined
jf @clear
if 056E: car 0@ defined
jf @clear
if $PLAYER_ACTOR.InCar(0@)
jf @clear
if and
32@>200
0AB0: key_pressed 222 // Э
then
Break
end
if 0AB0: key_pressed 186
then
var
7@: Float
8@: Float
9@: Float
end
7@ = 0@.Angle
7@+=90.0
02F6: 8@ = cosine 7@ // (float)
02F7: 9@ = sine 7@ // (float)
8@*=0.5
9@*=0.5
07D5: set_car 0@ acceleration_in_direction_XYZ 0.0 0.0 0.2 rotation_accelerationXY 9@ 8@ 0.0//unk 0.0
wait 200
Continue
end
if or
81F3: not car 0@ in_air
02BF: car 0@ sunk
then
33@=0
end
if 33@>350
then
wait 0
if 13@==true
then
gosub @CarGravityOn
end
Continue
end
if 13@==false
then
gosub @CarGravityOff
end
0@.StorePos(1@, 2@, 3@)
0407: store_coords_to 4@ 5@ 6@ from_car 0@ with_offset 0.0 0.0 ACC_VALNEG
4@-=1@
5@-=2@
6@-=3@
07D5: set_car 0@ acceleration_in_direction_XYZ 4@ 5@ 6@ rotation_accelerationXY 0.0 0.0 unk 0.0
if and
6@>0.0045
8185: not car 0@ health >= 350
then
0@.Health = 350
end
wait 50 // <<< НЕ МЕНЯТЬ ПАРАМЕТР!!!
end
:clear
gosub @CarGravityOn
0@.RemoveReferences
08C6: set_actor $PLAYER_ACTOR stay_on_bike 0
03E5: show_text_box 'CHEAT8'
wait 200
end
end
wait 0
end
:CarGravityOff
0A97: 10@ = car 0@ struct
10@ += 0x40
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 0
08C3: clear 11@ bit 1
0A8C: write_memory 10@ size 4 value 11@ virtual_protect 0
13@=true
return
:CarGravityOn
0A97: 10@ = car 0@ struct
10@ += 0x40
0A8D: 11@ = read_memory 10@ size 4 virtual_protect 0
08BD: set 11@ bit 1
0A8C: write_memory 10@ size 4 value 11@ virtual_protect 0
13@=false
return
[small][/small]
Offline
VcSaJen, можно выложить его в интернете? Кто автор укажу, если это надо.
Offline
Это где?
P.S. С указанием автора мои скрипты выкладывать можно всегда.
[small][/small]
Offline
Не по теме
. Прочитай внимательнее мой пост :
P.S. С указанием автора мои скрипты выкладывать можно всегда.
Не надо флудить
.
[small][/small]
Offline