Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Как изменить колчество XP за помощ в убийстве
XiToN1441
Дата: Понедельник, 10.12.2012, 13:25 | Сообщение # 1
офлайн

  • Сообщения: 5
  • Награды: 0
  • Замечания:
 
Что надо изменить чтобы даваемый опыт за убийство не зависел от уровня противника?
 
SMaster
Дата: Понедельник, 10.12.2012, 14:43 | Сообщение # 2
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Весь опыт находится в файле XP.inl

Функция которая отвечает за выдачу опыта:
Code
stock XP_Give( idUser, iBonusXP )


Code
stock XP_Give( idUser, iBonusXP )
{

   if ( !WC3_Check() || !idUser )
   {
    return 0;
   }

   // Make sure we have the minimum amount of players
   if ( !XP_MinPlayers() )
   {
    return 0;
   }

   //CSSB
   // Bonus calculated by:
   // Bonus XP * (lvl of player/float(MAX_LEVELS) + 1.0)
   // I.E. if Player is level MAX_LEVELS, then it will be Bonus XP * 2.0
     
   if ( iBonusXP != 0 )
   {
    new Float:fCurrentLevel = float( p_data[idUser][P_LEVEL] );
    new Float:iLevelMultiplier = ( fCurrentLevel / float(MAX_LEVELS) ) + 1.0;
    new iRealBonusXP = floatround(iLevelMultiplier * iBonusXP);
      
    p_data[idUser][P_XP] += iRealBonusXP;

    XP_Check( idUser );

    return iRealBonusXP;
   }

   return 0;
}


Если убрать iLevelMultiplier тогда будет выдавать четкое значение не зависящее от уровня.

Заменить нужно весь код ниже:
Code
new Float:fCurrentLevel = float( p_data[idUser][P_LEVEL] );
new Float:iLevelMultiplier = ( fCurrentLevel / float(MAX_LEVELS) ) + 1.0;
new iRealBonusXP = floatround(iLevelMultiplier * iBonusXP);


На:
Code
new iRealBonusXP = iBonusXP;


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

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

 
XiToN1441
Дата: Вторник, 11.12.2012, 10:30 | Сообщение # 3
офлайн

  • Сообщения: 5
  • Награды: 0
  • Замечания:
 
спасибо вы лучший))
 
  • Страница 1 из 1
  • 1
Поиск: