You are not logged in.
03F0: text_draw_toggle 1 -удалить все текстуры с экрана
Это я знаю, а как проверить включен toggle_widescreen или нет?
Может кто встречал?
Offline
Каким опкодом можно заставить актера из машины обстреливать другую машину? Актер - пассажир.
Я пробовала опкодом 0672:, но для этого игроку приходится выходить из машины. А надо атаковать на ходу.
Offline
2Svetka:
Каким опкодом можно заставить актера из машины обстреливать другую машину? Актер - пассажир.
Я пробовала опкодом 0672:, но для этого игроку приходится выходить из машины. А надо атаковать на ходу.
Кажется 0713:. Точно не помню, но брал его из мода езда пассажиром (поток fire), тока там игрок ставится в такой режим.
Попробуй еще этот -0464:
Last edited by Stalker2012 (05-07-2007 07:17)
Offline
Я попробовала 0713:. Кажется к нему нужно что-то еще. Мой пассажир (по замыслу) начинает стрелять, когда в нашу машину врезаются авто. С этим опкодом он реагирует довольно-таки не сразу и, если и реагирует - начинает стрелять куда-то, но не в нужную машину. При чем стреляет он бесконечно. Даже если его вывести в пустой лес
Last edited by svetka (05-07-2007 09:43)
Offline
2svetka
А ты пробовала пассажира добавлять в группу к игроку.
Такая фишка еще есть в миссиях, посмотри там.
Попробуй простой туррет режим + флаг телохранителя.
Last edited by Stalker2012 (05-07-2007 09:55)
Offline
Stalker2012, у меня пассажир изначально является телохранителем.
Что-то я не так делаю.
Offline
Svetka попробуй 0464, если туррет режим не поможет, тогда остается только искать в коде миссий.
Посмотри еще опкоды типа "unknown_action_sequence". Еще такое есть в скрипте с первой подружкой, кода ее возишь по городу, она из машины мочит всех врагов.
Last edited by Stalker2012 (05-07-2007 10:15)
Offline
Спасибо, Stalker2012. Туррет работает, но актер стреляет во все машины подряд. Не могу ему задать определенную машину.
Эх... Буду искать.
Offline
как проверить включен toggle_widescreen или нет?
может быть так хотя врятли
0@ = 11989093 // 00B6F065
0089: 1@ = &0(0@,1i)
если 1@ = 1 то включен если 0 то выключен
Offline
Спасибо, Stalker2012. Туррет работает, но актер стреляет во все машины подряд. Не могу ему задать определенную машину.
Эх... Буду искать.
0713: actor 50@ driveby_actor -1 car 41@ point 0.0 0.0 0.0 radius 100.0 0 0 firing_rate 90
Актер 50@ стреляет в автомобиль 41@ радиус обстрела 100.0
Если вместо первого 0 (0 0 firing_rate 90) поставить 8, то актер 50@ во время стрельбы будет поворачиваться на 360 градусов.
Last edited by yelmi (05-07-2007 22:22)
Offline
yelmi, спасибо. Выше я писала:
Я попробовала 0713:. Кажется к нему нужно что-то еще. Мой пассажир (по замыслу) начинает стрелять, когда в нашу машину врезаются авто. С этим опкодом он реагирует довольно-таки не сразу и, если и реагирует - начинает стрелять куда-то, но не в нужную машину. При чем стреляет он бесконечно. Даже если его вывести в пустой лес
Актер, с этим опкодом, у меня вообще почему-то не в машины стреляет, а куда-то в бок
Чего-то не хватает.
Last edited by svetka (05-07-2007 19:58)
Offline
2svetka:
Посмотрев скрипт подружки, непонятны мне следующие строчки кода:
0631: put_actor 0@ in_group $PLAYER_GROUP -добавляет в группу к игроку
07CB: toggle_actor 0@ supporting_fire 0 -???
0A20: unknown_player $PLAYER_CHAR flag 1 -???,
возможно они заставляют её стрелять в врагов.
можно еще определить машину с какой столкнулась машина игрока и (как написал yelmi)
0713: actor <твой актер> driveby_actor -1 car <машина, с каторой столкнулась машина игрока > point 0.0 0.0 0.0 radius 100.0 8 0 firing_rate 100. После уничтожения машины возвращать актера в нормальный режим.
Еще есть вариант, описанный сдесь http://missions.gtamaps.net/readarticle … cle_id=297,
тока там верталет мочит всех, но думаю с актером принцип тот же.
2ДЖОКЕР:
Спасибо за адрес, попробую.
Можешь дать ссылку где ты их находишь.
Last edited by Stalker2012 (06-07-2007 06:53)
Offline
2ДЖОКЕР:
может быть так хотя врятли
0@ = 11989093 // 00B6F065
0089: 1@ = &0(0@,1i)
Индекс массива не может быть адресом. Чтобы посчитать правильный индекс, нужно от адреса отнять 0xA49960 и разделить на 4. В данном случае 0@ должно быть равно 300481.
Но это и в самом деле не поможет, поскольку флаг контроля widescreen это 1 байт, а массивы читают по 4 байта, поэтому точное значение этого адреса ты не получишь. Надо использовать CLEO.
2Stalker2012:
toggle_widescreen это опкод. Если тебе нужно узнать включен widescreen или нет добавь рядом с этим опкодом контрольную переменную и потом проверяй ее
Например
toggle_widescreen 0 0@ = 0 ... toggle_widescreen 1 0@ = 1
0@ будет указывать включен широкий экран или нет.
Offline
Stalker2012, yelmi, СПАСИБО!!! Действительно, 0713: оказался тем самым нужным опкодом. Но по-видимому в силу своей невнимательности я в начале как-то неправильно его применила.
Ура! Спасибо всем, кто не откликнулись на мой писк о помощи. Я это сделала!
Кажись
Last edited by svetka (06-07-2007 16:25)
Offline
0@ будет указывать включен широкий экран или нет.
навеное нужно использовать глобальную переменную и предётся её поставить после каждого опкода 02A3
00C7178E - 1байт
я пытаюсь проверить этот адрес( 1 то widescreen включен если 0 то выключен) но игра вылетает(или зависает)
Offline
Индекс массива не может быть адресом. Чтобы посчитать правильный индекс, нужно от адреса отнять 0xA49960 и разделить на 4. В данном случае 0@ должно быть равно 300481.
Но это и в самом деле не поможет, поскольку флаг контроля widescreen это 1 байт, а массивы читают по 4 байта, поэтому точное значение этого адреса ты не получишь. Надо использовать CLEO.
Может что-то я не допонял, но у меня вот так все работает:
0@= 11989093
000E: 0@ -= 10787168
0016:0@ /= 4
008B: 0@ = &0(0@,1i)если widescreen вкл, то 0@=0xFF
если widescreen выкл, то 0@=0
ДЖОКЕР:
00C7178E - 1байт
я пытаюсь проверить этот адрес( 1 то widescreen включен если 0 то выключен) но игра вылетает(или зависает)
я проверял вот так:
1@= 13047694
0A8D: 2@ = read_memory 1@ size 1 virtual_protect 1
0513: text_1number_text_box 'number' 2@
и у меня получалось всегда одно и тоже значение 2@=153, может я не так проверял
Last edited by Stalker2012 (10-07-2007 10:31)
Offline
и у меня получалось всегда одно и тоже значение 2@=153, может я не так проверял
да нет вроде всё верно,наверное я ошибся
Offline
Индекс массива не может быть адресом. Чтобы посчитать правильный индекс, нужно от адреса отнять 0xA49960 и разделить на 4. В данном случае 0@ должно быть равно 300481.
А почему необходимо отнять 0xA49960?
Offline
А почему необходимо отнять 0xA49960?
т.к. начало main.scm
http://www.gtamodding.com/index.php?tit … CM_related
Offline
2Tector:
да, и прочитай статью "Меняем игровую память через SCM", там описано почему надо отнять.
Offline
Может кто знает почему после загрузки сейва проподают мои текстуры с экрана? До загрузки сохранения они есть.
Offline
2Stalker2012:
они не сохраняются в сейве. Ты должен рисовать их на экране постоянно.
Offline
2Stalker2012:
они не сохраняются в сейве. Ты должен рисовать их на экране постоянно.
Так они и рисуются постоянно тока белыми квадратиками. Это что получается в цикле без конца загружать текстуры?! Так глюкнет все. Может кто знает как это исправить?
Last edited by Stalker2012 (13-07-2007 07:22)
Offline
2Stalker2012
выложи скрипт ,где используются твои текстуры
Offline
2Stalker2012
выложи скрипт ,где используются твои текстуры
Я уже нашел как решить данную проблему, тока пока на глюки не проверял(урезанный код):
:kkk
wait 255
$ID1_CLR=54 //цвет индикатора
$ID1_val=10.0 //значение индикатора:kkk_loop
wait 0
0391: release_txd_dictionary
0390: load_txd_dictionary 'MYTXD'
038F: load_texture "ID1" as 53 // Load dictionary with 0390 first
038F: load_texture "CLR1" as 54 // Load dictionary with 0390 first
03F0: text_draw_toggle 1
03E3: show_antialiasing_texture 1
074B: texture 53 position 12.0 382.0 scale 83.0 12.5 rotation 90.0 color 255 255 255 alpha 255
038D: create_texture $ID1_CLR position 12.5 415.0 size 6.8 $ID1_val RGBA 255 255 255 alpha 255
03F0: text_draw_toggle 0
jump @kkk_loop
Offline