
Стаж: 10 лет
Город: Иваново
Сообщений: 693
Благодарностей: 139
Полезность: 79
|
Привязка SteamID К панели Greyko И так, дополнение предназначено для выдачи какаих либо бонусов на сервере , за регистрацию на сайте . Работает оно через плагин csstats_sql от "serfreeman1337" . Палгин пишет игроков в статистику. Человек побывавший на сервере , заходит на сайт , проверяеться его ip в базе , если есть то водит ему данные steamID , name. Для более удобного использования, оно было привязано к модулю csstats в greypanel , то есть что бы все работало нужно заполнить данные в админке ... Код #include <amxmodx> #include <sqlx> #include <dhudmessage> #define HOST "" #define USER "" #define PASSWD "" #define DB ""
#define PREFIX_TABLE "grey_"
// Бонусный флаг #define BONUS_FLAG ADMIN_LEVEL_G // Флаг s . Если >1 флага то прописывать через |
new Handle:g_SqlTuple; new data[2];
public plugin_init(){ register_plugin("RegBonus", "0.1", "7RG"); g_SqlTuple = SQL_MakeDbTuple(HOST, USER, PASSWD, DB); }
public plugin_end() SQL_FreeHandle(g_SqlTuple);
public client_putinserver(id){ if(is_user_bot(id) || is_user_hltv(id)) return; static steamid[25]; get_user_authid(id, steamid, charsmax(steamid)); static query[512]; formatex(query, charsmax(query), "SELECT `id` FROM `%susers` WHERE `steam` = '%s'",PREFIX_TABLE , steamid); data[0] = id; data[1] = get_user_userid(id); SQL_ThreadQuery(g_SqlTuple, "sqlConnectHandler", query, data, sizeof(data)); }
public sqlConnectHandler(failstate, Handle:query, err[], errcode, data[], datasize){ switch(failstate){ case TQUERY_CONNECT_FAILED:{ log_amx("MySQL connection failed"); log_amx("[ %d ] %s",errcode, err); log_amx("Query state: %d", data[0]); return PLUGIN_CONTINUE; } case TQUERY_QUERY_FAILED:{ log_amx("MySQL query failed"); log_amx("[ %d ] %s", errcode, err); log_amx("Query state: %d", data[0]); return PLUGIN_CONTINUE; } } if(is_user_connected(data[0]) && get_user_userid(data[0]) == data[1]){ if(SQL_NumResults(query)) addUserFlag(data[0]); else set_task(2.0, "dhudShow", data[0], _, _, "b"); } return PLUGIN_CONTINUE; }
public addUserFlag(id) set_user_flags(id, get_user_flags(id)|BONUS_FLAG);
public dhudShow(id){ if(!is_user_alive(id)){ set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), -1.0, 0.85, 0, 1.0, 2.0, 0.0, 0.0); show_dhudmessage(id, "Регистрируйся на world-of-cs.ru . Вип в подарок"); } } Код <? function getIp(){ if($_SERVER['HTTP_X_FORWARDED_FOR'] != ''){ $client_ip = (!empty($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : ((!empty($_ENV['REMOTE_ADDR'])) ? $_ENV['REMOTE_ADDR'] : "unknown"); $entries = preg_split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']); reset($entries); while (list(, $entry) = each($entries)){ $entry = trim($entry); if(preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list)){ $private_ip = array('/^0\./', '/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/', '/^10\..*/'); $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); if($client_ip != $found_ip){ $client_ip = $found_ip; break; } } } } else $client_ip = (!empty($_SERVER['REMOTE_ADDR'])) ? $_SERVER['REMOTE_ADDR'] : ((!empty($_ENV['REMOTE_ADDR'])) ? $_ENV['REMOTE_ADDR'] : "unknown"); return $client_ip; } $stats = setting::select(); $sql = new DataBase($stats['CSSTATS_IP_ADRES'], $stats['CSSTATS_DB_USER'], $stats['CSSTATS_DB_PASSWORD'], $stats['CSSTATS_DB'], $stats['CSSTATS_PREFIX'], $stats['CSSTATS_CODIROVKA']);
$data = $sql->select($stats['CSSTATS_TABLE'], ['steamid', 'name'], ['ip' => getIp()])[0]; ?> <?php if($data) { echo "<code>На сервере найден ваш SteamID</code>"; } else { echo "<code>Для привязки steamId зайди на сервер </code>"; } ?> По поводу дизайна . Инересен ли кому? Стоит выкладывать его сюда*?
Отредактировал: cs7RG, - 20.8.2018, 6:54

Помог ? Нажми спасибку »
|