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

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

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

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

2 страниц V   1 2

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

, Вопрос по коду плагина
TEROR^
сообщение 2.9.2014, 17:28
Сообщение #21
Стаж: 16 лет

Сообщений: 577
Благодарностей: 251
Полезность: 0

Цитата(Altaj @ 2.9.2014, 17:58) *
Странно, утром ничего не получалось, зато сейчас все без проблем.
А как поправить само меню? Если игрока найти в меню нажатием далее и сделать скриншот, оно возвращается заново на первую страницу. Т.е. чтобы сделать несколько скринов, нужно постоянно находить игрока...

Видимо, нужно сделать запоминание страницы меню и после скриншота возвращать на ту, которая была открыта. Как один из вариантов доработки.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Altaj
сообщение 6.9.2014, 11:14
Сообщение #22


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

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

Апну еще раз здесь эту темку. Кто-то сможет доделать этот плагин?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 6.9.2014, 19:54
Сообщение #23
Стаж: 14 лет

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

Altaj,
В том меню нельзя так сделать.... там нет позиции в вкладке...

попробуй этот код (написал сам, лично тебе):

Код:
#include <amxmodx>
#include <fun>
#include <dhudmessage>

new g_menuPosition[33]
new g_menuPlayers[33][32]
new g_menuPlayersNum[33]
new pcv_enable

public plugin_init()
{
register_plugin("Screen Shot Menu", "1.5", "Sutar")

pcv_enable = register_cvar("amx_ssm_enabled", "0")

register_clcmd("admin_kickmenu", "cmdScreenShotMenu")
register_menucmd(register_menuid("Screen Shot Menu"), 1023, "actionScreenShotMenu")
}

public cmdScreenShotMenu(id)
{
if(!get_pcvar_num(pcv_enable))
{
ChatColor(id, "!g[Screen Shot Menu]!y Меню снятие скриншотов выключено!")
return PLUGIN_HANDLED
}

displayScreenShotMenu(id, g_menuPosition[id] = 0)
return PLUGIN_HANDLED
}

displayScreenShotMenu(id, pos)
{
get_players(g_menuPlayers[id], g_menuPlayersNum[id])

new menuBody[512]
new b = 0
new i
new name[32]
new start = pos * 8

if(start >= g_menuPlayersNum[id])
start = pos = g_menuPosition[id] = 0

new len = format(menuBody, 511, "\rВыбирайте игрока:\Rст. %d из %d^n^n", pos + 1, (g_menuPlayersNum[id] / 8 + ((g_menuPlayersNum[id] % 8) ? 1 : 0)))
new end = start + 8
new keys = MENU_KEY_0

if(end > g_menuPlayersNum[id])
end = g_menuPlayersNum[id]

for(new a = start; a < end; a++)
{
i = g_menuPlayers[id][a]
get_user_name(i, name, 31)

if(get_user_flags(i) & ADMIN_IMMUNITY || i == id)
len += format(menuBody[len], 511-len, "\d%d. %s *^n", ++b, name)
else
{
keys |= (1<<b)

if(is_user_admin(i))
len += format(menuBody[len], 511-len, "\w%d. %s \r*^n", ++b, name)
else
len += format(menuBody[len], 511-len, "\w%d. %s^n", ++b, name)
}
}

if(end != g_menuPlayersNum[id])
{
keys |= MENU_KEY_9
format(menuBody[len], 511-len, "^n\w9. Дальше...^n0. Назад")
}
else
format(menuBody[len], 511-len, "^n\w0. \wНазад")
show_menu(id, keys, menuBody, -1, "Screen Shot Menu")
}

public actionScreenShotMenu(id, key)
{
switch(key)
{
case 8: displayScreenShotMenu(id, ++g_menuPosition[id])
case 9: displayScreenShotMenu(id, --g_menuPosition[id])
default:
{
new user = g_menuPlayers[id][g_menuPosition[id] * 8 + key];

if(is_user_connected(user))
client_cmd(user, "snapshot")

displayScreenShotMenu(id, g_menuPosition[id])
}
}
return PLUGIN_HANDLED
}

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();
}
}


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