本文整理汇总了C++中CGameObject::cNameSect方法的典型用法代码示例。如果您正苦于以下问题:C++ CGameObject::cNameSect方法的具体用法?C++ CGameObject::cNameSect怎么用?C++ CGameObject::cNameSect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGameObject
的用法示例。
在下文中一共展示了CGameObject::cNameSect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnEvent
void CActor::OnEvent(NET_Packet& P, u16 type)
{
inherited::OnEvent (P,type);
CInventoryOwner::OnEvent (P,type);
u16 id;
switch (type)
{
case GE_TRADE_BUY:
case GE_OWNERSHIP_TAKE:
{
P.r_u16 (id);
CObject* Obj = Level().Objects.net_Find (id);
// R_ASSERT2( Obj, make_string("GE_OWNERSHIP_TAKE: Object not found. object_id = [%d]", id).c_str() );
VERIFY2 ( Obj, make_string("GE_OWNERSHIP_TAKE: Object not found. object_id = [%d]", id).c_str() );
if ( !Obj ) {
Msg ( "! GE_OWNERSHIP_TAKE: Object not found. object_id = [%d]", id );
break;
}
CGameObject* _GO = smart_cast<CGameObject*>(Obj);
if (!IsGameTypeSingle() && !g_Alive())
{
Msg("! WARNING: dead player [%d][%s] can't take items [%d][%s]",
ID(), Name(), _GO->ID(), _GO->cNameSect().c_str());
break;
}
if( inventory().CanTakeItem(smart_cast<CInventoryItem*>(_GO)) )
{
Obj->H_SetParent (smart_cast<CObject*>(this));
#ifdef MP_LOGGING
string64 act;
xr_strcpy( act, (type == GE_TRADE_BUY)? "buys" : "takes" );
Msg("--- Actor [%d][%s] %s [%d][%s]", ID(), Name(), act, _GO->ID(), _GO->cNameSect().c_str());
#endif // MP_LOGGING
inventory().Take (_GO, false, true);
SelectBestWeapon(Obj);
}
else
{
if (IsGameTypeSingle())
{
NET_Packet P;
u_EventGen (P,GE_OWNERSHIP_REJECT,ID());
P.w_u16 (u16(Obj->ID()));
u_EventSend (P);
} else
{
Msg("! ERROR: Actor [%d][%s] tries to drop on take [%d][%s]", ID(), Name(), _GO->ID(), _GO->cNameSect().c_str());
}
}
}
break;
case GE_TRADE_SELL:
case GE_OWNERSHIP_REJECT:
{
P.r_u16 (id);
CObject* Obj = Level().Objects.net_Find (id);
// R_ASSERT2( Obj, make_string("GE_OWNERSHIP_REJECT: Object not found, id = %d", id).c_str() );
VERIFY2 ( Obj, make_string("GE_OWNERSHIP_REJECT: Object not found, id = %d", id).c_str() );
if ( !Obj ) {
Msg ( "! GE_OWNERSHIP_REJECT: Object not found, id = %d", id );
break;
}
bool just_before_destroy = !P.r_eof() && P.r_u8();
bool dont_create_shell = (type==GE_TRADE_SELL) || just_before_destroy;
Obj->SetTmpPreDestroy (just_before_destroy);
CGameObject * GO = smart_cast<CGameObject*>(Obj);
#ifdef MP_LOGGING
string64 act;
xr_strcpy( act, (type == GE_TRADE_SELL)? "sells" : "rejects" );
Msg("--- Actor [%d][%s] %s [%d][%s]", ID(), Name(), act, GO->ID(), GO->cNameSect().c_str());
#endif // MP_LOGGING
VERIFY( GO->H_Parent() );
if ( !GO->H_Parent() )
{
Msg("! ERROR: Actor [%d][%s] tries to reject item [%d][%s] that has no parent",
ID(), Name(), GO->ID(), GO->cNameSect().c_str());
break;
}
VERIFY2( GO->H_Parent()->ID() == ID(),
make_string("actor [%d][%s] tries to drop not own object [%d][%s]",
ID(), Name(), GO->ID(), GO->cNameSect().c_str() ).c_str() );
if ( GO->H_Parent()->ID() != ID() )
{
CActor* real_parent = smart_cast<CActor*>(GO->H_Parent());
Msg("! ERROR: Actor [%d][%s] tries to drop not own item [%d][%s], his parent is [%d][%s]",
ID(), Name(), GO->ID(), GO->cNameSect().c_str(), real_parent->ID(), real_parent->Name());
//.........这里部分代码省略.........