本文整理汇总了C++中CItemData::GetWeaponType方法的典型用法代码示例。如果您正苦于以下问题:C++ CItemData::GetWeaponType方法的具体用法?C++ CItemData::GetWeaponType怎么用?C++ CItemData::GetWeaponType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CItemData
的用法示例。
在下文中一共展示了CItemData::GetWeaponType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AttachWeapon
void CActorInstance::AttachWeapon(DWORD dwItemIndex,DWORD dwParentPartIndex, DWORD dwPartIndex)
{
if (dwPartIndex>=CRaceData::PART_MAX_NUM)
return;
m_adwPartItemID[dwPartIndex]=dwItemIndex;
if (USE_VIETNAM_CONVERT_WEAPON_VNUM)
dwItemIndex = Vietnam_ConvertWeaponVnum(dwItemIndex);
CItemData * pItemData;
if (!CItemManager::Instance().GetItemDataPointer(dwItemIndex, &pItemData))
{
RegisterModelThing(dwPartIndex, NULL);
SetModelInstance(dwPartIndex, dwPartIndex, 0);
RegisterModelThing(CRaceData::PART_WEAPON_LEFT, NULL);
SetModelInstance(CRaceData::PART_WEAPON_LEFT, CRaceData::PART_WEAPON_LEFT, 0);
RefreshActorInstance();
return;
}
__DestroyWeaponTrace();
//양손무기(자객 이도류) 왼손,오른손 모두에 장착.
if (__IsRightHandWeapon(pItemData->GetWeaponType()))
AttachWeapon(dwParentPartIndex, CRaceData::PART_WEAPON, pItemData);
if (__IsLeftHandWeapon(pItemData->GetWeaponType()))
AttachWeapon(dwParentPartIndex, CRaceData::PART_WEAPON_LEFT, pItemData);
}
示例2:
DWORD CPythonItem::__GetUseSoundType(const CItemData& c_rkItemData)
{
switch (c_rkItemData.GetType())
{
case CItemData::ITEM_TYPE_WEAPON:
switch (c_rkItemData.GetWeaponType())
{
case CItemData::WEAPON_BOW:
return USESOUND_BOW;
break;
case CItemData::WEAPON_ARROW:
return USESOUND_DEFAULT;
break;
default:
return USESOUND_WEAPON;
break;
}
break;
case CItemData::ITEM_TYPE_ARMOR:
switch (c_rkItemData.GetSubType())
{
case CItemData::ARMOR_NECK:
case CItemData::ARMOR_EAR:
return USESOUND_ACCESSORY;
break;
case CItemData::ARMOR_BODY:
return USESOUND_ARMOR;
default:
return USESOUND_DEFAULT;
break;
}
break;
case CItemData::ITEM_TYPE_USE:
switch (c_rkItemData.GetSubType())
{
case CItemData::USE_ABILITY_UP:
return USESOUND_POTION;
break;
case CItemData::USE_POTION:
return USESOUND_NONE;
break;
case CItemData::USE_TALISMAN:
return USESOUND_PORTAL;
break;
default:
return USESOUND_DEFAULT;
break;
}
break;
default:
return USESOUND_DEFAULT;
break;
}
return USESOUND_DEFAULT;
}
示例3: CreateItem
void CPythonItem::CreateItem(DWORD dwVirtualID, DWORD dwVirtualNumber, float x, float y, float z, bool bDrop)
{
//CItemManager& rkItemMgr=CItemManager::Instance();
CItemData * pItemData;
if (!CItemManager::Instance().GetItemDataPointer(dwVirtualNumber, &pItemData))
return;
CGraphicThing* pItemModel = pItemData->GetDropModelThing();
TGroundItemInstance * pGroundItemInstance = m_GroundItemInstancePool.Alloc();
pGroundItemInstance->dwVirtualNumber = dwVirtualNumber;
bool bStabGround = false;
if (bDrop)
{
z = CPythonBackground::Instance().GetHeight(x, y) + 10.0f;
if (pItemData->GetType()==CItemData::ITEM_TYPE_WEAPON &&
(pItemData->GetWeaponType() == CItemData::WEAPON_SWORD ||
pItemData->GetWeaponType() == CItemData::WEAPON_ARROW))
bStabGround = true;
bStabGround = false;
pGroundItemInstance->bAnimEnded = false;
}
else
{
pGroundItemInstance->bAnimEnded = true;
}
{
// attaching effect
CEffectManager & rem =CEffectManager::Instance();
pGroundItemInstance->dwEffectInstanceIndex =
rem.CreateEffect(m_dwDropItemEffectID, D3DXVECTOR3(x, -y, z), D3DXVECTOR3(0,0,0));
pGroundItemInstance->eDropSoundType=__GetDropSoundType(*pItemData);
}
D3DXVECTOR3 normal;
if (!CPythonBackground::Instance().GetNormal(int(x),int(y),&normal))
normal = D3DXVECTOR3(0.0f,0.0f,1.0f);
pGroundItemInstance->ThingInstance.Clear();
pGroundItemInstance->ThingInstance.ReserveModelThing(1);
pGroundItemInstance->ThingInstance.ReserveModelInstance(1);
pGroundItemInstance->ThingInstance.RegisterModelThing(0, pItemModel);
pGroundItemInstance->ThingInstance.SetModelInstance(0, 0, 0);
if (bDrop)
{
pGroundItemInstance->v3EndPosition = D3DXVECTOR3(x,-y,z);
pGroundItemInstance->ThingInstance.SetPosition(0,0,0);
}
else
pGroundItemInstance->ThingInstance.SetPosition(x, -y, z);
pGroundItemInstance->ThingInstance.Update();
pGroundItemInstance->ThingInstance.Transform();
pGroundItemInstance->ThingInstance.Deform();
if (bDrop)
{
D3DXVECTOR3 vMin, vMax;
pGroundItemInstance->ThingInstance.GetBoundBox(&vMin,&vMax);
pGroundItemInstance->v3Center = (vMin + vMax) * 0.5f;
std::pair<float,int> f[3] =
{
make_pair(vMax.x - vMin.x,0),
make_pair(vMax.y - vMin.y,1),
make_pair(vMax.z - vMin.z,2)
};
std::sort(f,f+3);
//int no_rotation_axis=-1;
D3DXVECTOR3 rEnd;
if (/*f[1].first-f[0].first < (f[2].first-f[0].first)*0.30f*/ bStabGround)
{
// 뾰족
if (f[2].second == 0) // axis x
{
rEnd.y = 90.0f + frandom(-15.0f, 15.0f);
rEnd.x = frandom(0.0f, 360.0f);
rEnd.z = frandom(-15.0f, 15.0f);
}
else if (f[2].second == 1) // axis y
{
rEnd.y = frandom(0.0f, 360.0f);
rEnd.x = frandom(-15.0f, 15.0f);
rEnd.z = 180.0f + frandom(-15.0f, 15.0f);
}
else // axis z
{
rEnd.y = 180.0f + frandom(-15.0f, 15.0f);
//.........这里部分代码省略.........