Растянуть бай зону

Сообщения
702
Реакции
54
В общем, у меня написано растягивание бай зоны, чтобы отлавливать B (buy) и вызывать менюшку, но работает не совсем корректно, способ такой:

Код:
new msg_textmsg, msg_statusicon, msg_buyclose;

+
Код:

register_clcmd("shop", "Cmd_ShopMenu");
register_clcmd("say /shop", "Cmd_ShopMenu");
register_clcmd("say_team /shop", "Cmd_ShopMenu");

register_clcmd("buy", "Cmd_BuyHook");
register_clcmd("buyequip", "Cmd_BuyHook");
register_clcmd("client_buy_open", "Cmd_ClientBuyHook");

+
Код:
    msg_statusicon = get_user_msgid("StatusIcon");
msg_buyclose = get_user_msgid("BuyClose");

register_message(msg_statusicon, "Message_StatusIcon");

new ent = -1;
while((ent = find_ent_by_class(ent, "func_buyzone")) > 0)
if(entity_get_int(ent, EV_INT_iuser1) != 1337)
remove_entity(ent);
}

+
Код:
public plugin_precache()
{
new ent = create_entity("func_buyzone");
if(ent)
{
entity_set_size(ent, Float:{ -4096.0, -4096.0, -4096.0 }, Float:{ -4095.0, -4095.0, -4095.0 });
entity_set_int(ent, EV_INT_iuser1, 1337);
}

precache_sound(pick_ammo_sound);
}

+
Код:
public Cmd_BuyHook(id)
{
if(is_user_connected(id))
Cmd_ShopMenu(id);

return PLUGIN_HANDLED;
}

public Cmd_ClientBuyHook(id)
{
if(is_user_alive(id))
{
message_begin(MSG_ONE, msg_buyclose, .player = id);
message_end();

Cmd_ShopMenu(id);
}

return PLUGIN_HANDLED;
}

public CBasePlayer_Spawn(const id)
{
if(is_user_alive(id))
{
message_begin(MSG_ONE, msg_statusicon, .player = id);
write_byte(1);
write_string("buyzone");
write_byte(0);
write_byte(0);
write_byte(0);
message_end();
}
}

+
Код:

public Message_StatusIcon()
{
new arg_string[8];
get_msg_arg_string(2, arg_string, charsmax(arg_string));

if(!strcmp(arg_string, "buyzone"))
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}

Может есть лучший способ? Прошу прощения, что по кускам, а не плагином, есть свои причины, чтобы полностью не выкладывать плагин.
27 Сен 2017
Никто не может помочь?
 
Сообщения
2,751
Реакции
3,016
Помог
61 раз(а)
Создаешь, Меняешь координаты mins и maxs (entity_set_size), выставляешь осязаемость созданной entity, меняешь keyvaule для соответствия команде.
 
Сообщения
702
Реакции
54
wopox1337, а есть какой-нибудь пример, просто писал не я и умений не так и много)
 
Сообщения
2,751
Реакции
3,016
Помог
61 раз(а)
Сообщения
702
Реакции
54
wopox1337, так?
Код:
new ent = create_entity("func_buyzone");
if(ent)
{
entity_set_size(ent, Float:{ 8192 }, Float:{ -8192 });
entity_set_int(ent, EV_INT_iuser1, 1337);
}
 
Сообщения
702
Реакции
54
wopox1337,
Код:
new ent = create_entity("func_buyzone");
if(ent)
{
entity_set_size(ent, Float:{ 8192.0, 8192.0, 8192.0 }, Float:{ -8192.0, -8192.0, -8192.0 });
entity_set_int(ent, EV_INT_iuser1, 1337);
}

поставил, ничего не изменилось, работает открытие менюшки через раз
 
Сообщения
443
Реакции
319
Помог
13 раз(а)
Что значит через раз?
 
Сообщения
702
Реакции
54
Underground Player, ну т.е щас менюшка открывается, а через время нет.
1 Окт 2017
Underground Player, бывает один раз в начале раунда открылась и больше через B - нет, только через консольную команду.
 
Сообщения
443
Реакции
319
Помог
13 раз(а)
тригер стоит?
 
Сообщения
839
Реакции
519
Помог
12 раз(а)
PHP:
entity_set_size(ent, Float:{ 8192.0, 8192.0, 8192.0 }, Float:{ -8192.0, -8192.0, -8192.0 });


разве не наоборот?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу