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

Блокировка сообщения о смене ника

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

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

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

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

Блокировка сообщения о смене ника

Сообщение NewKOD » 10 фев 2024, 23:39

Здравствуйте.
Столкнулся с проблемой. Хотел вывести сообщение о смене ника
Написал код
Код: Выделить всё
public client_infochangediPlayer ){
    new 
Name[2][32]
    
    
get_user_infoiPlayer"name"Name[0], charsmaxName[] ) )
    
get_user_nameiPlayerName[1], charsmaxName[] ) )
    
    if( !
equaliName[0], Name[1] ) ){
        
ColorChat0BLUE"^4[Смена ника] ^3%s^1 --> ^3%s"Name[1], Name[0] )
        
        return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE


Всё работает, но выводит 2 сообщения
Моё и "* Ник сменил имя на Ник"
Его можно как то убрать?
Аватара пользователя
NewKOD
 
Сообщения: 64
Зарегистрирован: 24 май 2022, 18:32
Благодарил (а): 19 раз.
Поблагодарили: 4 раз.
Языки программирования: Знаю amxx но слабо

Re: Блокировка сообщения о смене ника

Сообщение nemec21 » 12 фев 2024, 14:08

Держи
Код: Выделить всё
#include <amxmodx>

const LEN_BUFFER = 32;

public plugin_init() 
    register_message
(get_user_msgid("SayText"), "MSG_ChangeName");

public MSG_ChangeName(const msgid, const msgdest, const id) {
    const NUM_ARG = 2;

    new szBuffer[LEN_BUFFER +1];
    get_msg_arg_string(NUM_ARG, szBuffer, LEN_BUFFER);

    if(equal(szBuffer, "#Cstrike_Name_Change"))
        return PLUGIN_HANDLED;

    return PLUGIN_CONTINUE;
}

public client_infochanged(pPlayer) {
    enum any:DATA {
        NewName,
        OldName
    
};

    new szName[DATA][LEN_BUFFER +1];

    get_user_info(pPlayer, "name", szName[NewName], LEN_BUFFER);
    formatex(szName[OldName], LEN_BUFFER, "%n", pPlayer);

    if(!equali(szName[NewName], szName[OldName])) {
        client_print_color(0, print_team_default, "^4[Смена ника] ^3%s^1 --> ^3%s", szName[OldName], szName[NewName]);

        return PLUGIN_HANDLED;
    }

    return PLUGIN_HANDLED;
}
Аватара пользователя
nemec21
Скриптер
 
Сообщения: 826
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 216 раз.
Поблагодарили: 49 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Блокировка сообщения о смене ника

Сообщение NewKOD » 12 фев 2024, 18:33

Спасибо большое <3
А ещё вопрос, где можно глянуть эти #Cstrike...(полезная вещь, как я вижу)
Аватара пользователя
NewKOD
 
Сообщения: 64
Зарегистрирован: 24 май 2022, 18:32
Благодарил (а): 19 раз.
Поблагодарили: 4 раз.
Языки программирования: Знаю amxx но слабо

Re: Блокировка сообщения о смене ника

Сообщение nemec21 » 12 фев 2024, 21:02

#C4_Arming_Cancelled
#Bomb_Planted "%s<%i><%s><TERRORIST>" triggered "Planted_The_Bomb"
#C4_Plant_Must_Be_On_Ground
#C4_Plant_At_Bomb_Spot
#Switch_To_FullAuto
#Switch_To_BurstFire
#Fire_in_the_hole %!MRAD_FIREINHOLE
#Switch_To_SemiAuto
#CZero_LearningMap
#CZero_AnalyzingHidingSpots
#CZero_AnalyzingApproachPoints
"%s<%i><%s><CT>" triggered "Rescued_A_Hostage"
#Hint_careful_around_hostages
#Injured_Hostage
#Hint_removed_for_next_hostage_killed
#Hint_lost_money
#Killed_Hostage "%s<%i><%s><%s>" triggered "Killed_A_Hostage"
#Only_CT_Can_Move_Hostages "%s<%i><%s><CT>" triggered "Touched_A_Hostage"
#Game_disconnected
#Game_kicked
#Game_connected "%s<%i><%s><%s>" %s "%s"%s
#Cstrike_Chat_AllSpec *SPEC* %s : %s
#Cstrike_Chat_AllDead *DEAD* %s : %s
#Cstrike_Chat_All %s : %s
#Cstrike_Chat_Spec (Spectator) %s : %s
#Cstrike_Chat_T_Dead *DEAD*(Terrorist) %s : %s
#Cstrike_Chat_T (Terrorist) %s : %s
#Cstrike_Chat_T_Loc (Terrorist) %s @ %s : %s
#Cstrike_Chat_CT_Dead *DEAD*(Counter-Terrorist) %s : %s
#Cstrike_Chat_CT (Counter-Terrorist) %s : %s
#Cstrike_Chat_CT_Loc (Counter-Terrorist) %s @ %s : %s
#Cannot_Buy_This
#Cstrike_Already_Own_Weapon
#Not_Enough_Money
#Hint_use_nightvision
#Already_Have_One
#Cannot_Carry_Anymore
#Already_Have_Kevlar_Bought_Helmet
#Already_Have_Kevlar_Helmet
#Already_Have_Helmet_Bought_Kevlar
#Already_Have_Kevlar
"%s<%i><%s><%s>" joined team "SPECTATOR"
#Cannot_Be_Spectator
#Game_join_ct "%s<%i><%s><%s>" joined team "%s"
#Game_join_terrorist "%s<%i><%s><%s>" joined team "%s"
#Terrorist_Select
#CT_Select
#Only_1_Team_Change
#Humans_Join_Team_T
#Humans_Join_Team_CT
#Too_Many_CTs
#Too_Many_Terrorists
#All_Teams_Full
#CTs_Full
#Terrorists_Full
#Cannot_Switch_From_VIP
#Taking_fire %!MRAD_HITASSIST
#Follow_me %!MRAD_FOLLOWME
#Regroup_team %!MRAD_REGROUP
#Hold_this_position %!MRAD_POSITION
#You_take_the_point %!MRAD_TAKEPOINT
#Cover_me %!MRAD_COVERME
#Report_in_team %!MRAD_REPORTIN
#Storm_the_front %!MRAD_STORMFRONT
#Get_in_position_and_wait %!MRAD_GETINPOS
#Stick_together_team %!MRAD_STICKTOG
#Team_fall_back %!MRAD_FALLBACK
#Go_go_go %!MRAD_GO
#Enemy_down %!MRAD_ENEMYDOWN
#Negative %!MRAD_NEGATIVE
#Get_out_of_there %!MRAD_BLOW
#Reporting_in %!MRAD_REPRTINGIN
#In_position %!MRAD_INPOS
#Sector_clear %!MRAD_CLEAR
#Need_backup %!MRAD_BACKUP
#Enemy_spotted %!MRAD_ENEMYSPOT
#Roger_that %!MRAD_ROGER
#Affirmative %!MRAD_AFFIRM
#Alias_Not_Avail
#TactShield_Desc
#Bomb_Defusal_Kit
#Game_unknown_command
#Buy
#RadioC
#RadioB
#RadioA
#Command_Not_Available
#Accept_Radio
#Ignore_Radio
#Accept_All_Messages
#Ignore_Broadcast_Team_Messages
#Ignore_Broadcast_Messages
#IG_Team_Select_Spect
#IG_VIP_Team_Select_Spect
#IG_VIP_Team_Select
#T_BuyItem
#CT_BuyItem
#DT_BuyItem
#DCT_BuyItem
#BuyMachineGun
#AS_T_BuyMachineGun
#T_BuyRifle
#CT_BuyRifle
#AS_T_BuyRifle
#AS_CT_BuyRifle
#T_BuySubMachineGun
#CT_BuySubMachineGun
#AS_T_BuySubMachineGun
#AS_CT_BuySubMachineGun
#BuyShotgun
#AS_BuyShotgun
#T_BuyPistol
#CT_BuyPistol
#IG_Team_Select
#Team_Select
#Game_no_timelimit
#Game_timelimit
#Game_voted_for_map
#Cannot_Vote_Need_More_People
#Game_votemap_usage
#Cannot_Vote_Map
#Wait_3_Seconds
#Game_vote_cast
#Game_vote_not_yourself
#Game_vote_players_on_your_team
#Game_vote_player_not_found
#Cannot_Vote_With_Less_Than_Three
#Game_vote_usage
#Cstrike_Name_Change "%s<%i><%s><%s>" changed name to "%s"
#Name_change_at_respawn
#Defusing_Bomb_Without_Defuse_Kit "%s<%i><%s><CT>" triggered "Begin_Bomb_Defuse_Without_Kit"
#Defusing_Bomb_With_Defuse_Kit "%s<%i><%s><CT>" triggered "Begin_Bomb_Defuse_With_Kit"
#C4_Defuse_Must_Be_On_Ground
World triggered "%s" (CT "%i") (T "%i")
World triggered "Round_End"
Team "%s" triggered "%s" (CT "%i") (T "%i")
#Hint_you_have_the_bomb "%s<%i><%s><TERRORIST>" triggered "Spawned_With_The_Bomb"
#All_Hostages_Rescued
#Round_Draw
#Terrorists_Win
#CTs_Win
#Bomb_Defused "%s<%i><%s><CT>" triggered "Defused_The_Bomb"
#Target_Bombed
#Escaping_Terrorists_Neutralized
#CTs_PreventEscape
#Terrorists_Escaped
#VIP_Assassinated
#VIP_Escaped
#Game_Commencing World triggered "Game_Commencing"
#Game_scoring
#Auto_Team_Balance_Next_Round
#All_VIP_Slots_Full
#Game_added_position
#Game_in_position
#Game_will_restart_in_console
#Game_will_restart_in
Team "TERRORIST" scored "%i" with "%i" players
Team "CT" scored "%i" with "%i" players
World triggered "Restart_Round_(%i_%s)"
#VIP_Not_Escaped
#Terrorists_Not_Escaped
#Hostages_Not_Rescued
#Target_Saved
%!MRAD_VIP
%!MRAD_GETOUT
%!MRAD_ELIM
%!MRAD_MOVEOUT
%!MRAD_LETSGO
%!MRAD_LOCKNLOAD
World triggered "Round_Start"
"%s<%i><%s><>" entered the game
"%s<%i><%s><%s>" disconnected
#Team_Select_Spect
#Hint_win_round_by_killing_enemy
"%s<%i><%s><TERRORIST>" triggered "Assassinated_The_VIP"
#Hint_reward_for_killing_vip
#Hint_careful_around_teammates
#Banned_For_Killing_Teamates
#Game_teammate_kills
#Killed_Teammate
"%s<%i><%s><%s>" committed suicide with "%s" (world)
"%s<%i><%s><%s>" killed "%s<%i><%s><%s>" with "%s"
"%s<%i><%s><%s>" committed suicide with "%s"
#Map_Vote_Extend
#Votes
#Vote
#Game_required_votes
#Spec_Mode%i
#Spec_NoTarget
#Game_radio_location
#Game_radio
"%s<%i><%s><%s>" attacked "%s<%i><%s><%s>" with "%s" (damage "%d") (damage_armor "%d") (health "%d") (armor "%d")
#Game_teammate_attack
#Hint_try_not_to_injure_teammates
#Spec_Duck
#Hint_cannot_play_because_tk
"%s<%i><%s><CT>" triggered "Became_VIP"
#Hint_use_hostage_to_stop_him
#Hint_lead_hostage_to_rescue_point
#Terrorist_cant_buy
#CT_cant_buy
#VIP_cant_buy
#Cant_buy
#Hint_press_buy_to_purchase
#Game_idle_kick "%s<%i><%s><%s>" triggered "Game_idle_kick" (auto)
#Hint_you_are_the_vip
#Hint_hostage_rescue_zone
#Hint_you_are_in_targetzone
#Hint_terrorist_escape_zone
#Hint_terrorist_vip_zone
#Hint_ct_vip_zone
#Hint_out_of_ammo
#Hint_press_use_so_hostage_will_follow
#Hint_prevent_hostage_rescue
#Hint_rescue_the_hostages
#Hint_spotted_a_friend
#Hint_spotted_an_enemy
#Game_bomb_drop "%s<%i><%s><TERRORIST>" triggered "Dropped_The_Bomb"
#Weapon_Cannot_Be_Dropped
#Game_join_ct_auto "%s<%i><%s><%s>" joined team "%s" (auto)
#Game_join_terrorist_auto "%s<%i><%s><%s>" joined team "%s" (auto)
#Terrorist_Escaped "%s<%i><%s><TERRORIST>" triggered "Terrorist_Escaped"
"%s<%i><%s><CT>" triggered "Escaped_As_VIP"
#Game_bomb_pickup "%s<%i><%s><TERRORIST>" triggered "Got_The_Bomb"
#Got_bomb
#CZero_Tutor_Turned_Off
#CZero_Tutor_Turned_On
#Cstrike_TutorState_Waiting_For_Start
#Cstrike_TutorState_Buy_Time
#Cstrike_TutorState_Running_Away_From_Ticking_Bomb
#Cstrike_TutorState_Looking_For_Loose_Bomb
#Cstrike_TutorState_Guarding_Bomb
#Cstrike_TutorState_Planting_Bomb
#Cstrike_TutorState_Moving_To_Bomb_Site
#Cstrike_TutorState_Escorting_Bomb_Carrier
#Cstrike_TutorState_Attacking_Hostage_Escort
#Cstrike_TutorState_Looking_For_Hostage_Escort
#Cstrike_TutorState_Moving_To_Intercept_Enemy
#Cstrike_TutorState_Guarding_Hostage
#Cstrike_TutorState_Defusing_Bomb
#Cstrike_TutorState_Guarding_Loose_Bomb
#Cstrike_TutorState_Looking_For_Bomb_Carrier
#Cstrike_TutorState_Moving_To_Bombsite
#Cstrike_TutorState_Following_Hostage_Escort
#Cstrike_TutorState_Escorting_Hostage
#Cstrike_TutorState_Looking_For_Hostage
#Cstrike_TutorState_Undefined
Аватара пользователя
nemec21
Скриптер
 
Сообщения: 826
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 216 раз.
Поблагодарили: 49 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Блокировка сообщения о смене ника

Сообщение NewKOD » 12 фев 2024, 22:02

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

Re: Блокировка сообщения о смене ника

Сообщение nemec21 » 21 апр 2024, 21:02

Для блока смены ника, лучше по средствам reapi, с помощью хука RG_CBasePlayer_SetClientUserInfoName в pre
Код: Выделить всё
#include <amxmodx>
#include <reapi>

public plugin_init() {
    
register_plugin("(REAPI)Change NAME""21.04.24""AMX-X.RU");

    
RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName"RG_CBasePlayer_SetClientUserInfoName_Pre");
}

public 
RG_CBasePlayer_SetClientUserInfoName_Pre(const id, const szInfoBuffer[], const szNewName[]) {
    
SetHookChainReturn(ATYPE_BOOLfalse);
    return 
HC_SUPERCEDE;
Аватара пользователя
nemec21
Скриптер
 
Сообщения: 826
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 216 раз.
Поблагодарили: 49 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6


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

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

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