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

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

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

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

2 страниц V   1 2

Помогите с плагином ss_menu (Скриншотер)

, Вопрос по коду плагина
Статус пользователя Steam
сообщение 8.6.2014, 20:52
Сообщение #1


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Есть плагин screenshot menu.

Помогите настроить отображение HUD сообщения в левой часте экрана по середине.
И помогите настроить время отображения HUD сообщения (секунд 15)
И так же хотелось бы, что бы оно отображалось зеленым цветом, а не белым.

Код ниже:

Скрытый текст
Код
/*
        Название: Screen Shot Menu
        Автор: Bonaqua | DimaS
        Версия: 1.2
      
        Description:
        Данный плагин добовляет возможность делать снимок экрана на стороне клиента.
      
        Version:
        v1.0
        - Первый релиз
      
        v1.1
        - Исправлены ошибки
      
        v1.2
        - Добавлен вывод информации о том что администратор сделал скриншот игроку.
        - Наложен (вотемарк на скрин).
        - Добавлен Cvar amx_ssm_watermark
        - Добавлен Cvar amx_ssm_enabled
        - Добавлен Cvar amx_ssm_message
        - Добавлен Cvar amx_ssm_watermark_enabled
        - Добавлен вывод кваров в cfg файл.
      
        Created Screen Shot Menu by Bonaqua and DimaS for http://www.csgames.ru
        Web Help - http://www.csgames.ru
      
        Нашёл баг ? Сообщи нам на форум http://www.csgames.ru
*/

#include <amxmodx>
#include <fun>
#include <icolourchat>
#include <dhudmessage>

new const PLUGIN[]              = "Screen Shot Menu"
new const VERSION[]             = "1.2"
new const NAME[]                = "Bonaqua | DimaS"

new const FILE[]                = "ss_menu.cfg"                 // Файл с настройками

new const OPEN_ACCESS   = ADMIN_IMMUNITY

const Float:HUD_MESSAGE_X = 0.01
const Float:HUD_MESSAGE_Y = 0.82
const Float:HUD_WATERMARK_X = -1.0
const Float:HUD_WATERMARK_Y = 0.88

new pcv_watermark_enabled
new pcv_watermark
new pcv_enable
new pcv_msg

public plugin_init()
{
        register_plugin( PLUGIN, VERSION, NAME )
      
        pcv_enable                              = register_cvar("amx_ssm_enabled", "0")
        pcv_msg                                 = register_cvar("amx_ssm_message", "0")
        pcv_watermark_enabled   = register_cvar("amx_ssm_watermark_enabled", "0")
        pcv_watermark                   = register_cvar("amx_ssm_watermark", "")

        register_clcmd("ss_menu", "iScreenShotMenu")
        register_clcmd("say ss_menu", "iScreenShotMenu")
        register_clcmd("say /ss_menu", "iScreenShotMenu")
        register_clcmd("say_team ss_menu", "iScreenShotMenu")
        register_clcmd("say_team /ss_menu", "iScreenShotMenu")
}

public plugin_cfg()
{
        new ConfigsDir[64]
        get_localinfo("amxx_configsdir", ConfigsDir, charsmax(ConfigsDir))
        format(ConfigsDir, charsmax(ConfigsDir), "%s/%s", ConfigsDir, FILE)
      
        if (!file_exists(ConfigsDir))
        {
                server_print("==================================================================")
                server_print("File [%s] not found!", ConfigsDir)
                server_print("==================================================================")
                return;
        }
        server_cmd("exec ^"%s^"", ConfigsDir)
}

public iScreenShotMenu(id)
{
        if(!get_pcvar_num(pcv_enable))
        {
                ChatColor(id, "^4[%s]^1 Меню снятие скриншотов выключено!", PLUGIN)
                return false
        }
              
        if(get_user_flags(id) & OPEN_ACCESS)
        {
              
                new szLen[1024 char]
                formatex(szLen, charsmax(szLen), "\r[%s]\d Выбирайте игрока:", PLUGIN)
                new iMenu = menu_create(szLen, "menu_handler")

                new s_Players[32], i_Num, iPlayer
                new s_Name[32], s_Player[10]

                get_players(s_Players, i_Num)

                for (new i; i < i_Num; i++)
                {
                        iPlayer = s_Players[i]

                        get_user_name(iPlayer, s_Name, charsmax(s_Name))
                        num_to_str(iPlayer, s_Player, charsmax(s_Player))

                        menu_additem(iMenu, s_Name, s_Player, 0)
                }
              
                menu_display(id, iMenu, 0)
                return PLUGIN_HANDLED
        }
        else
        ChatColor(id, "^3[^4%s^3]^1 В доступе отказано!", PLUGIN)
        return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
        if (item == MENU_EXIT)
        {
                menu_destroy(menu)
                return PLUGIN_HANDLED
        }

        new s_Data[6], s_Name[64], i_Access, i_Callback
        menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
        new iPlayer = str_to_num(s_Data)
      
        if(!is_user_connected(iPlayer))
        {
                ChatColor(id, "^4[%s]^1 Игрок не подключён к серверу!", PLUGIN)
                iScreenShotMenu(id)

                return PLUGIN_HANDLED
        }
      
        iScreenShotMenu(id)
      
        iScreenShotMsg(iPlayer, id)
      
        set_task(0.3, "iScreenShotFunct", iPlayer)

        menu_destroy(menu)
        return PLUGIN_HANDLED
}

iScreenShotMsg(id, iPlayer)
{
        if(get_pcvar_num(pcv_msg))
        {
                new playername[128], adminname[128], times[32]
              
                get_user_name(id, playername, charsmax(playername))
                get_user_name(iPlayer, adminname, charsmax(adminname))
              
                get_time("%d.%m.%Y - %H:%M:%S", times, 31)
              
                set_hudmessage( 225, 225, 225, HUD_MESSAGE_X, HUD_MESSAGE_Y, 1, 1.0, 5.0 )
                show_hudmessage( id , "[%s]^nАдминистратор: %s^nСделал скриншот игроку: %s^nСкриншот был сделан: %s", PLUGIN , adminname, playername, times)
              
                log_to_file("addons\amxmodx\logs\ss_menu.log", "Администратор '%s' сделал скриншот игроку '%s'", adminname, playername)
        }
      
        if(get_pcvar_num(pcv_watermark_enabled))
        {
                new Watermark[32]
                get_pcvar_string(pcv_watermark, Watermark, 31)
              
                set_dhudmessage( 0, 225, 0, HUD_WATERMARK_X, HUD_WATERMARK_Y, 2, 1.0, 5.0 )
                show_dhudmessage( id , Watermark)
        }
}

public iScreenShotFunct(id)
{
        client_cmd(id, "snapshot")
}


Отредактировал: Steam, - 8.6.2014, 20:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 21:08
Сообщение #2


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Код:
/*
Название: Screen Shot Menu
Автор: Bonaqua | DimaS
Версия: 1.2

Description:
Данный плагин добовляет возможность делать снимок экрана на стороне клиента.

Version:
v1.0
- Первый релиз

v1.1
- Исправлены ошибки

v1.2
- Добавлен вывод информации о том что администратор сделал скриншот игроку.
- Наложен (вотемарк на скрин).
- Добавлен Cvar amx_ssm_watermark
- Добавлен Cvar amx_ssm_enabled
- Добавлен Cvar amx_ssm_message
- Добавлен Cvar amx_ssm_watermark_enabled
- Добавлен вывод кваров в cfg файл.

Created Screen Shot Menu by Bonaqua and DimaS for http://www.csgames.ru
Web Help - http://www.csgames.ru

Нашёл баг ? Сообщи нам на форум http://www.csgames.ru
*/

#include <amxmodx>
#include <fun>
#include <icolourchat>
#include <dhudmessage>

new const PLUGIN[] = "Screen Shot Menu"
new const VERSION[] = "1.2"
new const NAME[] = "Bonaqua | DimaS"

new const FILE[] = "ss_menu.cfg" // Файл с настройками

new const OPEN_ACCESS = ADMIN_IMMUNITY

const Float:HUD_MESSAGE_X = 0.3
const Float:HUD_MESSAGE_Y = -1.0
const Float:HUD_WATERMARK_X = -1.0
const Float:HUD_WATERMARK_Y = 0.88

new pcv_watermark_enabled
new pcv_watermark
new pcv_enable
new pcv_msg

public plugin_init()
{
register_plugin( PLUGIN, VERSION, NAME )

pcv_enable = register_cvar("amx_ssm_enabled", "0")
pcv_msg = register_cvar("amx_ssm_message", "0")
pcv_watermark_enabled = register_cvar("amx_ssm_watermark_enabled", "0")
pcv_watermark = register_cvar("amx_ssm_watermark", "")

register_clcmd("ss_menu", "iScreenShotMenu")
register_clcmd("say ss_menu", "iScreenShotMenu")
register_clcmd("say /ss_menu", "iScreenShotMenu")
register_clcmd("say_team ss_menu", "iScreenShotMenu")
register_clcmd("say_team /ss_menu", "iScreenShotMenu")
}

public plugin_cfg()
{
new ConfigsDir[64]
get_localinfo("amxx_configsdir", ConfigsDir, charsmax(ConfigsDir))
format(ConfigsDir, charsmax(ConfigsDir), "%s/%s", ConfigsDir, FILE)

if (!file_exists(ConfigsDir))
{
server_print("==================================================================")
server_print("File [%s] not found!", ConfigsDir)
server_print("==================================================================")
return;
}
server_cmd("exec ^"%s^"", ConfigsDir)
}

public iScreenShotMenu(id)
{
if(!get_pcvar_num(pcv_enable))
{
ChatColor(id, "^4[%s]^1 Меню снятие скриншотов выключено!", PLUGIN)
return false
}

if(get_user_flags(id) & OPEN_ACCESS)
{

new szLen[1024 char]
formatex(szLen, charsmax(szLen), "\r[%s]\d Выбирайте игрока:", PLUGIN)
new iMenu = menu_create(szLen, "menu_handler")

new s_Players[32], i_Num, iPlayer
new s_Name[32], s_Player[10]

get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
iPlayer = s_Players[i]

get_user_name(iPlayer, s_Name, charsmax(s_Name))
num_to_str(iPlayer, s_Player, charsmax(s_Player))

menu_additem(iMenu, s_Name, s_Player, 0)
}

menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}
else
ChatColor(id, "^3[^4%s^3]^1 В доступе отказано!", PLUGIN)
return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new iPlayer = str_to_num(s_Data)

if(!is_user_connected(iPlayer))
{
ChatColor(id, "^4[%s]^1 Игрок не подключён к серверу!", PLUGIN)
iScreenShotMenu(id)

return PLUGIN_HANDLED
}

iScreenShotMenu(id)

iScreenShotMsg(iPlayer, id)

set_task(0.3, "iScreenShotFunct", iPlayer)

menu_destroy(menu)
return PLUGIN_HANDLED
}

iScreenShotMsg(id, iPlayer)
{
if(get_pcvar_num(pcv_msg))
{
new playername[128], adminname[128], times[32]

get_user_name(id, playername, charsmax(playername))
get_user_name(iPlayer, adminname, charsmax(adminname))

get_time("%d.%m.%Y - %H:%M:%S", times, 31)

set_hudmessage( 0, 255, 0, HUD_MESSAGE_X, HUD_MESSAGE_Y, 1, 15.0, 5.0 )
show_hudmessage( id , "[%s]^nАдминистратор: %s^nСделал скриншот игроку: %s^nСкриншот был сделан: %s", PLUGIN , adminname, playername, times)

log_to_file("addons\amxmodx\logs\ss_menu.log", "Администратор '%s' сделал скриншот игроку '%s'", adminname, playername)
}

if(get_pcvar_num(pcv_watermark_enabled))
{
new Watermark[32]
get_pcvar_string(pcv_watermark, Watermark, 31)

set_dhudmessage( 0, 255, 0, HUD_WATERMARK_X, HUD_WATERMARK_Y, 2, 15.0, 5.0 )
show_dhudmessage( id , Watermark)
}
}

public iScreenShotFunct(id)
{
client_cmd(id, "snapshot")
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 8.6.2014, 21:19
Сообщение #3


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Ошибка компиляции:

ss_menu.sma(3) : fatal error 100: cannot read from file: "icolourchat"

Compilation aborted.
1 Error.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 21:21
Сообщение #4


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

дык найди инклуд, который используется))
возможно в теме той же есть
либо переделать на другой colorchat
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 8.6.2014, 21:41
Сообщение #5


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

А можешь вообще убрать это HUD сообщение с сделать просто строки в левом углу экрана при скриншоте:


[ScreenShot] (Цвет команды) Администратор: (зеленый)<nick>
[ScreenShot] (Цвет команды) Cделал скриншот игроку: (Зеленый)<nick>
[ScreenShot] (Цвет команды) Скриншот был сделан: (Зеленый) 18.02.2014 (Цвет команды) в (Зеленый) 17:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 21:43
Сообщение #6


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

в обычный чат?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 8.6.2014, 21:48
Сообщение #7


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Да, раз с этим HUD ничего не выходит.

Вот этот icolorchat:

Скрытый текст
Код:
#if defined _chatcolor_included
#endinput
#endif
#define _chatcolor_included

/* Инклюд цветного чата*/
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Зелёный
replace_all(msg, 190, "!y", "^1") // Стандартный
replace_all(msg, 190, "!t", "^3") // Цвет команды

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 21:54
Сообщение #8


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Код:
/*
Название: Screen Shot Menu
Автор: Bonaqua | DimaS
Версия: 1.2

Description:
Данный плагин добовляет возможность делать снимок экрана на стороне клиента.

Version:
v1.0
- Первый релиз

v1.1
- Исправлены ошибки

v1.2
- Добавлен вывод информации о том что администратор сделал скриншот игроку.
- Наложен (вотемарк на скрин).
- Добавлен Cvar amx_ssm_watermark
- Добавлен Cvar amx_ssm_enabled
- Добавлен Cvar amx_ssm_message
- Добавлен Cvar amx_ssm_watermark_enabled
- Добавлен вывод кваров в cfg файл.

Created Screen Shot Menu by Bonaqua and DimaS for http://www.csgames.ru
Web Help - http://www.csgames.ru

Нашёл баг ? Сообщи нам на форум http://www.csgames.ru
*/

#include <amxmodx>
#include <fun>
#include <icolourchat>
#include <dhudmessage>

new const PLUGIN[] = "Screen Shot Menu"
new const VERSION[] = "1.2"
new const NAME[] = "Bonaqua | DimaS"

new const FILE[] = "ss_menu.cfg" // Файл с настройками

new const OPEN_ACCESS = ADMIN_IMMUNITY

const Float:HUD_MESSAGE_X = 0.01
const Float:HUD_MESSAGE_Y = 0.82
const Float:HUD_WATERMARK_X = -1.0
const Float:HUD_WATERMARK_Y = 0.88

new pcv_watermark_enabled
new pcv_watermark
new pcv_enable
new pcv_msg

public plugin_init()
{
register_plugin( PLUGIN, VERSION, NAME )

pcv_enable = register_cvar("amx_ssm_enabled", "0")
pcv_msg = register_cvar("amx_ssm_message", "0")
pcv_watermark_enabled = register_cvar("amx_ssm_watermark_enabled", "0")
pcv_watermark = register_cvar("amx_ssm_watermark", "")

register_clcmd("ss_menu", "iScreenShotMenu")
register_clcmd("say ss_menu", "iScreenShotMenu")
register_clcmd("say /ss_menu", "iScreenShotMenu")
register_clcmd("say_team ss_menu", "iScreenShotMenu")
register_clcmd("say_team /ss_menu", "iScreenShotMenu")
}

public plugin_cfg()
{
new ConfigsDir[64]
get_localinfo("amxx_configsdir", ConfigsDir, charsmax(ConfigsDir))
format(ConfigsDir, charsmax(ConfigsDir), "%s/%s", ConfigsDir, FILE)

if (!file_exists(ConfigsDir))
{
server_print("==================================================================")
server_print("File [%s] not found!", ConfigsDir)
server_print("==================================================================")
return;
}
server_cmd("exec ^"%s^"", ConfigsDir)
}

public iScreenShotMenu(id)
{
if(!get_pcvar_num(pcv_enable))
{
ChatColor(id, "^4[%s]^1 Меню снятие скриншотов выключено!", PLUGIN)
return false
}

if(get_user_flags(id) & OPEN_ACCESS)
{

new szLen[1024 char]
formatex(szLen, charsmax(szLen), "\r[%s]\d Выбирайте игрока:", PLUGIN)
new iMenu = menu_create(szLen, "menu_handler")

new s_Players[32], i_Num, iPlayer
new s_Name[32], s_Player[10]

get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
iPlayer = s_Players[i]

get_user_name(iPlayer, s_Name, charsmax(s_Name))
num_to_str(iPlayer, s_Player, charsmax(s_Player))

menu_additem(iMenu, s_Name, s_Player, 0)
}

menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}
else
ChatColor(id, "^3[^4%s^3]^1 В доступе отказано!", PLUGIN)
return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new iPlayer = str_to_num(s_Data)

if(!is_user_connected(iPlayer))
{
ChatColor(id, "^4[%s]^1 Игрок не подключён к серверу!", PLUGIN)
iScreenShotMenu(id)

return PLUGIN_HANDLED
}

iScreenShotMenu(id)

iScreenShotMsg(iPlayer, id)

set_task(0.3, "iScreenShotFunct", iPlayer)

menu_destroy(menu)
return PLUGIN_HANDLED
}

iScreenShotMsg(id, iPlayer)
{
if(get_pcvar_num(pcv_msg))
{
new playername[128], adminname[128], times[32]

get_user_name(id, playername, charsmax(playername))
get_user_name(iPlayer, adminname, charsmax(adminname))

get_time("%d.%m.%Y - %H:%M:%S", times, 31)

ChatColor( id , "^1[^4%s^1] Администратор: ^4%s", PLUGIN , adminname)
ChatColor( id , "^1[^4%s^1] Сделал скриншот игроку: ^4%s", PLUGIN , playername)
ChatColor( id , "^1[^4%s^1] Скриншот был сделан: ^4%s", PLUGIN , times)

log_to_file("addons\amxmodx\logs\ss_menu.log", "Администратор '%s' сделал скриншот игроку '%s'", adminname, playername)
}

if(get_pcvar_num(pcv_watermark_enabled))
{
new Watermark[32]
get_pcvar_string(pcv_watermark, Watermark, 31)

set_dhudmessage( 0, 225, 0, HUD_WATERMARK_X, HUD_WATERMARK_Y, 2, 1.0, 5.0 )
show_dhudmessage( id , Watermark)
}
}

public iScreenShotFunct(id)
{
client_cmd(id, "snapshot")
}


этот инклуд, что ты скинул
он у тебя есть в папке incudes то?
с HUD то все получилось норм, там из-за инклуда не компилилось
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 8.6.2014, 22:09
Сообщение #9


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

В том то и дело, что есть. Просто не компилируется плагин и все. Я онлайном через сайт компилирую.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 22:12
Сообщение #10


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

в онлайн компиляторе не поддерживаются нестандартные инклуды
нужно компилить локально
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 8.6.2014, 22:35
Сообщение #11


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

В локальном то же ошибка
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 8.6.2014, 22:42
Сообщение #12


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Завтра часиков в 7-8 утра сделаю вам, если подождете
Комп офф прост, экзамен завтра
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 9.6.2014, 5:49
Сообщение #13


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

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Код:
/*
Название: Screen Shot Menu
Автор: Bonaqua | DimaS
Версия: 1.2

Description:
Данный плагин добовляет возможность делать снимок экрана на стороне клиента.

Version:
v1.0
- Первый релиз

v1.1
- Исправлены ошибки

v1.2
- Добавлен вывод информации о том что администратор сделал скриншот игроку.
- Наложен (вотемарк на скрин).
- Добавлен Cvar amx_ssm_watermark
- Добавлен Cvar amx_ssm_enabled
- Добавлен Cvar amx_ssm_message
- Добавлен Cvar amx_ssm_watermark_enabled
- Добавлен вывод кваров в cfg файл.

Created Screen Shot Menu by Bonaqua and DimaS for <a href="https://c-s.net.ua/url?u=http%3A%2F%2Fwww.csgames.ru" target="_blank">http://www.csgames.ru</a>
Web Help - <a href="https://c-s.net.ua/url?u=http%3A%2F%2Fwww.csgames.ru" target="_blank">http://www.csgames.ru</a>

Нашёл баг ? Сообщи нам на форум <a href="https://c-s.net.ua/url?u=http%3A%2F%2Fwww.csgames.ru" target="_blank">http://www.csgames.ru</a>
*/

#include <amxmodx>
#include <fun>
#include <dhudmessage>

#define MSG_TEXT_MSG 76

new const PLUGIN[] = "Screen Shot Menu"
new const VERSION[] = "1.2"
new const NAME[] = "Bonaqua | DimaS"

new const FILE[] = "ss_menu.cfg" // Файл с настройками

new const OPEN_ACCESS = ADMIN_IMMUNITY

const Float:HUD_MESSAGE_X = 0.01
const Float:HUD_MESSAGE_Y = 0.82
const Float:HUD_WATERMARK_X = -1.0
const Float:HUD_WATERMARK_Y = 0.88

new pcv_watermark_enabled
new pcv_watermark
new pcv_enable
new pcv_msg

public plugin_init()
{
register_plugin( PLUGIN, VERSION, NAME )

pcv_enable = register_cvar("amx_ssm_enabled", "0")
pcv_msg = register_cvar("amx_ssm_message", "0")
pcv_watermark_enabled = register_cvar("amx_ssm_watermark_enabled", "0")
pcv_watermark = register_cvar("amx_ssm_watermark", "")

register_clcmd("ss_menu", "iScreenShotMenu")
register_clcmd("say ss_menu", "iScreenShotMenu")
register_clcmd("say /ss_menu", "iScreenShotMenu")
register_clcmd("say_team ss_menu", "iScreenShotMenu")
register_clcmd("say_team /ss_menu", "iScreenShotMenu")
}

public plugin_cfg()
{
new ConfigsDir[64]
get_localinfo("amxx_configsdir", ConfigsDir, charsmax(ConfigsDir))
format(ConfigsDir, charsmax(ConfigsDir), "%s/%s", ConfigsDir, FILE)

if (!file_exists(ConfigsDir))
{
server_print("==================================================================")
server_print("File [%s] not found!", ConfigsDir)
server_print("==================================================================")
return;
}
server_cmd("exec ^"%s^"", ConfigsDir)
}

public iScreenShotMenu(id)
{
if(!get_pcvar_num(pcv_enable))
{
ChatColor(id, "!g[%s]!y Меню снятие скриншотов выключено!", PLUGIN)
return false
}

if(get_user_flags(id) & OPEN_ACCESS)
{

new szLen[1024 char]
formatex(szLen, charsmax(szLen), "\r[%s]\d Выбирайте игрока:", PLUGIN)
new iMenu = menu_create(szLen, "menu_handler")

new s_Players[32], i_Num, iPlayer
new s_Name[32], s_Player[10]

get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
iPlayer = s_Players[i]

get_user_name(iPlayer, s_Name, charsmax(s_Name))
num_to_str(iPlayer, s_Player, charsmax(s_Player))

menu_additem(iMenu, s_Name, s_Player, 0)
}

menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}
else
ChatColor(id, "^3[!g%s^3]!y В доступе отказано!", PLUGIN)
return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new iPlayer = str_to_num(s_Data)

if(!is_user_connected(iPlayer))
{
ChatColor(id, "!g[%s]!y Игрок не подключён к серверу!", PLUGIN)
iScreenShotMenu(id)

return PLUGIN_HANDLED
}

iScreenShotMenu(id)

iScreenShotMsg(iPlayer, id)

set_task(0.3, "iScreenShotFunct", iPlayer)

menu_destroy(menu)
return PLUGIN_HANDLED
}

iScreenShotMsg(id, iPlayer)
{
if(get_pcvar_num(pcv_msg))
{
new playername[128], adminname[128], times[32]

get_user_name(id, playername, charsmax(playername))
get_user_name(iPlayer, adminname, charsmax(adminname))

get_time("%d.%m.%Y - %H:%M:%S", times, 31)

ChatColor( id , "!y[!g%s!y] Администратор: !g%s", PLUGIN , adminname)
ChatColor( id , "!y[!g%s!y] Сделал скриншот игроку: !g%s", PLUGIN , playername)
ChatColor( id , "!y[!g%s!y] Скриншот был сделан: !g%s", PLUGIN , times)

log_to_file("addons\amxmodx\logs\ss_menu.log", "Администратор '%s' сделал скриншот игроку '%s'", adminname, playername)
}

if(get_pcvar_num(pcv_watermark_enabled))
{
new Watermark[32]
get_pcvar_string(pcv_watermark, Watermark, 31)

set_dhudmessage( 0, 225, 0, HUD_WATERMARK_X, HUD_WATERMARK_Y, 2, 1.0, 5.0 )
show_dhudmessage( id , Watermark)
}
}

public iScreenShotFunct(id)
{
client_cmd(id, "snapshot")
}

ChatColor(const id, const szMessage[], ...)
{
new szMsg[191], iPlayers[32], iPlayersNum = 1;
vformat(szMsg, charsmax(szMsg), szMessage, 3);
while(replace(szMsg, charsmax(szMsg), "!y", "^1")) {}
while(replace(szMsg, charsmax(szMsg), "!t", "^3")) {}
while(replace(szMsg, charsmax(szMsg), "!g", "^4")) {}
switch(id)
{
case 0: get_players(iPlayers, iPlayersNum, "ch");
default: iPlayers[0] = id;
}
for(new i; i < iPlayersNum; i++)
{
if(!is_user_connected(iPlayers[i])) continue;
message_begin(MSG_ONE_UNRELIABLE, MSG_TEXT_MSG, _, iPlayers[i]);
write_byte(iPlayers[i]);
write_string(szMsg);
message_end();
}
}

переделал на другой цветной чат
компилить должен и онлайн компилем
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Steam
сообщение 13.6.2014, 15:38
Сообщение #14


Стаж: 12 лет

Сообщений: 36
Благодарностей: 1
Полезность: 19

Решено. Спасибо!!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Altaj
сообщение 2.9.2014, 8:42
Сообщение #15


Стаж: 12 лет
Город: Барнаул

Сообщений: 456
Благодарностей: 442
Полезность: 565

Не компилируется.

screen_shot_menu.sma(41) : error 001: expected token: ";", but found "-identifier-"
screen_shot_menu.sma(64) : error 001: expected token: ",", but found "-identifier-"
screen_shot_menu.sma(64) : error 017: undefined symbol "searchlite"
screen_shot_menu.sma(64) : error 029: invalid expression, assumed zero
screen_shot_menu.sma(64) : fatal error 107: too many error messages on one line

Compilation aborted.
5 Errors.

Отредактировал: Altaj, - 2.9.2014, 9:57
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Altaj
сообщение 2.9.2014, 16:29
Сообщение #16


Стаж: 12 лет
Город: Барнаул

Сообщений: 456
Благодарностей: 442
Полезность: 565

Кто-то поможет мне разобраться или скинуть рабочий плагин?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 2.9.2014, 16:38
Сообщение #17


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Altaj, этот прекрасно компилится
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Altaj
сообщение 2.9.2014, 16:58
Сообщение #18


Стаж: 12 лет
Город: Барнаул

Сообщений: 456
Благодарностей: 442
Полезность: 565

Цитата(Bloo @ 2.9.2014, 16:38) *
Altaj, этот прекрасно компилится

Странно, утром ничего не получалось, зато сейчас все без проблем.
А как поправить само меню? Если игрока найти в меню нажатием далее и сделать скриншот, оно возвращается заново на первую страницу. Т.е. чтобы сделать несколько скринов, нужно постоянно находить игрока...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 2.9.2014, 17:01
Сообщение #19


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Altaj, думаю проще установить просто несколько скринов подряд с задержкой.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Altaj
сообщение 2.9.2014, 17:05
Сообщение #20


Стаж: 12 лет
Город: Барнаул

Сообщений: 456
Благодарностей: 442
Полезность: 565

Bloo,
А кто в этом соображает? Вы можете? Я-то вообще ни ни в таком ))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: