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

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

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

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

Добавить пункт в меню

, Admin Menu by remus v0.4
Статус пользователя tenb63rus
сообщение 29.3.2014, 13:39
Сообщение #1


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

Не знаю как добавить пункт в меню "Сделать рестарт", помогите.

Исходник

Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Admin Menu"
#define VERSION "0.4"
#define AUTHOR "remus"

new p_AdminMenu

public plugin_init() {
register_plugin(PLUGIN,VERSION,AUTHOR)
server_print("^n^t%s v%s, Copyright © 2010 by %s^n",PLUGIN,VERSION,AUTHOR)
register_clcmd("adminmenu","AdminMenu",ADMIN_MENU,"Open menu")
register_dictionary("adminmenu.txt")

p_AdminMenu=register_cvar("amx_adminmenu","1")
}

public AdminMenu(id,level,cid) {
if (!get_pcvar_num(p_AdminMenu) || !cmd_access(id,level,cid,1))
return PLUGIN_HANDLED

new szText[1024 char]

formatex(szText,charsmax(szText),"%L",id,"ADMIN_MENU_TITLE")
new menu=menu_create(szText,"menu_handler")

formatex(szText,charsmax(szText),"%L",id,"ADMIN_KICK_PLAYER")
menu_additem(menu,szText,"1",ADMIN_KICK)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_BAN_PLAYER")
menu_additem(menu,szText,"2",ADMIN_BAN)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_SLAP_PLAYER")
menu_additem(menu,szText,"3",ADMIN_SLAY)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_VOTE_MAP")
menu_additem(menu,szText,"4",ADMIN_VOTE)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_LANG_SET")
menu_additem(menu,szText,"5",ADMIN_KICK)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_MENU_EXIT")
menu_setprop(menu,MPROP_EXITNAME,szText)

menu_setprop(menu,MPROP_NUMBER_COLOR,"\w")
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public menu_handler(id,menu,item) {
if(item==MENU_EXIT) {
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback

menu_item_getinfo(menu,item,access,data,5,iName,63,callback)
new key = str_to_num(data)
switch(key) {
case 1: {
client_cmd(id,"amx_kickmenu")
return PLUGIN_HANDLED
}
case 2: {
client_cmd(id,"amx_banmenu")
return PLUGIN_HANDLED
}
case 3: {
client_cmd(id,"amx_slapmenu")
return PLUGIN_HANDLED
}
case 4: {
client_cmd(id,"amx_votemapmenu")
return PLUGIN_HANDLED
}
case 5: {
client_cmd(id,"amx_langmenu")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}


Отредактировал: tenb63rus, - 29.3.2014, 13:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
serfreeman1337
сообщение 29.3.2014, 13:45
Сообщение #2
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

После:
Код:
formatex(szText,charsmax(szText),"%L",id,"ADMIN_LANG_SET")
menu_additem(menu,szText,"5",ADMIN_KICK)

Добавь свой пункт:
Код:
formatex(szText,charsmax(szText),"%L",id,"ADMIN_DO_RESTART")
menu_additem(menu,szText,"6",ADMIN_KICK)

И сделай обработчик этой кнпоки. После:
Код:
case 5: {
client_cmd(id,"amx_langmenu")
return PLUGIN_HANDLED
}

Добавь:
Код:
case 6: {
server_cmd("sv_restart 1")
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tenb63rus
сообщение 29.3.2014, 14:04
Сообщение #3


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

При компиляции выдает ошибку:
Цитата
error 035: argument type mismatch <argument 1>

Это явно из-за sv_restart 1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 29.3.2014, 14:45
Сообщение #4
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Где-то твой косяк. У меня всё компилируется:
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Admin Menu"
#define VERSION "0.4"
#define AUTHOR "remus"

new p_AdminMenu

public plugin_init() {
register_plugin(PLUGIN,VERSION,AUTHOR)
server_print("^n^t%s v%s, Copyright © 2010 by %s^n",PLUGIN,VERSION,AUTHOR)
register_clcmd("adminmenu","AdminMenu",ADMIN_MENU,"Open menu")
register_dictionary("adminmenu.txt")

p_AdminMenu=register_cvar("amx_adminmenu","1")
}

public AdminMenu(id,level,cid) {
if (!get_pcvar_num(p_AdminMenu) || !cmd_access(id,level,cid,1))
return PLUGIN_HANDLED

new szText[1024 char]

formatex(szText,charsmax(szText),"%L",id,"ADMIN_MENU_TITLE")
new menu=menu_create(szText,"menu_handler")

formatex(szText,charsmax(szText),"%L",id,"ADMIN_KICK_PLAYER")
menu_additem(menu,szText,"1",ADMIN_KICK)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_BAN_PLAYER")
menu_additem(menu,szText,"2",ADMIN_BAN)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_SLAP_PLAYER")
menu_additem(menu,szText,"3",ADMIN_SLAY)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_VOTE_MAP")
menu_additem(menu,szText,"4",ADMIN_VOTE)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_LANG_SET")
menu_additem(menu,szText,"5",ADMIN_KICK)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_DO_RESTART")
menu_additem(menu,szText,"6",ADMIN_KICK)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_MENU_EXIT")
menu_setprop(menu,MPROP_EXITNAME,szText)

menu_setprop(menu,MPROP_NUMBER_COLOR,"\w")
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public menu_handler(id,menu,item) {
if(item==MENU_EXIT) {
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback

menu_item_getinfo(menu,item,access,data,5,iName,63,callback)
new key = str_to_num(data)
switch(key) {
case 1: {
client_cmd(id,"amx_kickmenu")
return PLUGIN_HANDLED
}
case 2: {
client_cmd(id,"amx_banmenu")
return PLUGIN_HANDLED
}
case 3: {
client_cmd(id,"amx_slapmenu")
return PLUGIN_HANDLED
}
case 4: {
client_cmd(id,"amx_votemapmenu")
return PLUGIN_HANDLED
}
case 5: {
client_cmd(id,"amx_langmenu")
return PLUGIN_HANDLED
}
case 6: {
server_cmd("sv_restart 1")

return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tenb63rus
сообщение 29.3.2014, 16:36
Сообщение #5


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

Возможно это из-за того, что я пытаюсь добавить 8 строчек меню?
Скрытый текст
Код:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Admin Menu"
#define VERSION "0.4"
#define AUTHOR "remus"

new p_AdminMenu

public plugin_init() {
register_plugin(PLUGIN,VERSION,AUTHOR)
server_print("^n^t%s v%s, Copyright © 2010 by %s^n",PLUGIN,VERSION,AUTHOR)
register_clcmd("adminmenu","AdminMenu",ADMIN_MENU,"Open menu")
register_dictionary("adminmenu.txt")

p_AdminMenu=register_cvar("amx_adminmenu","1")
}

public AdminMenu(id,level,cid) {
if (!get_pcvar_num(p_AdminMenu) || !cmd_access(id,level,cid,1))
return PLUGIN_HANDLED

new szText[1024 char]

formatex(szText,charsmax(szText),"%L",id,"ADMIN_MENU_TITLE")
new menu=menu_create(szText,"menu_handler")

formatex(szText,charsmax(szText),"%L",id,"ADMIN_BAN_PLAYER")
menu_additem(menu,szText,"1",ADMIN_BAN)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_KICK_PLAYER")
menu_additem(menu,szText,"2",ADMIN_KICK)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_SLAP_PLAYER")
menu_additem(menu,szText,"3",ADMIN_SLAY)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_GAG")
menu_additem(menu,szText,"4",ADMIN_BAN)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_TEAM")
menu_additem(menu,szText,"5",ADMIN_LEVEL_A)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_DO_RESTART")
menu_additem(menu,szText,"6",ADMIN_KICK)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_MAP")
menu_additem(menu,szText,"7",ADMIN_MAP)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_VOTE_MAP")
menu_additem(menu,szText,"8",ADMIN_VOTE)

formatex(szText,charsmax(szText),"%L",id,"ADMIN_MENU_EXIT")
menu_setprop(menu,MPROP_EXITNAME,szText)

menu_setprop(menu,MPROP_NUMBER_COLOR,"\w")
menu_setprop(menu,MPROP_EXIT,MEXIT_ALL)
menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public menu_handler(id,menu,item) {
if(item==MENU_EXIT) {
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback

menu_item_getinfo(menu,item,access,data,5,iName,63,callback)
new key = str_to_num(data)
switch(key) {
case 1: {
client_cmd(id,"amx_banmenu")
return PLUGIN_HANDLED
}
case 2: {
client_cmd(id,"amx_kickmenu")
return PLUGIN_HANDLED
}
case 3: {
client_cmd(id,"amx_slapmenu")
return PLUGIN_HANDLED
}
case 4: {
client_cmd(id,"amx_gagmenu")
return PLUGIN_HANDLED
}
case 5: {
client_cmd(id,"amx_teammenu")
return PLUGIN_HANDLED
}
case 6: {
server_cmd(id,"sv_restart 1")
return PLUGIN_HANDLED
}
case 7: {
client_cmd(id,"amx_mapmenu")
return PLUGIN_HANDLED
}
case 8: {
client_cmd(id,"amx_votemapmenu")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 29.3.2014, 17:44
Сообщение #6
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Код:
server_cmd(id,"sv_restart 1")

FAIL
Вот так правильно:
Код:
server_cmd("sv_restart 1")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя tenb63rus
сообщение 29.3.2014, 20:36
Сообщение #7


Стаж: 12 лет

Сообщений: 817
Благодарностей: 476
Полезность: 850

Цитата(serfreeman1337 @ 29.3.2014, 17:44) *
Код:
server_cmd(id,"sv_restart 1")

FAIL
Вот так правильно:
Код:
server_cmd("sv_restart 1")

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