Участник
Пользователь
- Сообщения
- 134
- Реакции
- 40
- Помог
- 2 раз(а)
Активно пользуюсь конфигурационными файлами для карт, но чем больше модов используюсь, тем больше копиться конфигов. Особенно напрягает, когда карты одного мода используют десяток своих префиксов и нужно создавать кучу файлов с идентичным содержимым. Например для kz мод нужно создать "plugins-cg.ini, plugins-kz.ini, plugins-bhop.ini и т.д.". Когда нужно внести изменения, то приходится редактировать каждый файл и т.д. Есть какие-то возможности для оптимизации данного процесса? Например плагином или может есть стандартные функции о которых я не знаю. На данный момент пробовал сделать так:
По задумке плагин должен переименовывать конфигурационный файл plugins-kz.ini на префик стоящей карты. Свою задачу он выполняет, но плагины из файла не загружаются (до рестарта).
P.S. если бы это сработало, дописал бы строки, которые переименовывали файл обратно в plugins-kz.ini после подгрузки плагинов.
Второй вариант, копирует содержимое из plugins-kz.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;
}
}
}
Код:
#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;
}