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)

Haku 05.10.2020 11:57

KlassenAS, вот здесь http://mafiascene.com/forum/viewtopic.php?p=128823 и здесь http://mafiascene.com/forum/viewtopic.php?p=127693

Abradox 05.10.2020 11:59

Цитата:

Сообщение от GOLOD55 (Сообщение 12239)
мафияпатчер имеет файл для внешнего скрипта(опция ThunderboltCheatReplacementScriptPath = script.sc) и также функцию его активирования не только в городских-миссиях(DisableThunderboltCheatScriptMissio nCheck = 1).

Я так понял что мафияпатчер уже позволяет использовать любые скрипты подгружая отдельный файл.
Цитата:

Сообщение от Haku (Сообщение 12245)

А вот и связь с ASMом появилась через мафиасцену ;)


Дайте готовый файл со скриптами и я протестирую.
путь там сделайте Mafia/radio

GOLOD55 05.10.2020 15:30

ога внешний скрипт по типу таксипаса, но работает со сначала миссии.
файл script.sc создаем в папке с мафой, и(при активированиии опции(й) патчера) он работает как скрипт_объект(по статусу ближе к инит_скриптам).
еще там небольшая шапочка предлагалась в скрипте, чтоб какую-то проблему решить сопутствующую...нипомню... а вот:

dim_act 1
dim_flt 1
getactiveplayer 0
human_getproperty 0,0,energy
if flt[0]=0,-1,dan_on
act_setstate 100,off
Label dan_on

енту шапку можно в файл сразу вписать(а ниже уже - тело любого скрипта(начиная со своих dim-ов)); как видно, шапка призвана завейтить скрипт до момента пока миссиия не активируется полностью.

KlassenAS 05.10.2020 17:09

Цитата:

Сообщение от Haku (Сообщение 12245)

Спасибо! Сейчас внимательно ознакомлюсь.

Цитата:

Сообщение от Abradox (Сообщение 12246)
Дайте готовый файл со скриптами и я протестирую.
путь там сделайте Mafia/radio

Не вопрос. Тестовый скрипт сделаю под один аудиофайл "radio/radio.ogg"
А дальше, когда будут извлечены записи радиоэфиров из Mafia DE, тогда его допилю.

Цитата:

Сообщение от GOLOD55 (Сообщение 12251)
файл script.sc создаем в папке с мафой, и(при активированиии опции(й) патчера) он работает как скрипт_объект(по статусу ближе к инит_скриптам).

В readme не указано, какой формат должен иметь файл script.sc
Просто текстовый файл, созданный в блокноте? В какой кодировке?
Или я могу просто сделать копию taxi_pas.dat и переименовать?

GOLOD55 05.10.2020 18:23

txt в sc переименовываем и норм.

KlassenAS 05.10.2020 18:42

Вложений: 4
Цитата:

Сообщение от GOLOD55 (Сообщение 12254)
txt в sc переименовываем и норм.

Вроде, всё сделал по фен-шую, а не пашет.
Даже два раза патчер закинул и в папку игры, и в папку scripts, а работать не хочет.
Версия игры 1.2

Сам скрипт:

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

Dim_Act 1
Dim_Flt 3
GetActivePlayer 0

Let Flt[0]=0
Let Flt[1]=0
Let Flt[2]=-1

Label CHECK
Wait 100
Human_GetSeatIdx 0,2
If Flt[2]=-1,CAR_OUT,-1

If Flt[0]=0,-,CHECK
CityMusic_Off
If Flt[2]=0,-1,ALREADYCREATED
Stream_Create 1,"radio\radio.ogg"
Stream_SetLoop 1,1
Label ALREADYCREATED
Stream_Play 1
Let Flt[0]=1
Let Flt[2]=0
Wait 2000
GoTo CHECK

Label CAR_OUT
If Flt[0]=1,-,CHECK
Stream_Pause 1
Let Flt[2]=1
CityMusic_On
Let Flt[0]=0
Wait 2000
GoTo CHECK
[свернуть]

Если вставить в сцену, будет работать как надо.

GOLOD55 05.10.2020 20:06

Цитата:

Сообщение от KlassenAS (Сообщение 12253)
при активированиии опции(й) патчера

по-умолчанию опции сии неактивны. идем в конфиг с снимаем решетки где надо.

KlassenAS 05.10.2020 20:46

Цитата:

Сообщение от GOLOD55 (Сообщение 12258)
по-умолчанию опции сии неактивны. идем в конфиг с снимаем решетки где надо.

Во я блин даю ) Про решётки не врубился!
Теперь всё пашет.
Исправил ошибку из-за которой поток пересоздавался, добавил переменную.
Теперь работает правильно:

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

dim_act 1
dim_flt 1
getactiveplayer 0
human_getproperty 0,0,energy
if flt[0]=0,-1,dan_on
act_setstate 100,off
Label dan_on

Dim_Act 1
Dim_Flt 4
GetActivePlayer 0

Let Flt[0]=0
Let Flt[1]=0
Let Flt[2]=-1
Let Flt[3]=0

Label CHECK
Wait 100
Human_GetSeatIdx 0,2
If Flt[2]=-1,CAR_OUT,-1

If Flt[0]=0,-,CHECK
CityMusic_Off
If Flt[3]=0,-1,ALREADYCREATED
Stream_Create 1,"radio\radio.ogg"
Stream_SetLoop 1,1
Label ALREADYCREATED
Stream_Play 1
Let Flt[0]=1
Let Flt[3]=0
Wait 2000
GoTo CHECK

Label CAR_OUT
If Flt[0]=1,-,CHECK
Stream_Pause 1
Let Flt[3]=1
CityMusic_On
Let Flt[0]=0
Wait 2000
GoTo CHECK
[свернуть]

Прикольно кататься по Лост-Хэвену под Paul Wardingham - Assimilate Regenerate )
Так можно в скрипт целый плейлист зафигачить.
Жаль, что патчер, как я понял, только один скрипт может использовать. Так было бы круто, если бы в настройках патчера прописывалось количество скриптов и их имена. Можно было бы дофига всего в игру наскриптить.

А вот тут интересно: после того, как сохранился с работающим скриптом, вышел из миссии, при загрузке из сохранения начинает играть аудиопоток.
Буду думать.

Выяснил, что это происходит, если зациклить аудиопоток командой Stream_SetLoop
Пришлось убрать её из кода. Теперь надо повтор реализовать обходным путем, через определение времени воспроизведения.

Abradox 05.10.2020 23:15

Цитата:

Сообщение от KlassenAS (Сообщение 12253)
Не вопрос. Тестовый скрипт сделаю под один аудиофайл "radio/radio.ogg"
А дальше, когда будут извлечены записи радиоэфиров из Mafia DE, тогда его допилю.

это хорошо, но почему .ogg ? Можно сделать чтобы любые аудио-файлы в этой папке воспроизводились .mp3 .wav?

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

еще надо исключить работу скрипта в главном меню.

GOLOD55 06.10.2020 01:36

Цитата:

Сообщение от Abradox (Сообщение 12266)
исключить работу скрипта в главном меню.

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

мафа понимает мп3, наскоко помню. путь указать также и все.


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

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