Transparent Mod

Transparent Mod 2024-11-12

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
462
Реакции
220
Возраст
32
Вау... Интересная реализация. 👏
Кстати…
Я пока занимался оформлением поста на коммюнити, про обмен и то что модерам нужно переписывать диалоги…
В общем…
Спустя некоторое время, когда я вылизывал пост, и дополнял его, чтоб меня лучше поняли…
Обнаружил, что… Есть методика, как добавлять предметы продавцам, не залезая в диалоги с ними.
Это очень костыльно, на самом деле, и лучше бы чтоб для этого метода в коде игры уже существовала инфраструктура, чтоб мододелы подключались к ней, а не наворачивали этажи. Ибо если каждый будет наворачивать, игра будет жрать больше ресурсов. А если подключаться к существующей, то роста потребления ресурсов компа не будет.
Пока модов не много, все норм. Но если кто-то где-то найдет кучу модов на шмотки, и каждый из них будет вот так влезать в одну и ту же функцию, то может случиться лаг в момент срабатывания. И игра зависнет на несколько мгновений. А если Эккма организует одну функцию перезаписи, и одну правоверную хеш-базу для добавления предметов (пусть она и будет пустой, если нет модов), то модерам не придется цеплять этажи функций к обмену, и они просто будут добавлять свои предметы в хеш того или иного продавца. Тут важно чтоб хеш был единый для всех модов, и функция которая добавляла его к продавцам была одна и не повторялась столько раз, сколько есть модов с предметами.
Некий json в папке мода. (modfolder/Data/Barters/)
Для «Большой Мамочки».
JSON:
{
    "barters": [{
        "npc_name": "59_69",
        "items":  [{
            "item_name": "ItemSurBot",
            "custom_price": null,
            "price_mult": 1,
            "rndMin": 1,
            "rndMax": 5
        }]
    }],
}
(Исходя из кода ниже, файл может быть не один, и в один файл можно поместить больше одного продавца, а продавцу засунуть больше одного предмета.)


И добавляем в код, инициализирующий мод и файлы в нем, что-то вроде вот этого:
Ruby:
module DataManager
    class << self
        alias_method :load_mod_database_TEST, :load_mod_database
    end
 
    def self.load_mod_database
        load_mod_database_TEST
        $TEST_mod_name = "Mod TEST"
        $TEST_modFolder = "ModScripts/_Mods/#{$TEST_mod_name}"
        $data_NameBarters_TEST = {}
        FileGetter.getFileList("#{$TEST_modFolder}/Data/Barters/*.json").each{|file|
            add_new_goods(file)
        }
    end
 
    def self.add_new_goods(path)
        temp_hash = nil
 
        begin
            temp_hash = JSON.decode(open(path).read)
        rescue
            msgbox("Error in Json == [[ #{path} ]] :: def self.add_new_goods")
        end
        return if temp_hash == nil
 
        temp_hash["barters"].each{|barter|
            goods = []
            barter["items"].each{|item|
                item_name = item["item_name"]
                custom_price = item["custom_price"]
                price = (item["price_mult"])*($data_ItemName[item_name].price.to_i)
                minNum = item["rndMin"]
                maxNum = item["rndMax"]
                goods += [[*$data_ItemName[item_name].get_type_and_id, custom_price, price.round, Random.new.rand(minNum..maxNum) ]]
            }
            if $data_NameBarters_TEST[barter["npc_name"]] == nil
                $data_NameBarters_TEST[barter["npc_name"]] = goods
            else
                $data_NameBarters_TEST[barter["npc_name"]] += goods
            end
        }
    end
end
 
module GIM_ADDON
 
    alias_method :alias_manual_trade_TEST, :manual_trade unless method_defined?(:alias_manual_trade_TEST)
 
    def manual_trade(good,charStoreHashName=nil, charStoreTP=0, charStoreExpireDate=nil, noSell=false, noBuy=false)
        goods = $data_NameBarters_TEST["#{charStoreHashName}"]
        good += goods if goods != nil
        alias_manual_trade_TEST(good, charStoreHashName, charStoreTP, charStoreExpireDate, noSell, noBuy)
    end
 
end

Проверено. Оно работает.
Эккма мой код видел. Так что, посмотрим что случится. Не стоит раньше времени суетиться. Может быть он сделает добавление списка обмена для модов в основных скриптах игры. И тогда код выше станет заметно проще.
А если не добавит. То код все еще работает.
 
Последнее редактирование:

PavelPepler

Пользователь
Регистрация
20.06.2024
Темы
0
Сообщения
6
Реакции
1
Возраст
33
Не знаю почему, но на версии 0.9.3 вылетает с такой ошибкой стоит заняться сексом вагинальным или анальным (я так понимаю он не может подцепить "вертикальную" фоновую позу (версию качал последнюю до обновления на 0.9.4, все моды вырубил, особо не помогло

1730920148764.png
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
462
Реакции
220
Возраст
32
Так, сейчас погляжу.
Вероятно, что-то упустил.
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
462
Реакции
220
Возраст
32
Не знаю почему, но на версии 0.9.3 вылетает с такой ошибкой стоит заняться сексом вагинальным или анальным (я так понимаю он не может подцепить "вертикальную" фоновую позу (версию качал последнюю до обновления на 0.9.4, все моды вырубил, особо не помогло

1730920148764.png
Закинь в папку Graphics мода.
 

Вложения

Graphics.zip
545,9 KB · Просмотры: 2

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
462
Реакции
220
Возраст
32
AleDerXan обновляет мод - Transparent Mod новой записью: Фикс.

Отсутствовали некоторые изображения.
В том числе в оригинальном моде.
Сам, как получилось, взял оригинальные изображения из игры, и преобразовал в редакторе так, чтоб выглядели как новые из мода.


Посмотреть подробности об этом обновлении...
 

AleDerXan

Модостроитель
Автор модов
Регистрация
20.06.2024
Темы
6
Сообщения
462
Реакции
220
Возраст
32
AleDerXan обновляет мод - Transparent Mod новой записью: Версия с заменой оригинальной графики удаляется.

Насколько я понял, грубая замена графики - увеличивает нагрузку на игру. Так что, в данный момент версия с заменой графики признана устаревшей. Но вы ее можете скачать в истории.


Посмотреть подробности об этом обновлении...
 
Последнее редактирование:

PavelPepler

Пользователь
Регистрация
20.06.2024
Темы
0
Сообщения
6
Реакции
1
Возраст
33
День добрый, обновился до свежей версии... В общем вот
1732099960290.png
 

Вложения

1732100094523.png
Сверху Снизу