JaGeR_ch | Дата: Вторник, 21.08.2012, 18:33 | Сообщение # 1 |
- Сообщения: 18
- Награды: 2
- Замечания:
|
Приветствую. Решил и я внести свой вклад. )
В данной статье я расскажу как сделать меню, для обнуления у игроков опыта на выбранной расе, находящихся на сервере . Данный пример показывает, как добавить меню на стандартный вар3фт мод. Админ флаг для меню - "r", можете сделать квар ...
Шаг 1 Открываем menus.inl находим menu_Admin_Options(id) далее : заменяем это Code new pos = 0, i, menu_body[512], menuitems[3][32] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<8)|(1<<9)
format(menuitems[0],31,"%L",id,"GIVE_IND_XP") format(menuitems[1],31,"%L",id,"GIVE_MULT_XP") format(menuitems[2],31,"%L",id,"SAVE_ALL_XP")
pos += format(menu_body[pos], 511-pos, "%L^n^n",id,"MENU_ADMIN_MENU") for (i = 0; i<3; i++){ pos += format(menu_body[pos], 511-pos, "\w%d. %s^n",i+1,menuitems[i]) }
на это Code new pos = 0, i, menu_body[512], menuitems[4][32] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<8)|(1<<9)
format(menuitems[0],31,"%L",id,"GIVE_IND_XP") format(menuitems[1],31,"%L",id,"GIVE_MULT_XP") format(menuitems[2],31,"%L",id,"SAVE_ALL_XP") format(menuitems[3],31,"%L",id,"MENU_XP_RESET")
pos += format(menu_body[pos], 511-pos, "%L^n^n",id,"MENU_ADMIN_MENU") for (i = 0; i<4; i++){ pos += format(menu_body[pos], 511-pos, "\w%d. %s^n",i+1,menuitems[i]) }
Шаг 2 Находим _menu_Admin_Options(id,key) и вставляем следующее между case2 и case8 Code case 3: Rest_Xp_menu(id);
Шаг 3 В самый низ menus.inl вставляем следующее : Code public Rest_Xp_menu(id) { if ( id && !( get_user_flags( id ) & ADMIN_LEVEL_F ) ) { client_print(id,print_center,"%s %L",g_MODclient, id,"YOU_HAVE_NO_ACCESS"); return PLUGIN_HANDLED; }
displayMenu(id); return PLUGIN_HANDLED; }
public displayMenu(id) { new menuname[32] formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "MENU_XP_RESET_2") new i_Menu = menu_create(menuname, "menu_handler");
new s_Players[32], i_Num, i_Player;
new s_Name[32], s_Player[10];
get_players(s_Players, i_Num);
for (new i; i < i_Num; i++) { i_Player = s_Players[i];
get_user_name(i_Player, s_Name, charsmax(s_Name)); num_to_str(i_Player, s_Player, charsmax(s_Player));
menu_additem(i_Menu, s_Name, s_Player, 0); }
menu_display(id, i_Menu, 0); } public menu_handler(id, menu, item) { if ( id && !( get_user_flags( id ) & ADMIN_LEVEL_F ) ) { client_print(id,print_center,"%s %L",g_MODclient, id,"YOU_HAVE_NO_ACCESS"); return PLUGIN_HANDLED; } 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_Player = str_to_num(s_Data);
XP_Reset( i_Player );
menu_destroy(menu); return PLUGIN_HANDLED; }
Шаг 4 В ланговый файл war3ft.txt вставляем следующее, ниже [ru] Code MENU_XP_RESET = \rОбнуление Опыта MENU_XP_RESET_2 = \rМеню Обнуления Опыта
|
|
| |
Dangerous | Дата: Вторник, 21.08.2012, 23:16 | Сообщение # 2 |
- Сообщения: 92
- Награды: 0
- Замечания:
|
Спасибо отлично работает!Слушай а можешь написать так что бы ещё можно было выбирать сколько ХР сбросить? Добавлено (21.08.2012, 23:16) --------------------------------------------- Или подскажи что надо добавить ещё?Если можно Заранее спасибо за помощь одну мечту выполнил
|
|
| |
mexanik | Дата: Среда, 22.08.2012, 02:50 | Сообщение # 3 |
- Сообщения: 1
- Награды: 0
- Замечания:
|
да. если можешь напиши как можно так сделать : Слушай а можешь написать так что бы ещё можно было выбирать сколько ХР сбросить?
|
|
| |
Dangerous | Дата: Среда, 22.08.2012, 13:41 | Сообщение # 5 |
- Сообщения: 92
- Награды: 0
- Замечания:
|
Подойдёт только где написано:
Где написано id: ------------------------------ public Rest_Xp_menu(id) - (пример) ------------------------------
ты должен дописать user. вот тебе пример: ---------------------------------- public Rest_Xp_menu(idUser) - (пример) -----------------------------------
Вроде должно работать!
Сообщение отредактировал Dangerous - Среда, 22.08.2012, 13:42 |
|
| |
Contra63 | Дата: Среда, 22.08.2012, 17:52 | Сообщение # 6 |
- Сообщения: 830
- Награды: 7
- Замечания:
|
JaGeR_ch, формирует список из всех игроков ?
|
|
| |
Dangerous | Дата: Среда, 22.08.2012, 20:29 | Сообщение # 7 |
- Сообщения: 92
- Награды: 0
- Замечания:
|
--------------------------- JaGeR_ch сделай так что бы ещё можно было выбрать сколько отнять или скажи что нужно изменить
|
|
| |