Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
AleDerXan, кончено, понимаю твою логику, но по-хорошему вообще бы перерисовать HUD и выделить там место для категорий или листать, как хотел.
Lazi Ness, идея интересная, такое проворачивал на JS и PHP, скрипт для сканирования и автоматического добавления кода на основе результата, не то чтобы бы сложная задача, думаю даже для Ruby.
Вот читаю вас, даже порой появляется какое-то некое желание вернуться к программированию, но искра уже потухла. Даже не знай, стар что ли стал для всего этого, просто упиваюсь постным существованием в последние годы и медленно растекаюсь чёрной и липкой жижей. Чёрт побери, я же ни строчки кода уже более года не писал!
Я терпеть не могу программирование, и сразу его невзлюбил, скукота невероятная! Поэтому я просто представляю, что это магия такая, внутри игры,))) или вроде того. А работать с программированием как есть совершенно невыносимо.
но строк будет сотни, и я пытаюсь понять, как мне сканируя папку отделать имена файлов? Вроде делал что-то похожее уже но все равно не понимаю -___-
а, да, я помню про твой метод с загрузкой текста, но не хочу его использовать, во-первых потому половину не понимаю, и во-вторых, потому что ты его потом же вроде расширял на 3 страницы.))
ПС. Не потеряйтесь в слешах (/). Их расположение - важно.
Таким способом можно даже свои кастомные скрипты с уникальными названиями засунуть, и в коде вызывать их так, будто они находятся в папках игры.
И да, метод про текст - он про строки текста из папки Text, а не про скрипты. Понимать надо. Это разные вещи, это не то, это другое.
И я его расширил. Но там просто. Метод тот же что и с arpgskills.
Код игры делает из папки Text - хеш строк.
Я сделал так, чтоб такой же хеш делался из строк папки текст мода. И потом merge хеши.
Основная часть - предохранители, и исключения, чтоб ошибки не вылезали, когда игра будет пытаться загрузить модовский файл не только из папки мода, но и из своей.
А UMM - поменял эти функции, добавив в них на вход не только путь к файлу, но еще и какую-то хрень (я не разбирался и оставил ее без изменений). И просто научил код понимать, когда в функцию поступило две переменных, а когда - одна. И если поступило две, то работать по методу UMM, а если одна, то как обычно.
—
Я там еще полазю… Может есть способ сделать проще.
Это про строки.
А есть еще метод точечной замены одного на другое. Но там нужно конкретно указывать где текст рисуется, какие поступили параметры, итд итп…
Чтоб заменяло только тот текст, который надо, а не кучу всего подряд. Ты же не хочешь, чтоб все строки стали «Вын»? Любой текст стал «Вын»? Потому и нужно указывать точное расположение текста.
ПС. Не потеряйтесь в слешах (/). Их расположение - важно.
Таким способом можно даже свои кастомные скрипты с уникальными названиями засунуть, и в коде вызывать их так, будто они находятся в папках игры.
И да, метод про текст - он про строки текста из папки Text, а не про скрипты. Понимать надо. Это разные вещи, это не то, это другое.
И я его расширил. Но там просто. Метод тот же что и с arpgskills.
Код игры делает из папки Text - хеш строк.
Я сделал так, чтоб такой же хеш делался из строк папки текст мода. И потом merge хеши.
Основная часть - предохранители, и исключения, чтоб ошибки не вылезали, когда игра будет пытаться загрузить модовский файл не только из папки мода, но и из своей.
А UMM - поменял эти функции, добавив в них на вход не только путь к файлу, но еще и какую-то хрень (я не разбирался и оставил ее без изменений). И просто научил код понимать, когда в функцию поступило две переменных, а когда - одна. И если поступило две, то работать по методу UMM, а если одна, то как обычно.
—
Я там еще полазю… Может есть способ сделать проще.
FileGetter.getFileList("#{$corsys_modFolder}/Data/HCGframes/event/*.rb") — получить список файлов в папке
"ModScripts/_Mods/Corruption System/Data/HCGframes/event/"
file.split("#{$corsys_mod_name}/") - поделить строку пути к файлу на массив. [0] - то что до названия мода. [1] - то что после названия мода и слеша. А там:
ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb→split→[0] → ModScripts/_Mods/
ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb→split→[1] → Data/HCGframes/event/ИМЯФАЙЛА.rb
И получается, что у меня вот тут:
$mod_load_script[file.split("#{$corsys_mod_name}/")[1]] = file
Слева "Data/HCGframes/event/ИМЯФАЙЛА.rb"", а справа "ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb"
И это делается для всех файлов в папке "ModScripts/_Mods/Corruption System/Data/HCGframes/event/"
разве?)) я так же считаю, мне совсем не понятны все эти массивы.)))
Ruby:
game_folder = "Data/Batch/"
mod_folder = "ModScripts/_Mods/RolePlayS/Batch/"
FileGetter.getFileList(File.join(mod_folder, "*.rb")).each do |path_mod|
# path_mod → путь + файл из мода / path + file mod
file_name = path_mod.sub(mod_folder, "")
# file_name → имя файла / file name only
path_game = File.join(game_folder, file_name)
# path_game → путь + файл из игры / path + file game
$mod_load_script[path_game] = path_mod
end
Понял, в чем была проблема, мне нужно сканировать и работать от папки с модом, о не от игровой. Я перевернул формулу и теперь все отлично!))
FileGetter.getFileList("#{$corsys_modFolder}/Data/HCGframes/event/*.rb") — получить список файлов в папке
"ModScripts/_Mods/Corruption System/Data/HCGframes/event/"
file.split("#{$corsys_mod_name}/") - поделить строку пути к файлу на массив. [0] - то что до названия мода. [1] - то что после названия мода и слеша. А там:
ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb→split→[0] → ModScripts/_Mods/
ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb→split→[1] → Data/HCGframes/event/ИМЯФАЙЛА.rb
И получается, что у меня вот тут:
$mod_load_script[file.split("#{$corsys_mod_name}/")[1]] = file
Слева "Data/HCGframes/event/ИМЯФАЙЛА.rb"", а справа "ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb"
И это делается для всех файлов в папке "ModScripts/_Mods/Corruption System/Data/HCGframes/event/"
FileGetter.getFileList("#{$corsys_modFolder}/Data/HCGframes/event/*.rb") — получить список файлов в папке
"ModScripts/_Mods/Corruption System/Data/HCGframes/event/"
file.split("#{$corsys_mod_name}/") - поделить строку пути к файлу на массив. [0] - то что до названия мода. [1] - то что после названия мода и слеша. А там:
ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb→split→[0] → ModScripts/_Mods/
ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb→split→[1] → Data/HCGframes/event/ИМЯФАЙЛА.rb
И получается, что у меня вот тут:
$mod_load_script[file.split("#{$corsys_mod_name}/")[1]] = file
Слева "Data/HCGframes/event/ИМЯФАЙЛА.rb"", а справа "ModScripts/_Mods/Corruption System/Data/HCGframes/event/ИМЯФАЙЛА.rb"
И это делается для всех файлов в папке "ModScripts/_Mods/Corruption System/Data/HCGframes/event/"
кстати! ты видел скрипты в папке Batch? там куча файлов с примерно одинаковым содержимым, мне пришло почти все (47) их переписывать. Ну в смысле менять переменные... Я не программист, но мне кажется, все это можно было реализовать проще... 🙃 Примерно раз в тясячу...
Нет. Сейчас покажу как работает деление строки на массив строк.
Есть
строка = "Жил да был старичок и был этот старичок весьма крут"
массив = строка.split("старичок")
массив == ["Жил да был ", " и был этот ", " весьма крут"]
массив[0] == "Жил да был "
массив[1] == " и был этот "
массив[2] == " весьма крут"
Что указано в split - то превращается в разделитель. И собственно вообще исчезает из массива в каком либо виде.
Я указал разделителем - название мода. Оно в пути к файлу скрипта встречается один раз. Что после него то массив[1], что до - то массив[0].
Я просто взял путь к файлу в папке мода, и разделил его так, чтоб в [1] массива был путь идентичный таковому пути в игре.
И кстати.
Я доработал систему динамического поля черт.
Усё.
Робит.
Теперь, оно может стать основой для других модов. (Главное, чтоб либо они использовали его как требующийся мод, либо копировали код в себя - не внося изменений в названия глобальных переменных, чтоб другие моды использующие этот метод - не конфликтовали, для чего конкретно этот код должен быть абсолютно идентичен в разных модах, чтоб мульти-поле на которое они ссылаются - было одно для всех.)
Нет. Сейчас покажу как работает деление строки на массив строк.
Есть
строка = "Жил да был старичок и был этот старичок весьма крут"
массив = строка.split("старичок")
массив == ["Жил да был ", " и был этот ", " весьма крут"]
массив[0] == "Жил да был "
массив[1] == " и был этот "
массив[2] == " весьма крут"
Что указано в split - то превращается в разделитель. И собственно вообще исчезает из массива в каком либо виде.
Я указал разделителем - название мода. Оно в пути к файлу скрипта встречается один раз. Что после него то массив[1], что до - то массив[0].
Я просто взял путь к файлу в папке мода, и разделил его так, чтоб в [1] массива был путь идентичный таковому пути в игре.
А $corsys_mod_name это глобальная переменная? может, для скриптов из Batсh их использовать? ну, такие переменные. Буду 47 файлов регулировать парой переменных.))
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя. Предоставляя нам персональные данные, вы соглашаетесь на их обработку в соответствии с этой политикой.