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

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

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

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

2 страниц V   1 2

Как создать 2 меню в одном?

, Для Steam и No-Steam
Статус пользователя CyberUser
сообщение 4.6.2015, 18:33
Сообщение #1
Стаж: 11 лет

Сообщений: 84
Благодарностей: 2
Полезность: 25

Помогите пожалуйста
Не получилось:

Код:


/*
* Server Menu: Меню сервера
* last update 12/24/2012
* - легко конфигурируемое 'меню сервера'
* - постоянное HUD-сообщение о способе открытия меню (можно выключить cvar'ом show_hudmsg)
* - автоназначение игрокам кнопки открытия меню
* - идеально подходит для говнопабликов :P
*
* Внимание!
* - для успешного компилирования плагина необходимо наличие в папке include файла dhudmessage.inc
* его можно загрузить тут: https://forums.alliedmods.net/showthread.php?t=149210
* - пункты меню не являются рекомендуемыми! они тупо перенесены из прототипа
* - изменение show_hudmsg вступает в действие со следующей карты
*
* Credits:
* GopnikStyle for the prototype
*/

#include <amxmodx>
#include <dhudmessage>

#define PLUGIN "Server Menu"
#define VERSION "0.1"
#define AUTHOR "JIo6koBbIu BoJIoc xD"

new giMenu
new pShowHudMsg
new gszHudMsg[] = "Меню Сервера, нажмите на N (nightvision)"

#define ITMS 0 // menu items
#define CMDS 1 // client commands

#define QNTY 10 // total entries
new gszArray[QNTY][2][] = {
{ "\wПомошь (все команды сервера)", "say /help" },
{ "\wНоминировать карту", "say /maps" },
{ "\wОбнулить Счет", "say /rs" },
{ "\wНастройка звуков", "say /sound" },
{ "\wГолосование за кик", "say /votekick" },
{ "\wГолосование за бан", "say /voteban" },
{ "\wВсе сервера CSHUB.RU", "say /server" },
{ "\wАдмины онлайн", "say /admin" },
{ "\wЛучшие Игроки Сервера", "say /top15" },
{ "\wНастроить Рейты", "rate 100000;cl_cmdrate 101;cl_updaterate 101;fps_max 101" }
}

// для no-steam
new gszArray1[QNTY][2][] = {
{ "\wПомошь (все команды сервера)", "say /help" },
{ "\wНоминировать карту", "say /maps" },
{ "\wОбнулить Счет", "say /rs" },
{ "\wНастройка звуков", "say /sound" },
{ "\wГолосование за кик", "say /votekick" },
{ "\wГолосование за бан", "say /voteban" },
{ "\wВсе сервера CSHUB.RU", "say /server" },
{ "\wАдмины онлайн", "say /admin" },
{ "\wЛучшие Игроки Сервера", "say /top15" },
{ "\wНастроить Рейты", "rate 30000;cl_cmdrate 101;cl_updaterate 101;fps_max 101" }
}

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )
register_clcmd( "nightvision", "ShowMenu", ADMIN_ALL )

pShowHudMsg = register_cvar( "show_hudmsg", "1" ) // 1 - on, 0 - off
set_task( 12.0, "CheckConfig" )

giMenu = menu_create( "\yМеню Сервера", "MenuHandler", .ml = 0 /* Russian only, fucking 'UTF-8 inside SMA' style */ )
new szInfo[3]
for ( new i = 0; i < QNTY; i++ ) {
num_to_str( i, szInfo, charsmax(szInfo) )
menu_additem( giMenu, gszArray[i][ITMS], .info = szInfo )
}

menu_setprop( giMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop( giMenu, MPROP_NEXTNAME, "Дальше" )
menu_setprop( giMenu, MPROP_BACKNAME, "Назад" )
menu_setprop( giMenu, MPROP_EXITNAME, "Выход" )
}

public CheckConfig() {
if ( get_pcvar_num( pShowHudMsg) )
set_task( 15.0, "ShowHudMsgTask", .flags = "b" )
}

public ShowHudMsgTask() {
set_dhudmessage( 0, 255, 0, .x = -1.0, .y = 0.0, .effects = 0, .fxtime = 1.0, .holdtime = 15.5, .fadeintime = 0.1, .fadeouttime = 0.1 )
show_dhudmessage( 0, gszHudMsg )
}

public ShowMenu(id) {
menu_display( id, giMenu )

return PLUGIN_HANDLED
}

public MenuHandler( id, menu, item ) {
if ( item == MENU_EXIT )
return PLUGIN_HANDLED

new access, info[3], callback
menu_item_getinfo( menu, item, access, info, charsmax(info), .callback = callback )
if(!is_user_steam(id)){
client_cmd(id, gszArray[str_to_num(info)][CMDS] )
}
else
{
client_cmd(id, gszArray1[str_to_num(info)][CMDS] )
}

return PLUGIN_HANDLED
}

public plugin_end() {
menu_destroy(giMenu)
}

stock bool:is_user_steam(id)
{
// Author Sh0oter
static dp_pointer
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id)
server_exec()
return (get_pcvar_num(dp_pointer) == 2) ? true : false
}
return false
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 4.6.2015, 18:47
Сообщение #2
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Кончайте маяться дурью, настраивая рейты игрокам, и задача отпадет сама собой.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CyberUser
сообщение 4.6.2015, 19:50
Сообщение #3
Стаж: 11 лет

Сообщений: 84
Благодарностей: 2
Полезность: 25

Нету вариантов что ли???
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.6.2015, 19:53
Сообщение #4


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

CyberUser, через dproto чекать авторизацию например.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
XyLiGaN
сообщение 4.6.2015, 19:54
Сообщение #5
Стаж: 13 лет
Город: Югорск

Сообщений: 11668
Благодарностей: 6450
Полезность: 1052

Меценат Меценат

Bloo, Можно, не только через Dproto - отдельным плагином например :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.6.2015, 19:55
Сообщение #6


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

XyLiGaN, я это и имел ввиду, api dproto же юзать будешь.
Нет, можно конечно извратится и чекать например по префиксу в ID, но зачем?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя CyberUser
сообщение 4.6.2015, 20:14
Сообщение #7
Стаж: 11 лет

Сообщений: 84
Благодарностей: 2
Полезность: 25

Подскажите как мне в код добавить что бы в одном именно плагине!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.6.2015, 21:36
Сообщение #8


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

CyberUser, изучить как работать с API dproto по плагинам updatehint и dp_test которые идут в архиве с ним (dproto), по аналогии с ним сделать конструкцию в плагине что при вызове меню если авторизация нативная выводить меню1, если любая другая меню2.
Сам даже разбираться не буду, да и думаю мало кто будет т.к. в вашем запросе нет какой то определенной цели, дайте и все. А если следовать логике, то все это безобразие вы хотите сделать ради того, что бы в меню steam и non-steam на пункте "Настроить Рейты" ставить разное значение, то это полный бред.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя CyberUser
сообщение 4.6.2015, 21:42
Сообщение #9
Стаж: 11 лет

Сообщений: 84
Благодарностей: 2
Полезность: 25

Блин!!!!!!!!!!!!!!!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя gudaus
сообщение 4.6.2015, 21:46
Сообщение #10


Стаж: 14 лет

Сообщений: 1571
Благодарностей: 1211
Полезность: 741

Дайте то, что я хочу - это за деньги. Из скриптеров, обитающих на кснете....наверное, Safety1st. Лорд тьмы тебе сейчас даже за деньги врядли решит. Illusion может сделать, но оптимизации от него не жди.
Помогите мне и сделайте всё за меня - несколько разные понятия.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
voed
сообщение 4.6.2015, 21:48
Сообщение #11
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

А какой в этом смысл? Стим не даст сменить рейты
Да и вообще зачем это делать

Отредактировал: voed, - 4.6.2015, 21:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя gudaus
сообщение 4.6.2015, 21:51
Сообщение #12


Стаж: 14 лет

Сообщений: 1571
Благодарностей: 1211
Полезность: 741

Цитата(voed @ 4.6.2015, 22:48) *
А какой в этом смысл? Стим не даст сменить рейты
Да и вообще зачем это делать


в конфиг на путинсервере прописывать бесполезно? Забиндить клавиши даёт, а рейты? восстановит из реестра?



Отредактировал: gudaus, - 4.6.2015, 21:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 4.6.2015, 21:53
Сообщение #13
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата(gudaus @ 4.6.2015, 22:51) *
в конфиг на путинсервере прописывать бесполезно? Забиндить клавиши даёт, а рейты? восстановит из реестра?

Разве filterstuffcmd не распостраняется на эти квары?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CyberUser
сообщение 4.6.2015, 21:55
Сообщение #14
Стаж: 11 лет

Сообщений: 84
Благодарностей: 2
Полезность: 25

Цитата(voed @ 4.6.2015, 22:48) *
А какой в этом смысл? Стим не даст сменить рейты
Да и вообще зачем это делать

Я знаю обход cl_filterstuffcmd и это не острога код!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2015, 21:58
Сообщение #15
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(voed @ 4.6.2015, 23:48) *
А какой в этом смысл? Стим не даст сменить рейты


Всё меняется и на стиме в том числе, если client.cfg не заблочен.

Отредактировал: SISA, - 4.6.2015, 22:01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя gudaus
сообщение 4.6.2015, 22:02
Сообщение #16


Стаж: 14 лет

Сообщений: 1571
Благодарностей: 1211
Полезность: 741

Цитата(CyberUser @ 4.6.2015, 22:55) *
Я знаю обход cl_filterstuffcmd и это не острога код!

Ясно, кэп.
Обход известен с марта 2013 года.
Ты протектор'ов бойся, они тебе не дадут ничего сделать и зачастую - даже узнать.. А стим.. стим - дыра, на которую вальве забили, кс:го имеет в 30 раз больше игроков и приносит в 1000 раз больше денег.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2015, 22:10
Сообщение #17
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(gudaus @ 5.6.2015, 0:02) *
кс:го имеет в 30 раз больше игроков и приносит в 1000 раз больше денег.


За счет чего она лавос приносит ? По стоимость практически как антология Counter-Strike.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя gudaus
сообщение 4.6.2015, 22:11
Сообщение #18


Стаж: 14 лет

Сообщений: 1571
Благодарностей: 1211
Полезность: 741

Цитата(SISA @ 4.6.2015, 23:10) *
За счет чего она лавос приносит ? По стоимость практически как антология Counter-Strike.

Покупка моделек, сундуков и прочего кастома.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя SISA
сообщение 4.6.2015, 22:24
Сообщение #19
Стаж: 15 лет

Сообщений: 2774
Благодарностей: 2956
Полезность: 994

Цитата(gudaus @ 5.6.2015, 0:11) *
Покупка моделек, сундуков и прочего кастома.


Больше на доту2 похоже.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.6.2015, 22:31
Сообщение #20


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

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