Перейти к содержимому

  • Регистрация

Хочешь создать сайт?

Вы новичок? Не знаете какой хостинг вас не обманет? Мы готовы Вам предоставить хостинг для сайта так же VDS|VPS, хостинг работает с 1997 года у них большая база клиетов и нет ни малейшего шанса, что вас кинут. Будьте уверны, ведь НАШ САЙТ работает у них! Удачных начинаний, не болей ♥

AMXHELP

Ловим команду BUY (B)

Рекомендованные сообщения

Многие скорее всего думают

Да что там прописал register_clcmd("buy", "buy_func") и все


К сожалению нет 
Так как в кс появилось новое так называемое Графическое (или VGUI menu)
Команду buy стало отловить еще сложнее 
Ну так приступим 

 

?
1
2
3
4
5
6
7
8
9
10
11
12
#include <amxmodx>
 
public plugin_init()
{
 register_clcmd("buy", "buy_func") // регистрируем нашу команду которую будем ловить
}
 
public buy_func(id)
{
 set_task(1.0, "BuyFunc", id) // мы заменяем наше меню покупки на то меню которое хотим
}



Кажется вот и отловили, заменили 
К сожалению это не конец 
Нам же нужно отключить VGUI menu так как его посредством амхх не так просто заменить 

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <amxmodx>
#include <fun>
 
public plugin_init()
{
 register_clcmd("buy", "buy_func") // регистрируем нашу команду которую будем ловить
}
 
public buy_func(id)
{
 set_task(1.0, "BuyFunc", id) // мы заменяем наше меню покупки на то меню которое хотим
}
 
public BuyFunc(id)
{
 new menu = menu_create("Магазин сервера", "menu_func_buy)
 menu_additem(menu, " Купить пистолет")
}
 
public menu_func_buy(id, menu, item)
{
 switch(item)
 {
  case 0:
  {
    give_item(id, "weapon_deagle")
  }
 }
}
 
public client_connect(id)
{
 client_cmd(id,"setinfo _vgui_menus 0") // Отключаем VGUI menu
}



Собственно все
В конечном итоге плагин для отлова buy 

?
1
2
3
4
5
public client_connect(id)
{
 client_cmd(id,"setinfo _vgui_menus 0") // Отключаем VGUI menu
}
  • Мне нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не логичное как по мне решение. Почему? Вот ответы:
1)Нарушаем правила мониторингов. На многих мониторингов четко сказано: нельзя менять/изменять настройки у клиента иначе за это полагается бан. Не знаю на сколько правдивое это правило, но даже по-моему мнению ЭТО НЕПРАВИЛЬНО трогать настройки клиента и изменять их. Кнш вы можете сделать так чтобы возвращать те настройки какие у него и были при диссконекте, но все равно
2)В чем проблема просто поставить mp_buytime 0 и дальше уже делать то что ты хочешь? Не надо закрывать меню, не надо трогать настройки клиента и все будет нормально работать как надо.

  • Мне нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Можно отправлять просто мессагу игроку закрытия его гуи меню.
2. Как писал BirnoSemiSem, не сработает такой метод, прежнее меню всёравно откроется если это доступно. Если оно не будет доступно то и функция "buy" тоже не сработает.

По факту вот список команд для полного отлова бай меню:

new g_strBuyCommands[][] 					=	{
	
	"usp", "glock", "deagle", "p228", "elites",
	"fn57", "m3", "xm1014", "mp5", "tmp", "p90",
	"mac10", "ump45", "ak47", "galil", "famas",
	"sg552", "m4a1", "aug", "scout", "awp", "g3sg1",
	"sg550", "m249", "vest", "vesthelm", "flash",
	"hegren", "sgren", "defuser", "nvgs", "shield",
	"primammo", "secammo", "km45", "9x19mm", "nighthawk",
	"228compact", "fiveseven", "12gauge", "autoshotgun",
	"mp", "c90", "cv47", "defender", "clarion", "krieg552",
	"bullpup", "magnum", "d3au1", "krieg550",
	"buy", "buyequip", "cl_autobuy",
	"cl_rebuy", "cl_setautobuy", "cl_setrebuy", "client_buy_open"
};

Мессага для закрытия гуи:

message_begin( MSG_ONE, get_user_msgid( "BuyClose" ), _, pPlayer );
message_end( );

Также есть баг то что гуи меню мигнет у клиента примерно на долю секунды и это не фикстится, не хочу поднимать тему которую поднимали много раз.

  • Мне нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим. Условия использования Политика конфиденциальности Правила