public void SQL_Callback_SelectClient3(Database hDatabase, DBResultSet hResults3, const char[] sError, any iUserID)
{
if(sError[0]) // Если произошла ошибка
{
LogError("SQL_Callback_SelectClient: %s", sError); // Выводим в лог
return; // Прекращаем выполнение ф-и
}
int iClient = GetClientOfUserId(iUserID);
if(iClient)
{
char szQuery3[2048], szName[MAX_NAME_LENGTH*2+1];
GetClientName(iClient, szQuery3, MAX_NAME_LENGTH);
g_hDatabase.Escape(szQuery3, szName, sizeof(szName)); // Экранируем запрещенные символы в имени
// Игрок всё еще на сервере
if(hResults3.FetchRow()) // Игрок есть в базе
{
// Получаем значения из результата
char sTest[2048];
hResults3.FetchString(0, sTest, sizeof(sTest));
g_aArrayList[iClient] = new ArrayList(ByteCountToCells(sizeof sTest));
char sTest2[sizeof sTest][2048];
if ((g_iTest[iClient] = ExplodeString(sTest, ",", sTest2, sizeof sTest, sizeof sTest2[])) > 0)
{
PrintToServer("Stroka razbita na %i novih.", g_iTest[iClient]);
for (int i = 0; i < g_iTest[iClient]; i++)
{
g_aArrayList[iClient].PushString(sTest2[i]);
PrintToServer("%i - %s", i, sTest2[i]);
}
}
}
else
{
char sTest[2048] = "100,1,10,10,10,101,1,10,10,10";
FormatEx(sTest, sizeof sTest, "%s", sTest);
g_aArrayList[iClient] = new ArrayList(ByteCountToCells(sizeof sTest));
char sTest2[sizeof sTest][2048];
if ((g_iTest[iClient] = ExplodeString(sTest, ",", sTest2, sizeof sTest, sizeof sTest2[])) > 0)
{
PrintToServer("Stroka razbita na %i novih.", g_iTest[iClient]);
for (int i = 0; i < g_iTest[iClient]; i++)
{
g_aArrayList[iClient].PushString(sTest2[i]);
PrintToServer("%i - %s", i, sTest2[i]);
}
}
// Добавляем игрока в базу
char szAuth[64];
GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth));
FormatEx(szQuery3, sizeof(szQuery3), "INSERT INTO `inventory` (`auth`, `item_id`) VALUES ('%s', '%s');", szAuth, sTest);
g_hDatabase.Query(SQL_Callback_CreateClient, szQuery3, GetClientUserId(iClient));
LogToFile("asd.txt","%N -> db table 3", iClient);
}
}
}