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

Иконка чата (Chat Icon)

Плагины для AMX Mod X, которые не удовлетворяют правилам оформления.

Модератор: Leonidddd

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

Иконка чата (Chat Icon)

Сообщение DJ_WEST » 21 дек 2010, 10:54

Авторы: DJ_WEST
Версия: 1.0

Описание:
Когда игрок печатает сообщение (say/say_team) над его головой отображается иконка чата.

Примечание: Для отлова события нахождения игрока в чате, игроку на кнопки Y и U дополнительно ставится бинд команды плагина. Работоспособность чата остается неизменной при игре на других серверах. Отсюда следует, что плагин отлавливает чат только при использовании стандартных клавиш (Y/U) для общения.

chat_icon1.jpg

chat_icon2.jpg


Используемые модули:
Fakemeta
Engine
Hamsandwich

Настройки:
Чтобы изменить отображаемую иконку над головой игрока, используйте строчку в коде (путь к файлу):
[pawn]#define CHAT_ICON "sprites/chat_icon1.spr"        [/pawn]


Установка:
Распакуйте sprites.zip в ../cstrike/sprites на сервере.

Список изменений:
1.0 - Релиз плагина



Не утверждено. Отсутствуют файлы и его дальнейшая поддержка // Leonidddd
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2204 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Иконка чата (Chat Icon)

Сообщение sambo » 22 окт 2012, 02:58

Падает сервер с ним :( .
С тем что выводит иконку консоли проблем нет .
Аватара пользователя
sambo
 
Сообщения: 22
Зарегистрирован: 07 фев 2012, 05:52
Благодарил (а): 6 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source

Re: Иконка чата (Chat Icon)

Сообщение mrmaclio » 06 окт 2018, 07:37

thankyou
Аватара пользователя
mrmaclio
 
Сообщения: 3
Зарегистрирован: 06 сен 2012, 23:47
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Иконка чата (Chat Icon)

Сообщение MayroN » 28 июл 2020, 22:39

Спустя некоторое время подниму один не большой вопрос

Есть такой момент когда нажимаешь клавишу Чата - далее клавишу Enter или Esc.Потом опять клавиша Чата - кнопка Enter или Esc.И иконка не пропадает.
В плагине поставлено,дабы она пропадала при действий любых клавиш / движений,включая мышь.

Следовательно:
Как поставить,что-бы иконка пропадала после нажатия / закрытия пустых сообщений

Так как Кода нет и плагин больше не поддерживаеться - прошу помощи у знающих людей
Код: Выделить всё
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <engine>

#define PLUGIN "Chat Icon"
#define VERSION "1.0"
#define AUTHOR "DJ_WEST"

#define CHAT_ICON "sprites/chat_icon1.spr"
#define BIND_TASKID 7829
#define ICON_SIZE 0.47
#define ICON_ALPHA 255

new bool:g_b_PlayerInChat[33]
new HamHook:g_h_PlayerPostThink[33]
new g_PlayerIcon[33]
new g_InfoTarget

public plugin_init
() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd
("chat", "Start_Chat")
    register_clcmd("chat_team", "Start_Chat")
    register_clcmd("say", "Check_Chat")
    register_clcmd("say_team", "Check_Chat")

    g_InfoTarget = engfunc(EngFunc_AllocString, "info_target")
}

public plugin_precache()
    precache_model(CHAT_ICON)

public client_putinserver(id)
{
    if (is_user_bot(id) || is_user_hltv(id))
        return
        
    g_b_PlayerInChat
[id] = false
    g_PlayerIcon
[id] = 0
    set_task
(5.0, "Bind_Delay", id + BIND_TASKID)
}

public client_disconnect(id)
    remove_task(id + BIND_TASKID)

public Bind_Delay(taskid)
{
    static id
    
    id 
= taskid - BIND_TASKID
    client_cmd
(id, "bind y ^"chat;messagemode^";bind u ^"chat_team;messagemode2")
}

public Start_Chat(id)
{
    g_b_PlayerInChat[id] = true
    
    Enable_Icon(id)
    
    if (g_h_PlayerPostThink[id])
        EnableHamForward(g_h_PlayerPostThink[id])
    else
        g_h_PlayerPostThink[id] = RegisterHamFromEntity(Ham_Player_PostThink, id, "
Player_Moving", 1)
    
    return PLUGIN_HANDLED
}

public Player_Moving(id)
{
    static i_Buttons
    
    i_Buttons = pev(id, pev_button)
    
    if (i_Buttons)
        Disable_Icon(id)
}

public Check_Chat(id)
{
    if (g_b_PlayerInChat[id])
        Disable_Icon(id)
}

public Enable_Icon(id)
{
    new i_Ent
    
    i_Ent = engfunc(EngFunc_CreateNamedEntity, g_InfoTarget)
    engfunc(EngFunc_SetModel, i_Ent, CHAT_ICON)
    set_pev(i_Ent, pev_aiment, id)
    set_pev(i_Ent, pev_movetype, MOVETYPE_FOLLOW)
    set_pev(i_Ent, pev_scale, ICON_SIZE)
    set_rendering(i_Ent, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, ICON_ALPHA)
    g_PlayerIcon[id] = i_Ent
}

public Disable_Icon(id)
{
    static i_Ent
    
    if (g_h_PlayerPostThink[id])
        DisableHamForward(g_h_PlayerPostThink[id])
            
    g_b_PlayerInChat[id] = false

    i_Ent = g_PlayerIcon[id]

    if (i_Ent && pev_valid(i_Ent))
        remove_entity(i_Ent)
}
МультиМод CS 83.222.97.124:27015

Аватара пользователя
MayroN
 
Сообщения: 586
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 133 раз.
Поблагодарили: 54 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: На которых говорю...

Пред.

Вернуться в Неутвержденные плагины

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

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