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

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

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

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

Открытие меню у других игроков

Статус пользователя DRIVE37
сообщение 13.6.2017, 19:58
Сообщение #1


Стаж: 11 лет

Сообщений: 146
Благодарностей: 14
Полезность: 69

Привет всем, подскажите пожалуйста, как сделать следующее: Когда я открываю меню у себя по команде в консоль open_menu, мне нужно чтобы это меню открылось еще и у других игроков у которых есть флаг t.
Спасибо заранее.

Cкрытый текст
Код
#include <amxmodx>
#include <amxmisc>

#define PLUGIN    "Menu"
#define    VERSION    "0.1"
#define    AUTHOR    "64564"

#define is_alive_check(%0) (!is_user_alive(%0))

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

    register_clcmd("open_menu", "ServersMenu")

    register_menucmd(register_menuid("MenuServers"),  1023, "FuncMenuServers")
}

/**=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
    Меню Сервера.
-=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-*/
public ServersMenu(id)
{
    static szMenu[650], iLen, keys
    iLen = 0

    iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\rCSDM\y] \wМеню Сервера \yツ^n^n");

    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r1\y] \dМагазин \d(\r---\d)^n" : "\y[\r1\y] \wМагазин^n")
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r2\y] \wПередать Деньги^n^n")

    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r3\y] \dПоставить Пушку \d(\r---\d)^n" : "\y[\r3\y] \wПоставить Пушку^n")
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r4\y] \dПоставить Лазер \d(\r---\d)^n" : "\y[\r4\y] \wПоставить Лазер^n")
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r5\y] \dПоставить Раздатчик \d(\r---\d)^n^n" : "\y[\r5\y] \wПоставить Раздатчик^n^n")

    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r6\y] \wНоминировать Карту^n")
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r7\y] \wКупить Привилегии^n^n")
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r8\y] \wЗастрял^n^n")

    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r9\y] \wВыбрать Команду^n")

    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r0\y] \wВыход")

    keys |= (MENU_KEY_1|MENU_KEY_3|MENU_KEY_2|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7
|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0)

    !is_alive_check(id) ? (keys |= (MENU_KEY_1|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5)) : (keys &= ~(MENU_KEY_1|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5))
    
    show_menu_new(id, keys, szMenu, -1, "MenuServers");
    return PLUGIN_HANDLED
}

public FuncMenuServers(id, key)
{
        new SteamID[35]
        get_user_authid(id, SteamID, charsmax(SteamID))

    switch(key)
    {
        case 0:
        {
            if(is_alive_check(id))
                return PLUGIN_CONTINUE
            client_cmd(id, "csdmshop")
        }
        case 1: client_cmd(id, "moneymenu")
        case 2:
        {
            if(is_alive_check(id))
                return PLUGIN_CONTINUE
            client_cmd(id, "sentry_build")
        }
        case 3:
        {
            if(is_alive_check(id))
                return PLUGIN_CONTINUE
            client_cmd(id, "+setlaser")
        }
        case 4:
        {
            if(is_alive_check(id))
                return PLUGIN_CONTINUE
            client_cmd(id, "build_dispenser")
        }
        case 5: client_cmd(id, "say /maps")
        case 6:
                {
                    show_motd(id, "motd.txt")
                }
        case 7: ClientCommand_UnStick(id);
        case 8: ShowMenu(id)    
    }
    return PLUGIN_HANDLED
}

stock show_menu_new(id, iKeys, const szMenu[], iTime = -1, const title[]="")
{
    new szNewMenu[1024]
    format(szNewMenu, charsmax(szNewMenu), "%s", szMenu)
    return show_menu(id, iKeys, szNewMenu, iTime, title)
}


Отредактировал: DRIVE37, - 13.6.2017, 20:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ssx
сообщение 13.6.2017, 22:48
Сообщение #2


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Попробуй Код:
public ServersMenu(id)

заменить на Код:
public ServersMenu(0)


Если не получится то тогда Код:
public ServersMenu()
и внутри функции цикл по игрокам.


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя YrkinSon
сообщение 16.6.2017, 8:07
Сообщение #3
Стаж: 12 лет
Город: Новосибирск

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

Может и сработает
Код:

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Menu"
#define VERSION "0.1"
#define AUTHOR "64564"

#define is_alive_check(%0) (!is_user_alive(%0))

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

register_clcmd("open_menu", "Cmd_OpenServersMenu")
register_clcmd("open_menu_open", "ServersMenu")

register_menucmd(register_menuid("MenuServers"), 1023, "FuncMenuServers")
}

/**=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=
Меню Сервера.
-=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=-*/
public Cmd_OpenServersMenu(id)
{
if(get_user_flags(id) && ADMIN_LEVEL_H)
{
client_cmd(0, "open_menu_open")
}
}

public ServersMenu(id)
{
if(!(get_user_flags(id) && ADMIN_LEVEL_H))
return PLUGIN_HANDLED

static szMenu[650], iLen, keys
iLen = 0

iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\rCSDM\y] \wМеню Сервера \yツ^n^n");

iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r1\y] \dМагазин \d(\r---\d)^n" : "\y[\r1\y] \wМагазин^n")
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r2\y] \wПередать Деньги^n^n")

iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r3\y] \dПоставить Пушку \d(\r---\d)^n" : "\y[\r3\y] \wПоставить Пушку^n")
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r4\y] \dПоставить Лазер \d(\r---\d)^n" : "\y[\r4\y] \wПоставить Лазер^n")
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, is_alive_check(id) ? "\y[\r5\y] \dПоставить Раздатчик \d(\r---\d)^n^n" : "\y[\r5\y] \wПоставить Раздатчик^n^n")

iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r6\y] \wНоминировать Карту^n")
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r7\y] \wКупить Привилегии^n^n")
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r8\y] \wЗастрял^n^n")

iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y[\r9\y] \wВыбрать Команду^n")

iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n\y[\r0\y] \wВыход")

keys |= (MENU_KEY_1|MENU_KEY_3|MENU_KEY_2|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|ME
NU_KEY_8|MENU_KEY_9|MENU_KEY_0)

!is_alive_check(id) ? (keys |= (MENU_KEY_1|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5)) : (keys &= ~(MENU_KEY_1|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5))

show_menu_new(id, keys, szMenu, -1, "MenuServers");
return PLUGIN_HANDLED
}

public FuncMenuServers(id, key)
{
new SteamID[35]
get_user_authid(id, SteamID, charsmax(SteamID))

switch(key)
{
case 0:
{
if(is_alive_check(id))
return PLUGIN_CONTINUE
client_cmd(id, "csdmshop")
}
case 1: client_cmd(id, "moneymenu")
case 2:
{
if(is_alive_check(id))
return PLUGIN_CONTINUE
client_cmd(id, "sentry_build")
}
case 3:
{
if(is_alive_check(id))
return PLUGIN_CONTINUE
client_cmd(id, "+setlaser")
}
case 4:
{
if(is_alive_check(id))
return PLUGIN_CONTINUE
client_cmd(id, "build_dispenser")
}
case 5: client_cmd(id, "say /maps")
case 6:
{
show_motd(id, "motd.txt")
}
case 7: ClientCommand_UnStick(id);
case 8: ShowMenu(id)
}
return PLUGIN_HANDLED
}

stock show_menu_new(id, iKeys, const szMenu[], iTime = -1, const title[]="")
{
new szNewMenu[1024]
format(szNewMenu, charsmax(szNewMenu), "%s", szMenu)
return show_menu(id, iKeys, szNewMenu, iTime, title)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 16.6.2017, 8:27
Сообщение #4


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Для register_clcmd есть флаги доступа
http://amxxmodx.ru/core/amxmodxinc/15-regi...nyh-komand.html

YrkinSon, Смысла с твоего огорода нет т.к. в итоге движок или АМХХ все равно цикл по игрокам прогонит.



[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DeMNiX
сообщение 16.6.2017, 9:08
Сообщение #5


Стаж: 13 лет

Сообщений: 263
Благодарностей: 113
Полезность: 646

ssx, ноль? серьезно?
да и зачем открывать меню другому игроку? вдруг у него открыто другое меню, которое ему нужно, а вы ему нахально открываете свое

Отредактировал: DeMNiX, - 16.6.2017, 9:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DRIVE37
сообщение 16.6.2017, 16:38
Сообщение #6


Стаж: 11 лет

Сообщений: 146
Благодарностей: 14
Полезность: 69

Спасибо всем, сделал циклом.

Цитата(DeMNiX @ 16.6.2017, 10:08) *
ssx, ноль? серьезно?
да и зачем открывать меню другому игроку? вдруг у него открыто другое меню, которое ему нужно, а вы ему нахально открываете свое

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