You are not logged in.
Спустя некоторое время я таки сумел переписать оригинал скрипта под более-менее читаемый вид. Возможно, кому-нибудь пригодится.
https://pastebin.com/qYg5Rjsm
Максимальное число патронов для пикапов оружия хранятся в массиве: uint16_t AmmoForWeapon_OnStreet[48] (0x8A5F50). При смерти педа берётся это значение и делится на 2, а после это число пихается в функцию в качестве аргумента, отвечающего за число патронов.
К примеру, для того, чтобы скриптом изменить максимальное число патронов для пистолета на 150, можно написать следующее:
0A8C: write_memory 0x8A5F7C size 2 value 300 virtual_protect True // 0x8A5F7C = 0x8A5F50 + 22 * 2
Dyabda>
Да, достаточно просто подменять модель копа каждые 0 миллисекунд сначала на одну модель, а через еще 0 миллисекунд - на другую, и по-новой.
Можно пожалуйста адреса для каждой модели?
Здравствуйте, уважаемые скриптеры. Появилось 2 вопроса:
1) Как можно убрать с экрана иконку оружия и количество патронов под иконкой?
2) Как можно назначить оружие другой звук из GENRL? К примеру, назначить АК - 47 звук от TEC 9?
3) Как можно записать в переменную текущее значение кислорода у игрока?
trashmas wrote:Игроку можно как то поставить скин SWATа ? (SA, scm)
Да:
Model.Load(#SWAT) 038B: load_requested_models 09C7: change_player $PLAYER_CHAR model_to #SWAT
А разве выгружать модель из памяти не надо?
model.Destroy (#SWAT)
Здравствуйте, появился вопрос:
А можно ли сделать так, чтобы в одном и том же городе было несколько видов полицейских?
К примеру, чтобы в ЛВ ходили LVPD1. DSHER?
Всё же у меня получилось через Cped выставить значение брони на 160. ( За это большая благодарность Wmysterio за уроки)
0A96: 1@ = actor $PLAYER_ACTOR struct 0A8E: 2@ = 1@ + 0x548 0A8C: write_memory 2@ size 4 value 160.0 virtual_protect 0
Но к сожалению, данная функция всего лишь на один раз. Т.е. если у вас будет меньше 100 брони и вы возьмёте бронежелет, броня восполнится лишь до 100.
Либо адреса памяти на максимальное количество брони не существует, либо его ещё не нашли.
Почему-то если использовать первые 2 строки, работать не будет.
Макс. здоровье можно увеличить, использовав лишь последнюю строку,.
Я хотел, использовав 2 первые строки, увеличить максимальную броню, но ничего не вышло.
Вроде бы ввёл, но почему-то не работает. Может что-то не так написал?
0A8C: write_memory 0xB6F5F0 size 4 value 0@ virtual_protect 0 0A8C: write_memory 0@ += 0x544 size 4 value 1000 virtual_protect 0
По идее максимальное значение здоровья должно увеличиться, но вместо этого я получаю замедление времени.
И ещё, как работает данный адрес памяти? На сайте с адресами написано, что данный адрес закрепляет погоду, но у меня после смены погоды, погода начинает приходить в изначальное состояние.
0xC81318
Здравствуйте.
Появился вопрос насчёт адресов памяти:
Если адрес памяти на максимальное количество здоровья = 0xB793E0
То какой адрес памяти отвечает за максимальное количество брони?
00E1: player 0 pressed_key 39
Нет такой клавиши 39. Лимит от 0 до 19 ( исключая 12 ). Возможно Вы хотели написать этот опкод:
0AB0: key_pressed 39?
Да, спасибо вам большое, всё успешно работает.
Но вот осталась лишь одна проблема, как только при старте новой игры я выбираю 2-ую строку в меню ( Это переход на метку TIME), то при выборе времени так же меняется и погода. И если я зажму shift то погода будет идти по кругу, но если в начале игры я сначала перейду на панель с выбором погоды, а потом назад, то с временем всё будет нормально, погода меняться не будет. Как исправить это?
И ещё вопрос, каким опкодом можно сменить игровой день? Например на понедельник или среду?
Дело в том, что этот опкод стоит в нужной для себя панели. Всего панелей 4: 1-ая это сама панель, в которой нужно выбрать смену времени или погоды.
2-ая панель, по смене погоды. 3-я тоже, а вот 4-ая уже по смене времени. Я там точно не ставил этого опкода, там лишь опкоды по смене времени.
Здравствуйте, уважаемые скриптеры.
Решил написать скрипт с панелями, но у меня возникли проблемы:
1. Почему-то не работают определённые клавиши ( Пример: / * - P J K L стрелки и т.д.)
Но клавиши, прописанные игрой работают. ( Пример: удар, смена оружия и т.д.)
2. После того, как я перехожу на панель с временем, то вместе с временем меняется и погода, хотя это не прописанно!
Пожалуйста помогите, я не понимаю в чём заключается проблема.
:PANEL thread 'PANEL' wait 0 if and Player.Defined($PLAYER_CHAR) 0ADC: test_cheat "WEATIME" jf @PANEL jump @PANEL_1 :PANEL_1 wait 50 01B4: set_player $PLAYER_CHAR can_move 0 0512: show_permanent_text_box 'IE16' 0581: enable_radar 0 08D4: $PANEL = create_panel_with_title 'WEATIM' position 29.0 170.0 width 180.0 columns 1 interactive 1 background 1 alignment 0 08DB: set_panel $PANEL column 0 header 'DUMMY' data 'WWSCT' 'TTSCT' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' :PANEL_2 wait 0 if 00E1: player 0 pressed_key 16 jf @PANEL_9 08D7: $WEATP = panel $Panel active_row if $WEATP == 0 jf @PANEL_3 jump @PANEL_9 :PANEL_3 if $WEATP == 1 jump @PANEL_9_0 :PANEL_9 wait 0 if 00E1: player 0 pressed_key 16 jf @PANEL_9_1 wait 50 03E6: remove_text_box 08DA: remove_panel $PANEL jump @WEATHER_1 :PANEL_9_0 wait 0 if 00E1: player 0 pressed_key 16 jf @PANEL_9_1 wait 50 03E6: remove_text_box 08DA: remove_panel $PANEL jump @TIME :PANEL_9_1 wait 0 if 00E1: player 0 pressed_key 15 jf @PANEL_2 0581: enable_radar 1 03E6: remove_text_box 08DA: remove_panel $PANEL 01B4: set_player $PLAYER_CHAR can_move 1 jump @PANEL :WEATHER_1 wait 50 0512: show_permanent_text_box 'IE16' 08D4: $WEATHER = create_panel_with_title 'WWSCT' position 29.0 170.0 width 180.0 columns 1 interactive 1 background 1 alignment 0 08DB: set_panel $WEATHER column 0 header 'DUMMY' data 'WW0' 'WW1' 'WW2' 'WW3' 'WW4' 'WW5' 'WW6' 'WW7' 'WW8' 'WW9' 'WW10' 'WW11' :WEATHER_2 wait 0 if 00E1: player 0 pressed_key 16 jf @WEATHER_9 08D7: $WEATW = panel $Weather active_row if $WEATW == 0 jf @WEATHER_3 01B6: set_weather 0 jump @WEATHER_9 :WEATHER_3 if $WEATW == 1 jf @WEATHER_4 01B6: set_weather 1 jump @WEATHER_9 :WEATHER_4 if $WEATW == 2 jf @WEATHER_5 01B6: set_weather 2 jump @WEATHER_9 :WEATHER_5 if $WEATW == 3 jf @WEATHER_6 01B6: set_weather 3 jump @WEATHER_9 :WEATHER_6 if $WEATW == 4 jf @WEATHER_7 01B6: set_weather 4 jump @WEATHER_9 :WEATHER_7 if $WEATW == 5 jf @WEATHER_8 01B6: set_weather 5 jump @WEATHER_9 :WEATHER_8 if $WEATW == 6 jf @WEATHER_10 01B6: set_weather 6 jump @WEATHER_9 :WEATHER_10 if $WEATW == 7 jf @WEATHER_11 01B6: set_weather 7 jump @WEATHER_9 :WEATHER_11 if $WEATW == 8 jf @WEATHER_12 01B6: set_weather 8 jump @WEATHER_9 :WEATHER_12 if $WEATW == 9 jf @WEATHER_13 01B6: set_weather 9 jump @WEATHER_9 :WEATHER_13 if $WEATW == 10 jf @WEATHER_14 01B6: set_weather 10 jump @WEATHER_9 :WEATHER_14 if $WEATW == 11 01B6: set_weather 11 jump @WEATHER_9 :WEATHER_9 wait 0 if 00E1: player 0 pressed_key 39 jf @WEATHER_9_0 wait 50 03E6: remove_text_box 08DA: remove_panel $WEATHER jump @WEATHER_1_1 :WEATHER_9_0 wait 0 if 00E1: player 0 pressed_key 37 jf @WEATHER_9_0_1 wait 50 03E6: remove_text_box 08DA: remove_panel $WEATHER jump @PANEL_1 :WEATHER_9_0_1 wait 0 if 00E1: player 0 pressed_key 15 jf @WEATHER_2 0581: enable_radar 1 03E6: remove_text_box 08DA: remove_panel $WEATHER 01B4: set_player $PLAYER_CHAR can_move 1 jump @PANEL :WEATHER_1_1 wait 50 0512: show_permanent_text_box 'IE16' 08D4: $WEATHE1 = create_panel_with_title 'WWSCT' position 29.0 170.0 width 180.0 columns 1 interactive 1 background 1 alignment 0 08DB: set_panel $WEATHE1 column 0 header 'DUMMY' data 'WW12' 'WW13' 'WW14' 'WW15' 'WW16' 'WW17' 'WW18' 'WW19' 'WW20' 'WW21' 'WW22' 'DUMMY' :WEATHER_2_1 wait 0 if 00E1: player 0 pressed_key 16 jf @WEATHER_9_1 08D7: $WEATW1 = panel $WEATHE1 active_row if $WEATW1 == 0 jf @WEATHER_3_1 01B6: set_weather 12 jump @WEATHER_9_1 :WEATHER_3_1 if $WEATW1 == 1 jf @WEATHER_4_1 01B6: set_weather 13 jump @WEATHER_9_1 :WEATHER_4_1 if $WEATW1 == 2 jf @WEATHER_5_1 01B6: set_weather 14 jump @WEATHER_9_1 :WEATHER_5_1 if $WEATW1 == 3 jf @WEATHER_6_1 01B6: set_weather 15 jump @WEATHER_9_1 :WEATHER_6_1 if $WEATW1 == 4 jf @WEATHER_7_1 01B6: set_weather 16 jump @WEATHER_9_1 :WEATHER_7_1 if $WEATW1 == 5 jf @WEATHER_8_1 01B6: set_weather 17 jump @WEATHER_9_1 :WEATHER_8_1 if $WEATW1 == 6 jf @WEATHER_10_1 01B6: set_weather 18 jump @WEATHER_9_1 :WEATHER_10_1 if $WEATW1 == 7 jf @WEATHER_11_1 01B6: set_weather 19 jump @WEATHER_9_1 :WEATHER_11_1 if $WEATW1 == 8 jf @WEATHER_12_1 01B6: set_weather 20 jump @WEATHER_9_1 :WEATHER_12_1 if $WEATW1 == 9 jf @WEATHER_13_1 01B6: set_weather 21 jump @WEATHER_9_1 :WEATHER_13_1 if $WEATW1 == 10 01B6: set_weather 22 jump @WEATHER_9_1 :WEATHER_9_1 wait 0 if 00E1: player 0 pressed_key 37 jf @WEATHER_9_1_0 wait 50 03E6: remove_text_box 08DA: remove_panel $WEATHE1 jump @WEATHER_1 :WEATHER_9_1_0 wait 0 if 00E1: player 0 pressed_key 15 jf @WEATHER_2_1 0581: enable_radar 1 03E6: remove_text_box 08DA: remove_panel $WEATHE1 01B4: set_player $PLAYER_CHAR can_move 1 jump @PANEL :TIME wait 50 0512: show_permanent_text_box 'IE16' 08D4: $TIME = create_panel_with_title 'TTSCT' position 29.0 170.0 width 180.0 columns 1 interactive 1 background 1 alignment 0 08DB: set_panel $TIME column 0 header 'DUMMY' data 'TT0' 'TT1' 'TT2' 'TT3' 'TT4' 'TT5' 'TT6' 'TT7' 'TT8' 'TT9' 'TT10' 'TT11' :TIME_0 if 00E1: player 0 pressed_key 16 jf @TIME_9 08D7: $WEATT = panel $TIME active_row if $WEATT == 0 jf @TIME_1 00C0: set_current_time 0 0 jump @TIME_9 :TIME_1 if $WEATT == 1 jf @TIME_2 00C0: set_current_time 1 0 jump @TIME_9 :TIME_2 if $WEATT == 2 jf @TIME_3 00C0: set_current_time 2 0 jump @TIME_9 :TIME_3 if $WEATT == 3 jf @TIME_4 00C0: set_current_time 3 0 jump @TIME_9 :TIME_4 if $WEATT == 4 jf @TIME_5 00C0: set_current_time 4 0 jump @TIME_9 :TIME_5 if $WEATT == 5 jf @TIME_6 00C0: set_current_time 5 0 jump @TIME_9 :TIME_6 if $WEATT == 6 jf @TIME_7 00C0: set_current_time 6 0 jump @TIME_9 :TIME_7 if $WEATT == 7 jf @TIME_8 00C0: set_current_time 7 0 jump @TIME_9 :TIME_8 if $WEATT == 8 jf @TIME_10 00C0: set_current_time 8 0 jump @TIME_9 :TIME_10 if $WEATT == 9 jf @TIME_11 00C0: set_current_time 9 0 jump @TIME_9 :TIME_11 if $WEATT == 10 jf @TIME_12 00C0: set_current_time 10 0 jump @TIME_9 :TIME_12 if $WEATT == 11 00C0: set_current_time 11 0 jump @TIME_9 :TIME_9 wait 0 if 00E1: player 0 pressed_key 14 jf @TIME_9_0 wait 50 08DA: remove_panel $TIME 03E6: remove_text_box //jump @TIME_0 :TIME_9_0 wait 0 if 00E1: player 0 pressed_key 15 jf @TIME_0 0581: enable_radar 1 03E6: remove_text_box 08DA: remove_panel $TIME 01B4: set_player $PLAYER_CHAR can_move 1 jump @PANEL
Кстати, насчёт этих иконок с анимацией, хотелось бы знать, как их можно сделать? Чтоб они появлялись в определённом месте когда игрок в самолёте.
Спасибо за ответ, осталось только найти нужные адреса памяти, появился ещё вопрос связанный с этим.
Я нашёл скрипт, подобный тому, что вы приложили выше, который проще читается и его проще редактировать:
//-------------MAIN--------------- 0000: NOP thread 'COPBIKE' :COPBIKE_13 wait 500 5@ == 0 else_jump @COPBIKE_55 04AE: 0@ = 284 // = constant 04AE: 2@ = 497 // = constant 1@ = 0 :COPBIKE_55 Player.Defined($PLAYER_CHAR) else_jump @COPBIKE_465 if and 0154: actor $PLAYER_ACTOR in_zone 'SF' // Ca¤-ђќeppo not 5@ == 1 else_jump @COPBIKE_125 Model.Destroy(0@) 04AE: 0@ = 6534 // = constant Это ID который я отредактировал под себя gosub @COPBIKE_472 5@ = 1 :COPBIKE_125 Player.Defined($PLAYER_CHAR) else_jump @COPBIKE_465 if and 0154: actor $PLAYER_ACTOR in_zone 'VE' // Љac-‹e¤typac not 5@ == 2 else_jump @COPBIKE_196 Model.Destroy(0@) 04AE: 0@ = 6535 // = constant Это ID который я отредактировал под себя gosub @COPBIKE_472 5@ = 2 :COPBIKE_196 Player.Defined($PLAYER_CHAR) else_jump @COPBIKE_465 if and 0154: actor $PLAYER_ACTOR in_zone 'LA' // Љoc-Ca¤toc not 5@ == 5 else_jump @COPBIKE_267 Model.Destroy(0@) 04AE: 0@ = 284 // = constant gosub @COPBIKE_472 5@ = 5 :COPBIKE_267 Player.Defined($PLAYER_CHAR) else_jump @COPBIKE_465 if or 0154: actor $PLAYER_ACTOR in_zone 'ROBAD' // T¬eppa Po?aљa 0154: actor $PLAYER_ACTOR in_zone 'BONE' // Okpyџ Ѓoy¤ else_jump @COPBIKE_359 not 5@ == 3 else_jump @COPBIKE_359 Model.Destroy(0@) 04AE: 0@ = 288 // = constant gosub @COPBIKE_538 5@ = 3 :COPBIKE_359 Player.Defined($PLAYER_CHAR) else_jump @COPBIKE_465 if or 0154: actor $PLAYER_ACTOR in_zone 'RED' // Okpyџ Peљ 0154: actor $PLAYER_ACTOR in_zone 'FLINTC' // Okpyџ ђЎќ¤t 0154: actor $PLAYER_ACTOR in_zone 'WHET' // Y¦tctoy¤ else_jump @COPBIKE_465 not 5@ == 4 else_jump @COPBIKE_465 Model.Destroy(0@) 04AE: 0@ = 283 // = constant gosub @COPBIKE_538 5@ = 4 :COPBIKE_465 jump @COPBIKE_13 :COPBIKE_472 072C: generate_police_bikes 0 Model.Load(0@) :COPBIKE_481 not Model.Available(0@) else_jump @COPBIKE_504 wait 0 jump @COPBIKE_481 :COPBIKE_504 0A8C: write_memory 9067184 size 4 value 0@ virtual_protect 0 0A8C: write_memory 6151558 size 4 value 0@ virtual_protect 0 072C: generate_police_bikes 1 return :COPBIKE_538 Model.Load(0@) :COPBIKE_543 not Model.Available(0@) else_jump @COPBIKE_566 wait 0 jump @COPBIKE_543 :COPBIKE_566 0A8C: write_memory 9067168 size 4 value 0@ virtual_protect 0 0A8C: write_memory 6151760 size 4 value 0@ virtual_protect 0 return end_thread
Вопросы по данному скрипту:
1. Как можно добавить в каждый город по 2 разных мотополицейских?
Добавил новую переменную с такими же свойствами как и у переменной @0, но из-за этого мотополицейский из переменной @0 не спавнится и получается так, что коп из новой переменной его заменяет.
2. За что отвечают последние 4 адреса памяти?
И ещё, если вы знаете нужные адреса памяти для мотоцикла\маверика\грузовика, пожалуйста напишите их.
Здравствуйте, я добавил в игру несколько новых полицейских мавериков на новые ID и появился вопрос:
Как сделать чтобы в каждом городе летал свой маверик? И ещё, как сделать тоже самое с полицейскими мотоциклами, грузовиками SWAT и как сделать, чтобы в каждом городе был свой мотополицейский? Я уже всё добавил на новые ID, но как сделать, чтобы в этих городах использовался определённый ID грузовика SWAT/мотополицейского/вертолёта/мотоцикла не знаю. Если вы знаете ответ хотя бы на один вопрос, пожалуйста напишите его.
Я надеюсь, вы уже разобрались?
Залил, держи https://download.ru/files/tzlRQjRQ
Я нашёл исходный код от скрипта Амму - Нации из мультимода от Capushon.
Вот ссылка: https://www.mediafire.com/file/s3qs68mg … %u0442.txt
Он в нём как раз смог добавить газовые гранаты в раздел гранат.
Помогите с ним разобраться, я не пойму как он всё помечал, может вы поймёте.
Если разберётесь, распишите что там да как, и как оружие новое добавлять.
А может Seemann знает ответ? Он опытный и многое знает.
Seemann, если ты читаешь это, то пожалуйста ответь на вопрос.
Что нужно поменять в оригинальном скрипте Амму-Нации, чтобы можно было добавить новое оружие?
Как это сделал Capushon в своём мультимоде. На вопрос выше не нужно отвечать, т.к. там другой код Амму-Нации, а я хочу узнать что нужно отредактировать в стандартном. Как к примеру добавить газовую гранат в раздел гранат?
Ясно, всеровно спасибо что хоть как-то ответили.
Похоже никто помогать не хочет.......
Я использую аджустер от Fastman92
Приветствую всех, уважаемые скриптеры.
У меня появился вопрос, как можно при помощи скрипта (https://pastebin.com/zjVNzqcn] добавить в старые категории новое оружие? К примеру газовую гранату в раздел гранат, а то я уже всё перепробовал, толку никакого, получается лишь добавлять в новую категорию. И ещё, как можно добавить ещё 1 новую категорию? Если кто-нибудь знает ответ хотя бы на 1 вопрос, пожалуйста ответьте.
Заранее спасибо.
Всё, уже сам разобрался. https://pastebin.com/zjVNzqcn