Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

[VX]Скриптеры, помогите разобраться в ошибке... =\

Больше
15 года 2 мес. назад - 15 года 2 мес. назад #41302 от Finntroll
При запуске данного скрипта
Code:
#============================================================================== # ** Multiple BGMS #------------------------------------------------------------------------------ # SephirothSpawn # Version 1 # 2007-04-09 # SDK : Version 2.0+, Parts I & II #------------------------------------------------------------------------------ # * Version History : # # Version 1 ---------------------------------------------------- (2007-04-09) #------------------------------------------------------------------------------ # * Description : # # This script was designed to allow you more than 1 bgm for your map and # battles. You can define multiple bgms for each map ; defined multiple # bgms for battle depending on : current map and current troop. You may # control which of these bgms you include in the final list, including the # original bgm list you can set in rmxp. #------------------------------------------------------------------------------ # * Instructions : # # Place The Script Below the SDK and Above Main. #------------------------------------------------------------------------------ # * Customization : # # Default Settings # # Map BGM - Map Defined (By Map ID) # - @map_bgm_by_map = { map_id => [ RPG::AudioFile, ... ], ... } # # Battle BGM - Map Defined (By Map ID) # - @battle_bgm_by_map = { map_id => [ RPG::AudioFile, ... ], ... } # # Battle BGM - Troop Defined (By Troop ID) # - @battle_bgm_by_troop = { troop_id => [ RPG::AudioFile, ... ], ... } #------------------------------------------------------------------------------ # * Syntax : # # Battle BGM Include List # - $game_system.include_multi_bbgms = true or false # (Includes additional bgms for all) # - $game_system.include_multi_bbgms_map = true or false # (Includes additional bgms defined by the map) # - $game_system.include_multi_bbgms_troop = true or false # (Includes additional bgms defined by the troop) # - $game_system.include_datasys_bbgm # (Includes battle bgm set in database) # - $game_system.include_gmsys_bbgm # (Includes battle bgm set with events) # # Add multiple BGMS to map list when using event command to change BGM # - $game_system.add_multi_bbgms = true or false # Remove multiple BGMS to map list when using event command to change BGM # - $game_system.remove_multi_bbgms = true or false #============================================================================== #------------------------------------------------------------------------------ # * SDK Log Script #------------------------------------------------------------------------------ SDK.log('Multiple BGMS', 'SephirothSpawn', 1, '2007-04-09') SDK.check_requirements(2.0, [3]) #------------------------------------------------------------------------------ # * Begin SDK Enable Test #------------------------------------------------------------------------------ if SDK.enabled?('Multiple BGMS') SDK.log_overwrite(:Game_System, :battle_bgm) #============================================================================== # ** Multiple_BGMS #============================================================================== module Multiple_BGMS #-------------------------------------------------------------------------- # * Defaults # # Map BGM - Map Defined (By Map ID) # - @map_bgm_by_map = { map_id => [ RPG::AudioFile, ... ], ... } # # Battle BGM - Map Defined (By Map ID) # - @battle_bgm_by_map = { map_id => [ RPG::AudioFile, ... ], ... } # # Battle BGM - Troop Defined (By Troop ID) # - @battle_bgm_by_troop = { troop_id => [ RPG::AudioFile, ... ], ... } #-------------------------------------------------------------------------- @map_bgm_by_map = { 23 =>["Audio/BGM/001-Wind01.ogg", 80, 100]} @battle_bgm_by_map = {} @battle_bgm_by_troop = {} # Defaults Default (Must leave as arrays) @map_bgm_by_map.default = [] @battle_bgm_by_map.default = [] @battle_bgm_by_troop.default = [] #-------------------------------------------------------------------------- # * Read Map BGMs For Maps #-------------------------------------------------------------------------- def self.map_bgm_by_map return @map_bgm_by_map end #-------------------------------------------------------------------------- # * Read Battle BGMs For Maps #-------------------------------------------------------------------------- def self.battle_bgm_by_map return @battle_bgm_by_map end #-------------------------------------------------------------------------- # * Read Battle BGMs From Troops #-------------------------------------------------------------------------- def self.battle_bgm_by_troop return @battle_bgm_by_troop end #-------------------------------------------------------------------------- # * Write Map BGMs For Maps #-------------------------------------------------------------------------- def self.map_bgm_by_map=(map_bgm_by_map) @map_bgm_by_map = map_bgm_by_map end #-------------------------------------------------------------------------- # * Write Battle BGMs For Maps #-------------------------------------------------------------------------- def self.battle_bgm_by_map=(battle_bgm_by_map) @battle_bgm_by_map = battle_bgm_by_map end #-------------------------------------------------------------------------- # * Write Battle BGMs From Troops #-------------------------------------------------------------------------- def self.battle_bgm_by_troop=(battle_bgm_by_troop) @battle_bgm_by_troop = battle_bgm_by_troop end end #============================================================================== # ** RPG::Map #============================================================================== class RPG::Map #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :seph_multibgms_gmsys_apbgm, :autoplay_bgm alias_method :seph_multibgms_gmsys_bgm, :bgm #-------------------------------------------------------------------------- # * Autoplay BGM Flag #-------------------------------------------------------------------------- def autoplay_bgm return seph_multibgms_gmsys_apbgm || Multiple_BGMS.map_bgm_by_map[@id].empty? == false end #-------------------------------------------------------------------------- # * Get Map Background Music #-------------------------------------------------------------------------- def bgm # Get Original Map Background Music bgms = [seph_multibgms_gmsys_bgm] # Add Map Defined Map BGMS bgms << Multiple_BGMS.map_bgm_by_map[@id] # Return Random BGM return bgms.flatten.compact.random end end #============================================================================== # ** Game_System #============================================================================== class Game_System #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :include_multi_bbgms attr_accessor :include_multi_bbgms_map attr_accessor :include_multi_bbgms_troop attr_accessor :include_datasys_bbgm attr_accessor :include_gmsys_bbgm attr_accessor :add_multi_bbgms attr_accessor :remove_multi_bbgms #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :seph_multibgms_gmsys_init, :initialize alias_method :seph_multibgms_gmsys_bbgm=, :battle_bgm= #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize # Original Initialization seph_multibgms_gmsys_init # Multi BGM Initialize init_multibgm end #-------------------------------------------------------------------------- # * Object Initialization : Multi BGM #-------------------------------------------------------------------------- def init_multibgm @include_multi_bbgms = true @include_multi_bbgms_map = true @include_multi_bbgms_troop = true @include_datasys_bbgm = true @include_gmsys_bbgm = true @add_multi_bbgms = false @remove_multi_bbgms = false end #-------------------------------------------------------------------------- # * Get Battle Background Music #-------------------------------------------------------------------------- def battle_bgm # Start BGM List bgms = [] # If Include Multi BGM if @include_multi_bbgms # Add Map BGMS if Included if @include_multi_bbgms_map bgms << Multiple_BGMS.battle_bgm_by_map[$game_map.map_id] end # Add Troop BGMS if Included if @include_multi_bbgms_troop bgms << Multiple_BGMS.battle_bgm_by_troop[$game_temp.battle_troop_id] end end # Add System Battle BGM if Included if @include_datasys_bbgm bgms << $data_system.battle_bgm end # Adds Game System Battle BGM if Included if @include_gmsys_bbgm && @battle_bgm != nil bgms << @battle_bgm end # Return Random BGM return bgms.flatten.random end #-------------------------------------------------------------------------- # * Set Battle Background Music #-------------------------------------------------------------------------- def battle_bgm=(battle_bgm) # If Add Map BGM if @add_multi_bbgms Multiple_BGMS.battle_bgm_by_map[$game_map.map_id] = battle_bgm # If Remove Map BGM elsif @add_multi_bbgms_troop Multiple_BGMS.battle_bgm_by_map[$game_map.map_id].delete(battle_bgm) else # Original Set Battle Background Music self.seph_multibgms_gmsys_bb = battle_bgm end end end #============================================================================== # ** Scene_Save #============================================================================== class Scene_Save < Scene_File #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :seph_multibgms_scnsv_wd, :write_data #-------------------------------------------------------------------------- # * Write Data #-------------------------------------------------------------------------- def write_data(file) # Original Write Save Data seph_multibgms_scnsv_wd(file) # Dump Multiple BGM Settings Marshal.dump(Multiple_BGMS.map_bgm_by_map, file) Marshal.dump(Multiple_BGMS.battle_bgm_by_map, file) Marshal.dump(Multiple_BGMS.battle_bgm_by_troop, file) end end #============================================================================== # ** Scene_Load #============================================================================== class Scene_Load < Scene_File #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias_method :seph_multibgms_scnld_rd, :read_data #-------------------------------------------------------------------------- # * Read Data #-------------------------------------------------------------------------- def read_data(file) # Original Read Save Data seph_multibgms_scnld_rd(file) # Read Multi BGMs Multiple_BGMS.map_bgm_by_map = Marshal.load(file) Multiple_BGMS.battle_bgm_by_map = Marshal.load(file) Multiple_BGMS.battle_bgm_by_troop = Marshal.load(file) end end #-------------------------------------------------------------------------- # * End SDK Enable Test #-------------------------------------------------------------------------- end
Игра ругается на синтаксис в 88й (какая ирония =\) строчке, ее я выделил красным цветом, а так как я ничего не понимаю, то и не могу исправить... :wall: Вот, сопсно, прошу помощи у тех, кто шарит...
Последнее редактирование: 15 года 2 мес. назад пользователем Fizmatik. Причина: Используйте тег CODE

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место
Больше
15 года 2 мес. назад #41311 от mamonth
1. поставь после => пробел
2. проверь кавычки
3. # - @map_bgm_by_map = { map_id => [ RPG::AudioFile, ... ], ... } вот здесь не написано какие свойства будут у звука и как их правильно писать - наверное там громкость и продолжительность.

сам в руби не рублю так что надеюсь что это поможет

THIS IS SO-VI-ET U-NI-O-N!

Need teh butta, gonna maek toawst!
Спасибо сказали: Finntroll

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41312 от Finntroll
Не, пробел роли не играет, а строчка, которую ты указал, она как комментарий, то есть в скрипте не используется... Просто пояснение как заполнять форму скрипта...
Сама же проблема как раз таки в форме заполнения (красная строчка)... Я было подумал что не правильно заполняю, или где-то что-то забываю дописать... Но оказывается и оригинал тоже выдает ошибку... =\

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 2 мес. назад - 15 года 2 мес. назад #41322 от mephis
Я не скриптер и почти ничего не понимаю в Ruby. Но, воспользуемся логикой.

Вот ты написал:

@map_bgm_by_map = { 23 =>["Audio/BGM/001-Wind01.ogg", 80, 100]}

Что значат числа 80 и 100? Думаю, что взяты с потолка. Теперь далее.

Имеем два тезиса:
1) "Скрипт, позволяющий делать несколько фоновых мелодий для карты"
2) Инструкция
# Battle BGM - Map Defined (By Map ID)
# - @battle_bgm_by_map = { map_id => [ RPG::AudioFile, ... ], ... }

Суммируем их и делаем предположение:

Под "map_id => [ RPG::AudioFile, ... ]" имеется в виду, что будет указан id карты и ему в соответствие, через запятые, указаны файлы фоновых мелодий. А не числа!

Добавил:

Ну вот, простейший поиск по справке привёл к следующему:

RPG::AudioFile создаётся так:

RPG::AudioFile.new("путь_к_файлу", v, p).
Где:
v - volume
p - pitch
Пресловутые 80 и 100.


То есть, вместо

@map_bgm_by_map = { 23 =>["Audio/BGM/001-Wind01.ogg", 80, 100]}

надо

@map_bgm_by_map = { 23 =>[RPG::AudioFile.new("Audio/BGM/001-Wind01.ogg", 80, 100)]}

→ → ↓ ↑ Y
Последнее редактирование: 15 года 2 мес. назад пользователем mephis.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

3 место
Больше
15 года 2 мес. назад #41323 от mamonth
не то что эта строчка-образец это понятно (это же комментарий для пользователя) просто может эти 80 и 100 по-другому вызываются?

THIS IS SO-VI-ET U-NI-O-N!

Need teh butta, gonna maek toawst!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад - 15 года 2 мес. назад #41325 от SaretOdin-Sol
80 и 100 - по-моему это громкость и темп.
edit:
Сорри. Вижу и без меня поняли.
Последнее редактирование: 15 года 2 мес. назад пользователем SaretOdin-Sol.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41331 от Finntroll

mamonth пишет: не то что эта строчка-образец это понятно (это же комментарий для пользователя) просто может эти 80 и 100 по-другому вызываются?


Ну это я скинул оригинал, тоесть форма была заполнена автором скрипта...
Хотя, мб он опечатался, и темп и громкость действительно по другому вызываются, или еще что... Вот поэтому и надо человека, который шарит в синтаксисе... :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41361 от Finntroll
В нем есть один плюс: можно создавать отдельные папки под BGM... ^^

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Ветеран
Больше
15 года 2 мес. назад #41365 от Fizmatik
Вы не поняли? Вам mephis конкретный ответ дал:
Вместо
Code:
@map_bgm_by_map = { 23 =>["Audio/BGM/001-Wind01.ogg", 80, 100]}
надо
Code:
@map_bgm_by_map = { 23 =>[RPG::AudioFile.new("Audio/BGM/001-Wind01.ogg", 80, 100)]}
Попробуйте.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41368 от Pavlentus007
Эээ...Fizmatik я насколько понял тут уже поняли....

Я линивая свинья...
Я хороший мапер...Но конченый автор...
Я опять ленивая свинья....
Хочу курицу жаренную с пиццой О.О

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41369 от Finntroll

Fizmatik пишет: Вы не поняли? Вам mephis конкретный ответ дал:
Вместо

Code:
@map_bgm_by_map = { 23 =>["Audio/BGM/001-Wind01.ogg", 80, 100]}
надо
Code:
@map_bgm_by_map = { 23 =>[RPG::AudioFile.new("Audio/BGM/001-Wind01.ogg", 80, 100)]}
Попробуйте.

Ну, если бы данный способ работал, я бы написал...
Если я буду писать через CODE, то не смогу подсвечивать строчку, вызывающую проблемы... :unsure:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41375 от Pavlentus007
господи вроде скрипт лёгкий а столько мучений...

Я линивая свинья...
Я хороший мапер...Но конченый автор...
Я опять ленивая свинья....
Хочу курицу жаренную с пиццой О.О

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 2 мес. назад - 15 года 2 мес. назад #41376 от mephis
Оказалось, проблема не только в синтаксисе определения массива BGM-ов. Нужны дополнительные фиксы:

1) Заходим в наш многострадальный скрипт
2) Жмём Ctrl+H
3) В поле "Find what:" пишем: @id
4) В поле "Replace with:" пишем: $game_map.map_id
5) Тыкаем "Replace All"
6) ...
7) PROFIT!!!!!!

Тут была, конечно, невнимательность автора скрипта.

[strike]Так глядишь и сам начну в скриптах разбираться.[/strike]


edit: Да, кстати, путь надо прописывать не как "Audio/BGM/имяфайла", а как "имяфайла". Иначе не берёт.

→ → ↓ ↑ Y
Последнее редактирование: 15 года 2 мес. назад пользователем mephis.
Спасибо сказали: Finntroll

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41377 от Finntroll

Pavlentus007 пишет: господи вроде скрипт лёгкий а столько мучений...

А так всегда: от маленьких собачек куча шума... :wall:

2mephis, хм, приду с работы, попробую... :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41432 от Finntroll
Странно... Теперь появляется ошибка в 61й строчке... =\ uninitialize constant SDK...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

2 место Готв Писатель 2 место 3 место Победитель конкурса Организатор конкурсов
Больше
15 года 2 мес. назад #41436 от Agckuu_Coceg
А это уже мат на то, что нет SDK.

Удали все эти строчки:
Code:
#------------------------------------------------------------------------------ # * SDK Log Script #------------------------------------------------------------------------------ SDK.log('Multiple BGMS', 'SephirothSpawn', 1, '2007-04-09') SDK.check_requirements(2.0, [3]) #------------------------------------------------------------------------------ # * Begin SDK Enable Test #------------------------------------------------------------------------------ if SDK.enabled?('Multiple BGMS') SDK.log_overwrite(:Game_System, :battle_bgm)

И эту:

Code:
#-------------------------------------------------------------------------- # * End SDK Enable Test #-------------------------------------------------------------------------- end

Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.
Спасибо сказали: Finntroll

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41437 от Finntroll
Удалил... Еще куча матюков полезло... Короче, к Лешему этот скрипт... Буду искать альтернативу... Благодарю всех за помощь... :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Переводчик Учитель
Больше
15 года 2 мес. назад #41450 от mephis
Вот автор скрипта дурак, взял и в требованиях SDK написал! А нам чо? Мы-то умные. Удалим проверку и дело с концом! Ну даёте, ребята...


У меня после двух вышеозначенных изменений всё заработало. Музыка действительно включается рандомно при входе на карту. Только я брал скрипт не из первого поста, а взял из "Seph's Test Bed" в комплект которого он входит.

А альтернатива и действительно проста. Всё это можно сделать на ивентах: автостарт и выбор рандомного bgm. Две-три команды на всё про всё.

→ → ↓ ↑ Y

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 2 мес. назад #41452 от Finntroll
На ивентах не сделаеш, что бы после одного BGM заиграл другой...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

2 место Готв Писатель 2 место 3 место Победитель конкурса Организатор конкурсов
Больше
15 года 2 мес. назад #41455 от Agckuu_Coceg

Вот автор скрипта дурак, взял и в требованиях SDK написал! А нам чо? Мы-то умные. Удалим проверку и дело с концом! Ну даёте, ребята...


Что-то я не увидел в требованиях надпись "Requirements: SDK 2.0". Значит скрипт юзается и без него.
SDK - это частично переписанные библотеки, предназначенные для совместимости скриптов. Если скрипт спокойно юзается без SDK, просто следует удалить проверку. И всё.

Огромный любитель среброволосых или пепельноволосых 2D-девушек с хорошим характером или со скрытыми привлекательными чертами.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.126 секунд
Работает на Kunena форум