#26 Re: Работа с памятью, EXE » Скриптово меняем навык стрельбы из оружия » 13-12-2009 13:58

если поставить float тоже длинные smile где-то с 6 знаками до запятой.
Alien ,скажи пожалуйста, в каком из 3х случаев я считаю правильно ?

#27 Re: Работа с памятью, EXE » Скриптово меняем навык стрельбы из оружия » 13-12-2009 12:36

Не получается чего то сосчитать.=(
Пробую найти targetRange  для m4 с уровнем hitman
0xC8AAB8 + (31 + 36)*0x70 + 0x4
получаю какие то длинные циферки, изменение которых ничего не дает sad (или эти адреса только для чтения?)
или перевожу 31 в hex получаю 1F
считаю
0xC8AAB8 + (1F + 36)*0x70 + 0x4
или перевожу еще 36 в hex.
0xC8AAB8 + (1F + 24)*0x70 + 0x4  то же самое.
Можно поподробнее расписать, пожалуйста, или привести 1 пример smile

#28 Re: Работа с памятью, EXE » Нацеленный пед » 12-12-2009 17:41

Ну я дурак smile, мне нужно было только понять что (0xB6F3B8)+0x79C это пойнтер нацеленного педа smile.
Спасибо огромное, заодно я стал понимать и функции smile

#29 Re: Работа с памятью, EXE » Нацеленный пед » 12-12-2009 13:24

Спасибо smile ,круто даже на ассемблере вставка smile

hTargetedPed в эту переменную будет записываться пойнтер игрока(и хэндл это и есть пойнтер) ?

Аlien, скажи пожалуйста ,какая у тебя версия VC++ ? ,а то у меня  VC6 не находит функцию __thiscall

#30 Работа с памятью, EXE » Нацеленный пед » 12-12-2009 08:28

DimP
Replies: 4

У меня еще один вопрос по адресам, помогите пожалуйста.
cчитываю этот адрес (0xB6F3B8)+0x79C  написано ,что в нем находится нацеленный пед.
Будет ли правильным следующий алгоритм?(при условии что (0xB6F3B8)+0x79C > 0)

n = 0xB74490;
x = (n)+12 //получить количество педов.
от 1 до x
{
Если (n) == (0xB6F3B8)+0x79C то a = (n) //получить пойнтер на нацеленного педа.
n = n + 0x7C4
}

Или надо по другому ?

Вообщем мне надо получить пойнтер на нацеленного педа, только мне не понятно как перенести эти две строки на C или delphi ,и нужно ли это вообще.

   0AA8: call_function_method 0x4442D0 struct 2@ num_params 1 pop 0 ped 1@ store_to 0@   
   0AA6: call_method 0x4637E0 struct 0xA90850 num_params 2 pop 0 type 2 ped 1@

Из кода Alien'a.

#32 Работа с памятью, EXE » Скриптово меняем навык стрельбы из оружия » 11-12-2009 15:04

DimP
Replies: 17

"0xC8AAB8 - Начало блока, куда считывается информация об оружии с меткой J (оружие ближнего боя) и $ (остальное оружие). В этом блоке 0x50 элементов по 0x70 байт в каждом. Индекс элемента высчитывается по формуле: <номер оружия> + <смещение>. Смещение определяется навыком оружия skilllevel: STD - 0, POOR - 25, PRO - 36, особое (характеристики пистолета копов) - 47. Все имена взяты из заголовка оригинального weapon.dat. "

Взял с gtamodding.ru ,Вопрос как сосчитать значение указателя что бы получить адрес памяти
например там написано "+0x38 = [dword] accuracy " , я считал  0xC8AAB8 + номер оружия+skilllevel + 0x38.
Думаю это не правильно ,т.к у меня ничего не получилось изменить sad. Помогите пожалуйста.


Тема переименована для соответствия содержимому. Часть сообщений вынесена в отдельную тему

#33 Re: Вопросы по скриптингу » Касательно прицела. » 29-11-2009 15:01

Я имел ввиду без редактирования файла weapon.dat. smile

#34 Re: Вопросы по скриптингу » Касательно прицела. » 28-11-2009 10:50

Способ есть, скачай crazy trainer, а как там это сделано я сам хочу узнать smile

#35 Re: Вопросы по скриптингу » Парочка вопросов » 13-11-2009 07:47

Адреса для вращения камеры/прицела.
0x0B6F258  по X /float
0x0B6F248  по Y /float

#36 Re: Вопросы по скриптингу » Один вопрос » 03-11-2009 09:58

Объясните пожалуйста почему вылетает:

while true 
    repeat
        wait 100
        0A8D: 0@ = read_memory 0xB6F3B8 size 4 virtual_protect 0
        if
            0@ == 0 
        then
            continue
        end
        0@ += 0x79C
        0A8D: 1@ = read_memory 0@ size 4 virtual_protect 0
    until 1@ <> 0
    0A8D: 2@ = read_memory 0xB74490 size 4 virtual_protect 0  //get pPedPool
    0AA8: call_function_method 0x4442D0 struct 2@ num_params 1 pop 0 ped 1@ store_to 0@   //get handle of ped
    0AA6: call_method 0x4637E0 struct 0xA90850 num_params 2 pop 0 type 2 ped 1@      //add references to ped

    if
        056D:   actor 0@ defined 
    then    
       04C4: store_coords_to 10@ 11@ 12@ from_actor 0@ with_offset 0.3 150.0 0.6
       04C4: store_coords_to 13@ 14@ 15@ from_actor 0@ with_offset 0.3 1.0 0.6
       06BC: create_M4_shoot_from 13@ 14@ 15@ target 10@ 11@ 12@ energy 1 
    end
end

#37 Re: Вопросы по скриптингу » Вопросы по опкодам » 29-10-2009 19:27

Скажите пожалуйста как сравнить в условии 2 переменные,
Пишу:

11@ > 8@ или $i > $i1

у меня появляется ошибка, что типы переменных несовместимы, хотя если это $ то я присваиваю им в начале скрипта тип, например $i: integer

#38 Re: Вопросы по скриптингу » Один вопрос » 29-10-2009 05:32

Получается на клео не сделать то что я хочу, мне нужно примерно 1000-2000 элементов crazy
и один-два двумерных масива.=(

Пытаюсь связать камеру(значения которые по адресам 00B6F248 и 00B6F258) и окружение(педы,машины,объекты) с помощью множества 04C4: и 86BD: опкодов, и из-за таких ограничений получилось сделать только небольшой кусочек экрана по x (00B6F258), на большее не хватает элементов=(
Может быть есть более рациональные способы ?
Помогите пожалуйста.

#39 Re: Вопросы по скриптингу » Один вопрос » 28-10-2009 17:54

Все нормально, когда я индексирую их вручную:

$a[1] = 1.0
$a[2] = 2.0
...
$a[10] = 10.0

04C4: store_coords_to $x[1] $y[1] $z[1] from_actor $PLAYER_ACTOR with_offset $a[1] 150.0 0.6
04C4: store_coords_to $x[2] $y[2] $z[2] from_actor $PLAYER_ACTOR with_offset $a[2] 150.0 0.6
...
04C4: store_coords_to $x[10] $y[10] $z[10] from_actor $PLAYER_ACTOR with_offset $a[10] 150.0 0.6

Так все работает,но очень неудобно.

#40 Re: Вопросы по скриптингу » Один вопрос » 28-10-2009 17:20

У меня небольшой вопросик, ответьте пожалуйста .
Как в SB индексировать массивы ?

Объявляю их так:

$x: array 40 of Float
$y: array 40 of Float
$z: array 40 of Float
$a: array 40 of Float
$b: array 40 of Float
$i: integer

Использую примерно так:

$a[$i] = 0.0
For $i = 1 To  30
04C4: store_coords_to $x[$i] $y[$i] $z[$i] from_actor $PLAYER_ACTOR with_offset $a[$i] 150.0 0.6
$a[$i] += 1.0
end

Игра вылетает после загрузки sad

#41 Re: Вопросы по скриптингу » Один вопрос » 15-09-2009 16:46

Как найти угол по XZ между игроком и ближайшим к нему педом ?
Помогите пожалуйста.

#42 Re: Вопросы по скриптингу » Один вопрос » 11-09-2009 16:58

Подскажите пожалуйста любой рабочий пример
в котором используются опкоды:

0635: AS_actor $PLAYER_ACTOR aim_at_actor 1@  2000 ms
0667: AS_actor $PLAYER_ACTOR aim_at 969.3931 -1098.341 22.877 120000 ms
074D: AS_actor $PLAYER_ACTOR turns_to_and_look_at_actor 37@ timelimit -2

может я не так их использую, но они у меня не работают sad

#43 Re: Вопросы по скриптингу » Вопросы по опкодам » 14-08-2009 06:30

Что это за опкоды, напишите пожалуйста.
Мне нужно сделать только крест\точку\квадрат по центру экрана , т.е прицел.

#44 Re: Вопросы по скриптингу » Вопросы по опкодам » 13-08-2009 14:35

У меня появился еще вопрос.
Как сделать так чтоб выводить пиксельные изображения на экран (например d3d9.dll собейта и т.п)
Как написать самую простую d3d9.dll для SA ? или может с помощью cleo можно ?

#45 Re: Вопросы по скриптингу » Вопросы по опкодам » 07-08-2009 09:55

Смотрел скрипты portal gun и gravy gun там как то работает

#46 Re: Вопросы по скриптингу » Вопросы по опкодам » 07-08-2009 07:18

Спасибо всем, все получилось.
У меня еще несколько вопросов.
Почему не работает такая связка опкодов:

....
00A0: store_actor $PLAYER_ACTOR position_to 1@ 4@ 5@
089E: get_actor_in_sphere 1@ 4@ 5@ radius 5.0 handle_as 11@ // versionB
if
0457:   player $PLAYER_CHAR aiming_at_actor 11@
then
....

Также не работают опкоды:
0467: clear_actor $PLAYER_ACTOR last_weapon_damage
и
02E2: set_actor 2@ weapon_accuracy_to 75

Как их правильно использовать ?

#47 Вопросы по скриптингу » Вопросы по опкодам » 06-08-2009 16:26

DimP
Replies: 15

У меня 2 вопроса ,ответьте пожалуйста!

1) Можно ли из cleo скрипта запустить exe файл ?
2) В cleo3 есть следующие опкоды:
   
   0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
   0A8D: $result = read_memory 1@ size 4 virtual_protect 0

А как быть если адрес памяти не определен, например 0xC0BC15 + 1111 ?
Можно ли записать содержимое адреса 0xC0BC15 в переменную ,потом к ней прибавить смещение 1111 ,и изменить получившийся адрес ?

#48 Re: Вопросы по скриптингу » Телепортация в машину » 03-05-2009 18:17

Вроде Паук какой-то создатель скрипта:D

#49 Re: Работа с памятью, EXE » Cкорость бега\вес » 24-03-2009 15:34

Или скажите как это сделать редактированием gta sa.ехе

#50 Работа с памятью, EXE » Cкорость бега\вес » 23-03-2009 20:16

DimP
Replies: 2

Подскажите пожалуйста как изменять скорость бега\ходьбы и вес персонажа в cleo скрипте?

Board footer

Powered by FluxBB