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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Прикрепить army ranks к базе данных

Статус пользователя SiberWolf
сообщение 20.8.2016, 9:30
Сообщение #1
Стаж: 10 лет

Сообщений: 65
Благодарностей: 15
Полезность: 179

В название темы понятно,что мне нужно прикрепить статистику army ranks к базе данных,так как с большим количеством данных, сервер стал долго менять карту.Сам я в этом профан,по этому готов заплатить человеку который это сделает за меня.Оставляйте свои данные я сам вас добавлю.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ssx
сообщение 20.8.2016, 9:39
Сообщение #2


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(SiberWolf @ 20.8.2016, 10:30) *
В название темы понятно,что мне нужно прикрепить статистику army ranks к базе данных,так как с большим количеством данных, сервер стал долго менять карту.Сам я в этом профан,по этому готов заплатить человеку который это сделает за меня.Оставляйте свои данные я сам вас добавлю.


1. Сохраняй по стим_ид
2. Не сохраняй ботов и(или) тех у кого меньше n опыта
3. Используй ThreadQuery что бы сервер не ступорился в ожидании ответа от БД
4. К пункту №2 относится - не регистрируй игрока при заходе на сервер.
5. Создай еще одну колонку в БД "timestamp" что бы потом sql запросом удалять всех кто не играл n времени.

Таким образом у меня всегда чистая и актуальная база армиранк.

Отредактировал: ssx, - 20.8.2016, 9:40


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя georgeml
сообщение 20.8.2016, 9:39
Сообщение #3
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

Цитата(SiberWolf @ 20.8.2016, 17:30) *
В название темы понятно,что мне нужно прикрепить статистику army ranks к базе данных,так как с большим количеством данных, сервер стал долго менять карту.Сам я в этом профан,по этому готов заплатить человеку который это сделает за меня.Оставляйте свои данные я сам вас добавлю.

Так и будете за пустяки деньги платить... Пишите, что не получается или что не понимаете..
Берете данные от БД, если она есть, вписываете в конфиг..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 20.8.2016, 9:52
Сообщение #4


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

переделал под армиранк со своего другого плагина:

Код:
//							MySQL
public plugin_cfg()
set_task(1.0, "Load_Debug")

public Load_Debug()
{
new g_Error[512]
SQL_Tuple = SQL_MakeDbTuple(Host, User, Pass, Db);
new ErrorCode,Handle:SqlConnection = SQL_Connect(SQL_Tuple,ErrorCode,g_Error,charsmax(g_Error))

if(SqlConnection == Empty_Handle)
set_fail_state(g_Error)

// Будем вручную в БД создавать.
// if(!SQL_TableExists(SqlConnection, Table))
// {
// new Handle:Queries;
// new Query[512]
// format( Query, 255, "CREATE TABLE `%s`.`%s` (`%s` VARCHAR(40) CHARACTER SET cp1250 COLLATE cp1250_general_ci NOT NULL, `%s` INT NOT NULL, PRIMARY KEY (`%s`))", Db, Table, steam_id, knife_id);
// Queries = SQL_PrepareQuery( SqlConnection, Query )

// if(!SQL_Execute(Queries))
// {
// SQL_QueryError(Queries,g_Error,charsmax(g_Error))
// set_fail_state(g_Error);
// }

// SQL_FreeHandle(Queries)
// }

SQL_FreeHandle(SqlConnection)
}

public QueryHandler(FailState, Handle:Query, Error[], ErrCode, data[], size, Float:querytime)
{

if(!CheckQuery(FailState, ErrCode, Error))
{
SQL_FreeHandle(Query);
return PLUGIN_HANDLED;
}

static id; id = data[0];

if(SQL_NumResults(Query) < 1)
{
// тут типа регистрация должна быть но она не тут
}
else
{
LEVEL[id] = SQL_ReadResult(Query, 0)
EXPERIENCE[id] = SQL_ReadResult(Query, 1)
registered[id] = 1
}

SQL_FreeHandle(Query);

return PLUGIN_CONTINUE;
}

public client_putinserver( id )
{
if(!is_user_connected(id))
return;

if(is_user_bot(id))
{
LEVEL[id] = 4
EXPERIENCE[id] = random_num(2000,6000)
}
else
{
new szSteam[33]
get_user_authid(id,szSteam,32);

new Query[512]
static data[1]; data[0]=id
format( Query, 511, "SELECT level, expa FROM armyrank WHERE steam_id = '%s'", szSteam );

SQL_ThreadQueryFormat(SQL_Tuple,"QueryHandler", Query, data, 1 )
}
}

public client_disconnect(id)
{
if(is_user_bot(id))
return;

if( registered[id] != 1 && EXPERIENCE[id] > 50)
{
new szSteam[33]
get_user_authid(id,szSteam,32)

SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "INSERT INTO armyrank ( steam_id , level , expa ) VALUES ('%s', '%d', '%d');", szSteam, LEVEL[id], EXPERIENCE[id]);
}
else if (registered[id] == 1)
{
new szSteam[33]
get_user_authid(id,szSteam,32)

SQL_ThreadQueryFormatNoData(SQL_Tuple, "IgnoreHandle", "UPDATE armyrank SET level = '%d', expa = '%d' WHERE steam_id = '%s'", LEVEL[id], EXPERIENCE[id], szSteam);
}

LEVEL[id] = 0
EXPERIENCE[id] = 0
registered[id] = 0
}

public IgnoreHandle(FailState,Handle:Query,Error[],ErrCode,Data[],DataSize)
{
CheckQuery(FailState, ErrCode, Error)

SQL_FreeHandle(Query)

return PLUGIN_HANDLED
}


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя SiberWolf
сообщение 20.8.2016, 9:55
Сообщение #5
Стаж: 10 лет

Сообщений: 65
Благодарностей: 15
Полезность: 179

ssx, Можете добавить меня в скайпе или в icq, для более детального объяснения ?

Отредактировал: SiberWolf, - 20.8.2016, 9:56
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 20.8.2016, 10:02
Сообщение #6


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(SiberWolf @ 20.8.2016, 10:55) *
ssx, Можете добавить меня в скайпе или в icq, для более детального объяснения ?

Не могу. Что не ясно - спрашивай. Притом я не гуру скриптер и нужны еще советы от умнее если что не правильно делаю.

П.С. timestamp в этот код не добавлен .. его не сложно реализовать:
Код:
		new g_sys_time
g_sys_time = get_systime()


записывает в UNIX формате времени. Поэтому для расшифровки я пользуюсь онлайн конвертером Unix timestamp to Readable Date/time


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 20.8.2016, 19:10
Сообщение #7


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Разобрались с ТС в скайпе.

1. У него AES
2.
Код
aes_sql_maxfail "10"
aes_sql_driver "mysql"

Не понятно зачем если все же используется sqlite (запись в .ini файл)
3. aes_db_prune_days "0"
4. В файле статистики более 96 тысячь записей О_о



[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: