• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Рейт арена поинтов.
Geleorik
Капрал
Интересный вопрос появился. Есть общий рейт арены поинтов.
Как сделать так, что бы например за арену 2х2 давали рейт х1. За 3х3 рейт х3, за х5 - 10.
Если такое вообще возможно.
Сообщение # 1 написано 16.01.2014 в 17:01
_dm666
<3 Death Metal
Нужно заменить 0.76 и 0.88 на свое значение, дописать условие на тиму 5х5.
Код
uint32 ArenaTeam::GetPoints(uint32 memberRating)
{
     // Returns how many points would be awarded with this team type with this rating
     float points;

     uint32 rating = memberRating + 150 < Stats.Rating ? memberRating : Stats.Rating;

     if (rating <= 1500)
     {
         if (sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) < 6)
             points = (float)rating * 0.22f + 14.0f;
         else
             points = 344;
     }
     else
         points = 1511.26f / (1.0f + 1639.28f * exp(-0.00412f * (float)rating));

     // Type penalties for teams < 5v5
     if (Type == ARENA_TEAM_2v2)
         points *= 0.76f;
     else if (Type == ARENA_TEAM_3v3)
         points *= 0.88f;

     return (uint32) points;
}
Сообщение # 2 написано 16.01.2014 в 18:42
Geleorik
Капрал
а в каком это файле?
Сообщение # 3 написано 17.01.2014 в 10:19
_dm666
<3 Death Metal
ArenaTeam.cpp.
Сообщение # 4 написано 17.01.2014 в 12:13
staford11
^s†af0rd f0rever^
Код
uint32 ArenaTeam::GetPoints(uint32 memberRating)   
   {   
       // Returns how many points would be awarded with this team type with this rating   
       float points;   

       uint32 rating = memberRating + 150 < Stats.Rating ? memberRating : Stats.Rating;   

       if (rating <= 1500)   
       {   
           if (sWorld->getIntConfig(CONFIG_ARENA_SEASON_ID) < 6)   
               points = (float)rating * 0.22f + 14.0f;   
           else   
               points = 344;   
       }   
       else   
           points = 1511.26f / (1.0f + 1639.28f * exp(-0.00412f * (float)rating));   

       // Type penalties for teams < 5v5   
       if (Type == ARENA_TEAM_2v2)   
           points *= 0.76f;   
       else if (Type == ARENA_TEAM_3v3)   
           points *= 0.88f;
       // думаю такой вариант для 5х5 будет работать (если я правильно понял)
       else if (Type != ARENA_TEAM_2v2 && Type != ARENA_TEAM_3v3)
           points *= 1.0f;

       return (uint32) points;   
   }
Победоносная @ Галакронд
Мои сборки под 3.3.5а 12340

Исправительные работы: в наличии.
Сообщение # 5 отредактировано staford11 - Пятница, 17.01.2014, 12:30
_dm666
<3 Death Metal
Цитата staford11 ()
 // думаю такой вариант для 5х5 будет работать (если я правильно понял)
       else if (Type != ARENA_TEAM_2v2 && Type != ARENA_TEAM_3v3)
           points *= 1.0f;

А если
Код
else
    points *= 1.0f ;
Сообщение # 6 написано 17.01.2014 в 12:38
  • Страница 1 из 1
  • 1
Поиск: