RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
zp_rank
Плагин не прошел проверку:
ни картинки ни описания
Создайте новую запись с устранением ошибок
zp_rank
Теги:
Скачать плагины cs
Серверные
Новый плагин который совместим с Lite translit
Компилятор: 1.8.2
1032
Команды:
Кваров и команд нет
.sma / .sp
#include < amxmodx > #include < amxmisc > #include < hamsandwich > #include < nvault > #include < sqlx > #define PLUGIN_NAME "[ZP] Rank system" #define PLUGIN_VERSION "1.2" #define PLUGIN_AUTHOR "OverGame" #define PLUGIN_LEVEL_MAX 5 #define PLUGIN_GIVE_EXP 1 // #define SAVE_MYSQL #define SAVE_nVAULT #define BONUS_CRETE #if defined SAVE_MYSQL #define MYSQL_HOST "127.0.0.1" #define MYSQL_USER "root" #define MYSQL_PASS "" #define MYSQL_DB "zp_rank" #endif #pragma tabsize 0 // native zp_get_user_zombie ( id ) enum _:udate { gLevel, gExp }; new const gRankNames[][] = { "Гражданский", "Гражданский", "Штабовой", "Опытный", "Крутой орешек", "Потрошитель" }; new const gLevels[] = { 0, 15, 30, 60, 100, 150 }; new UserData [ 33 ][ udate ] new UserSteam [ 33 ][ 35 ] #if defined SAVE_MYSQL new Handle:MYSQL_Tuple new Handle:MYSQL_Connect new SQL_Active, SQL_Player[33] #endif #if defined SAVE_nVAULT new gVault #endif new sMaxPlayers, sMsgHud public plugin_init ( ) { register_plugin ( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR ) #if defined BONUS_CRETE RegisterHam ( Ham_TakeDamage, "player", "event_takedamage" ) #endif register_event ( "DeathMsg", "event_death", "a" ) sMaxPlayers = get_maxplayers() sMsgHud = CreateHudSyncObj() #if defined SAVE_nVAULT gVault = nvault_open ( "zp_rank" ) if ( gVault == INVALID_HANDLE ) set_fail_state ( "Error opening nVault!" ) nvault_prune ( gVault, 0, get_systime ( ) - ( 86400 * 999 ) ) #endif #if defined SAVE_MYSQL set_task(1.0, "MYSQL_Load") #endif set_task ( 1.0, "function_informer", _, _, _, "b" ) } public plugin_natives() { register_native("zp_set_user_level", "native_zp_set_user_level", 1) register_native("zp_get_user_level", "native_zp_get_user_level", 1) } public native_zp_get_user_level ( id ) return UserData [ id ][ gLevel ] public native_zp_set_user_level ( id, num ) UserData [ id ][ gLevel ] = num #if defined BONUS_CRETE public event_takedamage ( iVictim, iWeapon, iAttacker, Float:damage, damagebits ) { if ( !is_user_alive ( iVictim ) || !is_user_alive ( iAttacker ) ) return if ( get_user_team ( iVictim ) != get_user_team ( iAttacker ) && iVictim != iAttacker && UserData [ iAttacker ][ gLevel ] > 3 ) { new iRand = random_num ( 0, 1 ) if ( iRand ) { SetHamParamFloat ( 4, damage * 5 ) message_begin( MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, iAttacker ) write_short( 1<<10 ) write_short( 1<<10 ) write_short( 0x0000 ) write_byte( 255 ) write_byte( 0 ) write_byte( 0 ) write_byte( 75 ) message_end( ) } } } #endif public plugin_end() { #if defined SAVE_nVAULT nvault_close ( gVault ) #endif } public client_authorized(id) { get_user_authid ( id, UserSteam [ id ], charsmax ( UserSteam [ ] ) ) } #if defined SAVE_MYSQL public MYSQL_Load() { new szError[512], szErr MYSQL_Tuple = SQL_MakeDbTuple(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB) MYSQL_Connect= SQL_Connect(MYSQL_Tuple, szErr, szError, charsmax(szError)) if(MYSQL_Connect == Empty_Handle) set_fail_state(szError) SQL_Active = true } #endif public client_putinserver ( id ) { #if defined SAVE_MYSQL set_task(1.0, "cmdCheckSql", id) #endif #if defined SAVE_nVAULT cmdCheckVault ( id ) #endif } public client_disconnect(id) { #if defined SAVE_MYSQL cmdSaveSql(id) #endif #if defined SAVE_nVAULT cmdSaveVault ( id ) #endif } public event_death ( ) { new iKiller = read_data ( 1 ) new iVictim = read_data ( 2 ) // if ( zp_get_user_zombie ( iKiller ) ) return PLUGIN_HANDLED if ( !is_user_alive ( iKiller ) ) return PLUGIN_HANDLED if ( UserData [ iKiller ][ gLevel ] == PLUGIN_LEVEL_MAX ) return PLUGIN_HANDLED if ( iKiller == iVictim ) return PLUGIN_HANDLED UserData [ iKiller ][ gExp ] += PLUGIN_GIVE_EXP check_level ( iKiller ) return PLUGIN_CONTINUE } #if defined SAVE_MYSQL public cmdCheckSql(id) { if (!SQL_Active) { set_task(1.0, "MYSQL_Load", id) } new szError[512] new szMYSQLName[35] new Handle:szSelect szSelect = SQL_PrepareQuery(MYSQL_Connect, "SELECT * FROM zp_rank") if(!SQL_Execute(szSelect)) { SQL_QueryError(szSelect, szError, charsmax(szError)) set_fail_state(szError) } while(SQL_MoreResults(szSelect)) { SQL_ReadResult(szSelect, 1, szMYSQLName, charsmax(szMYSQLName)) if (equal(szMYSQLName, UserSteam[id])) { UserData[id][gLevel] = SQL_ReadResult(szSelect, 3) UserData[id][gExp] = SQL_ReadResult(szSelect, 4) SQL_Player[id] = true break }else{ SQL_NextRow(szSelect) } } new szName[33] get_user_name(id, szName, charsmax(szName)) if(!SQL_Player[id]) { new Handle:szInsert szInsert = SQL_PrepareQuery(MYSQL_Connect, "INSERT INTO `zp_rank` (`steam`, `nick`, `level`, `exp`) VALUES ('%s', '%s', '0', '0');", UserSteam[id], szName) if(!SQL_Execute(szInsert)) { SQL_QueryError(szInsert, szError, charsmax(szError)) set_fail_state(szError) } SQL_Player[id] = true } } public cmdSaveSql(id) { new szError[512] new Handle:szUpdate szUpdate = SQL_PrepareQuery(MYSQL_Connect, "UPDATE `zp_rank` SET `level` = '%i', `exp` = '%i' WHERE `zp_rank`.`steam` = '%s';", UserData[id][gLevel], UserData[id][gExp], UserSteam[id]) if (!SQL_Execute(szUpdate)) { SQL_QueryError(szUpdate, szError, charsmax(szError)) set_fail_state(szError) } } #endif #if defined SAVE_nVAULT public cmdCheckVault ( id ) { new s_GetLvl[40], s_GetExp[40] formatex ( s_GetLvl, charsmax ( s_GetLvl ), "%sRANK", UserSteam [ id ] ) new s_Level = nvault_get ( gVault, s_GetLvl ) formatex ( s_GetExp, charsmax ( s_GetExp ), "%sEXP", UserSteam [ id ] ) new s_Exp = nvault_get ( gVault, s_GetExp ) if ( s_Level ) { UserData [ id ][ gLevel ] = s_Level UserData [ id ][ gExp ] = s_Exp } else { cmdSaveVault ( id ) } } public cmdSaveVault ( id ) { new s_SaveLvl[40], s_SaveExp[40], s_Level[64], s_Exp[64] formatex ( s_SaveLvl, charsmax ( s_SaveLvl ), "%sRANK", UserSteam[ id ] ) formatex ( s_Level, charsmax ( s_Level ), "%d", UserData[id][gLevel]) formatex ( s_SaveExp, charsmax(s_SaveExp) , "%sEXP", UserSteam[id]) formatex ( s_Exp, charsmax(s_Exp), "%d", UserData[id][gExp]) nvault_set ( gVault, s_SaveLvl, s_Level ) nvault_set ( gVault, s_SaveExp, s_Exp ) } #endif public check_level ( id ) { if ( UserData [ id ][ gLevel ] <= 0 ) UserData [ id ][ gLevel ] = 1 if ( UserData [ id ][ gExp ] < 0 ) UserData [ id ][ gExp ] = 0 while ( UserData [ id ][ gExp ] >= gLevels [ UserData [ id ][ gLevel ] ] ) { UserData [ id ][ gLevel ]++ static buffer [ 192 ] new szName [ 33 ], low_lvl get_user_name ( id, szName, 32 ) low_lvl = UserData [ id ][ gLevel ] - 1 format ( buffer, charsmax ( buffer ), "!g[!t ZP Rank !g]!t %s!y больше не!t %s!y, теперь он!t %s!y!", szName, gRankNames [ low_lvl ], gRankNames [ UserData [ id ][ gLevel ] ] ) ShowMsg ( 0, buffer ) } } public function_informer ( ) { for ( new id = 0; id <= sMaxPlayers; id++ ) { if ( !is_user_bot ( id ) && is_user_connected ( id ) ) // && !zp_get_user_zombie ( id ) { static buffer [ 192 ], len set_hudmessage ( 255, 255, 255, 0.01, 0.9, 0, 15.0, 1.0, _, _, -1 ) len = format ( buffer, charsmax( buffer ), "[ Титул : %s | Уровень : %d ]", gRankNames [ UserData [ id ][ gLevel ] ], UserData [ id ][ gLevel ] ) #if defined BONUS_CRETE if ( UserData [ id ][ gLevel ] < PLUGIN_LEVEL_MAX ) { len += format ( buffer [ len ], charsmax ( buffer ) - len, "^n[ Уважение : %d |", UserData [ id ][ gExp ] ) } else { len += format ( buffer [ len ], charsmax ( buffer ) - len, "^n[ Максимальное уважение |" ) } if ( UserData [ id ][ gLevel ] > 3 ) { len += format ( buffer [ len ], charsmax ( buffer ) - len, " Крит : Доступен ]" ) } else { len += format ( buffer [ len ], charsmax ( buffer ) - len, " Крит : Нету ]" ) } #elseif if ( UserData [ id ][ gLevel ] < PLUGIN_LEVEL_MAX ) { len += format ( buffer [ len ], charsmax ( buffer ) - len, "^n[ Уважение : %d ]", UserData [ id ][ gExp ] ) } else { len += format ( buffer [ len ], charsmax ( buffer ) - len, "^n[ Максимальное уважение ]" ) } #endif ShowSyncHudMsg ( id, sMsgHud, buffer ) } } return PLUGIN_CONTINUE } stock ShowMsg ( const id, const input[ ], any:... ) { new count = 1, players [ 32 ] static msg [ 188 ] vformat ( msg, 187, input, 3 ) replace_all ( msg, 187, "!g", "^4" ) replace_all ( msg, 187, "!y", "^1" ) replace_all ( msg, 187, "!t", "^3" ) if ( id ) players [ 0 ] = id; else get_players ( players, count, "ch" ) { for ( new i = 0; i < count; i++ ) { if ( is_user_connected ( players [ i ] ) ) { message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "SayText" ), _, players [ i ] ) write_byte ( players[ i ] ) write_string ( msg ) message_end ( ) } } } }
Отправить
Загрузил
SNoKi
2020-04-01 09:45:52
0
23
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2024 Хостинг игровых серверов