Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Меню обнуления игроков на сервере
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
  • Замечания:
 
да. если можешь напиши как можно так сделать :
Слушай
а можешь написать так что бы ещё
можно было выбирать сколько ХР
сбросить? :)
 
Zep
Дата: Среда, 22.08.2012, 13:21 | Сообщение # 4
офлайн

  • Сообщения: 199
  • Награды: 2
  • Замечания:
 
это пойдёт для этого мода? или только для простого
http://perfect-soft.su/forum/39-143-1
 
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 сделай так что бы ещё можно было выбрать сколько отнять или скажи что нужно изменить
 
  • Страница 1 из 1
  • 1
Поиск: