Menu Help

CTe6eJIeK_vRn

Участник
Сообщения
2,114
Реакции
1,867
а если вот так?
 

Вложения

  • helpmenu.zip
    876 байт · Просмотры: 62

Серёга Андрейкин

N@ シ P ㋛ S i ☂ i √ E シ
Сообщения
150
Реакции
4
ТОЖЕ НЕ ПОЯВЛЯЕТСЯ!!!

Добавлено через 3 минуты
Парни у кого есть рабочие helpmenu.cfg предаставте пожалуйста =) а то что то беде с переводом у меня!


Вроде разобрался с ошибкой кому нужно пользуйтесь!
 

Вложения

  • helpmenu.rar
    10.8 КБ · Просмотры: 86
Последнее редактирование:
Сообщения
21
Реакции
0
а как сделать, чтобы переходило в ещё одно менюОффтоп
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #64
блин народ может кто-то объяснит мне в какой части кода описываются команды которыми вызывается меню ??
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #66
Вот.
Команды:

!helpmenu
!hm
!help


И работает показ админов онлайн.
Andrey добавь в шапку.
 

Вложения

  • helpmenu.rar
    10.3 КБ · Просмотры: 214
Сообщения
8
Реакции
2
Что значит "items" в .cfg файле? Мое знание английского говорит, что переводится это как пункты, нужно ли, что-нибудь указывать в этой строке? Просто у меня менюшка не все знаки показывает, а лишь малую часть. Тоесть допустим:
"say !admins" "!admins - Администраторы онлайн."
"say rpg" "rpg - Открытие THC RPG Menu."
"say !maprate" "!maprate - Текущая ротация карт сервера."
"say rtv" "rtv - Голосование за немедленную смену карты."
"say voteban" "voteban - Голосование за блокировку игрока."
"say votekick" "votekick - Голосование за кик игрока."
"say votemap" "votemap - Голосование за следующаю карту."
"say rank" "rank - Ваш текущий ранг на сервере."
"say top" "top - Список топ-игроков сервера."
"say topknife" "topknife - Список свинорезов сервера."
"say session" "session - Ваш ранг за текующую сессию."
Вот это меню комманд, оно мне показывает не полностью, а до "voteban -" и все, дальше нет не чего :3
Помогите пожалуйста! -_-
 

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #69
Кнопки 8 —назад; 9 —далее.
Ни о чём не говорят?
 

Gleb Popov

Участник
Сообщения
22
Реакции
6
Подредактируйте кто нибудь плагин чтоб меню игроку выскакивало при коннекте))

Добавлено через 20 часов 46 минут
Есть тут специалисты по работе с плагинами или нет?)
 
Последнее редактирование:

Danyas

Участник
Сообщения
2,173
Реакции
1,072
а никто не знает в чем проблема, там в конфиге есть образец меню, там есть такой раздел который отвечает за доступные команды на сервере,
C-подобный:
    "Доступные команды"
    {
        "title"                "Чат команды"
        "items"
        {
            "say !admins"        "!admins - Админы OnLine"
            "say !helpmenu"        "!helpmenu - Меню помощи"
            "say rtv"            "rtv - Заявка на смену карты"
            "say nominate"        "nominate - Номинировать карту для голосования"
            "say votemap"        "votemap - Сменить карту"            
            "say !resetscore"    "!resetscore - Обнулить счет"
            "say voteban"        "voteban - Бан игрока"
            "say votekick"        "votekick - Кик игрока"
            "say !redie"        "!redie - Возрадиться призраком"
        }
    }
я создал еще один пункт под названием сервера и сделал все по тому же шаблону как в пункте с командами,
C-подобный:
    "Наши серверы"
    {
        "title"                "Выберите сервер"
        "items"
        {
            "connect "тут айпи""        "DeathMath"

        }
    }
но фишка оказалось в том что консоль пишет неизвестная команда connect O_o
вот почему так?
" engine connect "1337.228.1488.313:27228" "blabla"
 

rotmir

Участник
Сообщения
138
Реакции
25
Вот.
Команды:

!helpmenu
!hm
!help


И работает показ админов онлайн.
Andrey добавь в шапку.

Учусь писать плагины ну так вот. Решил приделать файл перевода . В код вставляю LoadTranslations("helpmenu.phrases"); , не компилируется (((( Не подскажешь почему??? Может не туда строчку вписываю(((
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #75
rotmir, где код? Где ошибка? Ванг здесь нет.
 

rotmir

Участник
Сообщения
138
Реакции
25
Ошибка пишет на на строке 93 собственно где я и пытаюсь подключить файл с переводом .

public OnClientPutInServer(client) {
if (GetConVarBool(g_cvarWelcome))
CreateTimer(30.0, Timer_WelcomeMessage, client);
}

LoadTranslations("helpmenu.phrases");

public Action:Timer_WelcomeMessage(Handle:timer, any:client) {
if (GetConVarBool(g_cvarWelcome) && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client))
CPrintToChat(client, "Message");
}

/*
* In-game Help Menu
* Written by chundo (chundo@mefightclub.com)
*
* Licensed under the GPL version 2 or above
*/

#pragma semicolon 1

#include <sourcemod>

#include <morecolors>

#define PLUGIN_VERSION "0.3"

#define MSG "\x07000000[Avangard меню помощи]: \x01"

enum ChatCommand {
String:command[32],
String:description[255]
}

enum HelpMenuType {
HelpMenuType_List,
HelpMenuType_Text
}

enum HelpMenu {
String:name[32],
String:title[128],
HelpMenuType:type,
Handle:items,
itemct
}

// CVars
new Handle:g_cvarWelcome = INVALID_HANDLE;
new Handle:g_cvarAdmins = INVALID_HANDLE;



// Help menus
new Handle:g_helpMenus = INVALID_HANDLE;

// Map cache
new Handle:g_mapArray = INVALID_HANDLE;
new g_mapSerial = -1;

// Config parsing
new g_configLevel = -1;

public Plugin:myinfo =
{
name = "In-game Help Menu",
author = "chundo",
description = "Display a help menu to users",
version = PLUGIN_VERSION,
url = "http://www.mefightclub.com"
};


public OnPluginStart() {
CreateConVar("sm_helpmenu_version", PLUGIN_VERSION, "Help menu version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
g_cvarWelcome = CreateConVar("sm_helpmenu_welcome", "1", "Show welcome message to newly connected users.", FCVAR_PLUGIN);
g_cvarAdmins = CreateConVar("sm_helpmenu_admins", "1", "Show a list of online admins in the menu.", FCVAR_PLUGIN);
RegConsoleCmd("sm_helpmenu", Command_HelpMenu, "Display the help menu.", FCVAR_PLUGIN);
RegConsoleCmd("sm_hm", Command_HelpMenu, "Display the help menu.", FCVAR_PLUGIN);
RegConsoleCmd("sm_help", Command_HelpMenu, "Display the help menu.", FCVAR_PLUGIN);

new String:hc[PLATFORM_MAX_PATH];
BuildPath(Path_SM, hc, sizeof(hc), "configs/helpmenu.cfg");
g_mapArray = CreateArray(32);
ParseConfigFile(hc);

AutoExecConfig(false);
}



public OnMapStart() {
new String:hc[PLATFORM_MAX_PATH];
BuildPath(Path_SM, hc, sizeof(hc), "configs/helpmenu.cfg");
ParseConfigFile(hc);
}



public OnClientPutInServer(client) {
if (GetConVarBool(g_cvarWelcome))
CreateTimer(30.0, Timer_WelcomeMessage, client);
}

LoadTranslations("helpmenu.phrases");

public Action:Timer_WelcomeMessage(Handle:timer, any:client) {
if (GetConVarBool(g_cvarWelcome) && IsClientConnected(client) && IsClientInGame(client) && !IsFakeClient(client))
CPrintToChat(client, "Message");
}

bool:ParseConfigFile(const String:file[]) {
if (g_helpMenus != INVALID_HANDLE) {
ClearArray(g_helpMenus);
CloseHandle(g_helpMenus);
g_helpMenus = INVALID_HANDLE;
}

new Handle:parser = SMC_CreateParser();
SMC_SetReaders(parser, Config_NewSection, Config_KeyValue, Config_EndSection);
SMC_SetParseEnd(parser, Config_End);

new line = 0;
new col = 0;
new String:error[128];
new SMCError:result = SMC_ParseFile(parser, file, line, col);
CloseHandle(parser);

if (result != SMCError_Okay) {
SMC_GetErrorString(result, error, sizeof(error));
LogError("%s on line %d, col %d of %s", error, line, col, file);
}

return (result == SMCError_Okay);
}

public SMCResult:Config_NewSection(Handle:parser, const String:section[], bool:quotes) {
g_configLevel++;
if (g_configLevel == 1) {
new hmenu[HelpMenu];
strcopy(hmenu[name], sizeof(hmenu[name]), section);
hmenu[items] = CreateDataPack();
hmenu[itemct] = 0;
if (g_helpMenus == INVALID_HANDLE)
g_helpMenus = CreateArray(sizeof(hmenu));
PushArrayArray(g_helpMenus, hmenu[0]);
}
return SMCParse_Continue;
}

public SMCResult:Config_KeyValue(Handle:parser, const String:key[], const String:value[], bool:key_quotes, bool:value_quotes) {
new msize = GetArraySize(g_helpMenus);
new hmenu[HelpMenu];
GetArrayArray(g_helpMenus, msize-1, hmenu[0]);
switch (g_configLevel) {
case 1: {
if(strcmp(key, "title", false) == 0)
strcopy(hmenu[title], sizeof(hmenu[title]), value);
if(strcmp(key, "type", false) == 0) {
if(strcmp(value, "text", false) == 0)
hmenu[type] = HelpMenuType_Text;
else
hmenu[type] = HelpMenuType_List;
}
}
case 2: {
WritePackString(hmenu[items], key);
WritePackString(hmenu[items], value);
hmenu[itemct]++;
}
}
SetArrayArray(g_helpMenus, msize-1, hmenu[0]);
return SMCParse_Continue;
}
public SMCResult:Config_EndSection(Handle:parser) {
g_configLevel--;
if (g_configLevel == 1) {
new hmenu[HelpMenu];
new msize = GetArraySize(g_helpMenus);
GetArrayArray(g_helpMenus, msize-1, hmenu[0]);
ResetPack(hmenu[items]);
}
return SMCParse_Continue;
}

public Config_End(Handle:parser, bool:halted, bool:failed) {
if (failed)
SetFailState("Plugin configuration error");
}

public Action:Command_HelpMenu(client, args) {
Help_ShowMainMenu(client);
return Plugin_Handled;
}

Help_ShowMainMenu(client) {
new Handle:menu = CreateMenu(Help_MainMenuHandler);
SetMenuExitBackButton(menu, false);
SetMenuTitle(menu, "Меню помощи\n ");
new msize = GetArraySize(g_helpMenus);
new hmenu[HelpMenu];
new String:menuid[10];
for (new i = 0; i < msize; ++i) {
Format(menuid, sizeof(menuid), "helpmenu_%d", i);
GetArrayArray(g_helpMenus, i, hmenu[0]);
AddMenuItem(menu, menuid, hmenu[name]);
}
AddMenuItem(menu, "maplist", "Список карт");
if (GetConVarBool(g_cvarAdmins))
AddMenuItem(menu, "admins", "Список Админов онлаин");
DisplayMenu(menu, client, 30);
}

public Help_MainMenuHandler(Handle:menu, MenuAction:action, param1, param2) {
if (action == MenuAction_End) {
CloseHandle(menu);
} else if (action == MenuAction_Select) {
new String:buf[64];
new msize = GetArraySize(g_helpMenus);
if (param2 == msize) { // Maps
new Handle:mapMenu = CreateMenu(Help_MenuHandler);
SetMenuExitBackButton(mapMenu, true);
ReadMapList(g_mapArray, g_mapSerial, "default");
Format(buf, sizeof(buf), "Список карт (%d maps)\n ", GetArraySize(g_mapArray));
SetMenuTitle(mapMenu, buf);
if (g_mapArray != INVALID_HANDLE) {
new mapct = GetArraySize(g_mapArray);
new String:mapname[64];
for (new i = 0; i < mapct; ++i) {
GetArrayString(g_mapArray, i, mapname, sizeof(mapname));
AddMenuItem(mapMenu, mapname, mapname, ITEMDRAW_DISABLED);
}
}
DisplayMenu(mapMenu, param1, 30);
}
else if (param2 == msize+1)
{ // Admins
new Handle:adminMenu = CreateMenu(Help_MenuHandler);
SetMenuExitBackButton(adminMenu, true);
SetMenuTitle(adminMenu, "Админы онлайн\n ");
new String:aname[64];
for(new i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i))
{
new AdminId:AdminID = GetUserAdmin(i);
if(AdminID != INVALID_ADMIN_ID)
{
GetClientName(i, aname, sizeof(aname));
AddMenuItem(adminMenu, aname, aname, ITEMDRAW_DISABLED);
}
}
}
DisplayMenu(adminMenu, param1, 30);
}
else
{ // Menu from config file
if (param2 <= msize) {
new hmenu[HelpMenu];
GetArrayArray(g_helpMenus, param2, hmenu[0]);
new String:mtitle[512];
Format(mtitle, sizeof(mtitle), "%s\n ", hmenu[title]);
if (hmenu[type] == HelpMenuType_Text) {
new Handle:cpanel = CreatePanel();
SetPanelTitle(cpanel, mtitle);
new String:text[128];
new String:junk[128];
for (new i = 0; i < hmenu[itemct]; ++i) {
ReadPackString(hmenu[items], junk, sizeof(junk));
ReadPackString(hmenu[items], text, sizeof(text));
DrawPanelText(cpanel, text);
}
for (new j = 0; j < 7; ++j)
DrawPanelItem(cpanel, " ", ITEMDRAW_NOTEXT);
DrawPanelText(cpanel, " ");
DrawPanelItem(cpanel, "Назад", ITEMDRAW_CONTROL);
DrawPanelItem(cpanel, " ", ITEMDRAW_NOTEXT);
DrawPanelText(cpanel, " ");
DrawPanelItem(cpanel, "Выход", ITEMDRAW_CONTROL);
ResetPack(hmenu[items]);
SendPanelToClient(cpanel, param1, Help_MenuHandler, 30);
CloseHandle(cpanel);
} else {
new Handle:cmenu = CreateMenu(Help_CustomMenuHandler);
SetMenuExitBackButton(cmenu, true);
SetMenuTitle(cmenu, mtitle);
new String:cmd[128];
new String:desc[128];
for (new i = 0; i < hmenu[itemct]; ++i) {
ReadPackString(hmenu[items], cmd, sizeof(cmd));
ReadPackString(hmenu[items], desc, sizeof(desc));
new drawstyle = ITEMDRAW_DEFAULT;
if (strlen(cmd) == 0)
drawstyle = ITEMDRAW_DISABLED;
AddMenuItem(cmenu, cmd, desc, drawstyle);
}
ResetPack(hmenu[items]);
DisplayMenu(cmenu, param1, 30);
}
}
}
}
}

public Help_MenuHandler(Handle:menu, MenuAction:action, param1, param2) {
if (action == MenuAction_End) {
CloseHandle(menu);
} else if (menu == INVALID_HANDLE && action == MenuAction_Select && param2 == 8) {
Help_ShowMainMenu(param1);
} else if (action == MenuAction_Cancel) {
if (param2 == MenuCancel_ExitBack)
Help_ShowMainMenu(param1);
}
}

public Help_CustomMenuHandler(Handle:menu, MenuAction:action, param1, param2) {
if (action == MenuAction_End) {
CloseHandle(menu);
} else if (action == MenuAction_Select) {
new String:itemval[32];
GetMenuItem(menu, param2, itemval, sizeof(itemval));
if (strlen(itemval) > 0)
FakeClientCommand(param1, itemval);
} else if (action == MenuAction_Cancel) {
if (param2 == MenuCancel_ExitBack)
Help_ShowMainMenu(param1);
}
}
rotmir, где код? Где ошибка? Ванг здесь нет.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #77
rotmir, LoadTranslations("helpmenu.phrases");
надо делать в OnPluginStart()

Пример:
PHP:
public OnPluginStart()
{
LoadTranslations("helpmenu.phrases");
}
 

Витя Х.

Участник
Сообщения
5
Реакции
0
Ребята мне нужно чтобы оно показывало при входе на сервер и чтоб не было 4 и 5 пункта, как так сделать?
 
Сверху Снизу