#1 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 22-04-2012 04:03

Спасибо!
Извини, а ты не мог бы объяснить, на что указывает это смещение

0@ += 0x64

и что это за структура?

0xA10B8A

#2 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 16-04-2012 20:14

А, понятно, спасибо, с оффсетами я знаком более менее.
А вот с дальностью выстрела я так и не разобрался, но зато сделал по другому:

{$CLEO .cs}
thread 'B6'

:B6_0
wait 100
if
Player.Defined($PLAYER_CHAR)
jf @B6_0

:B6_1
wait 0
6@ = 0.0
if 
05EE:  key_pressed 69
jf @B6_1

:B6_1a 
05E6: 0@ = actor $PLAYER_ACTOR struct
0@ += 0x504
05E3: call_method 0x5F9DA0 struct 0@ num_params 3 pop 0 100.0 10 54
05E0: 1@ = read_memory 0@ size 1 virtual_protect 0
1@ *= 0x18
1@ += 0x408
005A: 1@ += 0@
0@ -= 0x504
:B6_2       
04C4: create_coordinate 3@ 4@ 5@ from_actor $PLAYER_ACTOR offset 0.0 6@ 0.0
05F8: 2@ = var 3@ offset
05E3: call_method 0x5D1140 struct 1@ num_params 2 pop 0 2@ 0@
6@ += 1.0
if
6@ >= 100.0
jf @B6_2       
jump @B6_1

Надо теперь как-то звук выстрела создать, а вот не могу понять, как... Есть вот такая функция:

005F9DA0 cDMAudio::PlayOneShot (( int,ushort,float ))

Но я не могу что-то с ней разобраться, как я понимаю int - номер или ID звука, ushort - продолжительность, float - скорее всего громкость, но я в этом не очень уверен.

#3 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 16-04-2012 12:12

Допустим так, а что дальше?
Опять же извиняюсь за глупый вопрос, а в чём различия между локальными и глобальными системами?

#4 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 11-04-2012 04:11

Узнал, как работает эта функция:

005D0560   CWeapon::FireHeliGun (( CEntity *, CVector *, CVector *,float))

Она создаёт гильзу, float - размер гильзы, один из векторов, как я понял, это расстояние, между гильзами.
Я делал так: получал оффсет от гг, первый на расстоянии 1.0, второй на расстоянии 20.0, по преодолению первой гильзы 20 метров, создавалась вторая и тд. Но есть одна странность - почему-то у меня не выходит изменить направление гильз, они все летят на запад, вроде как, и создаются только над водой...
Может это кому пригодится для чего-нибудь smile

#5 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 09-04-2012 10:40

Там нет такого опкода, я смотрел информацию про него, в VC он не используется.. только в III и SA...
А на счёт дальности и типа стрельбы, больше нет вариантов? Просто хотелось бы в VC создать аналог опкода

06BC: create_M4_shoot_from 2193.268 -1165.441 1031.124 target $TEMPVAR_X_COORD $TEMPVAR_Y_COORD $TEMPVAR_Z_COORD energy 1

но к сожалению моих знаний на это вообще никак не хватает...

#6 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 09-04-2012 08:36

Вектор пробовал менять? Попробуй увеличить 5.0 до 100.0, к примеру.

Den_spb, пробовал, вот что выходит:
при 1.0
9c8b2efadeaae291ba8bb77232efc187.jpeg 131a185fbc2493783388337974425c20.jpeg
при 10.0
cb0b2bf4815ec48d12fb017ceeec9035.jpeg 618cf61a0b85965f0ae9a85ab25e780d.jpeg

А как ты его вызывал?

Пробовал так:

{$CLEO}
Thread 'light'
while true
    if
    Player.Defined($PLAYER_CHAR)
    then
        wait 0
        04C4: create_coordinate 3@ 4@ 5@ from_actor $PLAYER_ACTOR offset 0.0 0.0 0.0
        0250: create_light_at 3@ 4@ 5@ RGB_values 235 255 250
    end
end

Пробовал делать, чтоб по нажатию кнопки, но всегда одно и то же - вылет.

П.С. Тут:
05E0: 1@ = read_memory 1@ size 1 virtual_protect 0
вроде 0@ должно быть.

Да, я заметил это с самого начала. smile

#7 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 08-04-2012 19:24

DK22Pac, спасибо большое!:^
Хотел ещё поинтересоваться, а можно в этой функции дальность стрельбы или тип изменить? просто максимальная дальность выстрела, примерно метра полтора, да и сила тоже слабовата...
И хотел ещё узнать почему, когда я пытаюсь вызвать функции,

005D45E0 	CWeapon::Fire (( CEntity *, CVector *))
005CCF90         CWeapon::FireProjectile (( CEntity *, CVector *,float)) 	
005CD340 	CWeapon::FireShotgun (( CEntity *, CVector *))

таким же образом, то игра вылетает?

#8 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 07-04-2012 12:29

Ого! спасибо большое!:^
DK22Pac , извини, а ты не мог бы прокомментировать сие творение? smile
Просто мне не очень понятны некоторые моменты, например, что означают смещения 0x504, 0x18, 0x408?
Я просто, мягко говоря, новичок в этом деле smile

#9 Re: Работа с памятью, EXE » Помогите пожалуйста! (VC) » 07-04-2012 07:05

Спасибо вам за предоставленную информацию smile
Den_spb, я читал это,  даже по-моему сохранял куда-то, но к сожалению у меня не хватает знаний, что бы воспользоваться этой информацией... Как я не пробовал, так у меня ничего не получилось, просто вылетает и всё...
Пробовал найти аналог опкода 016F, найти нашёл, но вот в VC он не работает, хотя в VICESCM.INI он присутствует - это

0250: create_light_at 780.5 -942.8749 39.0 RGB_values 235 255 250

И ещё вот такую функцию нашёл на том же сайте 

005D1140 	No Category 	CWeapon::FireInstantHit (( CEntity *, CVector *))

Но когда я пытаюсь её вызвать (я на 100% уверен в том, что я делаю абсолютно не правильно, но не знаю как сделать по другому),

:1
wait 100
if and
   05EE:  key_pressed 72 
   Player.Defined($PLAYER_CHAR)
jf @1
05E6: 0@ = actor $PLAYER_ACTOR struct
05E3: call_method 0x5D1140 struct 0@ num_params 2 pop 2 здесь пробовал указывать все возможные варианты (координаты игрока с оффсетом, просто числа, целые, дробные, и тд) но ничего не вышло...
jump @1

то игра вылетает...=(
Подскажите пожалуйста, или приведите пример (желательно) как сделать правильно.

#10 Работа с памятью, EXE » Помогите пожалуйста! (VC) » 04-04-2012 16:17

Pavlent
Replies: 20

Добрый вечер. smile
Заранее прошу прощение за столь глупые для вас вопросы.
Можно ли этими функциями создать выстрелы в определённых координатах и с определённым направлением:

005D1140 	CWeapon::FireInstantHit (( CEntity *, CVector *)) 	
005D0560 	CWeapon::FireHeliGun (( CEntity *, CVector *, CVector *,float))
005CCF90 	CWeapon::FireProjectile (( CEntity *, CVector *,float))

Если да, то объясните пожалуйста каким образом?
И можно ли создать свечение на земле как от фонарных столбов, или как от фар мотоциклов, или же как от прожектора полицейского вертолёта, в указанных координатах? если да, то как?

Заранее благодарю.=) Я просто мало что понимаю в работе с памятью игры, но хочу заполнить эти пробелы. smile

З.Ы. Функции взяты вот отсюда.

#11 Re: Вопросы по скриптингу » Вопросы по опкодам » 25-11-2011 09:27

Прошу прощения, что задаю этот вопрос второй раз, в прошлый раз я задавал этот вопрос в теме "Один вопрос", но я так и не получил на него ответ. Есть ли для Vice City аналог опкода 0A4A: store_joystick_X_offset_to $bla_bla1 Y_offset_to $bla_bla2? Или как можно получить угол поворота камеры?
Заранее спасибо.

#12 Re: Вопросы по скриптингу » Один вопрос » 10-11-2011 15:14

Извините, у меня вопрос, есть ли для Vice City аналог скрипта 0A4A: store_joystick_X_offset_to $bla_bla1 Y_offset_to $bla_bla2 ? Ну, или, как можно получить угол поворота камеры?
Просто Скрипт хочу написать, подствольный гранатомёт, а настраивать угол через нажатие клавиш, не очень удобно. Вернее не настраивать нажатие клавиш, а использовать в игре, через нажатие клавиш, не очень удобно.
Заранее спасибо.

Board footer

Powered by FluxBB