You are not logged in.

Offline
Offline

А что это собственно такое? Это опкоды для зумирования камеры.
Незнаю, у меня их использование вот так рушит всю графику.
ЗЫ. Как можно сделать вход в меню карты по кнопке? Я добился того, что по нажатию кастом кнопки, меняя адрес в памяти вхожу в меню, проблема в том, что следующая часть кода, которая меняет Current menu id не срабатывает. Ну и соответственно хотелось бы выход из карты в игру по нажатию той же кнопки.
Offline
соответственно хотелось бы выход из карты в игру по нажатию той же кнопки.
Не получится такое сделать. Если ты делаешь скрипт - то он обрабатывается когда ты в игре, но не в меню. Если бы делал asi плагин, то мог бы реализовать и такое (только на кой чёрт оно нужно).
Это является ответом на твой первый вопрос о:
проблема в том, что следующая часть кода, которая меняет Current menu id не срабатывает.
Offline

соответственно хотелось бы выход из карты в игру по нажатию той же кнопки.
Не получится такое сделать. Если ты делаешь скрипт - то он обрабатывается когда ты в игре, но не в меню. Если бы делал asi плагин, то мог бы реализовать и такое (только на кой чёрт оно нужно).
Это является ответом на твой первый вопрос о:проблема в том, что следующая часть кода, которая меняет Current menu id не срабатывает.
Нужно чтобы направить вертолёт(или машину) по направлению к метке, причём не один раз, для облёта чего либо например. По быстрому вызову карты будет гораздо удобнее.
Offline
Ну так в чём проблема?
Заморозь игрока, выйди в меню. Далее (уже сам) нажми карта и поставь метку где надо. Если меню закрыто (есть опкод-проверка) то считывай координаты метки и делай с ней что хочешь.
Offline

Ну так в чём проблема?
Заморозь игрока, выйди в меню. Далее (уже сам) нажми карта и поставь метку где надо. Если меню закрыто (есть опкод-проверка) то считывай координаты метки и делай с ней что хочешь.
Да не, с этим то проблем нет, суть в том что если например нужно прилететь в одно место, постоять там, потом в другое и т.д. несколько раз, комбинация Карта - Метка - Возврат будет быстрее и удобнее, чем Меню - Карта - Метка - Меню - Возврат.
Кстати, нету простенького исходника какой-нибудь ASI, чтоб туда вписать подобный код?
Ибо с нуля мне не написать, а в исходниках больших модов разбираться долго.
0000: NOP 0A8D: 1@ = read_memory 0xBA67A4 size 4 virtual_protect 0 0A8D: 2@ = read_memory 0xBA68A4 size 4 virtual_protect 0 :Noname_16 wait 0 if and 1@ = 0 2@ = 0 0AB0: key_pressed 9 jf @Noname_17 //0A8C: write_memory 0xB7CB48 size 4 value 0x000100 virtual_protect 0 0A8C: write_memory 0xBA67A4 size 4 value 0x000001 virtual_protect 0 0A8C: write_memory 0xBA68A4 size 4 value 0x290501 virtual_protect 0 jump @Noname_16 :Noname_17 wait 0 if and 1@ = 0x000001 2@ = 0x290501 0AB0: key_pressed 9 //0A8C: write_memory 0xB7CB48 size 4 value 0x000000 virtual_protect 0 0A8C: write_memory 0xBA67A4 size 4 value 0x000000 virtual_protect 0 0A8C: write_memory 0xBA68A4 size 4 value 0x000000 virtual_protect 0 jump @Noname_16
По табу, появляется карта(причём реалтаймовая), правда отваливаются некоторые текстуры в меню(в примере видно по белому квадрату у курсора), и не работает мышь.
Как бы мышь пофиксить...
UPD. Done - http://sannybuilder.com/forums/viewtopi … 427#p12427
Last edited by Sergey81 (21-09-2010 09:01)
Offline

0332: set_actor 1@ bleeding_to 0
Эпитафия на могиле фидошника: "Меня видно?"
Offline

Как получить хэндл того, кто бьёт или среляет в актёра?
Offline

Функция возвращает в 1@ хендл актера, который атаковал актера $PLAYER_ACTOR.
0AB1: call_scm_func @GetActorDamagingPed 1 $PLAYER_ACTOR 1@
GetActorDamagingVehicle
записывает хендл машины, которая сбила актера.
GetVehicleDamagingPed
записывает хендл актера, который повредил машину
GetVehicleDamagingVehicle
записывает хендл машины, которая толкнула машину 
{$CLEO}
0000:
while true
      wait 0
      if
          Player.Defined($PLAYER_CHAR)
      then
          {**********************************************
              есл и актера $PLAYER_ACTOR ранил другой актер,
              получаем хендл атаковавшего актера в 1@         
            
          **********************************************}                  
            
          if
              031 D:   actor $PLAYER_ACTOR hit_by_weapon 57  // 57 by any weapon
          then              
              if
                  0AB1: call_scm_func @GetActorDamagingPed 1 $PLAYER_ACTOR 1@
              then
                  0467: clear_actor $PLAYER_ACTOR last_weapon_damage
                  // здесь с актером, который в вас стрелял, можно делать что угодно. его хендл в 1@
                    
                  // например, подожжем!!!!
                  055D: make_player $PLAYER_CHAR fireproof 1 // это на всякий случай, можно убрать
                    
                  0326: 9@ = create_actor 1@ fire                     
              end
          end
          {**********************************************
              если актера $PLAYER_ACTOR сбили машиной,
              получаем хендл сбившей машины в 1@         
            
          **********************************************}                  
          if
              031D:   actor  $PLAYER_ACTOR hit_by_weapon 49  // 49 by vehicle
          then              
              if
                  0AB1: call_scm_func @GetActorDamagingVehicle 1 $PLAYER_ACTOR 1@
              then
                  0467: clear_actor $PLAYER_ACTOR last_weapon_damage
                  // здесь с машиной, которая вас сбила, можно делать что угодно. ее хендл в 1@
                    
                  // например, подожжем!!!!
                  055D: make_player $PLAYER_CHAR fireproof 1 // это на всякий случай, можно убрать
                    
                  0325: 9@ = create_car 1@ fire   
                      
              end
          end
            
          if
              Actor.Driving($PLAYER_ACTOR)
          t hen
              03C0: 0@ = actor $PLAYER_ACTOR car
              {**********************************************
        
                  если машину 0@ повредили из оружия,
                  получаем хендл атаковавшего актера в 1@         
                
              **********************************************}                  
                
              if
                  0 31E:   car 0@ hit_by_weapon 57
              then
                  if
                      0AB1: call_scm_func @GetVehicleDamagingPed 1 0@ 1@
                  then
                      0468: clear_car 0@ last_weapon_damage   
                      // здесь с актером, который повредил машину, можно делать что угодно. его хендл в 1@
                        
                      // например, подожжем!!!!
                       
                      0326: 9@ = create_actor 1@ fire                     
                  end
                
              end
              {****************************************** ****
        
                  если машину 0@ толкнули другой машиной,
                  получаем хендл толкнувшей машины в 1@         
                
              **********************************************}                  
                
              if
                  0 31E:   car 0@ hit_by_weapon 49
              then
                  if
                      0AB1: call_scm_func @GetVehicleDamagingVehicle 1 0@ 1@
                  then
                      0468: clear_car 0@ last_weapon_damage   
                      // здесь с актером, который повредил машину, можно делать что угодно. его хендл в 1@
                        
                      // например, подожжем!!!!
                       
                      0325: 9@ = create_car 1@ fire                     
                  end
                
              end
              {****************************************** ****}          
            
          end
      end   
end
:GetActorDamagingPed
0A96: 1@ = actor 0@ struct
1@ += 0x764
:TestPed
0A8D: 0@ = read_memory 1@ size 4 virtual_protect 0
if
      0@ > 0
then
      0A8D: 8@ = read_memory 0x00B74490 size 4 virtual_protect 0
      0AA8: call_function_method 0x4442D0 struct 8@ num_params 1 pop 0 0@ 1@
      if
          056D:   actor 1@ defined
      then
          0AB2: ret 1 1@
      end
end
0AB2: ret 1 -1                         
:GetActorDamagingVehicle
0A96: 1@ = actor 0@ struct
1@ += 0x764
:TestVehicle
0A8D: 0@ = read_memory 1@ size 4 virtual_protect 0
if
      0@ > 0
then
      0A8D: 8@ = read_memory 0x00B74494 size 4 virtual_protect 0
      0AA8: call_function_method 0x424160 struct 8@ num_params 1 pop 0 0@ 1@
      if
          056E:   car 1@ defined   
      then
          0AB2: ret 1 1@
      end
end
0AB2: ret 1 -1                         
:GetVehicleDamagingPed
0A97: 1@ = car 0@ struct
1@ += 0x50C
jump @TestPed
:GetVehicleDamagingVehicle
0A97: 1@ = car 0@ struct
1@ += 0x50C
jump @TestVehicle
					Offline

Спасибо, GTASA!
Offline

@GTASA - может проще было дать ссылку?))
http://sannybuilder.com/forums/viewtopic.php?id=250
Offline

Сообщения в данной теме были выделены в отдельный топик
[WIP] Автосохранение
Offline

Как определить, к какой группе принадлежит актёр?
Offline

Нет, под группой я не pedtype имел ввиду, а когда несколько гангстеров вместе идут.
Offline
Если не ошибаюсь, он проверяет.
EDIT:
Ошибся, он устанавливает. Можно проверить присутствие игрока в какой-либо группе?
Last edited by Sw[ee]t (02-10-2010 07:30)
Offline

Offline
Как можно убрать дорожный трафик, т. е. что бы на дорогах не было машин?
SNKillers.net - всё о взломе и защите социальных сетей
Offline
Offline