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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Ищу Исходник

Статус пользователя k0keeS
сообщение 15.1.2009, 21:48
Сообщение #1


Стаж: 17 лет

Сообщений: 126
Благодарностей: 9
Полезность: 64

descriptive_Fire_in_the_hole.amxx исходник вылейте плиз
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя kixo
сообщение 15.1.2009, 21:53
Сообщение #2


Стаж: 17 лет

Сообщений: 303
Благодарностей: 42
Полезность: 25

Код
/* AMX Mod X
*   Descriptive 'Fire in the hole!'
*
* (c) Copyright 2006 by VEN
*
* This file is provided as is (no warranties)
*
*     DESCRIPTION
*       Plugin provides additional colored text for "Fire in the hole!" radio chat message.
*       The color and the text is different for each grenade type and can be altered.
*       This will help teammates to get the throwed grenade type and act accordingly.
*       Search for "EDITABLE" mark in the plugin's source code to configure text and color.
*
*     CREDITS
*       Damaged Soul - colored chat text method
*       p3tsin - team color override method
*/

#include <amxmodx>

#define PLUGIN_NAME "Descriptive 'Fire in the hole!'"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "VEN"

enum grenade {
    GRENADE_HE,
    GRENADE_FLASH,
    GRENADE_SMOKE
}

// EDITABLE: grenade description
new const g_grenade_description[_:grenade][] = {
    " [HE]",
    " [FL]",
    " [SM]"
}

enum color {
    COLOR_NORMAL,
    COLOR_RED,
    COLOR_BLUE,
    COLOR_GRAY,
    COLOR_GREEN
}

// EDITABLE: grenade description text color
new const g_grenade_desccolor[_:grenade] = {
    COLOR_RED,
    COLOR_GRAY,
    COLOR_GREEN
}

new const g_grenade_weaponid[_:grenade] = {
    CSW_HEGRENADE,
    CSW_FLASHBANG,
    CSW_SMOKEGRENADE
}

#define COLORCODE_NORMAL 0x01
#define COLORCODE_TEAM 0x03
#define COLORCODE_LOCATION 0x04

new const g_color_code[_:color] = {
    COLORCODE_NORMAL,
    COLORCODE_TEAM,
    COLORCODE_TEAM,
    COLORCODE_TEAM,
    COLORCODE_LOCATION
}

new const g_color_teamname[_:color][] = {
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR",
    ""
}

#define RADIOTEXT_MSGARG_NUMBER 5

enum radiotext_msgarg {
    RADIOTEXT_MSGARG_PRINTDEST = 1,
    RADIOTEXT_MSGARG_CALLERID,
    RADIOTEXT_MSGARG_TEXTTYPE,
    RADIOTEXT_MSGARG_CALLERNAME,
    RADIOTEXT_MSGARG_RADIOTYPE,
}

new const g_required_radiotype[] = "#Fire_in_the_hole"
new const g_radiotext_template[] = "%s (RADIO): Fire in the hole!"

new g_msgid_saytext
new g_msgid_teaminfo

public plugin_init() {
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)

    register_message(get_user_msgid("TextMsg"), "message_text")

    g_msgid_saytext = get_user_msgid("SayText")
    g_msgid_teaminfo = get_user_msgid("TeamInfo")
}

public message_text(msgid, dest, id) {
    if (get_msg_args() != RADIOTEXT_MSGARG_NUMBER || get_msg_argtype(RADIOTEXT_MSGARG_RADIOTYPE) != ARG_STRING)
        return PLUGIN_CONTINUE

    static arg[32]
    get_msg_arg_string(RADIOTEXT_MSGARG_RADIOTYPE, arg, sizeof arg - 1)
    if (!equal(arg, g_required_radiotype))
        return PLUGIN_CONTINUE

    get_msg_arg_string(RADIOTEXT_MSGARG_CALLERID, arg, sizeof arg - 1)
    new caller = str_to_num(arg)
    if (!is_user_alive(caller))
        return PLUGIN_CONTINUE

    new clip, ammo, weapon
    weapon = get_user_weapon(caller, clip, ammo)
    for (new i; i < sizeof g_grenade_weaponid; ++i) {
        if (g_grenade_weaponid[i] == weapon) {
            static text[192]
            new pos = 0
            text[pos++] = g_color_code[COLOR_NORMAL]

            get_msg_arg_string(RADIOTEXT_MSGARG_CALLERNAME, arg, sizeof arg - 1)
            pos += formatex(text[pos], sizeof text - pos - 1, g_radiotext_template, arg)
            copy(text[++pos], sizeof text - pos - 1, g_grenade_description[i])

            new desccolor = g_grenade_desccolor[i]
            if ((text[--pos] = g_color_code[desccolor]) == COLORCODE_TEAM) {
                static teamname[12]
                get_user_team(id, teamname, sizeof teamname - 1)

                if (!equal(teamname, g_color_teamname[desccolor])) {
                    msg_teaminfo(id, g_color_teamname[desccolor])
                    msg_saytext(id, text)
                    msg_teaminfo(id, teamname)

                    return PLUGIN_HANDLED
                }
            }

            msg_saytext(id, text)

            return PLUGIN_HANDLED
        }
    }

    return PLUGIN_CONTINUE
}

msg_teaminfo(id, teamname[]) {
    message_begin(MSG_ONE, g_msgid_teaminfo, _, id)
    write_byte(id)
    write_string(teamname)
    message_end()
}

msg_saytext(id, text[]) {
    message_begin(MSG_ONE, g_msgid_saytext, _, id)
    write_byte(id)
    write_string(text)
    message_end()
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: