You are not logged in.
Здравствуйте, помогите пожалуйста ибо я не понимаю . Я добавил оба кода (1й даёт копам дробовик если у игрока больше 3х звезд, а 2й код проверяет какое оружие носит игрок, и даёт 1 звезду) переименовав метки (в самый конец main.scm), и оба кода не работают.
03A4: name_thread 'ONAME' 0001: wait 100 ms 05E5: 0@ = game_version 00D6: if 0039: 0@ == 0 // @ == int 004D: jump_if_false @ONAME_54 0006: 1@ = 4985344 // @ = int 0006: 2@ = 4988569 // @ = int 0002: jump @ONAME_145 :ONAME_54 0001: wait 0 ms 00D6: if 0039: 0@ == 1 // @ == int 004D: jump_if_false @ONAME_103 0006: 1@ = 4985584 // @ = int 0006: 2@ = 4988729 // @ = int 0002: jump @ONAME_145 :ONAME_103 0001: wait 0 ms 00D6: if 0039: 0@ == 2 // @ == int 004D: jump_if_false @ONAME_54 0006: 1@ = 4985472 // @ = int 0006: 2@ = 4988617 // @ = int :ONAME_145 0001: wait 0 ms 01C0: 0@ = player $PLAYER_CHAR wanted_level 00D6: if 0019: 0@ > 2 // @ > int 004D: jump_if_false @ONAME_249 05DF: write_memory 1@ size 1 value 4 virtual_protect 1 05DF: write_memory 2@ size 1 value 4 virtual_protect 1 :ONAME_197 0001: wait 0 ms 01C0: 0@ = player $PLAYER_CHAR wanted_level 00D6: if 8019: not 0@ > 2 // @ > int 004D: jump_if_false @ONAME_256 05DF: write_memory 1@ size 1 value 2 virtual_protect 1 05DF: write_memory 2@ size 1 value 2 virtual_protect 1 :ONAME_249 0002: jump @ONAME_145 :ONAME_256 0002: jump @ONAME_197 end_thread 03A4: name_thread 'MONAME' 0001: wait 300 ms :MONAME_5 0001: wait 0 ms 00D6: if 80E0: not player $PLAYER_CHAR in_any_car 004D: jump_if_false @MONAME_231 00D6: if and 82D7: not player $PLAYER_CHAR current_weapon == 0 82D7: not player $PLAYER_CHAR current_weapon == 1 004D: jump_if_false @MONAME_231 0054: store_player $PLAYER_CHAR position_to 1@ 2@ 3@ 00D6: if 05EF: 8@ = random_actor_near_point 1@ 2@ 3@ in_radius 10.0 find_next 0 pass_deads 1 // IF and SET 004D: jump_if_false @MONAME_231 :MONAME_96 05E6: 7@ = actor 8@ struct 000A: 7@ += 92 // @ += int 05E0: 9@ = read_memory 7@ size 2 virtual_protect 1 00D6: if or 0039: 9@ == 1 // @ == int 0039: 9@ == 2 // @ == int 0039: 9@ == 3 // @ == int 004D: jump_if_false @MONAME_199 00D6: if 0123: actor 8@ spotted_player $PLAYER_CHAR 004D: jump_if_false @MONAME_199 00D6: if 810F: not player $PLAYER_CHAR wanted_level > 0 004D: jump_if_false @MONAME_199 010D: set_player $PLAYER_CHAR wanted_level_to 1 :MONAME_199 00D6: if 85EF: not 8@ = random_actor_near_point 1@ 2@ 3@ in_radius 10.0 find_next 1 pass_deads 1 // IF and SET 004D: jump_if_false @MONAME_96 :MONAME_231 0002: jump @MONAME_5 end_thread
//специально отделил
Я также пытаюсь запустить потоки ONAME и MONAME, но игра крашится с ошибкой (на картинке)
004F: create_thread @ONAME_54
004F: create_thread @MONAME_5
Offline
отличие клео скриптов от main.scm в том, что библиотека CLEO автоматически запускает скрипт. В main.scm это нужно делать вручную командой create_thread. Но метка запуска скрипта должна стоять перед самой первой командой, иначе игра просто пропустит часть кода. Например, ты делаешь
004F: create_thread @ONAME_54
но перед ONAME_54 написан кусок инициализации
03A4: name_thread 'ONAME' 0001: wait 100 ms 05E5: 0@ = game_version 00D6: if 0039: 0@ == 0 // @ == int 004D: jump_if_false @ONAME_54 0006: 1@ = 4985344 // @ = int 0006: 2@ = 4988569 // @ = int 0002: jump @ONAME_145 :ONAME_54
который теперь просто пропущен. правильно будет добавить новую метку (например, :ONAME) и стартовать скрипт с нее:
create_thread @ONAME // где-то рядом с остальными create_thread ..... :ONAME 03A4: name_thread 'ONAME' 0001: wait 100 ms 05E5: 0@ = game_version 00D6: if 0039: 0@ == 0 // @ == int 004D: jump_if_false @ONAME_54 0006: 1@ = 4985344 // @ = int 0006: 2@ = 4988569 // @ = int 0002: jump @ONAME_145 ...
тоже самое и для второго скрипта
Offline