#1 Re: Вопросы по скриптингу » Вопрос с категориями в Амму-нации. » 23-04-2020 09:45

Спустя некоторое время я таки сумел переписать оригинал скрипта под более-менее читаемый вид. Возможно, кому-нибудь пригодится.
https://pastebin.com/qYg5Rjsm

#2 Re: Вопросы по скриптингу » Патроны в пикапе при подборе » 23-04-2020 09:35

Максимальное число патронов для пикапов оружия хранятся в массиве: uint16_t AmmoForWeapon_OnStreet[48] (0x8A5F50). При смерти педа берётся это значение и делится на 2, а после это число пихается в функцию в качестве аргумента, отвечающего за число патронов.
К примеру, для того, чтобы скриптом изменить максимальное число патронов для пистолета на 150, можно написать следующее:

0A8C: write_memory 0x8A5F7C size 2 value 300 virtual_protect True
// 0x8A5F7C = 0x8A5F50 + 22 * 2

#3 Re: Модификации » [SA] Меняем модели копов на другие » 03-05-2018 09:19

Shag wrote:

Dyabda>
Да, достаточно просто подменять модель копа каждые 0 миллисекунд сначала на одну модель, а через еще 0 миллисекунд - на другую, и по-новой.

Можно пожалуйста адреса для каждой модели?

#4 Re: Вопросы по скриптингу » Один вопрос » 15-04-2018 12:24

Здравствуйте, уважаемые скриптеры. Появилось 2 вопроса:
1) Как можно убрать с экрана иконку оружия и количество патронов под иконкой?
2) Как можно назначить оружие другой звук из GENRL? К примеру, назначить АК - 47 звук от TEC 9?
3) Как можно записать в переменную текущее значение кислорода у игрока?

#5 Re: Вопросы по скриптингу » Один вопрос » 21-09-2017 10:16

wmysterio wrote:
trashmas wrote:

Игроку можно как то поставить скин SWATа ? (SA, scm)

Да:

Model.Load(#SWAT)
038B: load_requested_models
09C7: change_player $PLAYER_CHAR model_to #SWAT

А разве выгружать модель из памяти не надо?
model.Destroy (#SWAT)

#6 Re: Модификации » [SA] Меняем модели копов на другие » 18-09-2017 10:26

Здравствуйте, появился вопрос:
А можно ли сделать так, чтобы в одном и том же городе было несколько видов полицейских?
К примеру, чтобы в ЛВ ходили LVPD1. DSHER?

#7 Re: Вопросы по скриптингу » Один вопрос » 17-09-2017 09:06

Всё же у меня получилось через 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.
Либо адреса памяти на максимальное количество брони не существует, либо его ещё не нашли.

#8 Re: Вопросы по скриптингу » Один вопрос » 16-09-2017 23:55

Почему-то если использовать первые 2 строки, работать не будет.

Макс. здоровье можно увеличить, использовав лишь последнюю строку,.

Я хотел, использовав 2 первые строки, увеличить максимальную броню, но ничего не вышло.

#9 Re: Вопросы по скриптингу » Один вопрос » 16-09-2017 13:22

Вроде бы ввёл, но почему-то не работает. Может что-то не так написал?

0A8C: write_memory 0xB6F5F0 size 4 value 0@ virtual_protect 0
0A8C: write_memory 0@ += 0x544 size 4 value 1000 virtual_protect 0

По идее максимальное значение здоровья должно увеличиться, но вместо этого я получаю замедление времени.

И ещё, как работает данный адрес памяти? На сайте с адресами написано, что данный адрес закрепляет погоду, но у меня после смены погоды, погода начинает приходить в изначальное состояние.

0xC81318

#10 Re: Вопросы по скриптингу » Один вопрос » 16-09-2017 06:57

Здравствуйте.

Появился вопрос насчёт адресов памяти:

Если адрес памяти на максимальное количество здоровья = 0xB793E0
То какой адрес памяти отвечает за максимальное количество брони?

#11 Re: Вопросы по скриптингу » Проблема с панелями. » 07-09-2017 04:03

wmysterio wrote:

00E1:   player 0 pressed_key 39

Нет такой клавиши 39. Лимит от 0 до 19 ( исключая 12 ). Возможно Вы хотели написать этот опкод:

0AB0:   key_pressed 39

?

Да, спасибо вам большое, всё успешно работает.

Но вот осталась лишь одна проблема, как только при старте новой игры я выбираю 2-ую строку в меню ( Это переход на метку TIME), то при выборе времени так же меняется и погода. И если я зажму shift то погода будет идти по кругу, но если в начале игры я сначала перейду на панель с выбором погоды, а потом назад, то с временем всё будет нормально, погода меняться не будет. Как исправить это?



И ещё вопрос, каким опкодом можно сменить игровой день? Например на понедельник или среду?

#12 Re: Вопросы по скриптингу » Проблема с панелями. » 05-09-2017 23:33

Дело в том, что этот опкод стоит в нужной для себя панели. Всего панелей 4: 1-ая это сама панель, в которой нужно выбрать смену времени или погоды.
2-ая панель, по смене погоды. 3-я тоже, а вот 4-ая уже по смене времени. Я там точно не ставил этого опкода, там лишь опкоды по смене времени.

#13 Вопросы по скриптингу » Проблема с панелями. » 05-09-2017 10:18

Dyabda
Replies: 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

#14 Re: Вопросы по скриптингу » О территориях » 01-09-2017 10:18

Кстати, насчёт этих иконок с анимацией, хотелось бы знать, как их можно сделать? Чтоб они появлялись в определённом месте когда игрок в самолёте.

#15 Re: Вопросы по скриптингу » [SA]Полицейские маверики » 01-09-2017 04:40

Спасибо за ответ, осталось только найти нужные адреса памяти, появился ещё вопрос связанный с этим.
Я нашёл скрипт, подобный тому, что вы приложили выше, который проще читается и его проще редактировать:

//-------------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 адреса памяти?
И ещё, если вы знаете нужные адреса памяти для мотоцикла\маверика\грузовика, пожалуйста напишите их.

#16 Вопросы по скриптингу » [SA]Полицейские маверики » 29-08-2017 02:56

Dyabda
Replies: 2

Здравствуйте, я добавил в игру несколько новых полицейских мавериков на новые ID и появился вопрос:
Как сделать чтобы в каждом городе летал свой маверик? И ещё, как сделать тоже самое с полицейскими мотоциклами, грузовиками SWAT и как сделать, чтобы в каждом городе был свой мотополицейский? Я уже всё добавил на новые ID, но как сделать, чтобы в этих городах использовался определённый ID грузовика SWAT/мотополицейского/вертолёта/мотоцикла не знаю. Если вы знаете ответ хотя бы на один вопрос, пожалуйста напишите его.

#19 Re: Вопросы по скриптингу » Вопрос с категориями в Амму-нации. » 12-08-2017 05:49

Я нашёл исходный код от скрипта Амму - Нации из мультимода от Capushon.
Вот ссылка: https://www.mediafire.com/file/s3qs68mg … %u0442.txt

Он в нём как раз смог добавить газовые гранаты в раздел гранат.

Помогите с ним разобраться, я не пойму как он всё помечал, может вы поймёте.
Если разберётесь, распишите что там да как, и как оружие новое добавлять.

#20 Re: Вопросы по скриптингу » Вопрос с категориями в Амму-нации. » 06-08-2017 13:16

А может Seemann знает ответ? Он опытный и многое знает.
Seemann, если ты читаешь это, то пожалуйста ответь на вопрос.
Что нужно поменять в оригинальном скрипте Амму-Нации, чтобы можно было добавить новое оружие?
Как это сделал Capushon в своём мультимоде. На вопрос выше не нужно отвечать, т.к. там другой код Амму-Нации, а я хочу узнать что нужно отредактировать в стандартном. Как к примеру добавить газовую гранат в раздел гранат?

#21 Re: Вопросы по скриптингу » Вопрос с категориями в Амму-нации. » 24-07-2017 01:22

Ясно, всеровно спасибо что хоть как-то ответили.

#24 Вопросы по скриптингу » Вопрос с категориями в Амму-нации. » 16-07-2017 06:09

Dyabda
Replies: 12

Приветствую всех, уважаемые скриптеры.
У меня появился вопрос, как можно при помощи скрипта (https://pastebin.com/zjVNzqcn] добавить в старые категории новое оружие? К примеру газовую гранату в раздел гранат, а то я уже всё перепробовал, толку никакого, получается лишь добавлять в новую категорию. И ещё, как можно добавить ещё 1 новую категорию? Если кто-нибудь знает ответ хотя бы на 1 вопрос, пожалуйста ответьте.
Заранее спасибо.

Board footer

Powered by FluxBB