本文整理汇总了C++中CMonster::SetDropItemID方法的典型用法代码示例。如果您正苦于以下问题:C++ CMonster::SetDropItemID方法的具体用法?C++ CMonster::SetDropItemID怎么用?C++ CMonster::SetDropItemID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMonster
的用法示例。
在下文中一共展示了CMonster::SetDropItemID方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RegenObject
CMonster* CRegenManager::RegenObject(DWORD dwID, DWORD dwSubID, DWORD dwGridID, EObjectKind wObjectKind, WORD wMonsterKind, const VECTOR3* vPos, DWORD dwGroupID, DWORD DropItemID /* = 0 */, DWORD dwDropRatio /* = 100 */,BOOL bRandomPos /* = TRUE */, BOOL bEventRegen /* = FALSE */, DWORD ownedObjectIndex)
{
/// 06. 08. 이영준
/// 같은 아이디를 사용하는 객체가 있을경우
/// 리젠을 시키지 않고 NULL값을 반환하자!
if( g_pUserTable->FindUser( dwID ) )
{
ASSERT(0);
return NULL;
}
VECTOR3 vOutPos( *vPos );
// 필드보스일 경우
if( wObjectKind == eObjectKind_FieldBossMonster )
{
// 필드보스 매니저에 리젠 위치가 1개 이상 등록되어 있다면
if( FIELDBOSSMONMGR->GetRegenPositionCount() > 0 )
{
// 등록된 리젠 위치에서 랜덤으로 결정한다
VECTOR3 pos = FIELDBOSSMONMGR->GetRegenPosition();
vOutPos.x = pos.x;
vOutPos.z = pos.z;
}
}
const MAPTYPE MapNum = g_pServerSystem->GetMapNum();
if( bRandomPos )
{
int maxCount = 5;
CAIGroup * pGroup = GROUPMGR->GetGroup(dwGroupID, dwGridID);
DWORD range = pGroup->GetRegenRange();
// 090611 LUJ, 생성 위치가 충돌하지 않도록 반복해서 찾는다
do
{
if( 0 > --maxCount )
{
vOutPos = *vPos;
break;
}
RangePosAtOrig(
*vPos,
range,
vOutPos);
}
while( g_pServerSystem->GetMap()->CollisionTilePos( vOutPos.x, vOutPos.z, MapNum ) );
}
switch( wObjectKind )
{
case eObjectKind_ToghterPlayMonster:
case eObjectKind_SpecialMonster:
case eObjectKind_Monster:
// 080616 LUJ, 함정 추가
case eObjectKind_Trap:
// 090316 LUJ, 탈것 추가
case eObjectKind_Vehicle:
{
MONSTER_TOTALINFO MonsterInfo = {0};
BASEOBJECT_INFO Baseinfo;
ZeroMemory(
&Baseinfo,
sizeof(Baseinfo));
BASE_MONSTER_LIST* pMonsterListInfo = GAMERESRCMNGR->GetMonsterListInfo(wMonsterKind);
if(pMonsterListInfo == NULL)
return NULL;
Baseinfo.dwObjectID = dwID;
SafeStrCpy(Baseinfo.ObjectName, pMonsterListInfo->Name, MAX_NAME_LENGTH+1);
Baseinfo.BattleID = dwGridID;
// g_Console.LOG(4, "Regen Succeeded : CHANNEL:%d, GROUPID: %d, ID: %d, NAME: %s, (x,z):(%f,%f)", dwGridID, dwGroupID, dwID, pMonsterListInfo->Name, vOutPos.x, vOutPos.z);
MonsterInfo.Life = pMonsterListInfo->Life;
MonsterInfo.MonsterKind = wMonsterKind;
MonsterInfo.Group = (WORD)dwGroupID;
// 090316 LUJ, 소유한 오브젝트 번호 설정
MonsterInfo.OwnedObjectIndex = ownedObjectIndex;
CMonster* pMonster = g_pServerSystem->AddMonster(dwSubID, &Baseinfo, &MonsterInfo, &vOutPos,wObjectKind);
if(!pMonster)
return NULL;
pMonster->SetEventMob(bEventRegen);
if(bEventRegen && dwGroupID==ITEMRECALL_GROUP_ID) // 아이템소환몹은 비선공으로 설정한다.
pMonster->SetForeAttack(FALSE);
pMonster->SetDropItemID(DropItemID, dwDropRatio);
return pMonster;
}
break;
// 필드보스 - 05.12 이영준
// 필드보스 리젠
//.........这里部分代码省略.........