Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Баг-репорты

Важная информация

Баг-репорты Описываем проблемы и ошибки работы ядра

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.06.2010, 20:20   #1
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию Фильтр отображения предметов у торговца.

Вобщем это некое обсуждение перед реализацией в патче.
Возьмем к примеру этого NPC
http://ru.wowhead.com/npc=32216
На оффе он не показывает те маунты которые вы не можете купить будучи другой фракцией.
Вопрос вот в чем какие фильтры у торговцев на оффе есть?
alien вне форума   Ответить с цитированием
Старый 06.06.2010, 22:03   #2
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

В смысле - по расе, по классу, по фракции?
По уровню или скилам ставить фильтр точно смысла нет.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 07.06.2010, 08:58   #3
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

Цитата:
Сообщение от tempura Посмотреть сообщение
В смысле - по расе, по классу, по фракции?
По уровню или скилам ставить фильтр точно смысла нет.
у человека на оффе не отображается "полёты в непогоду" хотя он ещё 74 и он их не выучил, предположение что появиться на 77, проверим!
Fedia22 вне форума   Ответить с цитированием
Старый 07.06.2010, 10:36   #4
Lightunit
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 66
Сказал(а) спасибо: 120
Поблагодарили 9 раз(а) в 7 сообщениях
Lightunit На верном пути
Сообщение

Цитата:
Сообщение от Fedia22 Посмотреть сообщение
у человека на оффе не отображается "полёты в непогоду" хотя он ещё 74 и он их не выучил, предположение что появиться на 77
На мангосе, книгу "полёты в непогоду", можно купить на 77 лвле. До достижения 77 уровня, НИП даже не торгует.
Lightunit вне форума   Ответить с цитированием
Старый 07.06.2010, 15:00   #5
YuruY
YTDB Dev
 
Аватар для YuruY
 
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
YuruY Скоро придёт к известностиYuruY Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
Вобщем это некое обсуждение перед реализацией в патче.
Возьмем к примеру этого NPC
http://ru.wowhead.com/npc=32216
На оффе он не показывает те маунты которые вы не можете купить будучи другой фракцией.
Вопрос вот в чем какие фильтры у торговцев на оффе есть?
М.б: "item_template" => Faction=1/2.
__________________
http://ytdb.ru/
http://svn2.assembla.com/svn/ytdbase/
YuruY вне форума   Ответить с цитированием
Старый 07.06.2010, 15:26   #6
NeatElves
YTDB Dev
 
Аватар для NeatElves
 
Регистрация: 06.03.2010
Сообщений: 259
Сказал(а) спасибо: 28
Поблагодарили 280 раз(а) в 136 сообщениях
NeatElves Как самоцвет среди гранитаNeatElves Как самоцвет среди гранитаNeatElves Как самоцвет среди гранита
По умолчанию

Задача сложнее.)

1. Берем вендора с турнира, например http://ru.wowhead.com/npc=33657, у него есть 2 маунта одинаковых http://ru.wowhead.com/item=46745 и http://ru.wowhead.com/item=46756, далал еще на 332 скрины - первый видно только своим, второй всем остальным...

2. Он же, должен продавать только чемпионам, ставим к примеру простой госсип, что вендор открыт тем, кто прошел квест, создаем нового перса дренея, варпаемся к нему не выполняя квест - вендор открыт всегда, госсип не учитывается, перса другой расы - госсип работает...

Последний раз редактировалось NeatElves; 07.06.2010 в 15:28.
NeatElves вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Lightunit (07.06.2010)
Старый 07.06.2010, 17:57   #7
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Вобщем я еще вот к чему.
Берем этого нпс http://ru.wowhead.com/npc=32216
Он продает к примеру http://ru.wowhead.com/item=44689 и http://ru.wowhead.com/item=44690
В "item_template" Faction стоит верно.
Но в самом сервере нету ограничение на отображение этих предметов в доступных для покупки предметов. То есть сервер не фильтрует их.
На стороне сервера есть только вот такой фильтр http://github.com/mangos/mangos/blob...temHandler.cpp
Код:
if((pProto->AllowableClass & _player->getClassMask()) == 0 && pProto->Bonding == BIND_WHEN_PICKED_UP && !_player->isGameMaster())
                    continue;
Собственно надо просто добавить фильтр по фракции. Щас добавил проверю как это выглядит на сервере.
Но тут еще 1 маленькая проблемка с вендорами нарисовалась.

Вот патч на фракцию
Код:
diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp
index 41796a7..3d9057e 100644
--- a/src/game/ItemHandler.cpp
+++ b/src/game/ItemHandler.cpp
@@ -756,7 +756,8 @@ void WorldSession::SendListInventory(uint64 vendorguid)
             {
                 if((pProto->AllowableClass & _player->getClassMask()) == 0 && pProto->Bonding == BIND_WHEN_PICKED_UP && !_player->isGameMaster())
                     continue;
-
+		if((pProto->AllowableRace & _player->getRaceMask()) == 0 && pProto->Bonding == BIND_WHEN_PICKED_UP && !_player->isGameMaster())
+			continue;
+
                 ++count;
 
                 // reputation discount
Так и вот еще 1 патчик ))
Если после применения фильтров у вендора не будет ни одного предмета который он может предложить на продажу то тогда вендор не откроет окно )
Код:
diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp
index 41796a7..ce94160 100644
--- a/src/game/ItemHandler.cpp
+++ b/src/game/ItemHandler.cpp
@@ -774,9 +775,11 @@ void WorldSession::SendListInventory(uint64 vendorguid)
         }
     }
 
-    if ( count == 0 || data.size() != 8 + 1 + size_t(count) * 8 * 4 )
-        return;
-
+	if(data.size() != 8 + 1 + size_t(count) * 8 * 4)
+		return;
+    if ( count == 0 )
+        data << uint8(0);
+	   
     data.put<uint8>(count_pos, count);
     SendPacket( &data );
 }
+ if ( count == 0 )
+ data << uint8(0);
тут дело вот в чем отснифил пакет с оффа получил пакет длинной 10 байт
а у нас если вендор не предлогает ни одной шмотки на продажу то 9 ))
Вот собственно байтик дописываем )
alien вне форума   Ответить с цитированием
Старый 07.06.2010, 18:56   #8
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
тут дело вот в чем отснифил пакет с оффа получил пакет длинной 10 байт
а у нас если вендор не предлогает ни одной шмотки на продажу то 9 ))
Вот собственно байтик дописываем )
Если вы внимательно смотрели текущий код, то должны были заметить что пакет вообще не отправляется...

И вообще проверка
Код:
    if ( count == 0 || data.size() != 8 + 1 + size_t(count) * 8 * 4 )
        return;
имхо лишняя...
TOM_RUS вне форума   Ответить с цитированием
Старый 07.06.2010, 19:15   #9
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Да я видел что в текущем состоянии пакет не отправляется.
Но если вообще убрать
if ( count == 0 || data.size() != 8 + 1 + size_t(count) * 8 * 4 )
return;
то клиент небудет реагировать на пакет. Нужен дописать тот байтик.

А проверку оставил так-как хрен его знает какая логика была у того человека который ее писал, и не мне решать убирать или оставлять ее.

Последний раз редактировалось alien; 07.06.2010 в 19:18.
alien вне форума   Ответить с цитированием
Старый 07.06.2010, 20:27   #10
Fedia22
Ученый
 
Аватар для Fedia22
 
Регистрация: 03.03.2010
Адрес: Сибирь, 58°14′00″ с. ш. 92°29′00″ в. д.
Сообщений: 288
Сказал(а) спасибо: 79
Поблагодарили 37 раз(а) в 14 сообщениях
Записей в дневнике: 18
Fedia22 На верном пути
По умолчанию

Цитата:
Сообщение от Lightunit Посмотреть сообщение
На мангосе, книгу "полёты в непогоду", можно купить на 77 лвле. До достижения 77 уровня, НИП даже не торгует.
я не про книгу! я про обучение!
Fedia22 вне форума   Ответить с цитированием
Старый 07.06.2010, 21:48   #11
timmit
YTDB Dev
 
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
timmit На верном пути
По умолчанию

Цитата:
Сообщение от Fedia22 Посмотреть сообщение
я не про книгу! я про обучение!
а причем тут обучение и эта тема? Или мы уже читать разучились?
timmit вне форума   Ответить с цитированием
Старый 08.06.2010, 18:47   #12
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Вопрос к администрации.
Можно как-то 7 пост перенести в раздел Патчи на рассмотрении
или просто от Vladimir какой-нибудь коммент услышать
alien вне форума   Ответить с цитированием
Старый 08.06.2010, 20:57   #13
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

он увидит... И если нужно - перенесет.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
alien (08.06.2010)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10641][hack fix] Отображение характеристик heroic предметов. Warlord123 Принятые патчи 6 25.10.2010 15:30
[10046][patch] Хранение GUIDов передаваемых предметов при обмене zergtmn Принятые патчи 4 08.06.2010 19:50
[fixed][bug] Дублирование предметов. Maximus Баг-репорты 12 23.04.2010 21:52


Текущее время: 09:55. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot