Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Подключение файла конфигурации для плагина(ов)

, Файл с кварами для плагина
Статус пользователя Topce
сообщение 6.1.2016, 15:16
Сообщение #1
Стаж: 12 лет

Сообщений: 198
Благодарностей: 42
Полезность: 169

Итак, сижу я поздно вечером, и тут меня осеняет, я не скриптер и прочее, я любитель своего хобби
Вот что мне пришло в голову, я во многих исходниках, видел файлы с конфигурацией (которые кидаем в configs) и есть множество плагинов с кварами в исходнике, но вот что бы их поправить, это опять на компе в исходнике - найти/отредактировать/скомпилировать/залить
А если бы был конфиг - то просто квар поменяли, он после смены карты под грузился - красота
Вот у меня и вопрос, как к исходнику подключать файлы конфигурационные, что бы там черпались квары и подгружались
Ну и ответы на какие вопросы я хочу получить:
1. Алгоритм прикрепления файла с настройками универсальный, или к каждому плагину - свой подход
2. И что будет, если файл конфигурационный 1, а плагины, которые его используют - ну например 10 штук (по харду)
Спасибо, что не облили грязью, и помогли "нубу" )))

Отредактировал: Topce, - 6.1.2016, 15:17


Все что ни делается - делается к лучшему.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя LeoBH
сообщение 6.1.2016, 15:31
Сообщение #2


Стаж: 12 лет

Сообщений: 159
Благодарностей: 91
Полезность: 170

Подключить файл конфигурации:

Код:
public plugin_cfg()
{
new configsdir[128]
get_localinfo("amxx_configsdir", configsdir, 127)
server_cmd("exec %s/my_config.cfg", configsdir)
}


Где my_config.cfg - файл из папки amxmodx/configs

О создании кваров/переменных можешь почитать здесь

Отредактировал: LeoBH, - 6.1.2016, 15:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя simba
сообщение 6.1.2016, 15:32
Сообщение #3
Стаж: 11 лет

Сообщений: 132
Благодарностей: 45
Полезность: 236

Цитата(LeoBH @ 6.1.2016, 16:25) *
Код:
public plugin_cfg()
{
new configsdir[128]
get_localinfo("amxx_configsdir", configsdir, 127)
server_cmd("exec %s/my_config.cfg", configsdir)
}


Плохо. Целый массив со 128 переменными ради 1 раз загружаемого файла.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Topce
сообщение 6.1.2016, 17:10
Сообщение #4
Стаж: 12 лет

Сообщений: 198
Благодарностей: 42
Полезность: 169

Цитата(simba @ 6.1.2016, 19:28) *
Плохо. Целый массив со 128 переменными ради 1 раз загружаемого файла.

А можно поподробней? 128 переменных, я так понимаю, это квары или нет?


Все что ни делается - делается к лучшему.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ChesterField
сообщение 6.1.2016, 21:48
Сообщение #5


Стаж: 11 лет

Сообщений: 145
Благодарностей: 46
Полезность: 198

Считывание или создание конфига плагином, Если нету конфига создаём, а если есть то вызываем его!
Код:

#include <amxmodx>

#define PLUGIN "Config PLUGIN" // Название плагина
#define VERSION "1.0" // Версия
#define AUTHOR "Unkdown" // Автор

// название конфига
#define Config "mycfg.cfg"

// регистрация плагина
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
}

public plugin_cfg()
{
new configsdir[128]
get_localinfo("amxx_configsdir", configsdir, 127) // папка с которой будем работать

if (!file_exists(Config)) // Если нету конфига
{
write_file(Config, "sv_aim ^"0^" // Пример") // Прописываем в конфиг
}
else // Если есть
{
server_cmd("%s/%s",configsdir,Config) // Вызываем конфиг
}

}


Почему бы и нет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя simba
сообщение 6.1.2016, 22:03
Сообщение #6
Стаж: 11 лет

Сообщений: 132
Благодарностей: 45
Полезность: 236

Цитата(Topce @ 6.1.2016, 18:05) *
А можно поподробней? 128 переменных, я так понимаю, это квары или нет?


128 переменных это не квары. Методы Вам скинули рабочие, пользуйтесь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Topce
сообщение 6.1.2016, 22:07
Сообщение #7
Стаж: 12 лет

Сообщений: 198
Благодарностей: 42
Полезность: 169

Цитата(ChesterField @ 7.1.2016, 1:43) *
Код:

// название конфига
#define Config "mycfg.cfg" // Могу 1 конфиг, использовать для (10 плагинов, грубо)?
write_file(Config, "sv_aim ^"0^" // Пример"); // Прописываем в конфиг - я так понимаю, тут так задается определенный "Квар"?
write_file(Config, "sv_chet ^"1^" // Пример") // Для 2 квара примерно такая запись будет получаться?
^"0^" // Почему значение имеет такой вид?

Постарался в комментариях найти ответы )

Отредактировал: Topce, - 6.1.2016, 22:08


Все что ни делается - делается к лучшему.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ChesterField
сообщение 6.1.2016, 22:09
Сообщение #8


Стаж: 11 лет

Сообщений: 145
Благодарностей: 46
Полезность: 198

Topce,
^ - этот символ используется как пробел.
И да. экспериментируйте. Знания приходят с практикой.


Почему бы и нет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Topce
сообщение 6.1.2016, 22:16
Сообщение #9
Стаж: 12 лет

Сообщений: 198
Благодарностей: 42
Полезность: 169

Цитата(ChesterField @ 7.1.2016, 2:05) *
И да. экспериментируйте. Знания приходят с практикой.

Спасибо, завтра попробую сделать для 1 плагина )) В крайнем случае сервер будет падать )) Ничего критичного ))


Все что ни делается - делается к лучшему.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 6.1.2016, 23:02
Сообщение #10
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(simba @ 6.1.2016, 15:28) *
Плохо. Целый массив со 128 переменными ради 1 раз загружаемого файла.

Не учите людей глупостям. В данном случае это оптимальный вариант.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя simba
сообщение 6.1.2016, 23:23
Сообщение #11
Стаж: 11 лет

Сообщений: 132
Благодарностей: 45
Полезность: 236

Цитата(voed @ 6.1.2016, 23:57) *
Не учите людей глупостям. В данном случае это оптимальный вариант.


Оптимальный, это когда без создания новых переменных. На мой скромный взгляд.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 8.1.2016, 17:00
Сообщение #12
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(simba @ 6.1.2016, 23:18) *
Оптимальный, это когда без создания новых переменных. На мой скромный взгляд.

Без создания переменных программирование невозможно. Сэкономите пару байт памяти, не считывая директорию, и что это даст? Может стрельба лучше станет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 8.1.2016, 17:52
Сообщение #13
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

через exec конечно не самый правильный вариант. Я пользуюсь другим способом.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: