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

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

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

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

dle регистрация ника

Статус пользователя empy
сообщение 2.5.2012, 9:41
Сообщение #1
Стаж: 18 лет

Сообщений: 219
Благодарностей: 10
Полезность: < 0

есть плагин который позволяет с помощью сайта на DLE зарегистрирывать свой ник на сервере

в плагине как мне кажется есть проблема
создается куча соединений с БД (в MYSQL в процес листе после часа игры может висеть по 200 процесов) и иногда появляется соовбщение в логах, что Много соединений с БД и соответственно отключается amxbans и вармод (использующий базу данных для сохранение XP) установленный на сервере


код плагина



#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <colorchat>


#define PLUGIN "DLE authorization"
#define VERSION "1.0b"
#define AUTHOR "Flazher"

new const NAME_REGISTERED[] = "[This name is registered]"

new Handle:g_SQL, s_name[33], g_Error[512], u_pass[512], ErrorCode, host[257], user[33], pass[129], db[33], prefix[8], site_url[129], onlyreg[2], enabled[2]

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_dictionary("dle_identification.txt")
register_cvar("dle_id_enable", "1")
register_cvar("dle_registeredonly", "0")
register_cvar("dle_host", "xx.xx.xx.xx")
register_cvar("dle_sql_user", "xxxxxx")
register_cvar("dle_sql_password", "xxxxxxx")
register_cvar("dle_database", "war3ft")
register_cvar("dle_table_prefix", "dle_")
register_cvar("dle_url", "http://xxxxxx.ru")



//Аттеншн, быдлокодинг! ><
get_cvar_string("dle_id_enable", enabled, 2)
get_cvar_string("dle_registeredonly", onlyreg, 2)
get_cvar_string("dle_host", host, 256)
get_cvar_string("dle_sql_user", user, 32)
get_cvar_string("dle_sql_password", pass, 128)
get_cvar_string("dle_database", db, 32)
get_cvar_string("dle_table_prefix", prefix, 8)
get_cvar_string("dle_url", site_url, 128)
if(str_to_num(enabled) == 0) {
return PLUGIN_HANDLED
}

g_SQL = SQL_MakeDbTuple(host, user, pass, db)
return PLUGIN_CONTINUE
}

public client_putinserver(id) {
set_task(0.5, "check_usr", id)
set_task(15.0, "write_warning",id)
return PLUGIN_CONTINUE
}

public client_infochanged(id) {
set_task(0.5, "check_usr", id)
return PLUGIN_CONTINUE
}


public check_usr(id) {
new Handle:g_SQL_c = SQL_Connect(g_SQL,ErrorCode,g_Error,511)
if(g_SQL_c == Empty_Handle) {
set_fail_state(g_Error)
return PLUGIN_HANDLED
}
get_user_name(id, s_name, charsmax(s_name))
get_user_info(id, "_war_pw", u_pass, 511)
new Handle:select_user_w_p = SQL_PrepareQuery(g_SQL_c,"SELECT * FROM %susers WHERE password LIKE md5(md5('%s')) AND name LIKE '%s' LIMIT 1", prefix, u_pass, s_name)
new Handle:select_user = SQL_PrepareQuery(g_SQL_c,"SELECT * FROM %susers WHERE name LIKE '%s'", prefix, s_name)
SQL_Execute(select_user_w_p)
SQL_Execute(select_user)


if(str_to_num(onlyreg) == 0) {
if(SQL_NumResults(select_user_w_p) != 1 && SQL_NumResults(select_user) > 0) {
ColorChat(id, RED, "[Fragrange.ru] ^4Этот ник уже кем-то занят! ^1Укажите другой!")
client_print(id, print_console, "----------------")
client_print(id, print_console, "----------------")
client_print(id, print_console, "----------------")
client_print(id, print_console, "Этот ник уже занят. Укажите другой!")
client_print(id, print_console, "Зарегистрируй свой ник на сайте")
client_print(id, print_console, "----------------")
client_print(id, print_console, "----------------")
client_print(id, print_console, "----------------")
client_cmd(id, "name ^"%s^"", NAME_REGISTERED)
}
}
return PLUGIN_CONTINUE
}

public write_warning(id) {

client_print(id, print_console, "----------------------------------------------------------------------------------------")
client_print(id, print_console, "----------------Регистрация ника на сервере-----------------------------")
client_print(id, print_console, "----------------------------------------------------------------------------------------")
client_print(id, print_console, "Ha cepBepe pa6oTaeT cucTema peгucTpaцuu HukoB!")
client_print(id, print_console, "Для peгucтpaцuu Huka 3auдuTe Ha Наш CauT")
client_print(id, print_console, "Для Bxoдa Ha CepBep ucпoльзyuTe Baш логин u пароль yka3aHHый пpu peгucтpaцuu!")
client_print(id, print_console, "Для BBoдa пароля Ha6epuTe B KoHcoJIe setinfo ^"_war_pw^" ^"vash password^"")
client_print(id, print_console, "----------------------------------------------------------------------------------------")
client_print(id, print_console, "----------------------------------------------------------------------------------------")

}






помогите исправить
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: