Кавычки в конфиге

leon97leon

Участник
Сообщения
75
Реакции
9
У меня в конфиге нужно прописать команду: Так нельзя "command" "sm_addvip "{clientAuth}" "Silver" "1209600"" а так не работает:
C-подобный:
"command"                "sm_addvip \"{clientAuth}\" \"Silver\" \"1209600\""
Читается так:
C-подобный:
Kv.GetString("command", sText[0], 64);
Прошу помощи. Сам не знаток
 
Решение
Да,но випка не принимает команду без кавычек, кавычки обязательны
Кавычки принудительно вставляются в коде выше:
C-подобный:
Format(steamid, sizeof(steamid), "\"%s\"", steamid);
//
Format(name, sizeof(name), "\"%s\"", name);

DarklSide

Участник
Сообщения
931
Реакции
468
Если KeyValues не позволяет читать кавычки в значениях, попробуйте вставить их вручную
C-подобный:
Kv.GetString("command", sText[0], sizeof(sText[]));
char steamid[32];
GetClientAuthId(client, AuthId_Engine, steamid, sizeof(steamid));
Format(steamid, sizeof(steamid), "\"%s\"", steamid);
ReplaceString(sText[0], sizeof(sText[]), "{clientAuth}", steamid, false);
// "command" "sm_addvip {clientAuth} Silver 1209600"
 

leon97leon

Участник
Сообщения
75
Реакции
9
Если KeyValues не позволяет читать кавычки в значениях, попробуйте вставить их вручную
C-подобный:
Kv.GetString("command", sText[0], sizeof(sText[]));
char steamid[32];
GetClientAuthId(client, AuthId_Engine, steamid, sizeof(steamid));
Format(steamid, sizeof(steamid), "\"%s\"", steamid);
ReplaceString(sText[0], sizeof(sText[]), "{clientAuth}", steamid, false);
// "command" "sm_addvip {clientAuth} Silver 1209600"
проблема в том что у меня в конфиге много команд, не только эта.
Сообщения автоматически склеены:

Вот так можно сделать?
C-подобный:
Kv.GetString("command", sText[0], 64);
        if sText[0] == "sm_addvip"
        {
        sText[0] = "sm_addvip \"{clientAuth}\" \"Silver\" \"1209600\"";
        }
Сообщения автоматически склеены:

Если KeyValues не позволяет читать кавычки в значениях, попробуйте вставить их вручную
C-подобный:
Kv.GetString("command", sText[0], sizeof(sText[]));
char steamid[32];
GetClientAuthId(client, AuthId_Engine, steamid, sizeof(steamid));
Format(steamid, sizeof(steamid), "\"%s\"", steamid);
ReplaceString(sText[0], sizeof(sText[]), "{clientAuth}", steamid, false);
// "command" "sm_addvip {clientAuth} Silver 1209600"
это уже сделано, просто в переменную помещается не все содержимое а до первой кавычки
 
Последнее редактирование:

DarklSide

Участник
Сообщения
931
Реакции
468
проблема в том что у меня в конфиге много команд, не только эта.
Это для псевдонима {clientAuth}, а не для конкретной команды.
Так же кавычки нужны и для ника, если в нем будет пробел:
C-подобный:
char name[32];
GetClientName(client, name, sizeof(name));
Format(name, sizeof(name), "\"%s\"", name);
ReplaceString(sText[0], sizeof(sText[]), "{clientName}", name, false);
// "command" "sm_addvip {clientName} Silver 1209600"
// "command" "sm_slay {clientName}"
Если псевдоним для ника уже существует, заменить {clientName} на него.
 

leon97leon

Участник
Сообщения
75
Реакции
9
Это для псевдонима {clientAuth}, а не для конкретной команды.
Так же кавычки нужны и для ника, если в нем будет пробел:
C-подобный:
char name[32];
GetClientName(client, name, sizeof(name));
Format(name, sizeof(name), "\"%s\"", name);
ReplaceString(sText[0], sizeof(sText[]), "{clientName}", name, false);
// "command" "sm_addvip {clientName} Silver 1209600"
// "command" "sm_slay {clientName}"
Да,но випка не принимает команду без кавычек, кавычки обязательны
 

DarklSide

Участник
Сообщения
931
Реакции
468
Да,но випка не принимает команду без кавычек, кавычки обязательны
Кавычки принудительно вставляются в коде выше:
C-подобный:
Format(steamid, sizeof(steamid), "\"%s\"", steamid);
//
Format(name, sizeof(name), "\"%s\"", name);
 
Решение
Сверху Снизу