Mafia-Game Forum

Mafia-Game Forum (https://mafia-game.ru/forum/index.php)
-   Скриптинг (https://mafia-game.ru/forum/forumdisplay.php?f=10)
-   -   Скрипт автомобильного радио (https://mafia-game.ru/forum/showthread.php?t=1047)

Firefox3860 06.10.2020 21:57

KlassenAS, Работает. А зачем в 32 строке задержка 350 мс? Можно ведь её вообще не делать, и тогда не надо будет долго держать кнопку переключения.
Mp3 читает все, вплоть до 320 кб/с, так что можно сразу на них переписать.

Один раз включились сразу все потоки после esc. Но чаще всего не включаются. Непонятно, от чего зависит. Может, при использовании mut'а такого не будет.

Ты, кстати, в чём со скриптом работаешь? У меня вот есть такая поддержка синтаксиса для Notepad++

https://mafia-game.ru/forum/imgcache...jpjuuv5umm.jpg

Цитата:

Сообщение от grandshot (Сообщение 12294)
Лучше назначить переключение на доп. клавишу Run \ Walk

А чего вам crouch1 и jump1 не нравятся?? На w и s некоторые ездят, так что они как раз используются в машине.

Ну и ещё, конечно, надо добавить отключение всех станций.

KlassenAS 06.10.2020 22:13

Цитата:

Сообщение от Firefox3860 (Сообщение 12296)
KlassenAS, А зачем в 32 строке задержка 350 мс? Можно ведь её вообще не делать, и тогда не надо будет долго держать кнопку переключения.

Тогда есть риск двойного срабатывания, а при удержании радиостанции переключаются слишком быстро.
Я вообще сейчас 500 сделал.
Хотя, можно поставить задержку не в цикле считывания, а в процедуре обработки нажатия. Тогда срабатывать будет сразу, и циклическое переключение при удержании будет работать.
Спасибо, на правильную мысль навёл меня )

Цитата:

Сообщение от Firefox3860 (Сообщение 12296)
KlassenAS, Mp3 читает все, вплоть до 320 кб/с, так что можно сразу на них переписать.

Уже.

Цитата:

Сообщение от Firefox3860 (Сообщение 12296)
KlassenAS, Один раз включились сразу все потоки после esc. Но чаще всего не включаются. Непонятно, от чего зависит. Может, при использовании mut'а такого не будет.

Уже сделал, с мютом такого нет, т. е., непрошеное воспроизведение включается, но его всё равно не слышно )

Цитата:

Сообщение от Firefox3860 (Сообщение 12296)
KlassenAS, Ты, кстати, в чём со скриптом работаешь? У меня вот есть такая поддержка синтаксиса для Notepad++

В нём и работаю. Но с подсветкой синтаксиса не пробовал. Кодим по хардкору )
Хорошо хоть, не на ассемблере :D
Как выделение цветом замутить?

Цитата:

Сообщение от Firefox3860 (Сообщение 12296)
KlassenAS, А чего вам crouch1 и jump1 не нравятся?? На w и s некоторые ездят, так что они как раз используются в машине.

Да это, в принципе, дело вкуса. Так-то на любую функцию можно любую клавишу назначить, и тогда что угодно пересечётся )

UPD:
Внёс необходимые изменения с задержками и замютиванием потоков:

Развернуть для просмотра

Код:

Dim_Act 1
Dim_Flt 10
GetActivePlayer 0
Human_GetProperty 0,0,Energy
If Flt[0]=0,-1,dan_on
Act_SetState 100,Off
Label dan_on

Let Flt[0]=0 //логика
Let Flt[1]=0 //поток 00
Let Flt[2]=-1 //сиденье
Let Flt[3]=0  //прошлая длительность потока
Let Flt[4]=0 // текущая длительность потока
Let Flt[5]=0 //Нажатие клавиши вперёд 1
Let Flt[6]=0 //Запоминаем последний поток
Let Flt[7]=0 //Запоминаем первый поток
Let Flt[8]=0 //ещё пригодится )
Let Flt[9]=0 //номер радиостанции 0-3

CommandBlock 1
Stream_Create 1,"radio\radio00.mp3"
Stream_Fadevol 1,1,0,0
Let Flt[7]=Flt[1]
Stream_Create 1,"radio\radio01.mp3"
Stream_Fadevol 1,1,0,0
Stream_Create 1,"radio\radio02.mp3"
Stream_Fadevol 1,1,0,0
Stream_Create 1,"radio\radio03.mp3"
Stream_Fadevol 1,1,0,0
Let Flt[6]=Flt[1]
Let Flt[1]=Flt[1]-3
CommandBlock 0

Label CHECK
CommandBlock 0
Human_GetSeatIdx 0,2
If Flt[2]=-1,CAR_OUT,CAR_IN

Label CAR_IN
        Ctrl_Read 5,UP1
        If Flt[5]=0,-1,RADIO_UP
        Label READ_DOWN
        Ctrl_Read 5,DOWN1
        If Flt[5]=0,-1,RADIO_DOWN
Label CHECKPLAY
CommandBlock 1
If Flt[0]=0,-,CHECK
CityMusic_Off
Stream_Play 1
Stream_Fadevol 1,1,1,1
Let Flt[0]=1
CommandBlock 0
GoTo CHECK

Label CAR_OUT
CommandBlock 1
If Flt[0]=1,-,CHECK
Stream_Pause 1
Stream_Fadevol 1,1,0,0
CityMusic_On
Let Flt[0]=0
CommandBlock 0
GoTo CHECK

Label RADIO_UP
CommandBlock 1
        Let Flt[5]=0
        Stream_Pause 1
        Stream_Fadevol 1,1,0,0
        Let Flt[1]=Flt[1]+1
        If Flt[1]>Flt[6],-1,CHANGEDUP
        Let Flt[1]=Flt[1]-4
Label CHANGEDUP
Stream_Play 1
Stream_Fadevol 1,1,1,1
CommandBlock 0
Wait 1000
GoTo READ_DOWN

Label RADIO_DOWN
CommandBlock 1
        Let Flt[5]=0
        Stream_Pause 1
        Stream_Fadevol 1,1,0,0
        Let Flt[1]=Flt[1]-1
        If Flt[1]<Flt[7],-1,CHANGEDDOWN
        Let Flt[1]=Flt[1]+4
Label CHANGEDDOWN
Stream_Play 1
Stream_Fadevol 1,1,1,1
CommandBlock 0
Wait 1000
GoTo CHECKPLAY

[свернуть]

Теперь надо сделать на каждую радиостанцию несколько треков с рандомизированным порядком воспроизведения.
Но этим я завтра займусь, хватит с меня на сегодня программирования )

Firefox3860 06.10.2020 22:29

Цитата:

Сообщение от KlassenAS (Сообщение 12297)
Тогда есть риск двойного срабатывания, а при удержании радиостанции переключаются слишком быстро.

Ну на практике этого не происходит. Так всегда делают.

Цитата:

Сообщение от KlassenAS (Сообщение 12297)
В нём и работаю. Но с подсветкой синтаксиса не пробовал. Кодим по хардкору ) Хорошо хоть, не на ассемблере Как выделение цветом замутить?

хехе, да уж, ассемблер зло :D Вот файл, описывающий синтаксис https://dropmefiles.com/dG7kR
В программе выбери Снтаксисы - задать свой - импортировать.

Я ещё обычно для дебага скриптов ставлю в нужных местах команды console_addtext, чтобы видно было, когда стрим включается, когда выключается. Например, console_addtext 100.

А хошь ещё прикол? ;) Напиши вместо какого-нибудь потока, например: stream_create 1,"http://airtime.joyradio.cc:8000/airtime_192.mp3"
(В начале игры будет небольшая прогрузка)

Цитата:

Мда, команду для хнопичек че-то мы упустили из виду с Асмом в mse сделать.
А можно ли исправить это упущение? ;)

KlassenAS 06.10.2020 22:32

Цитата:

Сообщение от Firefox3860 (Сообщение 12299)
Вот файл, описывающий синтаксис https://dropmefiles.com/dG7kR
В программе выбери Снтаксисы - задать свой - импортировать.

Я ещё обычно для дебага скриптов ставлю в нужных местах команды console_addtext, чтобы видно было, когда стрим включается, когда выключается. Например, console_addtext 100.

А хошь ещё прикол? ;) Напиши вместо какого-нибудь потока, например: stream_create 1,"http://airtime.joyradio.cc:8000/airtime_192.mp3"
(В начале игры будет небольшая прогрузка)

Спасибо, завтра со всем этим побалуюсь )

Kaiser 06.10.2020 23:04

Цитата:

Я ещё обычно для дебага скриптов ставлю в нужных местах команды console_addtext, чтобы видно было, когда стрим включается, когда выключается. Например, console_addtext 100.
Кстати идея)):rus:

GOLOD55 06.10.2020 23:29

Цитата:

Сообщение от Firefox3860 (Сообщение 12299)
А можно ли исправить это упущение?

мм я когда-то, "мимо пробегая", наткнулся на блок памяти-хнопичный_буфер(или шо-то типа того), помому даже ассемлил хнопичку для дебуга. уж ни нипомню, давно было.
новой версии mse пока нету даж в планах, тут надо ж именно нам новую скрипт_команду, а вставлять новые команды только Асм умеет(я лишь могу пошариться в памяти и написать тело команды).
хотя..наверняка есть вариант замутить не новую команду, а модифицировать старую: кстати напр ctrl_readex команда у нас не юзается(а мб она и читает все хнопки, но заинактивена чехами)...

KlassenAS 07.10.2020 11:41

Цитата:

Сообщение от Firefox3860 (Сообщение 12299)
Вот файл, описывающий синтаксис
В программе выбери Снтаксисы - задать свой - импортировать.

С настройками синтаксиса разобрался, спасибо так намного удобнее!
Цитата:

Сообщение от Firefox3860 (Сообщение 12299)
Напиши вместо какого-нибудь потока, например: stream_create 1,"http://airtime.joyradio.cc:8000/airtime_192.mp3"
(В начале игры будет небольшая прогрузка)

Я правильно понял, это ссылка на аудиопоток реального интернет-радио?
Вообще, круто, что таким нехитрым образом, можно интегрировать в игру реальные радиостанции!

Firefox3860 07.10.2020 13:43

Цитата:

Сообщение от KlassenAS (Сообщение 12304)
С настройками синтаксиса разобрался, спасибо так намного удобнее!

:yep:
Цитата:

Сообщение от KlassenAS (Сообщение 12304)
Я правильно понял, это ссылка на аудиопоток реального интернет-радио?
Вообще, круто, что таким нехитрым образом, можно интегрировать в игру реальные радиостанции!

да! Несколько лет назад ещё на другом форуме эту фичу обнаружили, я тогда тоже офигел и не встал от того, что мафия может лезть в интернет и воспроизводить оттуда поток. Получается настоящее радио, в полном смысле слова :)

KlassenAS 07.10.2020 17:25

GOLOD55, Скажи, пожалуйста, размер скрипта script.sc, который может использовать твой патчер, как-нибудь ограничен?
Я сейчас делаю код, чтобы в каждом потоке могли рандомно меняться 10 треков, скрипт получается очень большой. Где-то после 220-ой строки команды просто не выполняются, как будто эта часть скрипта отрезана.
Если скрипт не сможет работать с твоим патчем, мне придётся его в сцену вставлять, там ограничений нет. Но это и неудобно в работе.

UPD: В scene2.bin такая же ошибка. Стало быть, проблема не в размере скрипта.
Буду думать.
Похоже, с условными переходами что-то не то набарагозил...

GOLOD55 07.10.2020 19:35

низнай. думаю, что размер скрипта не ограничен в разумных пределах.


Текущее время: 14:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.11 Release Candidate 2
Copyright ©2000 - 2025, vBulletin Solutions Inc. Перевод: zCarot