|
Новичкам Информация для всех новичков, новичкам рекомендуется задавать свои вопросы здесь |
|
Опции темы | Поиск в этой теме | Опции просмотра |
31.07.2010, 15:06 | #1 |
Новичок
Регистрация: 07.03.2010
Сообщений: 29
Сказал(а) спасибо: 135
Поблагодарили 9 раз(а) в 4 сообщениях
|
нейтральная область на карте
вопрос как сделать некую область на карте такой же нейтральной как город шаттрат, к примеру у меня зона пиратская бухта я хочу ей сделать нейтральную фракцию чтобы орда и альанс были дружественные к друг другу в пределах городка, ну я знаю что это делается в dbc в AreaTable.dbc но описание флагов мне не известно поэтому какой флаг ставить области незнаю
|
31.07.2010, 17:14 | #2 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Поставить такой же, как и в Шатрах?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
31.07.2010, 17:15 | #3 |
Новичок
Регистрация: 07.03.2010
Сообщений: 29
Сказал(а) спасибо: 135
Поблагодарили 9 раз(а) в 4 сообщениях
|
а вдруг результат будет не тот? малоли какие там еще флаги нужно не наугад а гдето узнать обозначение этих флагов
|
31.07.2010, 17:16 | #4 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
А вдруг результат будет тот? Ты попробовал?
Хоть что-то сам делай, перед тем как спрашивать. Это кому писалось?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
31.07.2010, 18:38 | #5 |
Модератор
|
Да не трогайте dbc, это средство получения данных, не предназначено для какого-нить редактирования, зачем думаете разрабы все dbc обьекты в сервере сделали const
По теме : AREA_FLAG_SANCTUARY нужен, все ареа-флаги кажись в src/game/DBCStructure.h или поищите AREA_FLAG в солюшене Где то давно был патч, позволяющий сделать зону ДК санктуари, аналогично с любой зоной |
31.07.2010, 20:35 | #6 |
Новичок
Регистрация: 07.03.2010
Сообщений: 29
Сказал(а) спасибо: 135
Поблагодарили 9 раз(а) в 4 сообщениях
|
на форуме есть патч но он не работает ваабще, а нащет флагов спасибо только он в DBCEnums.h
Код:
AREA_FLAG_SANCTUARY = 0x00000800, // sanctuary area (PvP disabled) такой вариант прокатит: (взял пример из зоны без полетов в даларане) Код:
+ { + AreaTableEntry const* pArea = GetAreaEntryByAreaID(m_originalCaster->GetAreaId()) + + if ((pArea->flags & AREA_FLAG_SANCTUARY) & (m_originalCaster->GetZoneId() == 35)) + return; + } Последний раз редактировалось Limpnau; 31.07.2010 в 20:55. |
31.07.2010, 23:13 | #7 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Цитата:
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
01.08.2010, 01:06 | #8 | |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Цитата:
|
|
01.08.2010, 14:26 | #9 |
Новичок
Регистрация: 07.03.2010
Сообщений: 29
Сказал(а) спасибо: 135
Поблагодарили 9 раз(а) в 4 сообщениях
|
Vinolentus добавил непомогло, tempura патч собирается, в базу все добавляется просто он не работает тоесть при выполнении всех действий с темы (установка патча(сборка ядра), создание таблицы в базе мангоса, залития данных по зоне и фракции) все как было так и остается
|
01.08.2010, 14:49 | #10 | |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Цитата:
Код:
Player::UpdateZone ... if(zone->flags & AREA_FLAG_SANCTUARY) SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY); |
|
01.08.2010, 15:14 | #11 |
Супер-модератор
|
Взять зону, повесить всем бафф, в чем проблема ? Оо
__________________
Теперь и в Бете Warlords of Draenor & HotS ! |
01.08.2010, 15:56 | #12 |
Новичок
Регистрация: 07.03.2010
Сообщений: 29
Сказал(а) спасибо: 135
Поблагодарили 9 раз(а) в 4 сообщениях
|
Vinolentus такой вариант будет работать?
Код:
if(zone->flags & AREA_FLAG_SANCTUARY) // in sanctuary { SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY); if(sWorld.IsFFAPvPRealm()) SetFFAPvP(false); } +else +{ + if ((zone->flags & AREA_FLAG_SANCTUARY) & (m_originalCaster->GetZoneId() == 35)) + return; +} Последний раз редактировалось Limpnau; 01.08.2010 в 16:00. |
01.08.2010, 17:19 | #13 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 51
Сказал(а) спасибо: 14
Поблагодарили 32 раз(а) в 15 сообщениях
|
Нет Оо
Во-первых, && и & - не одно и тоже. Во-вторых, я предлагал добавлять флаг святилища нужной зоне прямо в LoadDBCStores - кажется, в чистых исходниках было еще несколько проверок, есть ли у зоны этот флаг. Вроде бы при нанесении урона, не помню точно. Впрочем, хотите в UpdateZone - делайте в UpdateZone, только думайте, что именно делаете. Вот на вашем же примере: Код:
if(zone->flags & AREA_FLAG_SANCTUARY) // если в маске флагов зоны есть флаг святилища SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_SANCTUARY); // добавляем игроку, для которого вызвано обновление зоны, флаг, что он находится в святилище. Соответственно, другие игроки будут считать его дружественным. // ваш код else // иначе (т.е. если у в маске флагов зоны _нет_ флага святилища { if ((zone->flags & AREA_FLAG_SANCTUARY) // если в маске флагов зоны есть флаг святилища - ничего не смущает? xD /*& ну, предположим, вы имели в виду все-таки */ && // кто такой m_originalCaster? Где он объявлен? Каким образом вообще относится к нашему методу?... (m_originalCaster->GetZoneId() == 35)) return; // здорово, мы возвращаемся, ничего не сделав } Последний раз редактировалось Vinolentus; 01.08.2010 в 17:21. |
01.08.2010, 17:37 | #14 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
http://paste2.org/p/935364
В IsSanctuary() добавляете хаки по желанию. |
01.08.2010, 23:10 | #15 |
Модератор
|
А не проще ли сделать там, где идет проверка на санктуари - просто добавить еще и ИД нужной зоны типа
Код:
if (area->flags & AREA_FLAG_SANCTUARY || area->Id == Ид нужной зоны) А пост выше мне непонятен вообще, во-первых, во втором использовании & - надо &&, во-вторых, return - это выход из функции, и он тут вобще не к месту, чего этим можно добится |
01.08.2010, 23:17 | #16 |
Супер-модератор
|
Код:
INSERT INTO `spell_area` VALUES (64373,35,0,0,0,0,0,2,1);
__________________
Теперь и в Бете Warlords of Draenor & HotS ! |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цели на карте | xmolex | Запросы | 4 | 07.03.2010 11:37 |