Конвар в название БД (строку)

gm0

Участник
Сообщения
73
Реакции
3
Подскажите, пожалуйста, как преобразовать строковое значение конвара в имя БД?

C-подобный:
g_hStatsDb = SQL_Connect("ИМЯ БД", false, sError, sizeof(sError));


Если я сделаю так, это будет правильно?

C-подобный:
g_hStatsDb = SQL_Connect(SetConVarString("sm_myDB"), false, sError, sizeof(sError));
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Правильно будет:
C-подобный:
char szDatabaseConnection[24];
FindConVar("sm_myDB").GetString(szDatabaseConnection, sizeof(szDatabaseConnection));

g_hStatsDb = SQL_Connect(szDatabaseConnection, false, sError, sizeof(sError));
Но конвара должна существовать. Если нужно её создать - нужно предварительно дёрнуть метод CreateConVar().
 

gm0

Участник
Сообщения
73
Реакции
3
Правильно будет:
C-подобный:
char szDatabaseConnection[24];
FindConVar("sm_myDB").GetString(szDatabaseConnection, sizeof(szDatabaseConnection));

g_hStatsDb = SQL_Connect(szDatabaseConnection, false, sError, sizeof(sError));
Но конвара должна существовать. Если нужно её создать - нужно предварительно дёрнуть метод CreateConVar().
Это само собой. Вопрос в другом. Правильно ли я расставил знаки? И вообще, присвоение верно? Конвар создан заранее, естественно
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #4
Расставили правильно, но функция не возвращает строку. Она её пишет в буфер, потому будет правильно так, как я написал выше.
 
  • Мне нравится
Реакции: gm0

gm0

Участник
Сообщения
73
Реакции
3
А всё, увидел. Неправильно прочёл твой пост, прошу прощения. Сейчас попробую, отрапортую через пару минут
Сообщения автоматически склеены:

Расставили правильно, но функция не возвращает строку. Она её пишет в буфер, потому будет правильно так, как я написал выше.
Слуш, а у тебя дискорд есть? Я вроде как объявляю конвар, а при компиляции пишет, что он нигде не используется..
 
Последнее редактирование:

gm0

Участник
Сообщения
73
Реакции
3
Если ты переменной типа ConVar задал значение с помощью RegConVar, то тебе FindConVar не нужен. Используй переменную...
Ладно. Тут проблема исходит из проблемы :) Сейчас опишу, как я сделал:
Мне нужно, чтобы я в конфиге мог менять название базы данных (к примеру, в разных ситуациях, чтобы я мог использовать разные БД).

В самом начале кода, там где идет подключение библиотек и тд:
C-подобный:
ConVar cvar_rankme_DB;

Дальше в функции
C-подобный:
public void DB_Connect(bool firstload) {

Я пишу следующее:

C-подобный:
cvar_rankme_DB = CreateConVar("sm_rankme_DB", "arena1x1", "Название базы данных");
AutoExecConfig(true, "rankme_DB", "sourcemod/kento_rankme");

char szDatabaseConnection[24];
FindConVar("sm_rankme_DB").GetString(szDatabaseConnection, sizeof(szDatabaseConnection));

g_hStatsDb = SQL_Connect(szDatabaseConnection, false, sError, sizeof(sError));


Я немного еще не могу пока вкурить.
 

gm0

Участник
Сообщения
73
Реакции
3
1595778176052.png


Конфиг не хочет генерить
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Создавать ради этого значения консольную переменную нет никакого смысла.
 

gm0

Участник
Сообщения
73
Реакции
3
Создавать ради этого значения консольную переменную нет никакого смысла.
Ты же не знаешь, для чего я это делаю. Имеет огромный смысл в моей ситуации. Либо переписывать под каждый сервер код, компилить и перетаскивать плагин, либо просто в конфиге одну строчку изменить.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #12
Конфиг не хочет генерить
Он сам и не будет генерить. Для этого нужно отдельную функцию вызвать, AutoExecConfig() вроде называется. Но заранее предупреждаю, что там лучше не использовать буквы верхнего регистра.

Слуш, а у тебя дискорд есть?
Есть, но я в него толком не захожу.
 

gm0

Участник
Сообщения
73
Реакции
3
Ну, там вроде и было так написано. В том коде уже была строка по генерации конфига. Только там через отдельный файлик сделаны все конвары для плагина. Пришлось по тому же принципу делать, хуки конваров и тд. Всё отлично работает, спасибо за помощь, ребят, вы лучшие!
 
Сверху Снизу