#1 Re: Работа с памятью, EXE » Вопрос по памяти » 20-07-2011 21:03

Опять же вернусь к потоку, вот код, который должен вывести на экран число 123:

03F0: enable_text_draw 1
1@ = 123
while true
    wait 0
    if
        Player.Defined($player_char)
    then
        if
            0ab0: 52
        then
            0A9F: 4@ = current_thread_pointer
            if
                4@ <> 0
            then
                4@ += 60
                0A8D: 4@ = read_memory 4@ size 4 virtual_protect 0
                4@ += 4                
                0A8D: 4@ = read_memory 4@ size 4 virtual_protect 0 
                33@ = 0               
                repeat
                wait 0
                dec(33@)
                03E4: enable_text_draw_align_right 1 
                033F: set_text_draw_letter_size 0.5 0.8 
                081C: draw_text_outline 1 RGBA 0 0 0 55 
                045A: draw_text_1number 559.0 158.0 GXT 'NUMBER' number 4@ 
                until 33@ == 5000
            end
        end
    end
end

Но вылетает, я даже не могу предположить почему.Вылетает второй опкод 0A8D:

#3 Re: Работа с памятью, EXE » Вопрос по памяти » 10-07-2011 18:02

Возникла такай ситуация, нужно в скрипте здоровье машины показывать на экране, но в скрипте очень много прыжков, и текст ужасно мигает.Решил сделать второй скрипт, который будет измерять эту переменную.Переменные типа var 0 = 100 не помогли.Решил сделать так:

0AAA: 0@ = thread 'OTB' pointer
if
0@ <> 0
then
0@ += 60
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
end

смещение 60 - это массив локальных переменных.А что дальше делать с этим массивом,как достать нужную переменную?

#6 Re: Вопросы по скриптингу » Один вопрос » 07-07-2011 16:44

Помогите пожалуйста..Нашёл косинус нужного угла, а опкода с текстом arccos  не нашлось, попробовал ещё 1 способ - так же не получилось.Как можно найти угол, зная его косинус?

#7 Re: Вопросы по скриптингу » Здоровье шины » 10-08-2010 08:59

Ну всё равно,спасибо!Чё не получится,обращусь снова.

#8 Re: Вопросы по скриптингу » Здоровье шины » 09-08-2010 19:42

Да чё тут спрашивать,что бы ты снова начал осуждать,и вообще я в скриптинге 1 мес и не знаю Then,end и т.п,и ещё я всё сам сделал,я поменял локальную переменную,на глобальную(и ещё пару вещей),и всё ок стало.

#9 Вопросы по скриптингу » Здоровье шины » 08-08-2010 18:56

[ED]Andr
Replies: 5

Всем привет,мне нужна ваша помощь,я делаю скрипт здоровье шин,вроде бы всё сделал,но почему-то цыфры выходят очень большие,в минусе,и одни цыфры наложены на другие,и в итоге получается не цыфры,а каша,сам проблему я не могу найти,прошу помогите,как сделать текст(цыфры) нормальным.

{$CLEO .cs}

//-------------MAIN---------------
thread "HEALTH_TIRE" 
33@ = 1000 

:HEALTH_TIRE_23
wait 1 
if 
   Player.Defined($PLAYER_CHAR)
else_jump @HEALTH_TIRE_23 
if 
   Actor.Driving($PLAYER_ACTOR)
else_jump @HEALTH_TIRE_23 
03C0: 5@ = actor $PLAYER_ACTOR car 
03E4: enable_text_draw_align_right 1 
033F: set_text_draw_letter_size 0.5 0.8 
0340: set_text_draw_RGBA 180 25 29 255 
081C: draw_text_outline 1 RGBA 0 0 0 55 
045A: draw_text_1number 559.0 98.0 GXT 'NUMBER' number 33@  // ~1~
if 
00E1:   player 0 pressed_key 6 
else_jump @HEALTH_TIRE_230 
33@ -= 1 
jump @HEALTH_TIRE_23 

:HEALTH_TIRE_162
wait 0 
if 
   not Actor.Driving($PLAYER_ACTOR)
else_jump @HEALTH_TIRE_162 
03F0: enable_text_draw 0 
Car.RemoveReferences(5@)
33@ = 1000 
jump @HEALTH_TIRE_23 

:HEALTH_TIRE_206
wait 0 
Car.RemoveReferences(5@)
33@ = 1000 
jump @HEALTH_TIRE_23 

:HEALTH_TIRE_230
wait 0 
if and
00E1:   player 0 pressed_key 16 
00E1:   player 0 pressed_key 14 
else_jump @HEALTH_TIRE_271 
33@ -= 2 
jump @HEALTH_TIRE_23 

:HEALTH_TIRE_271
wait 0 
0209: 19@ = random_int_in_ranges 0 10000 
if 
  19@ == 5 
else_jump @HEALTH_TIRE_23 
33@ -= 1 
jump @HEALTH_TIRE_23 

:HEALTH_TIRE_317
wait 0 
if 
   not 33@ >= 300 
else_jump @HEALTH_TIRE_317 
066B: 24@ = attach_particle "PRT_SMOKE_HUGE" to_car 5@ with_offset 1.0 -1.0 0.0 flag 1 
064C: make_particle 24@ visible 
066B: 25@ = attach_particle "PRT_SMOKE_HUGE" to_car 5@ with_offset -1.0 -1.0 0.0 flag 1 
064C: make_particle 25@ visible 
jump @HEALTH_TIRE_439 

:HEALTH_TIRE_439
wait 0 
if 
  33@ >= 300 
else_jump @HEALTH_TIRE_439 
0650: destroy_particle 24@ 
0650: destroy_particle 25@ 

:HEALTH_TIRE_472
wait 0 
if 
   not 33@ >= 1 
else_jump @HEALTH_TIRE_472 
if 
8496:   not tire 3 on_car 5@ deflated 
else_jump @HEALTH_TIRE_472 
0496:   tire 3 on_car 5@ deflated 
jump @HEALTH_TIRE_526 

:HEALTH_TIRE_526
wait 0 
if 
8496:   not tire 4 on_car 5@ deflated 
else_jump @HEALTH_TIRE_526 
0496:   tire 3 on_car 5@ deflated 
jump @HEALTH_TIRE_472 

:HEALTH_TIRE_562
wait 0 
16@ = Car.Health(5@)
if 
  16@ >= 1000 
else_jump @HEALTH_TIRE_562 
jump @HEALTH_TIRE_206

#10 Re: Вопросы по скриптингу » Про воду » 02-08-2010 14:22

Kostyan wrote:
[ED]Andr wrote:

Всем привет,в мта я видел как на трассах сделана вода(она просто висит в воздухе) и в ней можно тонуть,а как это осуществить?Я думал думал,и даже не представил,что нужно сделать,пожалуйста помогите,скажите:как?

Скорей всего через мап эдитор можно такое сделать, хотя точно не уверен, пару раз им пользовался и всех его возможностей не знаю

Ну хорошо,попробую потыкать,спасибо,а я и не догадывался,что в меде ещё можно посмотреть.

#11 Вопросы по скриптингу » Про воду » 01-08-2010 18:23

[ED]Andr
Replies: 2

Всем привет,в мта я видел как на трассах сделана вода(она просто висит в воздухе) и в ней можно тонуть,а как это осуществить?Я думал думал,и даже не представил,что нужно сделать,пожалуйста помогите,скажите:как?

#12 Re: Работа с памятью, EXE » Колесо » 25-07-2010 13:44

Форум спит,помогите пожалуйста

#14 Re: Работа с памятью, EXE » Не получается » 24-07-2010 17:20

Где,я даже незнаю о чём ты?:wow: Просто с памятью игры я только начал работать,объясни пожалуйста.

#15 Работа с памятью, EXE » Колесо » 24-07-2010 17:18

[ED]Andr
Replies: 2

Привет всем.Я хочу сделать скрипт,когда у машины мало здоровья у неё отвалится колесо,но как мне оторвать от неё колесо?

#16 Re: Работа с памятью, EXE » Вопросы по транспорту » 24-07-2010 16:58

Проверить на разбитость дверей машины можно через память игры.

#17 Работа с памятью, EXE » Не получается » 24-07-2010 15:13

[ED]Andr
Replies: 4

Вот мой скрипт по изменении гравитации
{$CLEO .cs}

//-------------MAIN---------------
thread "GRAVITY"

:GRAVITY_11
wait 0
if and
   Player.Defined($PLAYER_CHAR)
00E1:   player 0 pressed_key 11
else_jump @GRAVITY_11
0A8D: 2@ = read_memory 8796548 size 4 virtual_protect 0
2@ += 50.0
wait 2000
jump @GRAVITY_12

:GRAVITY_12
wait 0
if
00E1:   player 0 pressed_key 10
jf @GRAVITY_12
2@ -= 50.0
jump @GRAVITY_11
Но он не работает,в чём дело?

Board footer

Powered by FluxBB