本文整理汇总了C++中CItem::GetNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ CItem::GetNumber方法的具体用法?C++ CItem::GetNumber怎么用?C++ CItem::GetNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItem
的用法示例。
在下文中一共展示了CItem::GetNumber方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetPeriodItemInfo
//006bc390
//CGUseItemRecv
//CGUseItemRecv
bool CPeriodItemEx::SetPeriodItemInfo(LPOBJ lpObj,WORD wItemCode,DWORD dwSerial,DWORD dwDuration) //~OK
{
if( !lpObj )
return false;
if( lpObj->Type != OBJ_USER || lpObj->Connected < PLAYER_LOGGED )
return false;
int iInventoryPosition = 0;
DWORD dwExpireDate = 0;
CItem* lpItem = NULL;
ITEMDATA ItemData;
LPBUFF_EFFECT_DATE lpBuffData = NULL;
LPITEMEFFECT lpItemEffect = NULL;
if( !dwSerial )
{
lpBuffData = g_BuffEffectSlot.GetEffectDataFromItemCode(wItemCode);
lpItemEffect = g_ItemAddOption.GetItemEffectData(wItemCode);
if( !lpBuffData || !lpItemEffect )
return false;
if( gObjAddBuffEffect(lpObj,lpBuffData->btIndex,dwDuration) == TRUE )
{
ItemData.Clear();
ItemData.btType = 1;
ItemData.wItemCode = wItemCode;
ItemData.btTmp = lpBuffData->btViewPortIndex;
ItemData.btEffectType1 = lpItemEffect->wEffectType1;
ItemData.btEffectType2 = lpItemEffect->wEffectType2;
ItemData.iDuration = dwDuration;
ItemData.iUnk3 = 0;
ItemData.lCurentDate = this->GetCurrentDate();
ItemData.lExpireDate = this->GetExpireDate(dwDuration);
}
else
{
return FALSE;
}
}
else
{
iInventoryPosition = this->GetItemFromInventory(lpObj,wItemCode,dwSerial);
if( iInventoryPosition == -1 )
{
return false;
}
lpItem = &lpObj->pInventory[iInventoryPosition];
lpItem->SetPeriodItem();
GCInventoryItemOneSend(lpObj->m_Index, iInventoryPosition);
dwExpireDate = this->GetExpireDate(dwDuration);
AddPeriodItemData(lpObj,wItemCode,dwSerial,dwDuration,dwExpireDate);
ItemData.Clear();
ItemData.wItemCode = wItemCode;
ItemData.btType = 2;
ItemData.dwSerial = lpItem->GetNumber();
ItemData.iDuration = dwDuration;
ItemData.iUnk3 = 0;
ItemData.lCurentDate = this->GetCurrentDate();
ItemData.lExpireDate = dwExpireDate;
}
RequestPeriodItemInsert(lpObj,&ItemData,dwDuration);
return true;
}
示例2: SetPersonalShopItemPrice
// -----------------------------------------------------------------------------------------------------------------------------------------------------
void CPersonalShop::SetPersonalShopItemPrice(PMSG_REQ_PSHOP_SETITEMPRICE * lpMsg, int aIndex)
{
LPOBJ lpObj = &gObj[aIndex];
// ------
if( gDoPShopOpen == FALSE )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] is Trying to Open Personal Shop.", lpObj->AccountID, lpObj->Name);
// ------
SendPShopSetItemPriceResult(aIndex, 0, lpMsg->btItemPos);
return;
}
// ------
if( !gObjIsConnected(aIndex) )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] is Offline Player.", lpObj->AccountID, lpObj->Name);
return;
}
// ------
if( lpObj->Type != OBJ_USER )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s] isn't an Object User.", lpObj->m_Index);
return;
}
// ------
if( lpObj->Level <= 5 )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] is Level: (%d)", lpObj->AccountID, lpObj->Name, lpObj->Level);
// ------
SendPShopSetItemPriceResult(aIndex, 5, lpMsg->btItemPos);
return;
}
// ------
if( INVENTORY_RANGE(lpMsg->btItemPos) == FALSE )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] Item Position Out of Range: (%d)",lpObj->AccountID, lpObj->Name, lpMsg->btItemPos);
// ------
SendPShopSetItemPriceResult(aIndex, 2, lpMsg->btItemPos);
return;
}
// ------
if( lpObj->Inventory1[lpMsg->btItemPos].IsItem() == FALSE )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] Item Doesn't Exist: (%d)",lpObj->AccountID, lpObj->Name, lpMsg->btItemPos);
// ------
SendPShopSetItemPriceResult(aIndex, 3, lpMsg->btItemPos);
return;
}
// ------
CItem * sitem = &lpObj->Inventory1[lpMsg->btItemPos];
// ------
int iItemPrice = MAKE_NUMBERDW(MAKE_NUMBERW(lpMsg->sItemPrice4, lpMsg->sItemPrice3), MAKE_NUMBERW(lpMsg->sItemPrice2, lpMsg->sItemPrice1));
// ------
if( gObjInventorySearchSerialNumber(lpObj, sitem->GetNumber()) == FALSE )
{
GCReFillSend(aIndex, lpObj->Life, 0xFD, TRUE, lpObj->iShield);
// ------
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] CopyItem :: [%s](%d)",lpObj->AccountID, lpObj->Name, __FILE__, __LINE__);
return;
}
// ------
if( iItemPrice <= 0 )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] Item Price <= (0): (%d)",lpObj->AccountID, lpObj->Name, sitem->m_iPShopValue);
// ------
SendPShopSetItemPriceResult(aIndex, 4, lpMsg->btItemPos);
return;
}
// ------
if( (lpObj->Penalty&4) == 4 || (lpObj->Penalty&8) == 8 )
{
CLog.LogAddC(TColor.Red(), PShopModule, "(Error): [%s][%s] Item Price Change(%d), Item Block",lpObj->AccountID, lpObj->Name, sitem->m_iPShopValue);
// ------
SendPShopSetItemPriceResult(aIndex, 6, lpMsg->btItemPos);
return;
}
// ------
sitem->m_iPShopValue = iItemPrice;
// ------
ItemAttribute[sitem->m_Type].Name[31] = 0;
// ------
CLog.LogAddC(TColor.Green(), PShopModule, "[%s][%s]: Changing Item Price:(%d) - Type:(%d) [%s] - Level:(%d) - Serial:(%d) - Dur:(%d)",lpObj->AccountID,
lpObj->Name, sitem->m_iPShopValue, sitem->m_Type, ItemAttribute[sitem->m_Type].Name, sitem->m_Level, sitem->m_Number, sitem->m_Durability);
// ------
SendPShopSetItemPriceResult(aIndex, 1, lpMsg->btItemPos);
}