• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Форум » TrinityCore » Установка / Настройка TrinityCore » Делаем определенную зону FFAPVP (каждый сам за себя)
Делаем определенную зону FFAPVP (каждый сам за себя)
Dimitro
Praise the sun!
Очень много раз встречал вопросы по этому поводу, вот окончательный ответ на них.

Открываем файл Player.cpp, в нем находим строки:

Code
void Player::UpdateArea(uint32 newArea)
{
      // FFA_PVP flags are area and not zone id dependent
      // so apply them accordingly
      m_areaUpdateId    = newArea;

      AreaTableEntry const* area = GetAreaEntryByAreaID(newArea);
      pvpInfo.inFFAPvPArea = area && (area->flags & AREA_FLAG_ARENA);
      UpdatePvPState(true);

      UpdateAreaDependentAuras(newArea);

      // previously this was in UpdateZone (but after UpdateArea) so nothing will break
      pvpInfo.inNoPvPArea = false;
      if (area && area->IsSanctuary())    // in sanctuary
      {
          SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY);
          pvpInfo.inNoPvPArea = true;
          CombatStopWithPets();
      }
      else
          RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY);


После них добавляем:

Code
    if (area && area->ID == id зоны)
     {
          SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
     }


Если же нужно сделать для определенной карты, пишем так:

Code
    if (area && area->mapid == id карты)
     {
          SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
     }
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в Работе Портала. Не пишите по этому поводу в личку.
Сообщение # 1 написано 10.09.2011 в 20:47
Форум » TrinityCore » Установка / Настройка TrinityCore » Делаем определенную зону FFAPVP (каждый сам за себя)
  • Страница 1 из 1
  • 1
Поиск: