Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

Админ залёный в чате

Статус пользователя Orty_Hart
сообщение 15.11.2011, 15:46
Сообщение #1
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Помогите, вот у меня админы под флагом i
пишутся в чате, под зелёным ником, как поменять на k или на j?

Скрипт
Код
#include <amxmodx>
#include <amxmisc>

new g_msgSayText
new funcType[32], funcCallType[32]
new normalChat[32] // handle recursiveness, to temporarily switch back to normal chat using /

public plugin_init() {
    register_plugin("Admin Chat", "1.5", "Sutar")
    
    register_concmd("amx_say", "adminSay", ADMIN_CHAT, "<text> - Displays colored admin message to all")
    register_concmd("amx_chat", "adminChat", ADMIN_CHAT, "<text> - Displays colored message only to other admins")
    register_concmd("amx_psay", "adminPSay", ADMIN_CHAT, "<name or #userid> <text> - Send a message to only one user")
    register_concmd("amx_namegreen", "toggleGreen", ADMIN_CHAT, "<1 or 0> - Should regular chat of an admin be green")
    
    register_clcmd("say", "chatSay", 0, "@<text> - Displays colored admin message to all")
    register_clcmd("say_team", "chatTeamSay", 0, "@<text> - Diplays colored message only to other admins")
    
    register_cvar("sv_namegreen", "1")
    
    g_msgSayText = get_user_msgid("SayText")
}

public showAdminChat(id) {    
    new message[192], players[32], numPlayers, adminName[32]
    read_args(message, 191)
    remove_quotes(message)
    get_players(players, numPlayers, "c") // skip bots
    get_user_name(id, adminName, 31)
    
    new adminMsg[192]
    if (funcType[id] == 0) // called using say or amx_say
        format(adminMsg, 191, "^x01(Всем) ^x04%s ^x01: %s", adminName, message[funcCallType[id]])
    else // called using say_team or amx_chat
        format(adminMsg, 191, "^x01(Администратор) ^x04%s ^x01: %s", adminName, message[funcCallType[id]])
    
    for (new i = 0; i <= numPlayers; i++) {
        if (!is_user_connected(players[i]))
            continue
        
        // if say_team or amx_chat, send only to other admins
        if (funcType[id] == 1 && !(get_user_flags(players[i]) & ADMIN_CHAT))
            continue

        message_begin(MSG_ONE, g_msgSayText, {0,0,0}, players[i])
        write_byte(players[i])
        write_string(adminMsg)
        message_end()
    }

    return PLUGIN_HANDLED_MAIN
}

public chatSay(id) {
    if (!access(id, ADMIN_CHAT)) return PLUGIN_CONTINUE
    
    if (normalChat[id]) {
        normalChat[id] = 0
        return PLUGIN_CONTINUE
    }
    
    funcCallType[id] = 1 // function called with say
    funcType[id] = 0 // tell function we are sending message to all
    
    new chat[1]
    read_argv(1, chat, 1)
    if (chat[0] == '@') {
        showAdminChat(id)
        return PLUGIN_HANDLED_MAIN
    }
        
    if (get_cvar_num("sv_namegreen")) {
        if (chat[0] == '&') {
            new message[192]
            read_args(message, 191)
            remove_quotes(message)
            normalChat[id] = 1
            client_cmd(id, "say %s", message[1]) // recursive
            return PLUGIN_HANDLED_MAIN
        }
        greenChat(id)
        return PLUGIN_HANDLED_MAIN
    }
    
    return PLUGIN_CONTINUE
}

public chatTeamSay(id) {
    if (!access(id, ADMIN_CHAT)) return PLUGIN_CONTINUE
    
    if (normalChat[id]) {
        normalChat[id] = 0
        return PLUGIN_CONTINUE
    }
    
    funcCallType[id] = 1 // function called with say
    funcType[id] = 1 // tell function we are sending message only to admins or team

    new chat[1]
    read_argv(1, chat, 1)
    if (chat[0] == '@') {
        showAdminChat(id)
        return PLUGIN_HANDLED_MAIN
    }
    
    if (get_cvar_num("sv_namegreen")) {
        if (chat[0] == '&') {
            new message[192]
            read_args(message, 191)
            remove_quotes(message)
            normalChat[id] = 1
            client_cmd(id, "say_team %s", message[1]) // recursive
            return PLUGIN_HANDLED_MAIN
        }
        greenChat(id)
        return PLUGIN_HANDLED_MAIN
    }
    return PLUGIN_CONTINUE
}

public adminSay(id, level, cid) {
    if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED_MAIN
    
    funcCallType[id] = 0 // function called with amx_say
    funcType[id] = 0 // tell function we are sending message to all
    showAdminChat(id)
    return PLUGIN_HANDLED_MAIN
}

public adminChat(id, level, cid) {
    if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED_MAIN
    
    funcCallType[id] = 0 // function called with amx_chat
    funcType[id] = 1 // tell function we are sending message only to admins
    showAdminChat(id)
    return PLUGIN_HANDLED_MAIN
}

public adminPSay(id, level, cid) {
    if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED_MAIN
    new name[32], length
    read_argv(1, name, 31)
    length = strlen(name) + 1
    
    new msgId = cmd_target(id, name, 0)
    if (!msgId) return PLUGIN_HANDLED_MAIN
    
    new message[192], msgToName[32], adminName[32]
    read_args(message, 191)
    format(message, 191, "%s", message[length])
    remove_quotes(message)
    get_user_name(msgId, msgToName, 31)
    get_user_name(id, adminName, 31)
    
    new showTo[192], showFrom[192]
    format(showTo, 191, "^x01(PRIVATE TO) ^x03%s ^x01: %s", msgToName, message)
    format(showFrom, 191, "^x01(PRIVATE FROM) ^x04%s ^x01: %s", adminName, message)
    
    message_begin(MSG_ONE, g_msgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(showTo)
    message_end()
    
    message_begin(MSG_ONE, g_msgSayText, {0,0,0}, msgId)
    write_byte(msgId)
    write_string(showFrom)
    message_end()
    
    return PLUGIN_HANDLED_MAIN
}

public greenChat(id) {
    new adminMsg[192], message[192], players[32], numPlayers, adminName[32], adminTeam, isAlive
    read_args(message, 191)
    remove_quotes(message)
    if (strlen(message) == 0) return PLUGIN_HANDLED_MAIN
    get_players(players, numPlayers, "c") // skip bots
    get_user_name(id, adminName, 31)
    isAlive = is_user_alive(id)
    adminTeam = get_user_team(id)
    
    if (funcType[id]) { // Sent a team message
        if (adminTeam == 1)
            format(adminMsg, 191, "^x01(Terrorist)")
        else if (adminTeam == 2)
            format(adminMsg, 191, "^x01(Counter-Terrorist)")
    }
    
    if (!isAlive) {
        if (adminTeam == 0) {
            if (funcType[id])
                format(adminMsg, 191, "^x01(Spectator)%s", adminMsg)
            else
                format(adminMsg, 191, "^x01*SPEC*%s", adminMsg)
        } else
            format(adminMsg, 191, "^x01*DEAD*%s", adminMsg)
    }
    
    if (strlen(adminMsg) == 0)
        format(adminMsg, 191, "^x01^x04%s ^x01:  %s", adminName, message)
    else
        format(adminMsg, 191, "^x01%s ^x04%s ^x01:  %s", adminMsg, adminName, message)
    
    for (new i = 0; i <= numPlayers; i++) {
        if (!is_user_connected(players[i]))
            continue
        
        if (isAlive != is_user_alive(players[i]))
            continue
        if (funcType[id] == 1 && get_user_team(players[i]) != adminTeam)
            continue

        message_begin(MSG_ONE, g_msgSayText, {0,0,0}, players[i])
        write_byte(players[i])
        write_string(adminMsg)
        message_end()
    }
    return PLUGIN_HANDLED_MAIN
}

public toggleGreen(id, level, cid) {
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED_MAIN
    new val[1], numval
    read_argv(1,val,1)
    numval = str_to_num(val)
    set_cvar_num("sv_namegreen", numval)
    
    if (numval == 0)
        console_print(id, "[AMXX] Green admin names have been turned off")
    else if (numval == 1)
        console_print(id, "[AMXX] Green admin names is now enabled")
        
    return PLUGIN_HANDLED_MAIN
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя AndrewZ
сообщение 15.11.2011, 15:58
Сообщение #2


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

В public chatSay(id) и public chatTeamSay(id)
замени ADMIN_CHAT на то что нужно:

флаги
ADMIN_ALL //Everyone
ADMIN_IMMUNITY //Flag "a", immunity
ADMIN_RESERVATION //Flag "b", reservation
ADMIN_KICK //Flag "c", kick
ADMIN_BAN //Flag "d", ban
ADMIN_SLAY //Flag "e", slay
ADMIN_MAP //Flag "f", map change
ADMIN_CVAR //Flag "g", cvar change
ADMIN_CFG //Flag "h", config execution
ADMIN_CHAT //Flag "i", chat
ADMIN_VOTE //Flag "j", vote
ADMIN_PASSWORD //Flag "k", sv_password
ADMIN_RCON //Flag "l", rcon access
ADMIN_LEVEL_A //Flag "m", custom
ADMIN_LEVEL_B //Flag "n", custom
ADMIN_LEVEL_C //Flag "o", custom
ADMIN_LEVEL_D //Flag "p", custom
ADMIN_LEVEL_E //Flag "q", custom
ADMIN_LEVEL_F //Flag "r", custom
ADMIN_LEVEL_G //Flag "s", custom
ADMIN_LEVEL_H //Flag "t", custom
ADMIN_MENU //Flag "u", menus
ADMIN_ADMIN //Flag "y", default admin
ADMIN_USER //Flag "z", default user


Отредактировал: ZZZombiE, - 15.11.2011, 15:58


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 15.11.2011, 16:06
Сообщение #3
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Ошибка при компиляцие плагина.
И у меня зелёное не сообщение, а Ник админа, который написал.
И если можно) обрезать плагин)
Убрать возможности: amx_say, amx_chat, amx_psay и настройки который позволяют настраивать плагин, типо что должно быть зелёным, ник или то что написал админ, мне простой плагин, который делает ник анмина зелёным)

Отредактировал: Orty_Hart, - 15.11.2011, 16:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 15.11.2011, 16:09
Сообщение #4


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Orty_Hart,
ну и что за ошибка?


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 15.11.2011, 16:28
Сообщение #5
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

error 017: undefined symbol "a"
в 2х местах.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 15.11.2011, 16:39
Сообщение #6


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Orty_Hart,
m
Я догадался, не спрашивай как, что ты ты заменил ADMIN_CHAT на "a".

Так вот смотри, даже логически подумать, если было ADMIN_CHAT, а ADMIN_CHAT - это флаг "i", то в списке что я тебе дал, надо было найти нужный тебе флаг и подставить его "код" т.е ADMIN_IMMUNITY //Flag "a", immunity

^ понятно, не? :D

в общем:

Код
    if (!access(id, ADMIN_CHAT)) return PLUGIN_CONTINUE

--->
Код
    if (!access(id, ADMIN_IMMUNITY)) return PLUGIN_CONTINUE


я знаю, я хорошо умею объяснять, не надо благодарить.. :3

Отредактировал: ZZZombiE, - 15.11.2011, 16:46


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 15.11.2011, 17:46
Сообщение #7
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

спасибо большое)

А обрезать плагин можете?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 15.11.2011, 18:45
Сообщение #8


Иконка группы

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Orty_Hart,
возможно


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 15.11.2011, 19:13
Сообщение #9
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

так обрежде не много)
чтоб убрать тот не нужный текст там)

Те все функции amx_say, amx_chat, amx_psay, оставьте только то, что Админ с флагом a - пишет под зелёным ником и обычным цветом в чате.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: