KiKiEEKi
🏆 🥇
- Сообщения
- 653
- Реакции
- 513
Здравствуйте, хочу сделать легкий чат бот, но не могу получить строку, только целые числа.
Реализация в плагине Simple Chatter Bot не нравится.
Хочу по ключу получить строковое значение.
Реализация в плагине Simple Chatter Bot не нравится.
Хочу по ключу получить строковое значение.
C-подобный:
#pragma semicolon 1
ArrayList hVopros, hOtvet;
public void OnPluginStart()
{
HookEvent("player_say", player_say);
char szPath[256];
BuildPath(Path_SM, szPath, sizeof(szPath), "data/botforchat.ini"); // Формируем путь к файлу
KeyValues hKeyValues = new KeyValues("botforchat");
if(!(hKeyValues.ImportFromFile(szPath))) SetFailState("Не удалось загрузить файл конфигурации '%s'.", szPath); // Загружаем из файла
hVopros = new ArrayList(ByteCountToCells(256));
hOtvet = new ArrayList();
if(hKeyValues.GotoFirstSubKey(false))
{
do
{
if(hKeyValues.GetSectionName(szPath, sizeof(szPath)))
{
hVopros.PushString(szPath);
hOtvet.Push(hKeyValues.GetNum(NULL_STRING));
// hOtvet.PushString(hKeyValues.GetString(NULL_STRING)); // Не работает, ошибка
}
}
while(hKeyValues.GotoNextKey(false));
}
delete hKeyValues;
if(!hVopros.Length)
{
delete hVopros;
delete hOtvet;
}
}
public void player_say(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
int iClient = GetClientOfUserId(hEvent.GetInt("userid"));
char text[256];
GetEventString(hEvent, "text", text, sizeof(text));
char iNum;
if((iNum = hVopros.FindString(text)) != -1)
{
PrintToChat(iClient, "%s |", hOtvet.GetString(iNum, text, sizeof(text))); //Не отображается не чего кроме |
PrintToChat(iClient, "%d |", hOtvet.Get(iNum)); //Отображает число
}
}