Все вопросы по работе и настройке AMXX и его плагинов.
Модератор: liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.
NewKOD » 25 дек 2022, 15:30
Добрый день всем, делал приставку в чате и возникла ошибка.
Если писать через say_team то все нормально, а если через say то весь текст будет зеленый, помогите пожалуйста
- Код: Выделить всё
public EVENT_Message( iMsgID, iDest, iMsgENT ){
new iPlayer = get_msg_arg_int( 1 )
if( !is_user_connected( iPlayer ) ) return PLUGIN_CONTINUE
new szTmp[ 256 ], szTmp2[ 256 ]
get_msg_arg_string( 2, szTmp, charsmax( szTmp ) )
new szQuery[ 64 ]
if( get_user_flags( iPlayer ) & ADMIN_KICK ){
formatex( szQuery, charsmax( szQuery ), "^x04[Админ][%s]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
}else if( get_user_flags( iPlayer ) & ADMIN_LEVEL_H ){
formatex( szQuery, charsmax( szQuery ), "^x04[Вип][%s]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
}else{
formatex( szQuery, charsmax( szQuery ), "^x04[%s]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
}
if( !equal( szTmp, "$Cstrike_Chat_All" ) ){
add( szTmp2, charsmax( szTmp2 ), szQuery )
add( szTmp2, charsmax( szTmp2 ), " " )
add( szTmp2, charsmax( szTmp2 ), szTmp )
}else{
add( szTmp2, charsmax( szTmp2 ), szQuery )
add( szTmp2, charsmax( szTmp2 ), szTmp )
}
set_msg_arg_string( 2, szTmp2 )
return PLUGIN_CONTINUE
}
Спасибо
-

NewKOD
-
- Сообщения: 44
- Зарегистрирован: 24 май 2022, 18:32
- Благодарил (а): 13 раз.
- Поблагодарили: 3 раз.
- Языки программирования: Знаю amxx но слабо
[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]
-
- Сообщения: 634
- Зарегистрирован: 14 фев 2021, 10:48
- Благодарил (а): 54 раз.
- Поблагодарили: 88 раз.
- Опыт программирования: Около года
- Языки программирования: Нуждаюсь в помощи
NewKOD » 25 дек 2022, 21:08
Не помогло, исправил как Вы отметили, но все равно, если писать в чат(say) то и ник и сообщение зеленые
-

NewKOD
-
- Сообщения: 44
- Зарегистрирован: 24 май 2022, 18:32
- Благодарил (а): 13 раз.
- Поблагодарили: 3 раз.
- Языки программирования: Знаю amxx но слабо
[N][E][M][E][C] » 25 дек 2022, 21:18
скинь код, что бы посмотреть или я должен дописать сам этот огрызок?
-

[N][E][M][E][C]
-
- Сообщения: 634
- Зарегистрирован: 14 фев 2021, 10:48
- Благодарил (а): 54 раз.
- Поблагодарили: 88 раз.
- Опыт программирования: Около года
- Языки программирования: Нуждаюсь в помощи
NewKOD » 25 дек 2022, 22:29
- Код: Выделить всё
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" )
}
public client_putinserver( iPlayer ){
g_iRank[ iPlayer ] = 1
LoadDataPlayer( iPlayer )
}
public client_disconnected( iPlayer ){
if( g_iCansave[ iPlayer ] ) SaveDataPlayer( iPlayer )
}
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 )
}
}
}
set_task( 0.1, "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.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 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 )
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 ) )
ColorChat( 0, 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 ) )
ColorChat( 0, 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 ){
new iPlayer = get_msg_arg_int( 1 )
if( !is_user_connected( iPlayer ) ) return PLUGIN_CONTINUE
new szTmp[ 256 ], szTmp2[ 256 ]
get_msg_arg_string( 2, szTmp, charsmax( szTmp ) )
new szQuery[ 64 ]
if( get_user_flags( iPlayer ) & ADMIN_KICK ){
formatex( szQuery, charsmax( szQuery ), "^x04[Админ][%s]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
}else if( get_user_flags( iPlayer ) & ADMIN_LEVEL_H ){
formatex( szQuery, charsmax( szQuery ), "^x04[Вип][%s]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
}else{
formatex( szQuery, charsmax( szQuery ), "^x04[%s]", RanksName[ g_iRank[ iPlayer ] - 1 ] )
}
if( !equal( szTmp, "#Cstrike_Chat_All" ) ){
add( szTmp2, charsmax( szTmp2 ), szQuery )
add( szTmp2, charsmax( szTmp2 ), " " )
add( szTmp2, charsmax( szTmp2 ), szTmp )
}else{
add( szTmp2, charsmax( szTmp2 ), szQuery )
add( szTmp2, charsmax( szTmp2 ), szTmp )
}
set_msg_arg_string( 2, szTmp2 )
return PLUGIN_CONTINUE
}
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 ) )
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_EscapeString( iDest[], iLen, iSrc[] ){
copy( iDest, iLen, iSrc )
replace_all( iDest, iLen, "\", "\\" )
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
-
- Сообщения: 44
- Зарегистрирован: 24 май 2022, 18:32
- Благодарил (а): 13 раз.
- Поблагодарили: 3 раз.
- Языки программирования: Знаю amxx но слабо
[N][E][M][E][C] » 25 дек 2022, 23:03
Ошибок море.
- Код: Выделить всё
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"),"goChangeText");
}
public client_putinserver( iPlayer ){
g_iRank[ iPlayer ] = 1
LoadDataPlayer( iPlayer )
}
public client_disconnected( iPlayer ){
if( g_iCansave[ iPlayer ] ) SaveDataPlayer( iPlayer )
}
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 )
}
}
}
set_task( 0.1, "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 ){
}
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 )
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 ) )
}
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 ) )
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 goChangeText( iMsgID, iDest, iMsgENT ) {
new iPlayer = get_msg_arg_int( 1 )
if( !is_user_connected( iPlayer ) )
return PLUGIN_CONTINUE;
new
szTmp[ 256 ],
szTmp2[ 256 ],
szQuery[ 256 ];
get_msg_arg_string( 2, szTmp, charsmax( szTmp ) );
if( get_user_flags( iPlayer ) & ADMIN_KICK )
formatex( szQuery, charsmax( szQuery ), "^x04[Админ]")
else if( get_user_flags( iPlayer ) & ADMIN_LEVEL_H )
formatex( szQuery, charsmax( szQuery ), "^x04[Вип]")
else formatex( szQuery, charsmax( szQuery ), "^x04")
if( !equal( szTmp, "#Cstrike_Chat_All" ) ){
add( szTmp2, charsmax( szTmp2 ), szQuery )
add( szTmp2, charsmax( szTmp2 ), " " )
add( szTmp2, charsmax( szTmp2 ), szTmp )
}else{
add( szTmp2, charsmax( szTmp2 ), szQuery )
add( szTmp2, charsmax( szTmp2 ), szTmp )
}
set_msg_arg_string( 2, szTmp2 )
return PLUGIN_CONTINUE
}
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 ) )
}
}
}
stock SQL_EscapeString( iDest[], iLen, iSrc[] ){
copy( iDest, iLen, iSrc )
replace_all( iDest, iLen, "\", "\\" )
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]
-
- Сообщения: 634
- Зарегистрирован: 14 фев 2021, 10:48
- Благодарил (а): 54 раз.
- Поблагодарили: 88 раз.
- Опыт программирования: Около года
- Языки программирования: Нуждаюсь в помощи
NewKOD » 26 дек 2022, 12:43
А зачем hudmessage, ColorChat убрали?
Добавлено спустя 5 минут 42 секунды:
Ничего не поменялось
-

NewKOD
-
- Сообщения: 44
- Зарегистрирован: 24 май 2022, 18:32
- Благодарил (а): 13 раз.
- Поблагодарили: 3 раз.
- Языки программирования: Знаю amxx но слабо
[N][E][M][E][C] » 26 дек 2022, 13:09
Чат колор закометировал, так как нет твоего инклуида, в худе есть ошибка,выход за пределы массива
Добавлено спустя 1 минуту 3 секунды:
Посмотри свой код и то что я подправил, я не исправоял все, я указал где была ошибка
-

[N][E][M][E][C]
-
- Сообщения: 634
- Зарегистрирован: 14 фев 2021, 10:48
- Благодарил (а): 54 раз.
- Поблагодарили: 88 раз.
- Опыт программирования: Около года
- Языки программирования: Нуждаюсь в помощи
БиЗоН » 26 дек 2022, 18:23
Плохо. Очень плохо написан плагин.
Поправил пару критичных моментов. Но плохим он от этого быть не перестал.
Твою проблему тоже поправил. Заключается она в том, что примерами твоих плагинов являются древние тексты под старые версии амхх.
- Код: Выделить всё
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 и его плагинам
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и гости: 1