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

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

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

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

Нужна помощь с MENU

Статус пользователя bp.kratos
сообщение 14.12.2010, 18:05
Сообщение #1


Стаж: 15 лет

Сообщений: 39
Благодарностей: 3
Полезность: 61

Я первый раз хочу создать плагин. Суть плагина: при заходе на сервер у игрока гаснет экран (становиться чёрный) и у него появляется выбор действий (меню):
1) Поздороваться с игроками
2) Проверить онлайн админов
3) Посетить сайт сервера
У меня есть маленькая наработка(скромное начало :) )
Код
/*
The first_menu, v0.1
By
*/
#include <amxmodx>
new menu

public plugin_init()
{
    register_plugin("first_menu","0.1","Kratos*");
    menu = menu_create("first_menu","first_menu");
    menu_additem( menu,"поздороваться с игроками")
    menu_additem( menu,"Проверить онлайн админов  ")
    menu_additem( menu,"Посмотреть сайт сервера")
    menu_setprop( menu,MPROP_PERPAGE, 9)
}

public first_menu(id, menu, key)
{
  key++

  if(key==1) client_cmd(id,"say hi all")
  if(key==2) client_cmd(id,"say /admin")
  if(key==2) client_cmd(id,"")
}

Но вот как сделать:
1) как сделать затемнение экрана
2) как сделать что бы меню появлялось при подключении игрока на сервер(после выбора стороны)
3) как сделать
CODE
if(key==2) client_cmd(id,"")
что бы при нажатии на тройку появлялся сайт в мод окне?

P.S. Да я знаю что плагин считай не сделан, но всё таки первый раз

Отредактировал: bp.kratos, - 14.12.2010, 18:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Rejiser
сообщение 14.12.2010, 18:30
Сообщение #2


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Зачем ты в plugin init меню создаешь?
делай отдельной функцией, а в plugin init зарегистрируй команду вызова меню.

По вопросам:
2) Можно через client_authorized
3) Делай переадресацию в мотд на .html страничку + регистрируй команду вызова МОТД и по этой команде вызывай
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bp.kratos
сообщение 14.12.2010, 18:38
Сообщение #3


Стаж: 15 лет

Сообщений: 39
Благодарностей: 3
Полезность: 61

А можно по подробнее?
Цитата
2) Можно через client_authorized

как? (я реально нуб в этом деле)
3) Делай переадресацию в мотд на .html страничку + регистрируй команду вызова МОТД и по этой команде вызывай
можно пример? хоть какой то
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Krevedko
сообщение 14.12.2010, 19:04
Сообщение #4


Стаж: 17 лет

Сообщений: 325
Благодарностей: 93
Полезность: 243

bp.kratos,
Код
<html>
<head>
<meta http-equiv="REFRESH" content="0;URL=http://www.site.ru/">
</head>
</html>


идея мне понравилась, надо тоже попробовать что-то сделать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 14.12.2010, 19:06
Сообщение #5


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

bp.kratos, http://www.amxmodx.org/doc/index.html?page..._authorized.htm
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Krevedko
сообщение 14.12.2010, 19:26
Сообщение #6


Стаж: 17 лет

Сообщений: 325
Благодарностей: 93
Полезность: 243

Плагин Server Rules 2.0

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

спойлер

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

// Пропускать проверку для админов или нет
#define Skip_Admin
#if defined Skip_Admin
// Если пропускать, то с каким флагом доступа
#define AdminAccess ADMIN_KICK
#endif

// Ссылка на правила
#define URL "http://shidla.quz.su/index.html"

new g_Rules[33]
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3
new CVAR_SpectUser
new g_msgScreenFade

public plugin_init()
{
// Регистрируем плагин
register_plugin("Server Rules", "2.0", "Shidla")
// Регистрируем меню
register_menucmd(register_menuid("Вы согласны с правилами сервера?"), keys, "Rules_Menu_Options")
// Региситрируем квар - переводить игрока в наблюдатели или нет при выводе правил
CVAR_SpectUser = register_cvar("amx_spect_user", "1")

RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post")
g_msgScreenFade = get_user_msgid("ScreenFade")
static szCvar[30]
formatex(szCvar, charsmax(szCvar), "Server Rules v2.0 by Shidla")
register_cvar("Shidla_ServerRules_v20", szCvar, FCVAR_SERVER|FCVAR_SPONLY)
}

public client_putinserver(id)
{
// Если игрок админ, то ему присваивается значение "true", как буд-то он прочитал правила
#if defined Skip_Admin
if ((get_user_flags(id) & AdminAccess))
{
g_Rules[id] = true
return PLUGIN_CONTINUE
}
g_Rules[id] = false
#endif
// Присваиваем игроку значение "false"
g_Rules[id] = false
return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
// Присваиваем игроку значение "false"
g_Rules[id] = false
}

public fw_PlayerSpawn_Post(id) // Когда игрок заспавнился
{
//client_print(id,print_chat,"[DEBUG] Spawned***")
// Если игрок админ, то ему ничего не выводится
#if defined Skip_Admin
if ((get_user_flags(id) & AdminAccess))
return;
#endif

// Если значение "false", то вывод меню
if(!g_Rules[id])
{
new menu[192]
//client_print(id,print_chat,"[DEBUG] No Read Rules!***")
format(menu, 191, "Вы согласны с правилами сервера?^n^n1. Да^n2. Нет^n3. Правила (просмотр)")
//Затемняем экран
set_task(0.1, "ScreenFade", id)
show_menu(id, keys, menu)
}

return;
}


public Rules_Menu_Options(id, keys)
{

new player[32]
get_user_name(id, player, 32)

switch(keys)
{
case 0:
{
g_Rules[id] = true
// Удаляем затемнение
set_task(0.1, "DelScreenFade", id)
}

case 1:
server_cmd("kick %s ^"Вы не согласны с правилами сервера!^"", player)

case 2:
{
// Переводим за спектраторов
Spect_User(id)
// Показываем MOTD
show_motd(id,URL,"Server Rules [Please Wait & Read]")
}

default:
g_Rules[id] = false
}

return PLUGIN_HANDLED
}

public Spect_User(id)
{
if(get_pcvar_num(CVAR_SpectUser))
{
new deaths = cs_get_user_deaths(id)
user_kill(id, 1)
cs_set_user_deaths(id, deaths)
engclient_cmd(id, "jointeam", "6")
engclient_cmd(id, "joinclass", "1")
}
return PLUGIN_CONTINUE
}

public ScreenFade(id)
{
if(is_user_connected(id) & is_user_alive(id))
{
message_begin(MSG_ONE, g_msgScreenFade, _, id)
write_short(1<<0) // Duration
write_short(1<<0) // Hold time
write_short(1<<2) // Fade type
write_byte(0) // Red
write_byte(0) // Green
write_byte(0) // Blue
write_byte(255) // Alpha
message_end()
}
}

public DelScreenFade(id)
{
message_begin(MSG_ONE, g_msgScreenFade, _, id)
write_short(1<<0) // Duration
write_short(1<<0) // Hold time
write_short(1<<0) // Fade type
write_byte(0) // Red
write_byte(0) // Green
write_byte(0) // Blue
write_byte(0) // Alpha
message_end()
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: