PDA

Просмотр полной версии : Исправление бага с метасокетами.


fedaykin
17.03.2010, 05:33
Вот... баг старый, но в мангосе еще не исправлен, и игроки(по крайней мере мои) во всю использовали. Суть ,бага:
Для воспроизведения бага понадобятся: два головных убора (один со слотом под мету, второй без статов), и, например. два честа (один с сокетами, второй без статов). Вставляем, к примеру, в головной убор метасокет +42АП. В чест тоже вставляем каких-нибудь сокетов... Главное, что-бы все вставленные сокеты выполняли условие метасокета. Далее чест с сокетами ломается, переодевается чест без статов, потом переодевается головной убор без статов, потом снова чест с сокетами и за ним головной убор с метой. В итоге АП увеличивается на 42. Процесс можно повторять до достижения необходимой цифры. Вместо АП можно поднимать любые другие характеристики.

Решение нашел на форуме тринити, автор: Az@zel

diff -r 1782ed85a440 src/game/Player.cpp
--- a/src/game/Player.cpp Thu Jan 28 22:06:31 2010 +0100
+++ b/src/game/Player.cpp Sun Jan 31 00:44:46 2010 +0600
@@ -19411,17 +19411,17 @@ bool Player::EnchantmentFitsRequirements
uint8 curcount[4] = {0, 0, 0, 0};

//counting current equipped gem colors
for (uint8 i = EQUIPMENT_SLOT_START; i < EQUIPMENT_SLOT_END; ++i)
{
if(i == slot)
continue;
Item *pItem2 = GetItemByPos( INVENTORY_SLOT_BAG_0, i );
- if(pItem2 && pItem2->GetProto()->Socket[0].Color)
+ if(pItem2 && !pItem2->IsBroken() && pItem2->GetProto()->Socket[0].Color)
{
for (uint32 enchant_slot = SOCK_ENCHANTMENT_SLOT; enchant_slot < SOCK_ENCHANTMENT_SLOT+3; ++enchant_slot)
{
uint32 enchant_id = pItem2->GetEnchantmentId(EnchantmentSlot(enchant_slot));
if(!enchant_id)
continue;

SpellItemEnchantmentEntry const* enchantEntry = sSpellItemEnchantmentStore.LookupEntry(enchant_id) ;

NeatElves
17.03.2010, 11:13
http://getmangos.com/community/showthread.php?11629-[BUG]-in-Player-CorrectMetaGemEnchants
Обращаю внимание на дату...