Вопрос по конфигам карт

Сообщения
134
Реакции
40
Помог
2 раз(а)
Активно пользуюсь конфигурационными файлами для карт, но чем больше модов используюсь, тем больше копиться конфигов. Особенно напрягает, когда карты одного мода используют десяток своих префиксов и нужно создавать кучу файлов с идентичным содержимым. Например для kz мод нужно создать "plugins-cg.ini, plugins-kz.ini, plugins-bhop.ini и т.д.". Когда нужно внести изменения, то приходится редактировать каждый файл и т.д. Есть какие-то возможности для оптимизации данного процесса? Например плагином или может есть стандартные функции о которых я не знаю. На данный момент пробовал сделать так:

По задумке плагин должен переименовывать конфигурационный файл plugins-kz.ini на префик стоящей карты. Свою задачу он выполняет, но плагины из файла не загружаются (до рестарта).
P.S. если бы это сработало, дописал бы строки, которые переименовывали файл обратно в plugins-kz.ini после подгрузки плагинов.

Код:
#include <amxmodx>
#include <amxmisc>

public plugin_precache() {
    new szMapName[32];
    new sPref[5][32] = {"cg", "bhop", "fu", "j2s", "av"};
    get_mapname(szMapName, charsmax(szMapName));
    for(new i; i < sizeof sPref; i++){
    if(containi(szMapName, sPref[i]) != -1){
    new szNewFileName[64];
    formatex(szNewFileName, sizeof(szNewFileName), "/addons/amxmodx/configs/maps/plugins-%s.ini", sPref[i]);
    rename_file("/addons/amxmodx/configs/maps/plugins-kz.ini", szNewFileName, 1);
    break;
}
}
}
Второй вариант, копирует содержимое из plugins-kz.ini в файлы с префиксом загруженной карты. плагины так же не загружаются. Ну собственно это лучше чем ничего, так изменения можно будет вносить только в один файл, а они потом сами будут копироваться при установке нужной карты. Главное потом сделать рестарт, что бы всё заработало.


Код:
#include amxmodx

new g_File[64] = "addons/amxmodx/configs/maps/plugins-kz.ini";

public plugin_precache()
{
    new szMapName[32];
    new sPref[5][32] = {"cg", "bhop", "fu", "j2s", "av"};
    get_mapname(szMapName, charsmax(szMapName));
    for(new i; i < sizeof sPref; i++){
    if(containi(szMapName, sPref[i]) != -1){
    new szNewFileName[64];
    formatex(szNewFileName, sizeof(szNewFileName), "addons/amxmodx/configs/maps/plugins-%s.ini", sPref[i]);
    file_copy(g_File, szNewFileName);
    pause("ad");
}
}
}

stock bool:file_copy(SOURCE[], TARGET[])
{
    new source = fopen(SOURCE, "rb");
    new target = fopen(TARGET, "wb");
   
    for(new buffer, eof = feof(source); !eof; !eof && fputc(target, buffer))
    {
        buffer = fgetc(source);
        eof = feof(source);
    }
   
    fclose(source);
    fclose(target);
   
    return true;
}
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
Есть молодой, но весьма интересный проект от наших аргентинских коллег, имя ему Multimod Manager.
Лично я его ещё в деле не пробовал, но насколько я могу судить по конфигам, там есть возможность полноценного управления каждым модом, а именно возможность указать плагины и квары, которые будут изменяться для каждого кода. Помимо этого, есть голосовалка за карты и сами моды.
Рекомендую ознакомиться, чтобы не городить костыли, заодно расскажете об опыте использования.

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

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу