You are not logged in.
Pages: 1
Спасибо!
Извини, а ты не мог бы объяснить, на что указывает это смещение
0@ += 0x64
и что это за структура?
0xA10B8A
А, понятно, спасибо, с оффсетами я знаком более менее.
А вот с дальностью выстрела я так и не разобрался, но зато сделал по другому:
{$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 - скорее всего громкость, но я в этом не очень уверен.
Допустим так, а что дальше?
Опять же извиняюсь за глупый вопрос, а в чём различия между локальными и глобальными системами?
Узнал, как работает эта функция:
005D0560 CWeapon::FireHeliGun (( CEntity *, CVector *, CVector *,float))
Она создаёт гильзу, float - размер гильзы, один из векторов, как я понял, это расстояние, между гильзами.
Я делал так: получал оффсет от гг, первый на расстоянии 1.0, второй на расстоянии 20.0, по преодолению первой гильзы 20 метров, создавалась вторая и тд. Но есть одна странность - почему-то у меня не выходит изменить направление гильз, они все летят на запад, вроде как, и создаются только над водой...
Может это кому пригодится для чего-нибудь
Там нет такого опкода, я смотрел информацию про него, в 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
но к сожалению моих знаний на это вообще никак не хватает...
Вектор пробовал менять? Попробуй увеличить 5.0 до 100.0, к примеру.
Den_spb, пробовал, вот что выходит:
при 1.0
при 10.0
А как ты его вызывал?
Пробовал так:
{$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@ должно быть.
Да, я заметил это с самого начала.
DK22Pac, спасибо большое!:^
Хотел ещё поинтересоваться, а можно в этой функции дальность стрельбы или тип изменить? просто максимальная дальность выстрела, примерно метра полтора, да и сила тоже слабовата...
И хотел ещё узнать почему, когда я пытаюсь вызвать функции,
005D45E0 CWeapon::Fire (( CEntity *, CVector *)) 005CCF90 CWeapon::FireProjectile (( CEntity *, CVector *,float)) 005CD340 CWeapon::FireShotgun (( CEntity *, CVector *))
таким же образом, то игра вылетает?
Ого! спасибо большое!:^
DK22Pac , извини, а ты не мог бы прокомментировать сие творение?
Просто мне не очень понятны некоторые моменты, например, что означают смещения 0x504, 0x18, 0x408?
Я просто, мягко говоря, новичок в этом деле
Спасибо вам за предоставленную информацию
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
то игра вылетает...=(
Подскажите пожалуйста, или приведите пример (желательно) как сделать правильно.
Добрый вечер.
Заранее прошу прощение за столь глупые для вас вопросы.
Можно ли этими функциями создать выстрелы в определённых координатах и с определённым направлением:
005D1140 CWeapon::FireInstantHit (( CEntity *, CVector *)) 005D0560 CWeapon::FireHeliGun (( CEntity *, CVector *, CVector *,float)) 005CCF90 CWeapon::FireProjectile (( CEntity *, CVector *,float))
Если да, то объясните пожалуйста каким образом?
И можно ли создать свечение на земле как от фонарных столбов, или как от фар мотоциклов, или же как от прожектора полицейского вертолёта, в указанных координатах? если да, то как?
Заранее благодарю.=) Я просто мало что понимаю в работе с памятью игры, но хочу заполнить эти пробелы.
З.Ы. Функции взяты вот отсюда.
Прошу прощения, что задаю этот вопрос второй раз, в прошлый раз я задавал этот вопрос в теме "Один вопрос", но я так и не получил на него ответ. Есть ли для Vice City аналог опкода 0A4A: store_joystick_X_offset_to $bla_bla1 Y_offset_to $bla_bla2? Или как можно получить угол поворота камеры?
Заранее спасибо.
Извините, у меня вопрос, есть ли для Vice City аналог скрипта 0A4A: store_joystick_X_offset_to $bla_bla1 Y_offset_to $bla_bla2 ? Ну, или, как можно получить угол поворота камеры?
Просто Скрипт хочу написать, подствольный гранатомёт, а настраивать угол через нажатие клавиш, не очень удобно. Вернее не настраивать нажатие клавиш, а использовать в игре, через нажатие клавиш, не очень удобно.
Заранее спасибо.
Pages: 1