Русское сообщество по скриптингу

Какую проверку нужно ставить?  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Какую проверку нужно ставить?

Сообщение httpeace// » 07 ноя 2017, 15:49

Здравствуйте.
Такая проблемка, значит есть режим кнопки для детрана, в нем есть функция, проверка, если игрок нажимает кнопку игнорируя меню с режимами, то автоматически выбирается первый режим (кнопки).
Захотел поставить дхуд уведомление на эти действия... Все выводиться, но если сперва нажать кнопку, то выводиться два дхуда, перебивая друг друга, т.к просто ставиться дефолт режим. Я ломаю голову не могу понять какую сделать проверку, чтобы дхуд выводился исключительно при нажатии кнопки, вообще отдельно от меню... Может кто подскажет?

Код: Выделить всё
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#include <deathrun_modes>

#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#pragma semicolon 1

#define PLUGIN "Deathrun Mode: Buttons"
#define VERSION "1.0.0"
#define AUTHOR "Mistrick"

#define IsPlayer(%1) (%1 && %1 <= g_iMaxPlayers)

enum NONE_MODE };

//new const PREFIX[] = "^4[DRM]";

new g_iModeButtonsg_iCurModeg_iMaxPlayers;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
RegisterHam(Ham_Use"func_button""Ham_UseButtons_Pre"0);
    
    
g_iMaxPlayers get_maxplayers();
    
    
g_iModeButtons dr_register_mode
    
(
        .
Name "DRM_MODE_BUTTONS",
        .
Mark "buttons",
        .
RoundDelay 0,
        .
CT_BlockWeapons 0,
        .
TT_BlockWeapons 0,
        .
CT_BlockButtons 0,
        .
TT_BlockButtons 0,
        .
Bhop 1,
        .
Usp 1,
        .
Glock 0,
        .
Hide 0
    
);
}
public 
dr_selected_mode(idmode)
{
    
g_iCurMode mode;
    if(
mode == g_iModeButtons)
    {
        
set_dhudmessage(random_num(0,255), random_num(20,255), random_num(0,255), -1.00.210.00.00.16.0);
        
show_dhudmessage(0"%L"LANG_SERVER"DRM_MODE_HUD_BUTTONS");
    }
}
public 
Ham_UseButtons_Pre(entcalleractivatoruse_type)
{
    if(
g_iCurMode != NONE_MODE || !IsPlayer(activator)) return HAM_IGNORED;

    new 
CsTeams:team cs_get_user_team(activator);

    if(
team != CS_TEAM_T) return HAM_IGNORED;
    
dr_set_mode(g_iModeButtons1activator);
    
show_menu(activator0"^n");
    
//client_print_color(0, print_team_red, "%s %L", PREFIX, LANG_PLAYER, "DRM_USED_BUTTON", LANG_PLAYER, "DRM_MODE_BUTTONS");
    
set_dhudmessage(random_num(0,255), random_num(20,255), random_num(0,255), -1.00.210.00.00.16.0);
    
show_dhudmessage(0"%L"LANG_SERVER"DRM_USED_BUTTON");

    return 
HAM_IGNORED;

P.S В голову только приходит сделать два одинаковых режима, с разными названиями, но как по мне не оч затея... Перво начально ставил проверку на IsPlayer, вроде бы было замечательно, но работала только если террорист нажимал кнопку вообще, т.е хотя бы раз за карту.
скромность украшает, но оставляет голодным
________________________________
Аватара пользователя
httpeace//
 
Сообщения: 179
Зарегистрирован: 01 окт 2013, 14:31
Откуда: Владивосток
Благодарил (а): 51 раз.
Поблагодарили: 15 раз.
Опыт программирования: Больше трех лет
Языки программирования: Lua

Re: Какую проверку нужно ставить?  [Решено]

Сообщение BaHeK » 07 ноя 2017, 16:39

Если ты хочешь не показывать этот DHUD при нажатии кнопки
Код: Выделить всё
show_dhudmessage(0"%L"LANG_SERVER"DRM_MODE_HUD_BUTTONS"); 

То
Код: Выделить всё
dr_set_mode(g_iModeButtons1activator); 

->
Код: Выделить всё
dr_set_mode(g_iModeButtons0activator); 

[spoiler]Я VS VolksWagen POLO, МКАД
Психанул или моя русская рулетка
http://cs618330.vk.me/v618330946/8c16/hEeTVyYjCZw.jpg - Ой как плохо поступил[/spoiler]
Аватара пользователя
BaHeK
Скриптер
 
Сообщения: 544
Зарегистрирован: 26 авг 2011, 19:32
Откуда: Москва
Благодарил (а): 403 раз.
Поблагодарили: 261 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12