Русское сообщество по скриптингу

Приставка в чате | Ошибка в цвете

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Приставка в чате | Ошибка в цвете

Сообщение NewKOD » 25 дек 2022, 15:30

Добрый день всем, делал приставку в чате и возникла ошибка.

Если писать через say_team то все нормально, а если через say то весь текст будет зеленый, помогите пожалуйста

Код: Выделить всё
public EVENT_MessageiMsgIDiDestiMsgENT ){
    new 
iPlayer get_msg_arg_int)
    
    if( !
is_user_connectediPlayer ) ) return PLUGIN_CONTINUE
    
    
new szTmp256 ], szTmp2256 ]
    
    
get_msg_arg_string2szTmpcharsmaxszTmp ) )
    
    new 
szQuery64 ]
    
    if( 
get_user_flagsiPlayer ) & ADMIN_KICK ){
        
formatexszQuerycharsmaxszQuery ), "^x04[Админ][%s]"RanksNameg_iRankiPlayer ] - ] )
    }else if( 
get_user_flagsiPlayer ) & ADMIN_LEVEL_H ){
        
formatexszQuerycharsmaxszQuery ), "^x04[Вип][%s]"RanksNameg_iRankiPlayer ] - ] )
    }else{
        
formatexszQuerycharsmaxszQuery ), "^x04[%s]"RanksNameg_iRankiPlayer ] - ] )
    }
    
    if( !
equalszTmp"$Cstrike_Chat_All) ){
        
addszTmp2charsmaxszTmp2 ), szQuery )
        
addszTmp2charsmaxszTmp2 ), " " )
        
addszTmp2charsmaxszTmp2 ), szTmp )
    }else{
        
addszTmp2charsmaxszTmp2 ), szQuery )
        
addszTmp2charsmaxszTmp2 ), szTmp )
    }
    
    
set_msg_arg_string2szTmp2 )
    
    return 
PLUGIN_CONTINUE


Спасибо
Аватара пользователя
NewKOD
 
Сообщения: 55
Зарегистрирован: 24 май 2022, 18:32
Благодарил (а): 17 раз.
Поблагодарили: 3 раз.
Языки программирования: Знаю amxx но слабо

Re: Приставка в чате | Ошибка в цвете

Сообщение [N][E][M][E][C] » 25 дек 2022, 18:40

"#Cstrike_Chat_CT", // Чат между игроками команды CT (Живые)
"#Cstrike_Chat_T", // Чат между игроками команды T (Живые)
"#Cstrike_Chat_CT_Dead", // Чат между игроками команды CT (Мертвые)
"#Cstrike_Chat_T_Dead", // Чат между игроками команды T (Мертвые)
"#Cstrike_Chat_Spec", // Чат между спекторами
"#Cstrike_Chat_All", // Чат живых (общий)
"#Cstrike_Chat_AllDead", // Чат мертвых (общий)
"#Cstrike_Chat_AllSpec" // Чат Всех спекторов


? - "$Cstrike_Chat_All"
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Приставка в чате | Ошибка в цвете

Сообщение NewKOD » 25 дек 2022, 21:08

Не помогло, исправил как Вы отметили, но все равно, если писать в чат(say) то и ник и сообщение зеленые
Аватара пользователя
NewKOD
 
Сообщения: 55
Зарегистрирован: 24 май 2022, 18:32
Благодарил (а): 17 раз.
Поблагодарили: 3 раз.
Языки программирования: Знаю amxx но слабо

Re: Приставка в чате | Ошибка в цвете

Сообщение [N][E][M][E][C] » 25 дек 2022, 21:18

скинь код, что бы посмотреть или я должен дописать сам этот огрызок?
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Приставка в чате | Ошибка в цвете

Сообщение NewKOD » 25 дек 2022, 22:29

Код: Выделить всё
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < ColorChat >
#include < fun >
#include < nvault >

#define MaxRanks 17

new const RanksNameMaxRanks ][] = { "Рядовой""Мл. Сержант""Сержант""Ст. Сержант""Старшина""Прапорщик""Ст. Прапорщик""Мл. Лейтенант""Лейтенант""Ст. Лейтенант""Капитан""Майор""Подполковник""Полковник""Генерал-Майор""Генерал-Лейтенант""Генерал-Полковник" }
new const 
RanksExpMaxRanks ] = { 12050100200250500650750900100020003000400050006000}
new const 
RanksBonusMaxRanks ][] = { "Нету""Нету""Flash""Flash""Flash+Smoke""Flash+Smoke""Flash+Smoke""Flash+Smoke""Flash+Smoke+HE""Flash+Smoke+HE+50AP""Flash+Smoke+HE+75AP""Flash+Smoke+HE+100AP""Flash+Smoke+HE+100AP+115HP""Flash+Smoke+HE+100AP+115HP""Flash+Smoke+HE+100AP+115HP+Deagle""Flash+Smoke+HE+150AP+115HP+Deagle""Flash+Smoke+HE+200AP+120HP+Deagle" }

new 
gNvault

new boolg_iCansave33 ]

new 
g_iRank33 ], g_iExp33 ]

new 
g_iMap32 ]

public 
plugin_natives(){
    
register_native"return_rank""native_return_rank")
    
register_native"set_user_rank""native_set_user_rank")
    
register_native"get_user_rank""native_get_user_rank")
    
register_native"set_user_exp""native_set_user_exp")
    
register_native"get_user_exp""native_get_user_exp")
}

public 
plugin_init(){
    
register_plugin"[NK] - Ranks System.""1.1""NewKOD" )
    
    
gNvault nvault_open"SaveRanksSystem" )
    
    
get_mapnameg_iMapcharsmaxg_iMap ) )
    
    
RegisterHamHam_Spawn"player""EVENT_Spawn")
    
RegisterHamHam_Killed"player""EVENT_Kill" )
    
    
register_clcmd"give_rank""cmd_giverank" )
    
register_clcmd"give_exp""cmd_giveexp" )
}

public 
client_putinserveriPlayer ){
    
g_iRankiPlayer ] = 1
    
    LoadDataPlayer
iPlayer )
}

public 
client_disconnectediPlayer ){
    if( 
g_iCansaveiPlayer ] ) SaveDataPlayeriPlayer )
}

public 
EVENT_SpawniPlayer ){
    if( !
equalig_iMap"$2000$" ) ){
        if( 
is_user_aliveiPlayer ) ){
            if( 
g_iRankiPlayer ] >= GiveItemIDiPlayer"weapon_flashbang" )
            if( 
g_iRankiPlayer ] >= GiveItemIDiPlayer"weapon_smokegrenade" )
            if( 
g_iRankiPlayer ] >= GiveItemIDiPlayer"weapon_hegrenade" )
            if( 
g_iRankiPlayer ] >= 10 set_user_armoriPlayer50 )
            if( 
g_iRankiPlayer ] >= 11 set_user_armoriPlayer75 )
            if( 
g_iRankiPlayer ] >= 12 set_user_armoriPlayer100 )
            if( 
g_iRankiPlayer ] >= 13 set_user_healthiPlayer115 )
            if( 
g_iRankiPlayer ] >= 14 set_user_healthiPlayer115 )
            if( 
g_iRankiPlayer ] >= 15 GiveItemIDiPlayer"weapon_deagle"30CSW_DEAGLE )
            if( 
g_iRankiPlayer ] >= 16 set_user_armoriPlayer150 )
            if( 
g_iRankiPlayer ] >= 17 ){
                
set_user_armoriPlayer200 )
                
set_user_healthiPlayer120 )
            }
        }
    }
    
    
set_task0.1"EVENT_HudMessage"iPlayer 777__"b" )
}

public 
EVENT_KilliVictimiAttacker ){
    if( !
is_user_aliveiAttacker ) || !is_user_connectediVictim ) ) return PLUGIN_HANDLED
    
    AddPlayerExp
iAttackerrandom_num1) )
    
    return 
PLUGIN_HANDLED
}

public 
EVENT_HudMessagetaskid ){
    new 
iPlayer taskid 777
    
    
if( g_iRankiPlayer ] == MaxRanks ){
        
set_hudmessage2552552550.00.2106.00.1 )
        
show_hudmessageiPlayer"Звание: [%s]^nОпыт: [MAX]"RanksNameg_iRankiPlayer ] - ] )
    }else{
        
set_hudmessage2552552550.00.2106.00.1 )
        
show_hudmessageiPlayer"Звание: [%s]^nОпыт: [%d/%d]"RanksNameg_iRankiPlayer ] - ], g_iExpiPlayer ], RanksExpg_iRankiPlayer ] - ] )
    }
}

public 
LoadDataPlayeriPlayer ){
    new 
szSteam35 ], szKeyRank40 ], szKeyExp40 ]
    
    
get_user_authidiPlayerszSteamcharsmaxszSteam ) )
    
    
formatszKeyRankcharsmaxszKeyRank ), "%s_rank"szSteam )
    
formatszKeyExpcharsmaxszKeyExp ), "%s_exp"szSteam )
    
    
g_iRankiPlayer ] = nvault_getgNvaultszKeyRank )
    
g_iExpiPlayer ] = nvault_getgNvaultszKeyExp )
    
    
g_iCansaveiPlayer ] = true
}

public 
SaveDataPlayeriPlayer ){
    new 
szSteam35 ], szKeyRank40 ], szKeyExp40 ], iRank32 ], iExp32 ]
    
    
get_user_authidiPlayerszSteamcharsmaxszSteam ) )
    
    
formatszKeyRankcharsmaxszKeyRank ), "%s_rank"szSteam )
    
formatszKeyExpcharsmaxszKeyExp ), "%s_exp"szSteam )
    
    
num_to_strg_iRankiPlayer ], iRankcharsmaxiRank ) )
    
num_to_strg_iExpiPlayer ], iExpcharsmaxiExp ) )
    
    
nvault_setgNvaultszKeyRankiRank )
    
nvault_setgNvaultszKeyExpiExp )
}

public 
cmd_giverankiPlayer ){
    new 
iArgsName32 ], iArgsQuantity32 ], iEnemy
    
    iArgsQuantity
iPlayer ] = 0
    
    read_argv
1iArgsNamecharsmaxiArgsName ) )
    
read_argv2iArgsQuantitycharsmaxiArgsQuantity ) )
    
    
iEnemy cmd_targetiPlayeriArgsNameCMDTARGET_NO_BOTS )
    
    if( !
iEnemy ) return PLUGIN_HANDLED
    
    
if( str_to_numiArgsQuantity ) > MaxRanks || str_to_numiArgsQuantity ) <= ){
        
client_printiPlayerprint_console"[Ошибка] ID: [%d] Звания не [Больше/Меньше] [%d/0] "iPlayerMaxRanks )
        
        return 
PLUGIN_HANDLED
    
}
    
    if( 
str_to_numiArgsQuantity ) != ){
        
g_iRankiEnemy ] = ( str_to_numiArgsQuantity ) - )
        
AddPlayerExpiEnemyRanksExpg_iRankiEnemy ] - ] )
        
        new 
iName32 ]
        
        
get_user_nameiEnemyiNamecharsmaxiName ) )
        
        
ColorChat0BLUE"^4[^3RanksSystem^4] ^1Создатель установил игроку ^4%s ^1Звание ^4[%s]"iNameRanksNameg_iRankiEnemy ] - ] )
    }
    
    return 
PLUGIN_HANDLED
}

public 
cmd_giveexpiPlayer ){
    new 
iArgsName32 ], iArgsQuantity32 ], iEnemy
    
    iArgsQuantity
iPlayer ] = 0
    
    read_argv
1iArgsNamecharsmaxiArgsName ) )
    
read_argv2iArgsQuantitycharsmaxiArgsQuantity ) )
    
    
iEnemy cmd_targetiPlayeriArgsNameCMDTARGET_NO_BOTS )
    
    if( !
iEnemy || equaliiArgsQuantity"0" ) ) return PLUGIN_HANDLED
    
    AddPlayerExp
iEnemystr_to_numiArgsQuantity ) )
    
    new 
iName32 ]
    
    
get_user_nameiEnemyiNamecharsmaxiName ) )
    
    
ColorChat0BLUE"^4[^3RanksSystem^4] ^1Создатель выдал игроку ^4%s ^1Опыт ^4[%d]"iNamestr_to_numiArgsQuantity ) )
    
    return 
PLUGIN_HANDLED
}

public 
native_return_rankiPlayer ) return RanksNameg_iRankiPlayer ] - ]
public 
native_set_user_rankiPlayeriNum g_iRankiPlayer ] = iNum
public native_get_user_rankiPlayeriNum ) return g_iRankiPlayer ]
public 
native_set_user_expiPlayeriNum g_iExpiPlayer ] = iNum
public native_get_user_expiPlayeriNum ) return g_iExpiPlayer ]

public 
EVENT_MessageiMsgIDiDestiMsgENT ){
    new 
iPlayer get_msg_arg_int)
    
    if( !
is_user_connectediPlayer ) ) return PLUGIN_CONTINUE
    
    
new szTmp256 ], szTmp2256 ]
    
    
get_msg_arg_string2szTmpcharsmaxszTmp ) )
    
    new 
szQuery64 ]
    
    if( 
get_user_flagsiPlayer ) & ADMIN_KICK ){
        
formatexszQuerycharsmaxszQuery ), "^x04[Админ][%s]"RanksNameg_iRankiPlayer ] - ] )
    }else if( 
get_user_flagsiPlayer ) & ADMIN_LEVEL_H ){
        
formatexszQuerycharsmaxszQuery ), "^x04[Вип][%s]"RanksNameg_iRankiPlayer ] - ] )
    }else{
        
formatexszQuerycharsmaxszQuery ), "^x04[%s]"RanksNameg_iRankiPlayer ] - ] )
    }
    
    if( !
equalszTmp"#Cstrike_Chat_All" ) ){
        
addszTmp2charsmaxszTmp2 ), szQuery )
        
addszTmp2charsmaxszTmp2 ), " " )
        
addszTmp2charsmaxszTmp2 ), szTmp )
    }else{
        
addszTmp2charsmaxszTmp2 ), szQuery )
        
addszTmp2charsmaxszTmp2 ), szTmp )
    }
    
    
set_msg_arg_string2szTmp2 )
    
    return 
PLUGIN_CONTINUE
}

public 
plugin_end() nvault_closegNvault )

stock GiveItemIDiPlayer, const iWeaponType[], iAmmount 0iCSWType CSW_KNIFE ){
    if( 
is_user_aliveiPlayer ) ){
        
give_itemiPlayeriWeaponType )
        
        if( 
iAmmount ){
            new 
iQuantityAmmo 0
            
            
while( iAmmount ){
                
iQuantityAmmo += 1
                
                iAmmount
--
            }
            
            
cs_set_user_bpammoiPlayeriCSWTypeiQuantityAmmo )
        }
    }
}

stock AddPlayerExpiPlayeriAmmount ){
    
g_iExpiPlayer ] += iAmmount
    
    
if( g_iRankiPlayer ] != MaxRanks ){
        if( 
g_iExpiPlayer ] >= RanksExpg_iRankiPlayer ] - ] ){
            
g_iRankiPlayer ]++
            
g_iExpiPlayer ] = 0
            
            
new iName32 ]
            
            
get_user_nameiPlayeriNamecharsmaxiName ) )
            
            
ColorChat0BLUE"^4[^3RanksSystem^4] ^1Игрок ^4[%s] ^1Достиг звания ^4[%s] ^1Поздравляем."iNameRanksNameg_iRankiPlayer ] - ] )
            
ColorChatiPlayerBLUE"^4[^3RanksSystem^4] ^1Бонусы: ^4[^3%s^4]"RanksBonusg_iRankiPlayer ] - ] )
        }
    }
}

stock SQL_EscapeStringiDest[], iLeniSrc[] ){
    
copyiDestiLeniSrc )
    
    
replace_alliDestiLen"\", "\\" )
    replace_all( iDest, iLen, "
\0", "\\0" )
    replace_all( iDest, iLen, "
\r", "\\r" )
    replace_all( iDest, iLen, "
\n", "\\n" )
    replace_all( iDest, iLen, "
\x1a", "\Z" )
    replace_all( iDest, iLen, "'", "\'" )
    replace_all( iDest, iLen, "^"", "\^"" )
}
Аватара пользователя
NewKOD
 
Сообщения: 55
Зарегистрирован: 24 май 2022, 18:32
Благодарил (а): 17 раз.
Поблагодарили: 3 раз.
Языки программирования: Знаю amxx но слабо

Re: Приставка в чате | Ошибка в цвете

Сообщение [N][E][M][E][C] » 25 дек 2022, 23:03

Ошибок море.

Код: Выделить всё
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
//#include < ColorChat >
#include < fun >
#include < nvault >

#define MaxRanks 17

new const RanksNameMaxRanks ][] = { "Рядовой""Мл. Сержант""Сержант""Ст. Сержант""Старшина""Прапорщик""Ст. Прапорщик""Мл. Лейтенант""Лейтенант""Ст. Лейтенант""Капитан""Майор""Подполковник""Полковник""Генерал-Майор""Генерал-Лейтенант""Генерал-Полковник" }
new const 
RanksExpMaxRanks ] = { 12050100200250500650750900100020003000400050006000}
new const 
RanksBonusMaxRanks ][] = { "Нету""Нету""Flash""Flash""Flash+Smoke""Flash+Smoke""Flash+Smoke""Flash+Smoke""Flash+Smoke+HE""Flash+Smoke+HE+50AP""Flash+Smoke+HE+75AP""Flash+Smoke+HE+100AP""Flash+Smoke+HE+100AP+115HP""Flash+Smoke+HE+100AP+115HP""Flash+Smoke+HE+100AP+115HP+Deagle""Flash+Smoke+HE+150AP+115HP+Deagle""Flash+Smoke+HE+200AP+120HP+Deagle" }

new 
gNvault

new boolg_iCansave33 ]

new 
g_iRank33 ], g_iExp33 ]

new 
g_iMap32 ]

public 
plugin_natives(){
    
register_native"return_rank""native_return_rank")
    
register_native"set_user_rank""native_set_user_rank")
    
register_native"get_user_rank""native_get_user_rank")
    
register_native"set_user_exp""native_set_user_exp")
    
register_native"get_user_exp""native_get_user_exp")
}

public 
plugin_init(){
    
register_plugin"[NK] - Ranks System.""1.1""NewKOD" )

    
gNvault nvault_open"SaveRanksSystem" )

    
get_mapnameg_iMapcharsmaxg_iMap ) )

    
RegisterHamHam_Spawn"player""EVENT_Spawn")
    
RegisterHamHam_Killed"player""EVENT_Kill" )
    
    
register_clcmd"give_rank""cmd_giverank" )
    
register_clcmd"give_exp""cmd_giveexp" )
    
register_message(get_user_msgid("SayText"),"goChangeText");
}

public 
client_putinserveriPlayer ){
    
g_iRankiPlayer ] = 1
    
    LoadDataPlayer
iPlayer )
}

public 
client_disconnectediPlayer ){
    if( 
g_iCansaveiPlayer ] ) SaveDataPlayeriPlayer )
}

public 
EVENT_SpawniPlayer ){
    if( !
equalig_iMap"$2000$" ) ){
        if( 
is_user_aliveiPlayer ) ){
            if( 
g_iRankiPlayer ] >= GiveItemIDiPlayer"weapon_flashbang" )
            if( 
g_iRankiPlayer ] >= GiveItemIDiPlayer"weapon_smokegrenade" )
            if( 
g_iRankiPlayer ] >= GiveItemIDiPlayer"weapon_hegrenade" )
            if( 
g_iRankiPlayer ] >= 10 set_user_armoriPlayer50 )
            if( 
g_iRankiPlayer ] >= 11 set_user_armoriPlayer75 )
            if( 
g_iRankiPlayer ] >= 12 set_user_armoriPlayer100 )
            if( 
g_iRankiPlayer ] >= 13 set_user_healthiPlayer115 )
            if( 
g_iRankiPlayer ] >= 14 set_user_healthiPlayer115 )
            if( 
g_iRankiPlayer ] >= 15 GiveItemIDiPlayer"weapon_deagle"30CSW_DEAGLE )
            if( 
g_iRankiPlayer ] >= 16 set_user_armoriPlayer150 )
            if( 
g_iRankiPlayer ] >= 17 ){
                
set_user_armoriPlayer200 )
                
set_user_healthiPlayer120 )
            }
        }
    }
    
    
set_task0.1"EVENT_HudMessage"iPlayer 777__"b" )
}

public 
EVENT_KilliVictimiAttacker ){
    if( !
is_user_aliveiAttacker ) || !is_user_connectediVictim ) ) return PLUGIN_HANDLED
    
    AddPlayerExp
iAttackerrandom_num1) )
    
    return 
PLUGIN_HANDLED
}

public 
EVENT_HudMessagetaskid ){
    
/*new iPlayer = taskid - 777
    
    if( g_iRank[ iPlayer ] == MaxRanks ){
        set_hudmessage( 255, 255, 255, 0.0, 0.21, 0, 6.0, 0.1 )
        show_hudmessage( iPlayer, "Звание: [%s]^nОпыт: [MAX]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
    }else{
        set_hudmessage( 255, 255, 255, 0.0, 0.21, 0, 6.0, 0.1 )
        show_hudmessage( iPlayer, "Звание: [%s]^nОпыт: [%d/%d]", RanksName[ g_iRank[ iPlayer ] - 1 ], g_iExp[ iPlayer ], RanksExp[ g_iRank[ iPlayer ] - 1 ] )
    }*/
}

public 
LoadDataPlayeriPlayer ){
    new 
szSteam35 ], szKeyRank40 ], szKeyExp40 ]
    
    
get_user_authidiPlayerszSteamcharsmaxszSteam ) )
    
    
formatszKeyRankcharsmaxszKeyRank ), "%s_rank"szSteam )
    
formatszKeyExpcharsmaxszKeyExp ), "%s_exp"szSteam )
    
    
g_iRankiPlayer ] = nvault_getgNvaultszKeyRank )
    
g_iExpiPlayer ] = nvault_getgNvaultszKeyExp )
    
    
g_iCansaveiPlayer ] = true
}

public 
SaveDataPlayeriPlayer ){
    new 
szSteam35 ], szKeyRank40 ], szKeyExp40 ], iRank32 ], iExp32 ]
    
    
get_user_authidiPlayerszSteamcharsmaxszSteam ) )
    
    
formatszKeyRankcharsmaxszKeyRank ), "%s_rank"szSteam )
    
formatszKeyExpcharsmaxszKeyExp ), "%s_exp"szSteam )

    
num_to_strg_iRankiPlayer ], iRankcharsmaxiRank ) )
    
num_to_strg_iExpiPlayer ], iExpcharsmaxiExp ) )
    
    
nvault_setgNvaultszKeyRankiRank )
    
nvault_setgNvaultszKeyExpiExp )
}

public 
cmd_giverankiPlayer ){
    new 
iArgsName32 ], iArgsQuantity32 ], iEnemy
    
    iArgsQuantity
iPlayer ] = 0
    
    read_argv
1iArgsNamecharsmaxiArgsName ) )
    
read_argv2iArgsQuantitycharsmaxiArgsQuantity ) )
    
    
iEnemy cmd_targetiPlayeriArgsNameCMDTARGET_NO_BOTS )
    
    if( !
iEnemy ) return PLUGIN_HANDLED
    
    
if( str_to_numiArgsQuantity ) > MaxRanks || str_to_numiArgsQuantity ) <= ){
        
client_printiPlayerprint_console"[Ошибка] ID: [%d] Звания не [Больше/Меньше] [%d/0] "iPlayerMaxRanks )
        
        return 
PLUGIN_HANDLED
    
}
    
    if( 
str_to_numiArgsQuantity ) != ){
        
g_iRankiEnemy ] = ( str_to_numiArgsQuantity ) - )
        
AddPlayerExpiEnemyRanksExpg_iRankiEnemy ] - ] )
        
        new 
iName32 ]
        
        
get_user_nameiEnemyiNamecharsmaxiName ) )
        
        
//ColorChat( 0, BLUE, "^4[^3RanksSystem^4] ^1Создатель установил игроку ^4%s ^1Звание ^4[%s]", iName, RanksName[ g_iRank[ iEnemy ] - 1 ] )
    
}
    
    return 
PLUGIN_HANDLED
}

public 
cmd_giveexpiPlayer ){
    new 
iArgsName32 ], iArgsQuantity32 ], iEnemy
    
    iArgsQuantity
iPlayer ] = 0
    
    read_argv
1iArgsNamecharsmaxiArgsName ) )
    
read_argv2iArgsQuantitycharsmaxiArgsQuantity ) )
    
    
iEnemy cmd_targetiPlayeriArgsNameCMDTARGET_NO_BOTS )
    
    if( !
iEnemy || equaliiArgsQuantity"0" ) ) return PLUGIN_HANDLED
    
    AddPlayerExp
iEnemystr_to_numiArgsQuantity ) )
    
    new 
iName32 ]
    
    
get_user_nameiEnemyiNamecharsmaxiName ) )
    
    
//ColorChat( 0, BLUE, "^4[^3RanksSystem^4] ^1Создатель выдал игроку ^4%s ^1Опыт ^4[%d]", iName, str_to_num( iArgsQuantity ) )
    
    
return PLUGIN_HANDLED
}

public 
native_return_rankiPlayer ) return RanksNameg_iRankiPlayer ] - ]
public 
native_set_user_rankiPlayeriNum g_iRankiPlayer ] = iNum
public native_get_user_rankiPlayeriNum ) return g_iRankiPlayer ]
public 
native_set_user_expiPlayeriNum g_iExpiPlayer ] = iNum
public native_get_user_expiPlayeriNum ) return g_iExpiPlayer ]

public 
goChangeTextiMsgIDiDestiMsgENT ) {
    new 
iPlayer get_msg_arg_int)
    
    if( !
is_user_connectediPlayer ) )
        return 
PLUGIN_CONTINUE;
    
    new
        
szTmp256 ],
        
szTmp2256 ],
        
szQuery256 ];

    
get_msg_arg_string2szTmpcharsmaxszTmp ) );

    if( 
get_user_flagsiPlayer ) & ADMIN_KICK )
        
formatexszQuerycharsmaxszQuery ), "^x04[Админ]"/*, RanksName[ g_iRank[ iPlayer ] - 1 ] */)


    else if( 
get_user_flagsiPlayer ) & ADMIN_LEVEL_H )
        
formatexszQuerycharsmaxszQuery ), "^x04[Вип]"/*, RanksName[ g_iRank[ iPlayer ] - 1 ]*/)


    else 
formatexszQuerycharsmaxszQuery ), "^x04"/*, RanksName[ g_iRank[ iPlayer ] - 1 ]*/ )

    if( !
equalszTmp"#Cstrike_Chat_All" ) ){
        
addszTmp2charsmaxszTmp2 ), szQuery )
        
addszTmp2charsmaxszTmp2 ), " " )
        
addszTmp2charsmaxszTmp2 ), szTmp )
    }else{
        
addszTmp2charsmaxszTmp2 ), szQuery )
        
addszTmp2charsmaxszTmp2 ), szTmp )
    }
    
    
set_msg_arg_string2szTmp2 )
    
    return 
PLUGIN_CONTINUE
}

public 
plugin_end() nvault_closegNvault )

stock GiveItemIDiPlayer, const iWeaponType[], iAmmount 0iCSWType CSW_KNIFE ){
    if( 
is_user_aliveiPlayer ) ){
        
give_itemiPlayeriWeaponType )
        
        if( 
iAmmount ){
            new 
iQuantityAmmo 0
            
            
while( iAmmount ){
                
iQuantityAmmo += 1
                
                iAmmount
--
            }

            
cs_set_user_bpammoiPlayeriCSWTypeiQuantityAmmo )
        }
    }
}

stock AddPlayerExpiPlayeriAmmount ){
    
g_iExpiPlayer ] += iAmmount

    
if( g_iRankiPlayer ] != MaxRanks ){
        if( 
g_iExpiPlayer ] >= RanksExpg_iRankiPlayer ] - ] ){
            
g_iRankiPlayer ]++
            
g_iExpiPlayer ] = 0
            
            
new iName32 ]
            
            
get_user_nameiPlayeriNamecharsmaxiName ) )
            
            
//ColorChat( 0, BLUE, "^4[^3RanksSystem^4] ^1Игрок ^4[%s] ^1Достиг звания ^4[%s] ^1Поздравляем.", iName, RanksName[ g_iRank[ iPlayer ] - 1 ] )
            //ColorChat( iPlayer, BLUE, "^4[^3RanksSystem^4] ^1Бонусы: ^4[^3%s^4]", RanksBonus[ g_iRank[ iPlayer ] - 1 ] )
        
}
    }
}

stock SQL_EscapeStringiDest[], iLeniSrc[] ){
    
copyiDestiLeniSrc )
    
    
replace_alliDestiLen"\", "\\" )
    replace_all( iDest, iLen, "
\0", "\\0" )
    replace_all( iDest, iLen, "
\r", "\\r" )
    replace_all( iDest, iLen, "
\n", "\\n" )
    replace_all( iDest, iLen, "
\x1a", "\Z" )
    replace_all( iDest, iLen, "'", "\'" )
    replace_all( iDest, iLen, "^"", "\^"" )
}
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Приставка в чате | Ошибка в цвете

Сообщение NewKOD » 26 дек 2022, 12:43

А зачем hudmessage, ColorChat убрали?

Добавлено спустя 5 минут 42 секунды:
Ничего не поменялось
Аватара пользователя
NewKOD
 
Сообщения: 55
Зарегистрирован: 24 май 2022, 18:32
Благодарил (а): 17 раз.
Поблагодарили: 3 раз.
Языки программирования: Знаю amxx но слабо

Re: Приставка в чате | Ошибка в цвете

Сообщение [N][E][M][E][C] » 26 дек 2022, 13:09

Чат колор закометировал, так как нет твоего инклуида, в худе есть ошибка,выход за пределы массива

Добавлено спустя 1 минуту 3 секунды:
Посмотри свой код и то что я подправил, я не исправоял все, я указал где была ошибка
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Приставка в чате | Ошибка в цвете

Сообщение БиЗоН » 26 дек 2022, 18:23

Плохо. Очень плохо написан плагин.
Поправил пару критичных моментов. Но плохим он от этого быть не перестал.
Твою проблему тоже поправил. Заключается она в том, что примерами твоих плагинов являются древние тексты под старые версии амхх.

Код: Выделить всё
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < hamsandwich >
#include < fun >
#include < nvault >

#define MaxRanks 17

new const RanksName[ MaxRanks ][] = { "Рядовой", "Мл. Сержант", "Сержант", "Ст. Сержант", "Старшина", "Прапорщик", "Ст. Прапорщик", "Мл. Лейтенант", "Лейтенант", "Ст. Лейтенант", "Капитан", "Майор", "Подполковник", "Полковник", "Генерал-Майор", "Генерал-Лейтенант", "Генерал-Полковник" }
new const RanksExp[ MaxRanks ] = { 1, 20, 50, 100, 200, 250, 500, 650, 750, 900, 1000, 2000, 3000, 4000, 5000, 6000, 0 }
new const RanksBonus[ MaxRanks ][] = { "Нету", "Нету", "Flash", "Flash", "Flash+Smoke", "Flash+Smoke", "Flash+Smoke", "Flash+Smoke", "Flash+Smoke+HE", "Flash+Smoke+HE+50AP", "Flash+Smoke+HE+75AP", "Flash+Smoke+HE+100AP", "Flash+Smoke+HE+100AP+115HP", "Flash+Smoke+HE+100AP+115HP", "Flash+Smoke+HE+100AP+115HP+Deagle", "Flash+Smoke+HE+150AP+115HP+Deagle", "Flash+Smoke+HE+200AP+120HP+Deagle" }

new gNvault

new bool
: g_iCansave[ 33 ]

new g_iRank[ 33 ], g_iExp[ 33 ]

new g_iMap[ 32 ]

public plugin_natives(){
    register_native( "return_rank", "native_return_rank", 1 )
    register_native( "set_user_rank", "native_set_user_rank", 1 )
    register_native( "get_user_rank", "native_get_user_rank", 1 )
    register_native( "set_user_exp", "native_set_user_exp", 1 )
    register_native( "get_user_exp", "native_get_user_exp", 1 )
}

public plugin_init(){
    register_plugin( "[NK] - Ranks System.", "1.1", "NewKOD" )
    
    gNvault 
= nvault_open( "SaveRanksSystem" )
    
    get_mapname
( g_iMap, charsmax( g_iMap ) )
    
    RegisterHam
( Ham_Spawn, "player", "EVENT_Spawn", 1 )
    RegisterHam( Ham_Killed, "player", "EVENT_Kill" )
    
    register_clcmd
( "give_rank", "cmd_giverank" )
    register_clcmd( "give_exp", "cmd_giveexp" )

    register_message(get_user_msgid("SayText"), "EVENT_Message")
}

public client_putinserver( iPlayer ){
    LoadDataPlayer( iPlayer )
}

public client_disconnected( iPlayer ){
    if( g_iCansave[ iPlayer ] ) SaveDataPlayer( iPlayer )
    remove_task(iPlayer + 777);
}

public EVENT_Spawn( iPlayer ){
    if( !equali( g_iMap, "$2000$" ) ){
        if( is_user_alive( iPlayer ) ){
            if( g_iRank[ iPlayer ] >= 3 ) GiveItemID( iPlayer, "weapon_flashbang" )
            if( g_iRank[ iPlayer ] >= 5 ) GiveItemID( iPlayer, "weapon_smokegrenade" )
            if( g_iRank[ iPlayer ] >= 9 ) GiveItemID( iPlayer, "weapon_hegrenade" )
            if( g_iRank[ iPlayer ] >= 10 ) set_user_armor( iPlayer, 50 )
            if( g_iRank[ iPlayer ] >= 11 ) set_user_armor( iPlayer, 75 )
            if( g_iRank[ iPlayer ] >= 12 ) set_user_armor( iPlayer, 100 )
            if( g_iRank[ iPlayer ] >= 13 ) set_user_health( iPlayer, 115 )
            if( g_iRank[ iPlayer ] >= 14 ) set_user_health( iPlayer, 115 )
            if( g_iRank[ iPlayer ] >= 15 ) GiveItemID( iPlayer, "weapon_deagle", 30, CSW_DEAGLE )
            if( g_iRank[ iPlayer ] >= 16 ) set_user_armor( iPlayer, 150 )
            if( g_iRank[ iPlayer ] >= 17 ){
                set_user_armor( iPlayer, 200 )
                set_user_health( iPlayer, 120 )
            }
        }
    }
    
    if
(!task_exists(iPlayer + 777))
    set_task( 1.0, "EVENT_HudMessage", iPlayer + 777, _, _, "b" )
}

public EVENT_Kill( iVictim, iAttacker ){
    if( !is_user_alive( iAttacker ) || !is_user_connected( iVictim ) ) return PLUGIN_HANDLED
    
    AddPlayerExp
( iAttacker, random_num( 1, 3 ) )
    
    return PLUGIN_HANDLED
}

public EVENT_HudMessage( taskid ){
    new iPlayer = taskid - 777
    
    if
( g_iRank[ iPlayer ] == MaxRanks ){
    set_hudmessage( 255, 255, 255, 0.0, 0.21, 0, 6.0, 0.9 )
    show_hudmessage( iPlayer, "Звание: [%s]^nОпыт: [MAX]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
    }else{
    set_hudmessage( 255, 255, 255, 0.0, 0.21, 0, 6.0, 0.9 )
    show_hudmessage( iPlayer, "Звание: [%s]^nОпыт: [%d/%d]", RanksName[ g_iRank[ iPlayer ] - 1 ], g_iExp[ iPlayer ], RanksExp[ g_iRank[ iPlayer ] - 1 ] )
    }
}

public LoadDataPlayer( iPlayer ){
    new szSteam[ 35 ], szKeyRank[ 40 ], szKeyExp[ 40 ]
    
    get_user_authid
( iPlayer, szSteam, charsmax( szSteam ) )
    
    format
( szKeyRank, charsmax( szKeyRank ), "%s_rank", szSteam )
    format( szKeyExp, charsmax( szKeyExp ), "%s_exp", szSteam )
    
    g_iRank
[ iPlayer ] = nvault_get( gNvault, szKeyRank )
    g_iExp[ iPlayer ] = nvault_get( gNvault, szKeyExp )

    if(g_iRank[ iPlayer ] <= 0)
    g_iRank[ iPlayer ] = 1
    
    g_iCansave
[ iPlayer ] = true
}

public SaveDataPlayer( iPlayer ){
    new szSteam[ 35 ], szKeyRank[ 40 ], szKeyExp[ 40 ], iRank[ 32 ], iExp[ 32 ]
    
    get_user_authid
( iPlayer, szSteam, charsmax( szSteam ) )
    
    format
( szKeyRank, charsmax( szKeyRank ), "%s_rank", szSteam )
    format( szKeyExp, charsmax( szKeyExp ), "%s_exp", szSteam )
    
    num_to_str
( g_iRank[ iPlayer ], iRank, charsmax( iRank ) )
    num_to_str( g_iExp[ iPlayer ], iExp, charsmax( iExp ) )
    
    nvault_set
( gNvault, szKeyRank, iRank )
    nvault_set( gNvault, szKeyExp, iExp )
}

public cmd_giverank( iPlayer ){
    new iArgsName[ 32 ], iArgsQuantity[ 32 ], iEnemy
    
    iArgsQuantity
[ iPlayer ] = 0
    
    read_argv
( 1, iArgsName, charsmax( iArgsName ) )
    read_argv( 2, iArgsQuantity, charsmax( iArgsQuantity ) )
    
    iEnemy 
= cmd_target( iPlayer, iArgsName, CMDTARGET_NO_BOTS )
    
    if
( !iEnemy ) return PLUGIN_HANDLED
    
    if
( str_to_num( iArgsQuantity ) > MaxRanks || str_to_num( iArgsQuantity ) <= 0 ){
        client_print( iPlayer, print_console, "[Ошибка] ID: [%d] Звания не [Больше/Меньше] [%d/0] ", iPlayer, MaxRanks )
        
        return PLUGIN_HANDLED
    
}
    
    if
( str_to_num( iArgsQuantity ) != 1 ){
        g_iRank[ iEnemy ] = ( str_to_num( iArgsQuantity ) - 1 )
        AddPlayerExp( iEnemy, RanksExp[ g_iRank[ iEnemy ] - 1 ] )
        
        new iName
[ 32 ]
        
        get_user_name
( iEnemy, iName, charsmax( iName ) )
        
        client_print_color
( 0, print_team_blue, "^4[^3RanksSystem^4] ^1Создатель установил игроку ^4%s ^1Звание ^4[%s]", iName, RanksName[ g_iRank[ iEnemy ] - 1 ] )
    }
    
    return PLUGIN_HANDLED
}

public cmd_giveexp( iPlayer ){
    new iArgsName[ 32 ], iArgsQuantity[ 32 ], iEnemy
    
    iArgsQuantity
[ iPlayer ] = 0
    
    read_argv
( 1, iArgsName, charsmax( iArgsName ) )
    read_argv( 2, iArgsQuantity, charsmax( iArgsQuantity ) )
    
    iEnemy 
= cmd_target( iPlayer, iArgsName, CMDTARGET_NO_BOTS )
    
    if
( !iEnemy || equali( iArgsQuantity, "0" ) ) return PLUGIN_HANDLED
    
    AddPlayerExp
( iEnemy, str_to_num( iArgsQuantity ) )
    
    new iName
[ 32 ]
    
    get_user_name
( iEnemy, iName, charsmax( iName ) )
    
    client_print_color
( 0, print_team_blue, "^4[^3RanksSystem^4] ^1Создатель выдал игроку ^4%s ^1Опыт ^4[%d]", iName, str_to_num( iArgsQuantity ) )
    
    return PLUGIN_HANDLED
}

public native_return_rank( iPlayer ) return RanksName[ g_iRank[ iPlayer ] - 1 ]
public native_set_user_rank( iPlayer, iNum ) g_iRank[ iPlayer ] = iNum
public native_get_user_rank
( iPlayer, iNum ) return g_iRank[ iPlayer ]
public native_set_user_exp( iPlayer, iNum ) g_iExp[ iPlayer ] = iNum
public native_get_user_exp
( iPlayer, iNum ) return g_iExp[ iPlayer ]

public EVENT_Message( iMsgID, iDest, iMsgENT )
{
    if(iDest != MSG_ONE)
        return

    new pPlayer
;
    pPlayer = get_msg_arg_int(1)

    if(!is_user_connected(pPlayer))
        return;

    static
        sMsg
[191],
        sMsgHead[191],
        sMsgContent[191];

    get_msg_arg_string(2, sMsgHead, charsmax(sMsgHead));
    get_msg_arg_string(4, sMsgContent, charsmax(sMsgContent));

    new iUserFlags;
    iUserFlags = get_user_flags(pPlayer);

    if(!equal(sMsgHead, "#Cstrike_Chat_All"))
    {
        if(iUserFlags & ADMIN_KICK)
            format(sMsg, charsmax(sMsg), "^x04[Админ] [%s]^x01 (Своим)^x03 %n^x01: %s", RanksName[g_iRank[pPlayer] - 1], pPlayer, sMsgContent);
        else if(iUserFlags & ADMIN_LEVEL_H)
            format(sMsg, charsmax(sMsg), "^x04[Вип] [%s]^x01 (Своим)^x03 %n^x01: %s", RanksName[g_iRank[pPlayer] - 1], pPlayer, sMsgContent);
        else
            format
(sMsg, charsmax(sMsg), "^x04[%s]^x01^x01 (Своим)^x03 %n^x01: %s", RanksName[g_iRank[pPlayer] - 1], pPlayer, sMsgContent);
    }else{
        if(iUserFlags & ADMIN_KICK)
            format(sMsg, charsmax(sMsg), "^x04[Админ] [%s]^x03 %n^x01: %s", RanksName[g_iRank[pPlayer] - 1], pPlayer, sMsgContent);
        else if(iUserFlags & ADMIN_LEVEL_H)
            format(sMsg, charsmax(sMsg), "^x04[Вип] [%s]^x03 %n^x01: %s", RanksName[g_iRank[pPlayer] - 1], pPlayer, sMsgContent);
        else
            format
(sMsg, charsmax(sMsg), "^x04[%s]^x03 %n^x01: %s", RanksName[g_iRank[pPlayer] - 1], pPlayer, sMsgContent);
    }

    if(strlen(sMsg) + strlen(sMsgContent) >= charsmax(sMsg))
    {
        new iLenContent;
        iLenContent = charsmax(sMsg) - strlen(sMsgHead) - strlen(sMsgContent);

        if(((sMsgContent[iLenContent - 1] & 0xFF) >= 0xC2) && ((sMsgContent[iLenContent - 1] & 0xFF) <= 0xEF))
            iLenContent--;

        sMsgContent[iLenContent] = 0;
        set_msg_arg_string(4, sMsgContent);
    }

    set_msg_arg_string(2, sMsg);
}

public plugin_end() nvault_close( gNvault )

stock GiveItemID( iPlayer, const iWeaponType[], iAmmount = 0, iCSWType = CSW_KNIFE ){
    if( is_user_alive( iPlayer ) ){
        give_item( iPlayer, iWeaponType )
        
        if
( iAmmount > 1 ){
            new iQuantityAmmo = 0
            
            while
( iAmmount > 1 ){
                iQuantityAmmo += 1
                
                iAmmount
--
            }
            
            cs_set_user_bpammo
( iPlayer, iCSWType, iQuantityAmmo )
        }
    }
}

stock AddPlayerExp( iPlayer, iAmmount ){
    g_iExp[ iPlayer ] += iAmmount
    
    if
( g_iRank[ iPlayer ] != MaxRanks ){
        if( g_iExp[ iPlayer ] >= RanksExp[ g_iRank[ iPlayer ] - 1 ] ){
            g_iRank[ iPlayer ]++
            g_iExp[ iPlayer ] = 0
            
            new iName
[ 32 ]
            
            get_user_name
( iPlayer, iName, charsmax( iName ) )
            
            client_print_color
( 0, print_team_blue, "^4[^3RanksSystem^4] ^1Игрок ^4[%s] ^1Достиг звания ^4[%s] ^1Поздравляем.", iName, RanksName[ g_iRank[ iPlayer ] - 1 ] )
            client_print_color( iPlayer, print_team_blue, "^4[^3RanksSystem^4] ^1Бонусы: ^4[^3%s^4]", RanksBonus[ g_iRank[ iPlayer ] - 1 ] )
        }
    }
}
Вечно занятой. Вечно в павне.
Аватара пользователя
БиЗоН
 
Сообщения: 165
Зарегистрирован: 24 мар 2014, 21:05
Благодарил (а): 10 раз.
Поблагодарили: 49 раз.
Опыт программирования: Больше трех лет


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7