Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Отвергнутые патчи

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

Отвергнутые патчи Патчи, отвергнутые от приёма в GIT

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.05.2010, 01:53   #1
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию [patch] Vendor

На оффе есть шмотки которые продаются у одног вендора за голд а у другого за баджики или еще за какие штуки.
например
http://ru.wowhead.com/item=44128#sold-by
и http://ru.wowhead.com/item=36908#sold-by
В данной реализации таблици сделать такое невозможно
написал маленький патчик.
Код:
diff --git a/src/game/Creature.h b/src/game/Creature.h
index 3bb0591..38177b0 100644
--- a/src/game/Creature.h
+++ b/src/game/Creature.h
@@ -276,13 +276,14 @@ enum AttackingTarget
 // Vendors
 struct VendorItem
 {
-    VendorItem(uint32 _item, uint32 _maxcount, uint32 _incrtime, uint32 _ExtendedCost)
-        : item(_item), maxcount(_maxcount), incrtime(_incrtime), ExtendedCost(_ExtendedCost) {}
+    VendorItem(uint32 _item, uint32 _maxcount, uint32 _incrtime, uint8 _UseBuyPrice, uint32 _ExtendedCost)
+        : item(_item), maxcount(_maxcount), incrtime(_incrtime), UseBuyPrice(_UseBuyPrice), ExtendedCost(_ExtendedCost) {}
 
     uint32 item;
     uint32 maxcount;                                        // 0 for infinity item amount
     uint32 incrtime;                                        // time for restore items amount if maxcount != 0
-    uint32 ExtendedCost;
+    uint8  UseBuyPrice;
+	uint32 ExtendedCost;
 };
 typedef std::vector<VendorItem*> VendorItemList;
 
@@ -297,9 +298,9 @@ struct VendorItemData
     }
     bool Empty() const { return m_items.empty(); }
     uint8 GetItemCount() const { return m_items.size(); }
-    void AddItem( uint32 item, uint32 maxcount, uint32 ptime, uint32 ExtendedCost)
+    void AddItem( uint32 item, uint32 maxcount, uint32 ptime, uint8 UseBuyPrice, uint32 ExtendedCost)
     {
-        m_items.push_back(new VendorItem(item, maxcount, ptime, ExtendedCost));
+        m_items.push_back(new VendorItem(item, maxcount, ptime, UseBuyPrice, ExtendedCost));
     }
     bool RemoveItem( uint32 item_id );
     VendorItem const* FindItemCostPair(uint32 item_id, uint32 extendedCost) const;
diff --git a/src/game/ItemHandler.cpp b/src/game/ItemHandler.cpp
index 1d04c14..d3bd5b4 100644
--- a/src/game/ItemHandler.cpp
+++ b/src/game/ItemHandler.cpp
@@ -761,6 +761,7 @@ void WorldSession::SendListInventory(uint64 vendorguid)
 
                 // reputation discount
                 uint32 price = uint32(floor(pProto->BuyPrice * discountMod));
+				if (!crItem->UseBuyPrice) price=0;
 
                 data << uint32(vendorslot +1);              // client size expected counting from 1
                 data << uint32(crItem->item);
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp
index ad9682f..7264660 100644
--- a/src/game/Level2.cpp
+++ b/src/game/Level2.cpp
@@ -1128,6 +1128,11 @@ bool ChatHandler::HandleNpcAddVendorItemCommand(const char* args)
     if (fincrtime)
         incrtime = atol(fincrtime);
 
+	char* fUseBuyPrice = strtok(NULL, " ");                    //add UseBuyPrice, default: 1
+    uint8 UseBuyPrice = 1;
+    if (fUseBuyPrice)
+        UseBuyPrice = atol(fUseBuyPrice);
+
     char* fextendedcost = strtok(NULL, " ");                //add ExtendedCost, default: 0
     uint32 extendedcost = fextendedcost ? atol(fextendedcost) : 0;
 
@@ -1135,13 +1140,13 @@ bool ChatHandler::HandleNpcAddVendorItemCommand(const char* args)
 
     uint32 vendor_entry = vendor ? vendor->GetEntry() : 0;
 
-    if(!sObjectMgr.IsVendorItemValid(vendor_entry,itemId,maxcount,incrtime,extendedcost,m_session->GetPlayer()))
+    if(!sObjectMgr.IsVendorItemValid(vendor_entry,itemId,maxcount,incrtime,UseBuyPrice,extendedcost,m_session->GetPlayer()))
     {
         SetSentErrorMessage(true);
         return false;
     }
 
-    sObjectMgr.AddVendorItem(vendor_entry,itemId,maxcount,incrtime,extendedcost);
+    sObjectMgr.AddVendorItem(vendor_entry,itemId,maxcount,incrtime,UseBuyPrice,extendedcost);
 
     ItemPrototype const* pProto = ObjectMgr::GetItemPrototype(itemId);
 
diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp
index 7beae97..4aa7b96 100644
--- a/src/game/ObjectMgr.cpp
+++ b/src/game/ObjectMgr.cpp
@@ -7988,7 +7988,7 @@ void ObjectMgr::LoadVendors()
 
     std::set<uint32> skip_vendors;
 
-    QueryResult *result = WorldDatabase.Query("SELECT entry, item, maxcount, incrtime, ExtendedCost FROM npc_vendor");
+    QueryResult *result = WorldDatabase.Query("SELECT entry, item, maxcount, incrtime, UseBuyPrice, ExtendedCost FROM npc_vendor");
     if( !result )
     {
         barGoLink bar( 1 );
@@ -8012,14 +8012,15 @@ void ObjectMgr::LoadVendors()
         uint32 item_id      = fields[1].GetUInt32();
         uint32 maxcount     = fields[2].GetUInt32();
         uint32 incrtime     = fields[3].GetUInt32();
-        uint32 ExtendedCost = fields[4].GetUInt32();
-
-        if(!IsVendorItemValid(entry,item_id,maxcount,incrtime,ExtendedCost,NULL,&skip_vendors))
+		uint8  UseBuyPrice 	= fields[4].GetUInt8();
+		uint32 ExtendedCost = fields[5].GetUInt32();
+		
+        if(!IsVendorItemValid(entry,item_id,maxcount,incrtime,UseBuyPrice,ExtendedCost,NULL,&skip_vendors))
             continue;
 
         VendorItemData& vList = m_mCacheVendorItemMap[entry];
 
-        vList.AddItem(item_id,maxcount,incrtime,ExtendedCost);
+        vList.AddItem(item_id,maxcount,incrtime,UseBuyPrice,ExtendedCost);
         ++count;
 
     } while (result->NextRow());
@@ -8290,10 +8291,10 @@ void ObjectMgr::LoadGossipMenuItems()
     sLog.outString(">> Loaded %u gossip_menu_option entries", count);
 }
 
-void ObjectMgr::AddVendorItem( uint32 entry,uint32 item, uint32 maxcount, uint32 incrtime, uint32 extendedcost )
+void ObjectMgr::AddVendorItem( uint32 entry,uint32 item, uint32 maxcount, uint32 incrtime,uint8 UseBuyPrice, uint32 extendedcost )
 {
     VendorItemData& vList = m_mCacheVendorItemMap[entry];
-    vList.AddItem(item,maxcount,incrtime,extendedcost);
+    vList.AddItem(item,maxcount,incrtime,UseBuyPrice,extendedcost);
 
     WorldDatabase.PExecuteLog("INSERT INTO npc_vendor (entry,item,maxcount,incrtime,extendedcost) VALUES('%u','%u','%u','%u','%u')",entry, item, maxcount,incrtime,extendedcost);
 }
@@ -8311,7 +8312,7 @@ bool ObjectMgr::RemoveVendorItem( uint32 entry,uint32 item )
     return true;
 }
 
-bool ObjectMgr::IsVendorItemValid( uint32 vendor_entry, uint32 item_id, uint32 maxcount, uint32 incrtime, uint32 ExtendedCost, Player* pl, std::set<uint32>* skip_vendors ) const
+bool ObjectMgr::IsVendorItemValid( uint32 vendor_entry, uint32 item_id, uint32 maxcount, uint32 incrtime, uint8 UseBuyPrice, uint32 ExtendedCost, Player* pl, std::set<uint32>* skip_vendors ) const
 {
     CreatureInfo const* cInfo = GetCreatureTemplate(vendor_entry);
     if(!cInfo)
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index d1819a7..331a282 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -863,9 +863,9 @@ class ObjectMgr
 
             return &iter->second;
         }
-        void AddVendorItem(uint32 entry,uint32 item, uint32 maxcount, uint32 incrtime, uint32 ExtendedCost);
+        void AddVendorItem(uint32 entry,uint32 item, uint32 maxcount, uint32 incrtime, uint8 UseBuyPrice, uint32 ExtendedCost);
         bool RemoveVendorItem(uint32 entry,uint32 item);
-        bool IsVendorItemValid( uint32 vendor_entry, uint32 item, uint32 maxcount, uint32 ptime, uint32 ExtendedCost, Player* pl = NULL, std::set<uint32>* skip_vendors = NULL ) const;
+        bool IsVendorItemValid( uint32 vendor_entry, uint32 item, uint32 maxcount, uint32 ptime, uint8 UseBuyPrice, uint32 ExtendedCost, Player* pl = NULL, std::set<uint32>* skip_vendors = NULL ) const;
 
         void LoadScriptNames();
         ScriptNameMap &GetScriptNames() { return m_scriptNames; }
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 55fee16..4d135bc 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -18469,12 +18469,12 @@ bool Player::BuyItemFromVendorSlot(uint64 vendorguid, uint32 vendorslot, uint32
             return false;
         }
     }
-
+	
     uint32 price  = pProto->BuyPrice * count;
 
     // reputation discount
     price = uint32(floor(price * GetReputationPriceDiscount(pCreature)));
-
+	if (!crItem->UseBuyPrice) price=0;
     if (GetMoney() < price)
     {
         SendBuyError( BUY_ERR_NOT_ENOUGHT_MONEY, pCreature, item, 0);
и sql
PHP код:
ALTER TABLE npc_vendor  ADD COLUMN `UseBuyPricetinyint(2UNSIGNED NOT NULL default '1' AFTER incrtime;
UPDATE `commandSET `help`='Syntax: .npc additem #itemId <#maxcount><#incrtime><#usebuyprice><#extendedcost>r\r\n\r\nAdd item #itemid to item list of selected vendor. Also optionally set max count item in vendor item list and time to item count restoring and items ExtendedCost.\r\nIf #usebuyprice=0 then Use only #extendedcost for buy item.' WHERE (`name`='npc additem'
Теперь если в таблице npc_vendor UseBuyPrice=1 то цена берется как и раньше из item_template.BuyCount а если UseBuyPrice=0 то цена из item_template.BuyCount не учитывается.

ЗЫ может лучше тупо запихнуть цену шмотки в таблицу npc_vendor?
alien вне форума   Ответить с цитированием
Старый 21.05.2010, 02:15   #2
Energy
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 54
Сказал(а) спасибо: 11
Поблагодарили 13 раз(а) в 11 сообщениях
Energy На верном пути
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
ЗЫ может лучше тупо запихнуть цену шмотки в таблицу npc_vendor?
Наверное это наиболее логичный вариант. С другой стороны, из чего считать тогда цену продажи? Кажется это поле есть в вдб кеше.

А что если просто сделать так - при наличии цены из dbc не отображать стоимость в голде?

Случаем нет ли предметов, которые продаются за деньги + нестандартную валюту? Вроде бы пвп вода была... И в таком случае не указывается ли цена в голде в той же строчке в дбц что и в предметах?
Energy вне форума   Ответить с цитированием
Старый 21.05.2010, 02:34   #3
Shadez
Ученый
 
Аватар для Shadez
 
Регистрация: 07.03.2010
Сообщений: 175
Сказал(а) спасибо: 64
Поблагодарили 142 раз(а) в 45 сообщениях
Shadez Обладатель прекрасной аурыShadez Обладатель прекрасной ауры
Отправить сообщение для Shadez с помощью ICQ
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
В данной реализации таблици сделать такое невозможно
Что значит невозможно? А ExtendedCost нам зачем тогда?
Код:
SELECT * FROM `npc_vendor` WHERE item =36908
Shadez вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (21.05.2010)
Старый 21.05.2010, 03:02   #4
Energy
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 54
Сказал(а) спасибо: 11
Поблагодарили 13 раз(а) в 11 сообщениях
Energy На верном пути
По умолчанию

Цитата:
Сообщение от Shadez Посмотреть сообщение
Что значит невозможно? А ExtendedCost нам зачем тогда?
Код:
SELECT * FROM `npc_vendor` WHERE item =36908
Если я не ошибаюсь, речь идет о том, что если в одном месте шмотка продается за голду, то там где на нее меняются другие предметы, будет дополнительно взыматься голда.
Energy вне форума   Ответить с цитированием
Старый 21.05.2010, 05:34   #5
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от Energy Посмотреть сообщение
Если я не ошибаюсь, речь идет о том, что если в одном месте шмотка продается за голду, то там где на нее меняются другие предметы, будет дополнительно взыматься голда.
Ошибаешься. alien сложным патчем продублировал работу колонки extended_cost таблицы npc_vendor.


alien
Большая просьба - использоваться теги [ code ] вместо тегов quote для программного кода и теги [ php ] для sql фрагментов.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (21.05.2010)
Старый 21.05.2010, 08:16   #6
timmit
YTDB Dev
 
Регистрация: 01.02.2010
Сообщений: 115
Сказал(а) спасибо: 0
Поблагодарили 36 раз(а) в 25 сообщениях
timmit На верном пути
По умолчанию

Если у вендора принудительно не стоит использовать экстенд - тогда на то золото, что стоит в итем_темплате, если стоит - то только за этот экстенд.
Вики то почитать не судьба была, прежде чем патч писать?
timmit вне форума   Ответить с цитированием
Старый 21.05.2010, 08:41   #7
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Шадез и темпура совершенно правы.
Юзаем колонку ExtendedCost для итема у того вендора, у которого она продаётся за обмен, и стандартную колонку цены, у кого она продаётся просто за деньги.
Патч бессмысленный, но за попытку спасибо - вам плюс в опыт работы с кодом пошёл
Цитата:
Теперь если в таблице npc_vendor UseBuyPrice=1 то цена берется как и раньше из item_template.BuyCount а если UseBuyPrice=0 то цена из item_template.BuyCount не учитывается.
item_template.BuyCount - это вовсе не цена - это минимальный объём покупки данной вещи...
KiriX вне форума   Ответить с цитированием
Старый 21.05.2010, 09:38   #8
SeT
Ученый
 
Аватар для SeT
 
Регистрация: 13.03.2010
Сообщений: 110
Сказал(а) спасибо: 55
Поблагодарили 23 раз(а) в 14 сообщениях
SeT На верном пути
По умолчанию

Цитата:
Если у вендора принудительно не стоит использовать экстенд - тогда на то золото, что стоит в итем_темплате, если стоит - то только за этот экстенд.
Вики то почитать не судьба была, прежде чем патч писать?
Голд все равно будет браться, даже если стоит ExCost.
SeT вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
PSZ (21.05.2010), YuruY (21.05.2010)
Старый 21.05.2010, 09:41   #9
PSZ
Ученый
 
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
PSZ Обладатель прекрасной аурыPSZ Обладатель прекрасной ауры
По умолчанию

Дак да. Есть такое.
PSZ вне форума   Ответить с цитированием
Старый 21.05.2010, 11:11   #10
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от SeT Посмотреть сообщение
Голд все равно будет браться, даже если стоит ExCost.
Даже если и так - патч всё равно неверный.
А для исправления взятия голда за итем, который можно купить за вещи нужно писать иной патч, что-то типа if (ExCost !=0) BuyPrice=0;
Но тут доп-проверки нужны...
KiriX вне форума   Ответить с цитированием
Старый 21.05.2010, 11:12   #11
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Цитата:
item_template.BuyCount - это вовсе не цена - это минимальный объём покупки данной вещи...
ошипятка сори.
так меня кажись многие не поняли.
SeT и PSZ совершенно правы.
Если есть значение ExtendedCos и Item_template.BuyPrice!=0
То тогда у вендора будет отображаться цена за голд и за ExtendedCos.
Тоесть помимо шмотки указанной в ExtendedCos вам нужно будет отдать и голд.
как я уже приводил примеры.
http://ru.wowhead.com/item=44128#sold-by
Тут например мех продается за голд у одного вендора а за Кожу у другого. При этом там где он за кожу он без голды.
вот еще http://ru.wowhead.com/item=36908#sold-by

Цитата:
что-то типа if (ExCost !=0) BayPrice=0;
Так нельзя есть шмотки которые требуют и голд и ексткост.

Последний раз редактировалось alien; 21.05.2010 в 11:17.
alien вне форума   Ответить с цитированием
Старый 21.05.2010, 11:19   #12
YuruY
YTDB Dev
 
Аватар для YuruY
 
Регистрация: 01.02.2010
Сообщений: 288
Сказал(а) спасибо: 125
Поблагодарили 97 раз(а) в 53 сообщениях
YuruY Скоро придёт к известностиYuruY Скоро придёт к известности
По умолчанию

Цитата:
Голд серовно будет браться, даже если стоит ExCost.
Было, чинили разборки с пользователями по этому поводу.
__________________
http://ytdb.ru/
http://svn2.assembla.com/svn/ytdbase/
YuruY вне форума   Ответить с цитированием
Старый 21.05.2010, 11:27   #13
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

http://ru.wowhead.com/item=46750
Вот пример итема которые продается и за екст кост и за голду
alien вне форума   Ответить с цитированием
Старый 21.05.2010, 11:41   #14
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Так, стоп. Сейчас:

1.
item_template.BuyPrice>0
npc_vendor.ExtendedCost=0
- предмет продается за деньги

2.
item_template.BuyPrice>0
npc_vendor.ExtendedCost>0
- предмет продается за деньги и за экстенд

3.
item_template.BuyPrice=0
npc_vendor.ExtendedCost>0
- предмет продается за экстенд, денег не требует.

Разве не так? И что к этому (какой вариант) добавляет предложеный патч?

А, кажется догонять начинаю... Еще вариант:

4.
item_template.BuyPrice=0 (у одного вендора) и
item_template.BuyPrice>0 (у другого вендора)
npc_vendor.ExtendedCost>1
- предмет продается за экстенд у одного, и за деньги+экстенд у другого.

В таком случае... ...а у нас в экстендах по dbc разве нет прайсов с "экстенд+деньги"? (или это у меня по какой-то другой таблице отложилось?)
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 21.05.2010, 11:43   #15
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
http://ru.wowhead.com/item=46750
Вот пример итема которые продается и за екст кост и за голду
А в этом случае цена в деньгах не в екст кост пишется?
KiriX вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
tempura (21.05.2010)
Старый 21.05.2010, 11:45   #16
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от KiriX Посмотреть сообщение
А в этом случае цена в деньгах не в екст кост пишется?
Вот-вот, мне тоже самое мерещится.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 21.05.2010, 11:50   #17
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Цитата:
А в этом случае цена в деньгах не в екст кост пишется?
Если это так то все гораздо проще. Только честно не знаю как это посмотреть ))

ЗЫ если оно так как KiriX и tempura вы говорите то попроавить патч под такое дело не проблема.

Только что просмотрел ItemExtendedCost.csv из quice. там нету записей голд + екст
Искал на примере http://ru.wowhead.com/item=44990 теже маунты за них продаются за голд и 5 печатей в таблице есть только запись о печатях
Цитата:
2671;5 Champion's Seal (id=44990)
alien вне форума   Ответить с цитированием
Старый 21.05.2010, 12:02   #18
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
Если это так то все гораздо проще. Только честно не знаю как это посмотреть ))

ЗЫ если оно так как KiriX и tempura вы говорите то попроавить патч под такое дело не проблема.
Просто проверить купив у вендора и глянув значение BuyPrice в базе для данного итема.
KiriX вне форума   Ответить с цитированием
Старый 21.05.2010, 12:10   #19
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
Если это так то все гораздо проще. Только честно не знаю как это посмотреть ))

ЗЫ если оно так как KiriX и tempura вы говорите то попроавить патч под такое дело не проблема.

Только что просмотрел ItemExtendedCost.csv из quice. там нету записей голд + екст
Искал на примере http://ru.wowhead.com/item=44990 теже маунты за них продаются за голд и 5 печатей в таблице есть только запись о печатях
Не, не так проверять. Надо найти предмет, который у одного продавца стоит ТОЛЬКО экстенд, а у другого - экстенд+голд. И вот по нему (по номеру из npc_vendor.ExtendedCost - он должен быть одинаковым) смотреть в dbc. А потом - и в игре его же проверить - то бишь купить у обоих продавцов, мониторя состояние денег и экстенда на момент до и после покупки.
Причем - желательно не по абстрактному "ItemExtendedCost.csv из quice", а по совершенно конкретным данным в клиентских dbc последней версии. А то мало ли что бывает... Вот уж поверь - не раз сталкивались с ситуацией, когда человек говорит "ой, а я не там смотрел".
Хотя, конечно, странно...

Вот если и тут будет joppa, вот тогда уже понадобится думать.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 21.05.2010, 12:26   #20
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

http://ru.wowhead.com/item=43236
проверил купив. в базе стоит екстракост=2483 а в item_template.BuyPrice=10000
тоесть 1голд и 12 хонора.
на оффе также.


tempura нету таких торговцев у которых одна вещь только за екстенд а у вторых екстенд+годл.
Есть у одних только екстенд у других только голд(это про одну шмотку)
или уже сразу екстенд+голд.(но тогда это шмотку только так и продается)

Так конвертнул DBC из последней версии клиента в cvs.
Посмотрел нету в нем записей о голде.
alien вне форума   Ответить с цитированием
Старый 21.05.2010, 14:22   #21
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
tempura нету таких торговцев у которых одна вещь только за екстенд а у вторых екстенд+годл.
Есть у одних только екстенд у других только голд(это про одну шмотку)
или уже сразу екстенд+голд.(но тогда это шмотку только так и продается)
Это хорошо, что нету. Хотя это и неважно. Я совершенно другое писал.
1. Вещь - ОДНА!!! Одна вещь, один предмет - понимаешь? Предмет - один.
2. Торговца - ДВА. Два разных торговца. Два торговца, и они абсолютно разные - понимаешь? Торговцы разные, и их два.

Одна вещь у двух торговцев имеет разную цену. У первого торговца - экстенд, у второго торговца - экстенд+голд. Одна вещь у двух торговцев с разной ценой.

Понимаешь?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
xex (21.05.2010)
Старый 21.05.2010, 15:54   #22
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Ну я и говорю что нету такого предмета которые продается у одного торговца за экстенд+голд а у другого только за голд.(это я про оффицал)
А у мангоса могу и так сказать как будет.

Последний раз редактировалось alien; 21.05.2010 в 16:01.
alien вне форума   Ответить с цитированием
Старый 21.05.2010, 16:05   #23
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Собственно - о чем и разговор. Близзы не применяют подобную практику. Перед тем, как что-то делать - просто необходимо убедиться в смысловой нагрузке данного деяния.
На данный момент я считаю, что если подобная работа не реализована, то это недосмотр - потому что впоследствии может потребоваться подобная обработка. Но на текущий момент она просто не требуется. А раз не требуется - то делать ее следует лишь в качестве "интеллектуальной тренировки", то бишь развития мозгов.


И еще - личный момент, который сразу же, с первого момента, вызвал неприятие данного патча - он требует добавления в стандартные таблицы лишнего поля. Я искренне и неподдельно считаю, что любое изменение таблиц - это слишком верьезный шаг, чтобы идти на него от балды "тут вот чуток не совсем как-то так". Вероятно должно быть решение (если онно вдруг понадобится), которое не затрагивает таблицы.

В принципе сейчас полей с уникальными guid-id с автоинкрементом можно навтыкать в каждую таблицу под всякие разные обработки. Да и количество таблиц можно бы утроить-учетверить. Вот только их и так до хрена... Короче - в итоге - думать надо. Сильно думать по любому изменению и добавлению.


PS
Цитата:
Так конвертнул DBC из последней версии клиента в cvs.
Посмотрел нету в нем записей о голде
А десятое поле - разве не деньги? Погоди... или пятнадцатое? Или пятнадцатое поле - ХР?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 21.05.2010, 16:14   #24
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Да я тоже понимаю что редактировать таблицы не есть гуд но по другому невозможно.
Да нету шмоток которые продаются за голд+екстенд в одном месте и только за голд или только за екстенд в другом.
Давайте разберем все по полочкам.
1) Предмет продается только за голд. -- Тут все отлично.
2) Предмет продается только за екстенд. -- Тут все отлично.
3) Предмет у одного торговца продается только за екстенд у второго только за голд. -- Вот это реализовать в текущем состоянии невозможно! -- И такое есть на оффицале.
4) Предмет продается и за екстенд и за голд(тоесть Предмет стоит энное количество голд+екстенд) -- Тоже все нормально.
5) Предмет у одного торговца продается за голд а у второго за екстенд+голд. -- Вот такого не оффе нету и врядли будет.

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

Цитата:
PS
Цитата:
Так конвертнул DBC из последней версии клиента в cvs.
Посмотрел нету в нем записей о голде
А десятое поле - разве не деньги? Погоди... или пятнадцатое? Или пятнадцатое поле - ХР?
Нет 10 это склько http://ru.wowhead.com/item=37829
а 15 это вроде личный рейтинг?
alien вне форума   Ответить с цитированием
Старый 21.05.2010, 17:52   #26
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
3) Предмет у одного торговца продается только за екстенд у второго только за голд. -- Вот это реализовать в текущем состоянии невозможно! -- И такое есть на оффицале.
Ога, теперь медленно-медленно кажется начинаю соображать. (Ну тупой я, это и так все знают. )

Но тут уже лично мне хочется наконец увидеть хоть какой-то комментарий от Vladimir. Вот кто точно расставит все точки над "ё" и червяков над "й".
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 22.05.2010, 09:44   #27
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Тоесть, подтверждается что нет у вендоров предметов продаваемых одновремеено за money+extanded_cost в одном слоте?
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 22.05.2010, 09:51   #28
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Vladimir Посмотреть сообщение
Тоесть, подтверждается что нет у вендоров предметов продаваемых одновремеено за money+extanded_cost в одном слоте?
Вот эти итемчики продаются за голд+токен: http://www.wowhead.com/items=4?filte...1;crv=0:0;gb=0
Скрин с офа: http://filebeam.com/617de641cae8a3b1...c0ff5e9c65.jpg
LordJZ вне форума   Ответить с цитированием
Старый 22.05.2010, 11:21   #29
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Vladimir,
Предметы которые продаются за голд+екстенд_кост есть.
Но также есть предметы которые продаются у одного вендора только за голд а у другого только за екстенд кост.
alien вне форума   Ответить с цитированием
Старый 22.05.2010, 11:49   #30
Neggod
RMDC Donator
 
Регистрация: 07.03.2010
Адрес: Суровый Город
Сообщений: 41
Сказал(а) спасибо: 23
Поблагодарили 25 раз(а) в 13 сообщениях
Записей в дневнике: 1
Neggod На верном пути
Отправить сообщение для Neggod с помощью Skype™
По умолчанию

Пример: Ледо Прославленный на офе и на мангосе
Neggod вне форума   Ответить с цитированием
Старый 22.05.2010, 14:11   #31
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Предмет у одного торговца продается только за екстенд у второго только за голд
Frost Lotus
Frozo the Renowned - 1 frozen orb
Lhara - 4 g

Один предмет. Вполне может быть ошибкой ВоВхеда, либо устаревшими данными.
Один предмет может быть случайностью, он не обеспечивает достаточной частоты выборки.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 22.05.2010, 15:07   #32
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

На вовхеде все верно.
Дело в том что за 4г он продается на ярмарке новолунной а за орбы в даларане у ледо.
Также еще я линовал в первом посте на арктический мех. Который также продается на ярмарке за 12г а у чела который торгует рецептами за 10 толстой борейской кожи.
Также у ледо продаются многие штуки за орбы у которых в item_template.BuyPrice стоит цена отличная от 0. Вот тут незнаю насколько ее можно равнять 0.
ЗЫ говорю с увереностью так-как сам на оффе обитаю )
alien вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
PSZ (22.05.2010), Vladimir (22.05.2010)
Старый 22.05.2010, 18:50   #33
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Реализовано в [9957]
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
6 пользователя(ей) сказали cпасибо:
alien (05.06.2010), KiriX (22.05.2010), Konctantin (22.05.2010), lovepsone (23.05.2010), Mayss (23.05.2010), PSZ (22.05.2010)
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[mod]Title Vendor Kirito Скрипты 2 31.10.2013 16:28
[10905] Fixed vendor templates work. newsbot CMaNGOS Commits 0 21.12.2010 19:54
[10685] Fixed creature_template loading after vendor changes. newsbot CMaNGOS Commits 0 05.11.2010 21:10
[9786] Fixed crash at drop vendor items (anorther way). newsbot CMaNGOS Commits 0 24.04.2010 02:20
[9716] Allow to vendor have same items in list with different extanded price. newsbot CMaNGOS Commits 0 10.04.2010 04:50


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


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