Как найти меню для сервера

Содержание:

  • Установка веб-сервера, размещений фалов сайта

  • Шаг №1

  • Шаг №2

  • Настройка доступа к сайту по локальной сети с помощью Open Server

  • Шаг №1

  • Шаг №2

  • Шаг №3

  • Шаг №4

  • Настройка доступа к сайту из сети интернет по IP и по имени домена

  • Шаг №1

  • Шаг №2

  • Шаг №3

  • Шаг №4

  • Установка движка

  • Шаг №1

  • Шаг №2

  • Шаг №3

  • Шаг №4

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

Сделать это достаточно просто и быстро. Самая главная и сложная задача – обеспечить непрерывность и стабильность работы сервера, ведь контролировать ее самостоятельно каждый день или даже час, а также постоянно следить за компьютером и его подключением к интернету практически невозможно.

В целом, создать надежный и бесперебойно работающий сервер бесплатно возможно, но нужно учитывать несколько нюансов. Компьютер или ноутбук должен быть подключен к сети интернет или к локальной (возможно использование даже домашнего Wi-Fi-роутера). Способ, изложенный в статье, актуален для операционной системы Windows 10 или 11.

Если все же с созданием сервера возникнут проблемы, то всегда можно обратиться к специалистам. IT-инженеры компании ittelo.ru досконально изучили эту тему и смогут помочь решить вопрос в короткие сроки и по разумным ценам.

Установка веб-сервера, размещений фалов сайта

Создание собственного сервера – процесс этапный, поэтому, чтобы не запутаться, лучше разбираться в нем постепенно, выполняя шаг за шагом.

Шаг №1

Для создания сервера можно использовать Open Server. Это не пиратка, а официальный сервис. Он надежный, стабильный, у него интуитивно понятный интерфейс, много полезных функций (к примеру, возможность настройки автовыполнения скриптов, выбора версии MySQL или PHP). Ознакомиться со всем перечнем опций Open Server можно через сайт. Здесь же можно установить и запустить сервер. После успешной установки на панели задач появится флажок зеленого цвета.

Важно! Если Open Server не запускается, причина может быть в отсутствии Microsoft Visual C++. Поэтому, если при установке сервера вам предлагают его загрузить, дайте разрешение на скачивание.

Шаг №2

На этом этапе необходимо открыть папку установки Open Server (на локальном диске «С»), а затем перейти в раздел «Domains». Здесь нужно создать новую папку и задать ей имя по названию адреса сайта. К примеру, newforme.site можно использовать как newforme.ru, newforme.com.

В созданной под названием домена папке необходимо разместить файлы сайта (HTML-коды, движок и другие). На данном этапе создания сервера будет достаточно размещения одного тестового файла для проверки.

Важно! Необходимо создать такой адрес сайта, который еще никто не использует. В противном случае, если в будущем вы захотите его открыть для общего доступа, зарегистрировать домен будет невозможно. Проверить занятость адресов можно на сервисе Рег.ру.

Настройка доступа к сайту по локальной сети с помощью Open Server

Шаг №1

Для установки необходимых параметров доступа к веб-сайту нужно нажать на значок Open Server (тот самый флажок внизу экрана на панели задач). Появится меню, в котором нужно открыть пункт «Настройки», а затем перейти в раздел «Модули». Здесь потребуется задать параметры MySQL, HTTP, PHP, необходимые для функционирования вашего сайта.

Шаг №2

После настройки модулей следует перейти в раздел «Сервер». Здесь нужно разрешить запуск в агрессивном режиме (поставить галочку напротив соответствующей строки). Это необходимо для того, чтобы сервер продолжил свою работу при возникновении небольших ошибок.

В этом же разделе найдите пункт «IP-адрес сервера» и выберите параметр «Все доступные IP». Нажмите кнопку «Сохранить» в нижнем правом углу окна.

Шаг №3

Задача этого этапа – выяснить локальный IP адрес ноутбука или персонального компьютера, через который вы установили Open Server. Он понадобится для запуска сайта. Легче всего это сделать, если вы подключены к интернету через wi-fi. В таком случае нужно просто открыть настройки роутера и найти в перечне подключенных устройств свой компьютер. Напротив его имени будет написан адрес в цифровом формате (к примеру, 123.345.7.8).

Важно! Если у вас несколько устройств, подключенных к одному и тому же роутеру, то лучше в его настройках закрепить найденный IP за тем компьютером, с которого вы запустили сервер. В противном случае адрес может быть присвоен и другим устройствам в вашей сети.

Шаг №4

После того как адрес IP стал известен, нужно снова открыть настройки Open Server и перейти во вкладку «Алиасы». Здесь его необходимо вписать в поле «Исходный домен», а в соседнем поле «Конечный домен» указать адрес вашего сайта (в рассматриваемом примере это newforme.site).

Настройка доступа к сайту из сети интернет по IP и по имени домена

Теперь, по «Исходному домену» (IP 123.345.7.8) сайт можно будет открыть с любого компьютера, ноутбука, планшета или телефона в пределах локальной сети, то есть с тех устройств, которые будут подключаться к сети от вашего роутера. По «Конечному домену» сайт будет приватным и сможет запуститься только с того ПК или ноутбука, на котором запущен сервер. Чтобы разрешить доступ по имени домена другому устройству, откройте на нем блокнот и отредактируйте системный файл hosts, добавив в него строку по примеру: 123.345.7.8 newforme.site. Это придется проделать со всеми гаджетами, чтобы открывать с них сайт не по IP, а по доменному имени.

Итак, разрешить доступ к устройствам, подключенным к локальной сети не сложно. А как же открыть сайт для всех пользователей интернета? Для начала необходимо определить тип вашего внешнего адреса IP. Он может быть «белым» или «серым». В первом случае, когда такой IP изначально установлен вашим провайдером, дополнительных действий с адресом выполнять не требуется.

Во втором случае просто так ничего не выйдет. Если вы даже не подозреваете, какой тип адреса у вас, можно попробовать разрешить доступ к сайту по описанным ниже рекомендациям. При возникшей ошибке подключения вывод о том, что IP «серый» напросится сам собой. В такой ситуации потребуется заказать у вашего провайдера создание «белого IP-адреса». Ценник разный и сильно варьируется у разных интернет-компаний.

Шаг №1

Итак, если предположить, что у вас уже есть «белый» IP, то можно приступать к разрешению доступа. Чтобы выяснить номер внешнего адреса, необходимо, как и в случае с внутренним, сначала зайти в программу настроек роутера. В появившемся окне найдите вкладку «Состояние/информация о подключении» и откройте ее. Внешний IP будет иметь следующий формат: 10.987.654.321.

Шаг №2

После этого в настройках роутера пробросьте порты 443 и 80 на тот ноутбук или персональный компьютер, на котором создавался веб-сайт, и устанавливался «домашний» хостинг. Этой первый вариант. Второй, более простой и автоматизированный – подключить DMZ-хост для вашего устройства. Для этого в настройках сервера откройте вкладку «Состояние», нажмите кнопку «Вкл» напротив одноименной строки, а в строку ниже «IP адрес» впишите внутренний IP адрес (в данном примере — 123.345.7.8).

Шаг №3

После проброски портов нужно связать имя домена и внешний IP. Для этого войдите в настройки Open Server в раздел «Алиасы». В поле «Исходный домен» впишите внешний IP (10.987.654.321), в «Конечный домен» – адрес веб-сайта (newforme.site).

Эти действия позволят открывать сайт с любых гаджетов, подключенных к интернету. Для этого в поисковой браузерной строке нужно набрать адрес внешнего IP и нажать «поиск».

Шаг №4

Чтобы пользователи интернета могли находить и открывать сайт по имени домена, его нужно будет зарегистрировать. Сделать это можно у IT-специалистов компании ittelo.ru.

Важно! Для регистрации доменного имени необходимо, чтобы оно было свободно и не использовалось ранее на других ресурсах.

После этого у регистратора домена необходимо открыть раздел «Управление записями DNS» и добавить запись вида «А внешний IP» (например, А 10.987.654.321). Это действие связывает адрес с доменным именем и позволяет автоматически открывать нужный сайт при запросе домена.

Примерно через 30–60 минут сервер начинает работать. До этого момента при попытке загрузить сайт может вылетать ошибка или «заглушка», но после обновления информации все откроется.

Важно! При изменении внешнего IP интернет-компанией, перебоях в сети или в случае выключения ПК или ноутбука, на котором установлен Open Server, сайт открываться не будет, поэтому для его бесперебойной работы необходимо всегда оставаться онлайн.

Установка движка

Итак, завершающий этап создания собственного сервера. Он также включает в себя несколько шагов. Реализовать его можно через разные сервисы, здесь рассмотрен пример на базе WordPress.

Шаг №1

Для начала нужно загрузить движок сайта в формате архива (как правило, ZIP) на ноутбук или компьютер, на котором создается сервер. Затем правой кнопкой мыши нажать на значок Open Server на панели задач (зеленый флажок), перейти во вкладку «PHPMyAdmin» и выбрать пункт «Дополнительно».

Шаг №2

В появившемся окне – меню создания базы данных. В соответствующей строке введите нужное название и кликните «Создать».

Шаг №3

Откройте раздел «Domains» в меню Open Server и создайте папку, задав ей имя такое же, как у вашего сайта (в данном примере — newforme.site). В нее необходимо извлечь файлы из архива ZIP движка сайта.

Среди них нужно найти файл под именем «wp-config-sample.php», после чего изменить его название на «wp-config.php», а затем открыть.

Шаг №4

В появившемся окне найдите поле «DB_NAME» и впишите в него название ранее созданной базы данных, в «DB_USER» – имя пользователя, а поле «DB_PASSWORD» оставьте пустым.

Теперь можно вводить адрес сайта в поисковую строку любого браузера и пробовать его открыть. При возникновении ошибки перезагрузите Open Server и повторите предыдущие действия. При успешной загрузке всплывет приветственное окно, в котором нужно будет ввести название сайта, имя пользователя, задать пароль и указать вашу электронную почту.

После этого сайт начнет работать на платформе WordPress, он должен открываться на любых устройствах: как на компьютерах, так и на смартфонах с операционными системами IOS и Андроид.

Рассмотренный пример создания собственного сервера для сайта – быстрый и достаточно легкий способ открыть к нему доступ для пользователей как из локальной, так и из общей сети.

Однако у него есть свои нюансы, ограничивающие применение этого метода:

  1. Необходимость регистрации «белого» IP адреса. Как правило, у всех провайдеров эта услуга платная и у многих не дешевая. Поэтому в ряде случаев даже выгоднее сразу арендовать платный сервер, не тратя на его создание время и силы.
  2. Нужно, чтобы ноутбук или компьютер с установленным сервером был включен круглосуточно, да и работа интернета должна быть бесперебойной. С целью подстраховки можно подключиться сразу к двум провайдерам. В случае отключения ПК или интернета сайт моментально перестает загружаться, поэтому важно постоянно следить за их работой, что крайне неудобно.
  3. При посещении сайта, работающем на «домашнем» сервере, большого количества пользователей возникает значительная нагрузка на центральный процесс, что может негативно сказываться на общей производительности компьютера.

Важно! Для более быстрой загрузки сайта рекомендуется его разместить на SDD диске. HDD накопители дают значительно меньшую производительность.

В целом способ несложный и «рабочий». Однако использовать его ради экономии денежных средств при создании публичного сайта нецелесообразно. Он подойдет скорее для запуска маленького форума для небольшого круга пользователей или с целью тестирования перед основным запуском через крупный хостинг.

Стаж: 10 лет

Сообщений: 418

Благодарностей: 332

Полезность: 779


Вот меню на кнопку «е», оно удобнее чем на «м» имхо.

Код:

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <colorchat> // обязательно должно быть, это для формирования надписи в меню

new day[32]

public plugin_init()
{
register_plugin("Player_Menu","0.4","autor");

register_clcmd("player_menu","go_menu");
register_clcmd("say mymenu", "go_menu");
register_clcmd("say /mymenu", "go_menu");
register_forward( FM_CmdStart , "FwdCmdStart" ); // регистрируем форвард для открытия меню по кнопке е
}

public FwdCmdStart(id, uc_handle)// функция, которая реализует открытие меню на кнопку е
{
static Button, OldButtons;
Button = get_uc(uc_handle, UC_Buttons);
OldButtons = pev(id, pev_oldbuttons);

if((Button & IN_USE) && !(OldButtons & IN_USE))
go_menu(id);

return FMRES_HANDLED;
}

public go_menu(id) // собственно наше меню
{

new menu = menu_create("Меню сервера ","func_menu");

menu_additem( menu,"rНазвание пункта 1", "1", 0)
menu_additem( menu,"Название пункта 2", "2", 0)
menu_additem( menu,"Название пункта 3", "3", 0)
menu_additem( menu,"Название пункта 4", "4", 0)
menu_additem( menu,"Название пункта 5", "5", 0)
menu_additem( menu,"Название пункта 6", "6", 0)
menu_additem( menu,"Название пункта 7", "7", 0)
menu_additem( menu,"Название пункта 8", "8", 0)
menu_additem(menu, "wВыход", "0")
menu_setprop(menu, MPROP_PERPAGE)
menu_display(id,menu)
}

public func_menu(id, menu, key) // действия кнопок нашего меню
{
key++

switch(key)
{

case 1: client_cmd(id,"bla bla bla")
case 2: client_cmd(id,"bla bla bla")
case 3: client_cmd(id,"bla bla bla")
case 4: client_cmd(id,"bla bla bla")
case 5: client_cmd(id,"bla bla bla")
case 6: client_cmd(id,"bla bla bla")
case 7: client_cmd(id,"bla bla bla")
case 8: client_cmd(id,"bla bla bla")
}

return PLUGIN_HANDLED
}

stock client_printcolor(const id, const input[], any:...) // обязательно вставить этот сток, он нужне для форматирования надписи в меню
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}

Вот ТУТ тоже что-то по твоей теме есть интересное.

Отредактировал: filip, — 27.4.2015, 11:58

Общая информация

В кс 1.6 можно найти игроков, которые грезят о том, чтобы сделать собственный сервер. Создавая его, они могут встретить с разными проблемами. Одна из них завязана на меню. Как правило, они не знают, как можно оповещать своих игроков о том, что готовятся разнообразные изменения на сервере или же рассказать им о правилах. На самом же деле уже давно существует специальный плагин, добавляющий на сервер меню. В это меню пользователь способен интегрировать любую информацию, которую он захочет. Для этого используется плагин, носящий название Perfect Server Menu. Это универсальный плагин, который можно установить на любой сервер, что захочет пользователь. Как это можно сделать:

  • Сначала нужно установить на компьютер плагин меню, воспользовавшись сайтом разработчика. Он будет представлять собой архив. Его в обязательном порядке нужно распаковать.
  • После этого нужно обнаружить файл с названием server menu.amxx и переместить его в папку plugins.
  • После этого нужно взять файл, который имеет такое же название, только создан в формате sma и отправить его в папку scripting. Эту папку также можно найти в файлах сервера.
  • После этого пользователь должен найти файл, который называется ровно также, как и плагин. Его нужно переместить вновь в папку внутри сервера. Только уже в configs.
  • Остается лишь заняться активацией этого плагина.
  • Это можно сделать с помощью файла plugins.ini. Его можно найти в папке configs сервера.
  • Найденный файл нужно открыть с помощью блокнота, вставив в конец команду server menu.amxx.

Теперь плагин полностью готов к использованию. Если же пользователь желает настроить меню, то для этого нужно использовать файл menu.ini. Его нужно открыть с помощью текстового блокнота и регулировать все, что только нужно. Не стоит забывать перезагружать сервер после каждого изменения, внесенного в меню. Также можно сменить карту, после чего пользователь ждет обновленное меню.

С помощью этого плагина пользователь также может зарабатывать, если будет продавать место в созданном меню. Как правило, его будут покупать начинающие сервера и те, кому нужна аудитория сервера из Counter Strike, например, тематические сообщества, форумы и не только.

Перейди по этой ссылке: World of Tanks скачать, там информация о официальном сайте игры Танки онлайн. Санкции обошли и танки )

Предыдущая

Гайды для сервера CS 1.6Боты для сервера кс 1.6

Следующая

Гайды для сервера CS 1.6Как создать сервер в кс 1.6

1. Создаём на компе файлик my_menu.sma
2. Открываем файлик текстовым редактором
3. Вписываем туда следущие содержимое

//Подгружаем модуль amx
#include <amxmodx>

//Регистрируем авторство и название плангина
#define PLUGIN «Server Menu»
#define VERSION «1.0»
#define AUTHOR «UserFound»

//Главная функция плангина
public plugin_init()
{
//Присваеваем авторство
    register_plugin(PLUGIN, VERSION, AUTHOR)
//Присваеваем консольную команду для вызова функции меню на клавишу M    
    register_clcmd(«chooseteam», «my_menu»)
//Подгружаем языковый файлик    
    register_dictionary(«servermenu.txt»)
}

//Функция цвета в чате
stock ChatColor(const id, const input[], any:…)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)

        replace_all(msg, 190, «!g», «^4») // Green Color
    replace_all(msg, 190, «!y», «^1») // Default Color
    replace_all(msg, 190, «!team», «^3») // Team Color
    replace_all(msg, 190, «!team2», «^0») // Team2 Color

        if (id) players[0] = id; else get_players(players, count, «ch»)
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid(«SayText»), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}

//Функция нашего меню
public my_menu(id)
{
    new i_Menu = menu_create(«rМеню сервера:», «server_menu»)
//Пункты меню,номера функций, доступ
    menu_additem(i_Menu, «wОбнулить счет», «1», 0)
    menu_additem(i_Menu, «wЗабанить игрока», «2», 0)
    menu_additem(i_Menu, «wЗаигнорировать игрока», «3», 0)
    menu_additem(i_Menu, «wAdmins Online», «4», 0)
    menu_additem(i_Menu, «wСменить команду», «5», 0)
    menu_additem(i_Menu, «rКупить админку», «6», 0)
    menu_additem(i_Menu, «wАдмин меню», «7», ADMIN_MENU)

        menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL)

    menu_display(id, i_Menu, 0)

    return PLUGIN_HANDLED

}

//Функции нашего меню
public server_menu(id, menu, item)
{

    if (item == MENU_EXIT)
    {
        menu_destroy(menu)

                return PLUGIN_HANDLED
    }

    new s_Data[6], s_Name[64], i_Access, i_Callback

    menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

    new i_Key = str_to_num(s_Data)

   switch(i_Key)
    {

        //Значение функций
case 1:
        {
           client_cmd(id, «say /rs»)
           ChatColor(id, «%L»,0,»RS»)
        }
        case 2:
        {
            client_cmd(id, «say /voteban»)
            ChatColor(id, «%L»,0,»VOTEBAN»)
        }
        case 3:
        {
           client_cmd(id, «say /mute»)            
           ChatColor(id, «%L»,0,»MUTE»)
        }
        case 4:
        {
           client_cmd(id, «say /admin»)            
           }
        case 5:
        {
           client_cmd(id, «jointeam»)            
           }
        case 6:
        {
           client_cmd(id, «say /adminka»)            
           }
        case 7:
        {
           client_cmd(id, «amxmodmenu»)
           ChatColor(id, «%L»,0,»AMXMODMENU»)            
           }
    }

    menu_destroy(menu)
    return PLUGIN_HANDLED

}

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

Теперь нам надо создать языковый файл.

[ru]
AMXMODMENU = !gДобро пожаловать в Админку
RS = !gВы обнулили свой счет
VOTEBAN = !teamВыберите игрока которого нужно !gЗАБАНИТЬ
MUTE = !teamВыберите игрока которого вы !gне хотете !teamслышать по микрофону

Далее сохраняем файл обязательно в UTF 8 Без BOM.

Далее компилируем полученный плангин, можно онлайн компилятором: webcomp.ak-team.com

Полученный плангин устанавливаем на сервер.

При возникновении вопросов пишите в ICQ 8853941.

И так, я читал очень много полезных статей по этой теме!

Вы должны зарегистрироваться, чтобы видеть ссылки.

Вы должны зарегистрироваться, чтобы видеть ссылки.

Но в этой теме, я попытаюсь дать все что нужно человеку (не знающем ничего по этой теме).

[align=center]И так, для начала давайте разберем из чего же состоит само меню сервера.[/align]

#include <amxmodx>
#include <cstrike>
#include <colorchat>

#define PLUGIN «MyFirstMenu»
#define VERSION «1.0»
#define AUTHOR «foxmits»

public plugin_init()
{
register_clcmd(«server_menu», «server_menu»)
}

public server_menu(id)
{
new i_Menu = menu_create(«r[wНазвание менюr]», «menu_handler»)

menu_additem(i_Menu, «wКоманда», «1», 0)
menu_additem(i_Menu, «wКоманда», «2», 0)
menu_additem(i_Menu, «wКоманда», «3», 0)

menu_addblank(i_Menu, 0)
menu_additem(i_Menu, «wВыход», «0», 0)

menu_setprop(i_Menu, MPROP_PERPAGE, 0)
menu_display(id, i_Menu, 0)
}

public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Key = str_to_num(s_Data)
switch(i_Key)
{
case 1:
{
client_cmd(id, «Команда»)
}
case 2:
{
client_cmd(id, «Команда»)
}
case 3:
{
client_cmd(id, «Команда»)
}
case 0:
{
menu_destroy(menu)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}

——————————————————————————————————————————-

ЦВЕТ — подключение нужных нам библиотек и регистрация автора и версии плагина.

ЦВЕТ — регистрация команды для вызова меню и функции в её вызова.
register_clcmd(«server_menu«, «server_menu») — команда для открытия меню
register_clcmd(«server_menu», «server_menu«) — название функции, отвечающей за отрисовку меню и регистрацию пунктов в меню (об этом далее)

ЦВЕТ — Регистрация самого меню, его название, кол-во пунктов, их значение и цвет.

ЦВЕТ — Описание функций меню, выполнение действий при выборе определенного пункта.

——————————————————————————————————————————-

[align=center]И так все что вам нужно чтобы создать меню это скопировать текст приведенный ниже[/align]

[pawn]

  1. #include <amxmodx>

  2. #include <cstrike>

  3. #include <colorchat>

  4. #define PLUGIN «MyFirstMenu»

  5. #define VERSION «1.0»

  6. #define AUTHOR «foxmits»

  7. public plugin_init()

  8. {

  9. register_clcmd(«server_menu», «server_menu»)

  10. }

  11. public server_menu(id)

  12. {

  13. new i_Menu = menu_create(«r[wНазвание менюr]», «menu_handler»)

  14. menu_additem(i_Menu, «wТекст», «1», 0)

  15. menu_additem(i_Menu, «wТекст», «2», 0)

  16. menu_additem(i_Menu, «wТекст», «3», 0)

  17. menu_addblank(i_Menu, 0)

  18. menu_additem(i_Menu, «wВыход», «0», 0)

  19. menu_setprop(i_Menu, MPROP_PERPAGE, 0)

  20. menu_display(id, i_Menu, 0)

  21. }

  22. public menu_handler(id, menu, item)

  23. {

  24. if (item == MENU_EXIT)

  25. {

  26. menu_destroy(menu)

  27. return PLUGIN_HANDLED

  28. }

  29. new s_Data[6], s_Name[64], i_Access, i_Callback

  30. menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

  31. new i_Key = str_to_num(s_Data)

  32. switch(i_Key)

  33. {

  34. case 1:

  35. {

  36. }

  37. case 2:

  38. {

  39. }

  40. case 3:

  41. {

  42. }

  43. case 0:

  44. {

  45. menu_destroy(menu)

  46. }

  47. }

  48. menu_destroy(menu)

  49. return PLUGIN_HANDLED

  50. }

[/pawn]

[align=center]Каркас меню готов, нужно всего лишь изменить значения на нужные вам[/align]

[align=center]1.)[/align]

register_clcmd(«*«, «server_menu»)

* — команда, любая, на ваш выбор для вызова вашего меню. имеется ввиду команда, для вызова меню, т.е. та команда которую игроку нужно написать в консоле для вызова меню.
Выше, меню откроется только если команда написана в консоле, чтобы оно открывалось при написание текста в чате нужно сделать так:

register_clcmd(«say *«, «server_menu»)

[align=center]2.)[/align]

new i_Menu = menu_create(«*«, «menu_handler»)

* — название меню, любое. Название можно сделать цветным, как и пункты в меню (об этом ниже)

[align=center]3.)[/align]

menu_additem(i_Menu, «Текст«, «1«, 0)
menu_additem(i_Menu, «Текст«, «2«, 0)
menu_additem(i_Menu, «Текст«, «3«, 0)

Текст — Текст, который будет виден игроку, вообщем название вашего пункта
1 — Номер, пункта меню, у каждого пункта свой номер от 1 до 9.
0 — Если 0, то доступно всем пользователям, если 1, то только АДМИНИСТРАТОРАМ.

[align=center]4.)[/align]

case 1:
{

}

case 2:
{

}

case 3:
{

}

Кто хотя бы немного знает программирование, поймет, что case N { } — это оператор выбора.

case 1:
{
// Функция
}

Значит что при выборе пользователем первого пункта меню, произойдет
//Функция — любая операция на ваш выбор.
Мы рассмотрим на примере reset score.

case 1:
{
client_cmd(id, «say /rs»)
}

id — Если 0, то команда обнуления счета произойдет у всех игроков на сервере.
Если id то у конкретного игрока, выбравшего данный пункт.

P.S. На сервер должен быть установлен плагин resetscore.amxx для работы команды /rs

Дальше, думаю понятно…

case 2:
{
// Что произойдет при выборе 2-го пункта меню
}

case 3:
{
// Что произойдет при выборе 3-го пункта меню
}

[align=center]Вот исходник готового меню на 9-ть пунктов, вам нужно будет только изменить значения.[/align]

[pawn]

  1. #include <amxmodx>

  2. #include <cstrike>

  3. #include <colorchat>

  4. #define PLUGIN «MyFirstMenu»

  5. #define VERSION «1.0»

  6. #define AUTHOR «foxmits»

  7. public plugin_init()

  8. {

  9. register_clcmd(«server_menu», «server_menu»)

  10. }

  11. public client_authorized(id)

  12. {

  13. client_cmd(id, «bind F3 server_menu«)

  14. }

  15. public server_menu(id)

  16. {

  17. new i_Menu = menu_create(«r[wНазвание менюr]», «menu_handler»)

  18. menu_additem(i_Menu, «wНазвание Пункта», «1», 0)

  19. menu_additem(i_Menu, «wНазвание Пункта», «2», 0)

  20. menu_additem(i_Menu, «wНазвание Пункта», «3», 0)

  21. menu_additem(i_Menu, «wНазвание Пункта», «4», 0)

  22. menu_additem(i_Menu, «wНазвание Пункта», «5», 0)

  23. menu_additem(i_Menu, «wНазвание Пункта», «6», 0)

  24. menu_additem(i_Menu, «wНазвание Пункта», «7», 0)

  25. menu_additem(i_Menu, «wНазвание Пункта», «8», 0)

  26. menu_additem(i_Menu, «wНазвание Пункта», «9», 0)

  27. menu_addblank(i_Menu, 0)

  28. menu_additem(i_Menu, «wВыход», «0», 0)

  29. menu_setprop(i_Menu, MPROP_PERPAGE, 0)

  30. menu_display(id, i_Menu, 0)

  31. }

  32. public menu_handler(id, menu, item)

  33. {

  34. if (item == MENU_EXIT)

  35. {

  36. menu_destroy(menu)

  37. return PLUGIN_HANDLED

  38. }

  39. new s_Data[6], s_Name[64], i_Access, i_Callback

  40. menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

  41. new i_Key = str_to_num(s_Data)

  42. switch(i_Key)

  43. {

  44. case 1:

  45. {

  46. //Ваша Функция

  47. }

  48. case 2:

  49. {

  50. //Ваша Функция

  51. }

  52. case 3:

  53. {

  54. //Ваша Функция

  55. }

  56. case 4:

  57. {

  58. //Ваша Функция

  59. }              

  60. case 5:

  61. {

  62. //Ваша Функция

  63. }              

  64. case 6:

  65. {

  66. //Ваша Функция

  67. }              

  68. case 7:

  69. {

  70. //Ваша Функция

  71. }              

  72. case 8:

  73. {

  74. //Ваша Функция

  75. }              

  76. case 9:

  77. {

  78. //Ваша Функция

  79. }

  80. case 0:

  81. {

  82. menu_destroy(menu)

  83. }

  84. }

  85. menu_destroy(menu)

  86. return PLUGIN_HANDLED

  87. }

[/pawn]

[align=center]Вызов меню автоматически «биндится» клавишу F3, как только игрок заходит на сервер.[/align]

Клавишу можно изменить:

public client_authorized(id)
{
client_cmd(id, «bind ^»ТУТ ВАША КЛАВИША^» ^»server_menu^»»)
}

——————————————————————————————————————————-

[align=center]Цвета в «Названии Меню» и «Пунктах Меню»[/align]

В системе создания меню существует 4-е цвета.

r — красный
w — белый
d — серый
y — обычный (стандартный цвет текста в CS)

[align=center]Как использовать?[/align]

new i_Menu = menu_create(«r[wНазвание менюr]», «menu_handler») — [Название меню]

menu_additem(i_Menu, «rОбнулить счет», «1», 0) — Обнулить счет
menu_additem(i_Menu, «wБан rИгрока», «2», 0) — Бан Игрока
menu_additem(i_Menu, «dСмена карты», «3», 0) — Смена карты

Из этого понятно, что бы использовать цвет нужно написать «wТекст Пробел Ура» и весь текст будет белый
Если написать

«wВОТ ТАКОЙ ВОТ rКРАСНЫЙ wЦвет»
то надпись «ВОТ ТАКОЙ ВОТ» будет белая
«КРАСНЫЙ » красная
«Цвет» сново белая

Надеюсь это понятно.

——————————————————————————————————————————-

[align=center]Создание Меню Для ВИП[/align]

Что же из себя представляет меню для ВИП, это тоже самое игровое меню, но открыть которое может только игрок с определенным флагом доступа.

a — этот флаг дает иммунитет (против человека с флагом а не могут быть использованы серверные команды kick, ban, slay, slap, он не может быть выкинут за флуд, за высокий пинг и так далее).
b — резервация слота, обычно дают уважаемым игрокам сервера.
c — amx_kick — доступ к команде amx_kick. Дает возможность кикать игроков.
d — amx_ban and amx_unban commands — доступ к команде amx_ban и amx_unban. Соответственно админ имеет возможность как ставить так и снимать баны.
e — amx_slay and amx_slap commands — флаг дает доступ к командам amx_slay и amx_slap. Убить игрока или «подергать» игрока в воздухе.
f — amx_map command — админ имеет доступ к команде amx_map — смена карты на сервере.
g — amx_cvar command — доступ к команде amx_cvar, менять переменные и настройки сервера (не все переменные могут быть доступны). Очень не советую давай этот доступ каждому встречному. Только проверенным людям!
h — amx_cfg command — флаг дает доступ к команде серверных настроек amx_cfg. Давать только проверенным людям!
i — amx_chat and other chat commands — доступ к команде amx_csay, администраторскому чату и другим командам, имеющим отношение к чату.
j — amx_vote and other vote commands — дает админу доступ к командам голосования, и команде amx_vote.k — access to sv_password cvar — доступ к серверной переменной sv_password (работает через команду amx_cvar). Этот флаг так же ставим исключительно проверенным админам.
l — access to amx_rcon command and rcon_password cvar — доступ к переменной RCON пароля amx_rcon и rcon_password (через команду amx_cvar). Управление паролем RCON — этот флаг не давать никому вообще кроме владельца сервера!
m — произвольный уровень доступа A (если на вашем сервере стоят какие-то нестандартные плагины amx, которые требуют эти уровни доступа)
n — произвольный уровень доступа B
o — произвольный уровень доступа C
p — произвольный уровень доступа D
q — произвольный уровень доступа E
r — произвольный уровень доступа F
s — произвольный уровень доступа G
t — произвольный уровень доступа H
u — админ получает доступ к меню управления amxmodmenu
z — флаг обычного пользователя (который не является админом)

Для этого нужно всего лишь при «вызове меню» нужно проверь есть ли у игрока который пытается его открыть нужный флаг доступа, например t — произвольный уровень доступа H.
Чаще всего все вип меню и привилегии дают именно на это «флаг».

И так вот нужная нам функция

if(get_user_flags(id) & ADMIN_LEVEL_H)
{
//Показать игроку меню.
} else {
//Действия если нету нужного флага доступа.
}

Проверка «if(get_user_flags(id) & ADMIN_LEVEL_H)» смотрит есть ли у игрока «ADMIN_LEVEL_H«. Если да, то делаются действия в скобках, если нет, то другое действие. Опять же, человек имеющей минимальные знания программирования поймет все очень быстро.

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

[pawn]

  1. #include <amxmodx>

  2. #include <cstrike>

  3. #include <colorchat>

  4. #define PLUGIN «MyFirstMenu»

  5. #define VERSION «1.0»

  6. #define AUTHOR «foxmits»

  7. public plugin_init()

  8. {

  9. register_clcmd(«say /vipmenu», «vip_menu»)

  10. }

  11. public vip_menu(id)

  12. {

  13. if(get_user_flags(id) & ADMIN_LEVEL_F)

  14. {

  15. new i_Menu = menu_create(«r[wНазвание менюr]», «menu_handler»)

  16. menu_additem(i_Menu, «wНазвание Пункта», «1», 0)

  17. menu_additem(i_Menu, «wНазвание Пункта», «2», 0)

  18. menu_additem(i_Menu, «wНазвание Пункта», «3», 0)

  19. menu_additem(i_Menu, «wНазвание Пункта», «4», 0)

  20. menu_additem(i_Menu, «wНазвание Пункта», «5», 0)

  21. menu_additem(i_Menu, «wНазвание Пункта», «6», 0)

  22. menu_additem(i_Menu, «wНазвание Пункта», «7», 0)

  23. menu_additem(i_Menu, «wНазвание Пункта», «8», 0)

  24. menu_additem(i_Menu, «wНазвание Пункта», «9», 0)

  25. menu_addblank(i_Menu, 0)

  26. menu_additem(i_Menu, «wВыход», «0», 0)

  27. menu_setprop(i_Menu, MPROP_PERPAGE, 0)

  28. menu_display(id, i_Menu, 0)

  29. } else

  30. {

  31.         ColorChat(id,RED,«^1У тебя нету доступа для входу в ^4[ВИП] ^1меню»)

  32. }

  33. }

  34. public menu_handler(id, menu, item)

  35. {

  36. if (item == MENU_EXIT)

  37. {

  38. menu_destroy(menu)

  39. return PLUGIN_HANDLED

  40. }

  41. new s_Data[6], s_Name[64], i_Access, i_Callback

  42. menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

  43. new i_Key = str_to_num(s_Data)

  44. switch(i_Key)

  45. {

  46. case 1:

  47. {

  48. //Ваша Функция

  49. }

  50. case 2:

  51. {

  52. //Ваша Функция

  53. }

  54. case 3:

  55. {

  56. //Ваша Функция

  57. }

  58. case 4:

  59. {

  60. //Ваша Функция

  61. }              

  62. case 5:

  63. {

  64. //Ваша Функция

  65. }              

  66. case 6:

  67. {

  68. //Ваша Функция

  69. }              

  70. case 7:

  71. {

  72. //Ваша Функция

  73. }              

  74. case 8:

  75. {

  76. //Ваша Функция

  77. }              

  78. case 9:

  79. {

  80. //Ваша Функция

  81. }

  82. case 0:

  83. {

  84. menu_destroy(menu)

  85. }

  86. }

  87. menu_destroy(menu)

  88. return PLUGIN_HANDLED

  89. }

[/pawn]

Функциями может быть что угодно, выдача оружия, жизней, брони, гравитации и т.д.

Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.
Вы должны зарегистрироваться, чтобы видеть ссылки.

Про все остальные возможности можно узнать на Вы должны зарегистрироваться, чтобы видеть ссылки. — хороший сайт, есть примеры, все понятно объяснено [P.S. Это не реклама]

Всем «КулПрогерам» просьба не троллить и не говорить что это все гавно и ненужная информация, очень даже нужная, многие школьники понятия не имеют как это делать и платят левым людям деньги, по сути не за что. Моя первая статья, мог где то «накосячить» за это тоже просьба не ругать.

[align=center]Статья подготовлена специально для сайта amx-x.ru.
При копирование материала ссылка на сайт — обязательна![/align]

Понравилась статья? Поделить с друзьями:
  • Как найти векторное произведение векторов по точкам
  • В уставе ошибка в названии как исправить
  • Плоская переносица как исправить
  • Как найти номер на мкпп
  • Как найти опасную работу