Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Как дополнить меню выбора рассы?
kica
Дата: Среда, 08.08.2012, 04:11 | Сообщение # 1
офлайн

  • Сообщения: 216
  • Награды: 3
  • Замечания:
 
Как добавить уровень в скобках?

Прикрепления: 0001475.jpg (12.8 Kb)


Сообщение отредактировал kica - Среда, 08.08.2012, 04:12
 
SMaster
Дата: Воскресенье, 12.08.2012, 16:24 | Сообщение # 2
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Шаг 1.
Открываешь файл war3ft.inl
Находишь WC3_ChangeRaceShowMenu( idUser, iRaceXP[MAX_RACES] = {0} )
Заменяешь полностью эту функцию на приведенную ниже:
Code
// Function will show the "select a race" menu to the user
WC3_ChangeRaceShowMenu( idUser, iRaceXP[MAX_RACES] = {0},iRaceLVL[MAX_RACES] = {0} )
{
    // We don't want to replace the player's current XP with whats in the database now do we ?
    if ( p_data[idUser][P_RACE] )
    {
     iRaceXP[p_data[idUser][P_RACE]-1] = p_data[idUser][P_XP];
     iRaceLVL[p_data[idUser][P_RACE]-1] = p_data[idUser][P_LEVEL];    
    }

    // Need to call this here
    MENU_ChangeRace( idUser, iRaceXP,iRaceLVL);
}


Скрин как должно быть:


Шаг 2.
Открываешь файл XP.inl и добавляешь новую функцию в самый низ
Код:
Code
XP_GetLevelByXP( iXP )    
{    
    if ( iXP < 0 || iXP == 0 )    
     return 0;    

    new Float:fXPMult = get_pcvar_float( CVAR_wc3_xp_multiplier );    

    new iResultLevel = 0;    
    for (new iLevel = 0; iLevel <= MAX_LEVELS; iLevel++ )    
    {    
     if ( get_pcvar_num( CVAR_wc3_save_xp ) == 1 )    
     {    
      if(iXP >= floatround(iXPLevelSaved[iLevel] * fXPMult ))    
       iResultLevel = iLevel;    
     }    

     if ( get_pcvar_num( CVAR_wc3_save_xp ) == 0 )    
     {    
      if(iXP >= floatround(iXPLevelShortTerm[iLevel] * fXPMult ))    
       iResultLevel = iLevel;    
     }

    }    

    return iResultLevel;
}


Шаг 3.
Открываешь файл db_common.h и добавляешь новую переменную
Code
new arrPlayerLevelsInfo[33][MAX_RACES];


Шаг 4.
Открываешь db_sqlite.inl
Находишь SQLITE_GetAllXP( idUser )

Добавляешь строчку:
Code
arrPlayerLevelsInfo[idUser][iRace-1] = XP_GetLevelByXP( iXP );


Заменяешь всю строку WC3_ChangeRaceShowMenu( idUser, g_iDBPlayerXPInfoStore[idUser]);
На эту:
Code
WC3_ChangeRaceShowMenu( idUser, g_iDBPlayerXPInfoStore[idUser],arrPlayerLevelsInfo[idUser]);


Скрин как должно быть:


Шаг 5.
Открываешь db_mysqlx.inl
Находишь MYSQLX_GetAllXP( idUser )

Добавляешь строчку:
Code
arrPlayerLevelsInfo[idUser][iRace-1] = XP_GetLevelByXP( iXP );


Заменяешь всю строку WC3_ChangeRaceShowMenu( idUser, g_iDBPlayerXPInfoStore[idUser]);
На эту:
Code
WC3_ChangeRaceShowMenu( idUser, g_iDBPlayerXPInfoStore[idUser],arrPlayerLevelsInfo[idUser]);


Скрин как должно быть:


Шаг 6.
Открываешь menus.inl
Находишь public MENU_ChangeRace( idUser, iRaceXP[MAX_RACES]) и полностью меняешь всю функцию на код ниже:
Code
public MENU_ChangeRace( idUser, iRaceXP[MAX_RACES],iRaceLVL[MAX_RACES])
{
       
    new szRaceName[MAX_RACES+1][64],i, pos, iKeys = 0, szMenu[512], szXP[16],szLVL[64];

    // Get our race names
    for ( i = 0; i < get_pcvar_num( CVAR_wc3_races ); i++ )
     lang_GetRaceName( i + 1, idUser, szRaceName[i], 63 );

    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "%L", LANG_PLAYER, "MENU_SELECT_RACE" );

    // Then add the experience column
    if ( get_pcvar_num( CVAR_wc3_save_xp ) )
     pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\R%L^n^n", LANG_PLAYER, "MENU_WORD_EXPERIENCE" );
    else
     pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "^n" );

    // Build the changerace menu (for every race)
    for ( i = 0; i < get_pcvar_num( CVAR_wc3_races ); i++ )
    {
     num_to_str( iRaceXP[i], szXP, 15 );
        
     if ((i+1) == RACE_CHAMELEON)
      formatex(szLVL, charsmax(szLVL), "(%L %d)", LANG_PLAYER, "MENU_WORD_LEVEL",iRaceLVL[i]);

     // Add the "Select a Hero" message if necessary
     if ( i == 4 )
      pos += format( szMenu[pos], charsmax(szMenu)-pos, "%L", LANG_PLAYER, "SELECT_HERO" );
        
     // User's current race
     if ( i == p_data[idUser][P_RACE] - 1 )
     {
      pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\d%d. %s %s\d\R%s^n", i + 1,
    szRaceName[i],szLVL, ( (get_pcvar_num( CVAR_wc3_save_xp )) ? szXP : " " ) );

      iKeys |= (1<<i);
     }

     // Race the user wants to change to
     else if ( i == p_data[idUser][P_CHANGERACE] - 1 )
     {
      pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\r%d. %s %s\r\R%s^n", i + 1,
    szRaceName[i],szLVL, ( (get_pcvar_num( CVAR_wc3_save_xp )) ? szXP : " " ) );

      iKeys |= (1<<i);
     }

     // All other cases
     else
     {
      new bool:bAllowRace = true;

      // Check to see if the user can choose this race (are there too many of this race?)
      if ( bAllowRace )
      {
       pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\w%d. %s %s\y\R%s^n", i + 1,
    szRaceName[i],szLVL, ( (get_pcvar_num( CVAR_wc3_save_xp )) ? szXP : " " ) );

       iKeys |= (1<<i);
      }

      // If not, display the race, but don't give them a key to press
      else
      {
       pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\d%d. %s %s\y\R%s^n", i + 1,
    szRaceName[i],szLVL, ( (get_pcvar_num( CVAR_wc3_save_xp )) ? szXP : " " ) );
      }
     }

    }

    iKeys |= (1<<i);
       
    // This is needed so we can make the Auto-Select option "0" if the number of races is 9
    if ( get_pcvar_num( CVAR_wc3_races ) == 9 )
    {
     i = -1;
    }

    pos += format( szMenu[pos], charsmax(szMenu)-pos, "%L", idUser, "SELECT_RACE_FOOTER", i + 1 );
       
    // Add a cancel button to the bottom
    if ( get_pcvar_num( CVAR_wc3_races ) != 9 )
    {
     iKeys |= (1<<9);

     pos += format( szMenu[pos], charsmax(szMenu)-pos, "^n\d0. %L", idUser, "WORD_CANCEL" );
    }
       
    // Show the menu to the user!
    show_menu( idUser, iKeys, szMenu, -1 );

    return;
}


Результат, который должен получиться:



Шаг 7.
В словарик cssbWar3ftMod.txt нужно добавить новый ключ.
MENU_WORD_LEVEL = Уровень

P.S.: Если убрать условие
Code
if ((i+1) == RACE_CHAMELEON)
отображаться будет на всех расах уровень,
но может не весь текст влазить.Поэтому надо слово Уровень сократить
Прикрепления: 9701912.png (7.0 Kb) · 9647635.png (11.0 Kb) · 4291280.png (331.2 Kb)


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaJIou
Дата: Среда, 16.04.2014, 15:02 | Сообщение # 3
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
SMaster, А почему у меня ошибка 
вот такая   undefined symbol 'iRace'


Skype - dimasomon
 
SMaster
Дата: Среда, 16.04.2014, 16:04 | Сообщение # 4
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
MaJIou, потому что переменная iRace не объявлена.
Проверяй.


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaJIou
Дата: Среда, 16.04.2014, 17:36 | Сообщение # 5
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
SMaster, А где её надо писать

Skype - dimasomon
 
SMaster
Дата: Среда, 16.04.2014, 17:37 | Сообщение # 6
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
MaJIou, Вообще в моде она была, на сколько помню!

Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaJIou
Дата: Среда, 16.04.2014, 17:45 | Сообщение # 7
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
SMaster, А в каком имеено файле оно

Skype - dimasomon
 
SMaster
Дата: Среда, 16.04.2014, 17:49 | Сообщение # 8
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
MaJIou, в том же

Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaJIou
Дата: Четверг, 17.04.2014, 16:01 | Сообщение # 9
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
SMaster,Можешь описать как сделать 
Пример 
1.Нежить       сколько опыта ( а можно место опыта что-бы уровень писала)


Skype - dimasomon
 
SMaster
Дата: Четверг, 17.04.2014, 17:03 | Сообщение # 10
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
MaJIou, Расписано все уже.
Нормальный мод скачай для начала.


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaJIou
Дата: Четверг, 17.04.2014, 18:59 | Сообщение # 11
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
SMaster, у меня твой есть с исходниками так а где я весь сайт облазил нету помоги найти

Skype - dimasomon
 
SMaster
Дата: Пятница, 18.04.2014, 15:03 | Сообщение # 12
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
MaJIou,
 CSSB War3FT MOD + Shopmenu3 (Версия 2.2.3)


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaJIou
Дата: Пятница, 18.04.2014, 15:16 | Сообщение # 13
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
SMaster, есть уже мод 
SMaster,Можешь описать как сделать  
Пример  
1.Нежить       сколько опыта ( а можно место опыта что-бы уровень писала)


Skype - dimasomon
 
SMaster
Дата: Пятница, 18.04.2014, 16:49 | Сообщение # 14
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
MaJIou, Уже все расписано в теме.
А если такое желание пофлудить,то для этого есть раздел!


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
MaJIou
Дата: Вторник, 22.04.2014, 17:29 | Сообщение # 15
офлайн

  • Сообщения: 43
  • Награды: 0
  • Замечания:
 
SMaster, Помоги найти уже 6 раз смотрел все темы не нашёл
Пример   
1.Нежить       сколько опыта ( а можно место опыта что-бы уровень писала)


Skype - dimasomon
 
SMaster
Дата: Четверг, 24.04.2014, 16:24 | Сообщение # 16
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
MaJIou
Код
if ((i+1) == RACE_CHAMELEON)


Ключ на Нежить замени.


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
B@RB@DO$
Дата: Пятница, 02.05.2014, 21:14 | Сообщение # 17
офлайн

  • Сообщения: 72
  • Награды: 0
  • Замечания:
 
Всё работает скомпилировался без ошибок  smile

Вот как получилось изменил название рас чтобы все влезло ...
Прикрепления: 1430329.jpg (96.2 Kb)


Сообщение отредактировал B@RB@DO$ - Суббота, 03.05.2014, 00:24
 
NaSok
Дата: Суббота, 28.06.2014, 13:14 | Сообщение # 18
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
У меня лутше вышло))))



 
B@RB@DO$
Дата: Воскресенье, 29.06.2014, 14:36 | Сообщение # 19
офлайн

  • Сообщения: 72
  • Награды: 0
  • Замечания:
 
NaSok,
Прикрепления: 0159654.jpg (89.9 Kb)
 
NaSok
Дата: Воскресенье, 29.06.2014, 15:39 | Сообщение # 20
офлайн

  • Сообщения: 80
  • Награды: 1
  • Замечания:
 
B@RB@DO$, Норм))
wink


 
  • Страница 1 из 1
  • 1
Поиск: