MaxTradeExcOption: Новые опции в MU Online!

Автор NightWish, 2012 Май 03, 18:29

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlinemu разработкиmaxtradeexcoption

NightWish

Доброго времени суток!
Вот собственно функция как на ридлане, не позволяет передавать вещь через трейд/приватный магазин если у нее больше опций чем указанно в конфиг файле.

Для того чтобы нельзя было передать через трейд.
BYTE GCgObjInventoryTradeMove(LPOBJ lpObj, BYTE source, BYTE target)
{
if(TakeExcNum(lpObj->pInventory[source].m_NewOption) >= Config.MaxTradeExcOption)
return -1;
else
return gObjInventoryTradeMove(lpObj, source, target);
}

Для того чтобы нельзя было передать через Private Store.

BYTE GCgObjInventoryMoveItem(int aIndex, unsigned char source, unsigned char target, int& durSsend, int& durTsend, unsigned char sFlag, unsigned char tFlag, unsigned char* siteminfo)
{
OBJECTSTRUCT * lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
if(TakeExcNum(lpObj->pInventory[source].m_NewOption) >= Config.MaxTradeExcOption && target > 75 && target < 108)
return -1;
return gObjInventoryMoveItem(aIndex, source, target, durSsend, durTsend, sFlag, tFlag, siteminfo);
}

Crazzy-

m_NewOption Разве непоразрядно раскладывается?

NightWish

#2
Цитата: Crazzy- от 2012 Май 04, 15:25  m_NewOption Разве непоразрядно раскладывается?

Так и есть, только перед m_NewOption есть функция TakeExcNum определяющая количество опций.

Crazzy-

а нуда) чет необратил внимание)

NexT

поделитесь функцией TakeExcNum

NightWish

Цитата: Androjd123 от 2012 Май 07, 17:05  поделитесь функцией TakeExcNum
int TakeExcNum(int Exc)
{
int Count = 0;
for(int j = 0; j < 6; j++)
{
if((Exc>>j)&1)
Count++;
}
return Count;
}

Похожие темы (5)

Сообщений: 37
Просмотров: 22932

Сообщений: 127
Просмотров: 40405

Сообщений: 32
Просмотров: 13875