Автор Тема: Помощь с CLEO  (Прочитано 7467 раз)

Оффлайн Shagg_E

  • Постоялец
  • ***
  • Сообщений: 502
  • Репутация: +14/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Помощь с CLEO
« Ответ #120 : Май 13, 2018, 01:57:40 pm »
Третий вариант неправильный, кстати. Там некорректное использование глобальной переменной.
А первые два - вроде норм

Оффлайн egor230

  • Прохожий
  • *
  • Сообщений: 87
  • Репутация: +1/-0
    • Просмотр профиля
    • Mr
Re: Помощь с CLEO
« Ответ #121 : Май 15, 2018, 12:48:17 pm »
Здравствуйте уважаемый Shagg_E.  Мне помог вариант номер 2.  Переделал, конечно его. Чтобы бы русские названия миссии.
Сейчас бьюсь над решением следующей проблемы вывод звуков через функцию.
Например.
Код: Javascript
  1. {$CLEO .cs}
  2. 0000:                          
  3. :1
  4. wait 0
  5. if 0AB0: key_pressed 0x46 // f
  6. jf @1                        
  7. 03CF: load_wav 'FIN_1a' as 1
  8. wait 0
  9. if 03D0:  wav 1 loaded
  10. then 03D1: play_wav 1
  11. if 03D2:  wav 1 ended
  12. then 040D: unload_wav 1        
  13. end
  14. end                
  15. jump @1                
  16.  


 Так вроде всё работает, но я хочу просто название звука передать в функцию. Мне всегда нравилась краткость.
Так вы же красивее и понятнее.

Код: Javascript
  1. {$CLEO .cs}
  2. 0000:                          
  3. :1
  4. wait 0
  5. if 0AB0: key_pressed 0x46 // f
  6. jf @1                                  
  7. 0AB1: call_scm_func @fun 1 "FIN_1a"
  8. jump @1          
  9. :fun
  10. 0AC8: 0@ = allocate_memory_size 64
  11. 0AD3: 0@ = format 0@      
  12. 0AD4: 0@ = scan_string 0@ format "%S"
  13. 03CF: load_wav 0@ as 1
  14. wait 0
  15. if 03D0:  wav 1 loaded
  16. then 03D1: play_wav 1
  17. if 03D2:  wav 1 ended
  18. then 040D: unload_wav 1        
  19. end
  20. end                                    
  21. 0AC9: free_allocated_memory 0@
  22. 0AB2: ret 0      
  23.  

Оффлайн DK

  • Новичек
  • **
  • Сообщений: 221
  • Репутация: +312/-0
    • dk22pac
    • Просмотр профиля
Re: Помощь с CLEO
« Ответ #122 : Май 15, 2018, 11:44:14 pm »
В опкод 03CF нельзя передать указатель на строку.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk

Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Оффлайн egor230

  • Прохожий
  • *
  • Сообщений: 87
  • Репутация: +1/-0
    • Просмотр профиля
    • Mr
Re: Помощь с CLEO
« Ответ #123 : Май 17, 2018, 03:30:14 pm »
Спасибо вам большое уважаемый DK за ваш ответ.  Как жаль, что нельзя этого сделать. Скажите пожалуйста, вот  адрес памяти, который отвечает за газ на машине, 0x1F0.  Когда машина стоит Значение 0, когда машина едет значение следующее 1065353216.
 При попытке  установить это значение  для машины, она не едет вперед, а игра вылетает.  Подскажите мне пожалуйста.

Код: Javascript
  1.  
  2. {$CLEO .cs}
  3. 0000:  
  4. :1
  5. wait 0      
  6. 80E0:  player $player_char driving // не в атво
  7. jf @1
  8. if 0AB0: key_pressed 0x46 // f
  9. jf @1      
  10. 0054: store_player $player_char position_to 0@ 1@ 2@
  11. :2
  12. 05F0: 3@ = random_vehicle_near_point 0@ 1@ 2@ in_radius 10.0 find_next 0 pass_wrecked 0 //IF and SET
  13. jf @1  
  14. 0186: 4@ = create_marker_above_car 3@
  15. :3
  16. wait 0    
  17. if 0AB0: key_pressed 0x4a // j
  18. jf @3
  19. 05E7: 0@ = car 3@ struct //получаем структуру этой машины
  20. 0@ += 0x1F0  //прибавляем смещение
  21. 05E0: 1@ = read_memory 0@ size 4 virtual_protect 0 //считыванием состоянием
  22. 0ACF: show_formatted_styled_text "%d" time 1000  style 3 1@      
  23. :4
  24. wait 0
  25. 05DF: write_memory 1@ size 4 value 1065353216 virtual_protect 0
  26. jump @1    
  27.  

Оффлайн kenking

  • Новичек
  • **
  • Сообщений: 143
  • Репутация: +5/-0
    • Просмотр профиля
Re: Помощь с CLEO
« Ответ #124 : Май 18, 2018, 09:44:25 am »
Смещение 0x1F0 - это m_fGasPedal значение float https://github.com/DK22Pac/plugin-sdk/blob/master/plugin_vc/game_vc/CVehicle.h
показывает нажата ли педаль газа на транспорте. Перезаписью этого значения не заставишь двигаться транспорт.

Оффлайн egor230

  • Прохожий
  • *
  • Сообщений: 87
  • Репутация: +1/-0
    • Просмотр профиля
    • Mr
Re: Помощь с CLEO
« Ответ #125 : Май 18, 2018, 03:44:50 pm »
Спасибо большое уважаемый kenking за ваш ответ. Теперь стало понятно почему вылетает. Буду продолжать искать адрес  памяти, который отвечает  за движения вперед. Жаль, нету видео как писать  плагины  для  GTA vice city.

Оффлайн DK

  • Новичек
  • **
  • Сообщений: 221
  • Репутация: +312/-0
    • dk22pac
    • Просмотр профиля
Re: Помощь с CLEO
« Ответ #126 : Май 21, 2018, 12:31:16 am »
Вылет - из-за того, что ты попутал переменные 0@ и 1@.
И значение там float, а не int (форматировать как %f, и вместо 1065353216 - 1.0).
В общем, написание скриптов, особенно в SB, где у переменных нету названий - это то ещё мучение.
« Последнее редактирование: Май 21, 2018, 12:33:56 am от DK »
Plugin-SDK https://github.com/DK22Pac/plugin-sdk

Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv