本文整理汇总了C++中NET_Packet::w_u16方法的典型用法代码示例。如果您正苦于以下问题:C++ NET_Packet::w_u16方法的具体用法?C++ NET_Packet::w_u16怎么用?C++ NET_Packet::w_u16使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NET_Packet
的用法示例。
在下文中一共展示了NET_Packet::w_u16方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TransferItem
//передаче вещи из своего инвентаря в инвентарь партнера
void CScriptGameObject::TransferItem(CScriptGameObject* pItem, CScriptGameObject* pForWho)
{
if (!pItem || !pForWho) {
ai().script_engine().script_log(ScriptStorage::eLuaMessageTypeError, "cannot transfer NULL item");
return;
}
CInventoryItem* pIItem = smart_cast<CInventoryItem*>(&pItem->object());
if (!pIItem) {
ai().script_engine().script_log(ScriptStorage::eLuaMessageTypeError, "Cannot transfer not CInventoryItem item");
return;
}
NET_Packet P;
// выбросить у себя
if (NULL != pItem->object().H_Parent() && this != pItem) // из скриптов часто подбираются "независимые" предметы
{
CGameObject::u_EventGen(P, GE_OWNERSHIP_REJECT, object().ID());
P.w_u16(pIItem->object().ID());
CGameObject::u_EventSend(P);
}
// отдать партнеру
CGameObject::u_EventGen (P,GE_OWNERSHIP_TAKE, pForWho->object().ID());
P.w_u16 (pIItem->object().ID());
CGameObject::u_EventSend (P);
}
示例2: SaveNetState
void CCar::SaveNetState(NET_Packet& P)
{
CPHSkeleton::SaveNetState (P);
P.w_vec3(Position());
Fvector Angle;
XFORM().getXYZ(Angle);
P.w_vec3(Angle);
{
xr_map<u16,SDoor>::iterator i,e;
i=m_doors.begin();
e=m_doors.end();
P.w_u16(u16(m_doors.size()));
for(;i!=e;++i)
i->second.SaveNetState(P);
}
{
xr_map<u16,SWheel>::iterator i,e;
i=m_wheels_map.begin();
e=m_wheels_map.end();
P.w_u16(u16(m_wheels_map.size()));
for(;i!=e;++i)
i->second.SaveNetState(P);
}
P.w_float(GetfHealth());
}
示例3:
void game_sv_GameState::net_Export_State (NET_Packet& P, ClientID to)
{
// Generic
P.w_clientID (to);
P.w_s32 (m_type);
P.w_u16 (m_phase);
P.w_s32 (m_round);
P.w_u32 (m_start_time);
P.w_u8 (u8(g_sv_base_iVotingEnabled&0xff));
P.w_u8 (u8(net_sv_control_hit));
P.w_u8 (u8(g_bCollectStatisticData));
// Players
// u32 p_count = get_players_count() - ((g_dedicated_server)? 1 : 0);
xrClientData* tmp_client = static_cast<xrClientData*>(
m_server->GetClientByID(to));
game_PlayerState* tmp_ps = tmp_client->ps;
player_exporter tmp_functor(to, tmp_ps, &P);
fastdelegate::FastDelegate1<IClient*, void> pcounter;
pcounter.bind(&tmp_functor, &player_exporter::count_players);
fastdelegate::FastDelegate1<IClient*, void> exporter;
exporter.bind(&tmp_functor, &player_exporter::export_players);
m_server->ForEachClientDo(pcounter);
P.w_u16(tmp_functor.counter);
m_server->ForEachClientDo(exporter);
net_Export_GameTime(P);
}
示例4: TransferItem
//передаче вещи из своего инвентаря в инвентарь партнера
void CScriptGameObject::TransferItem(CScriptGameObject* pItem, CScriptGameObject* pForWho)
{
if (!pItem || !pForWho) {
ai().script_engine().script_log (ScriptStorage::eLuaMessageTypeError,"cannot transfer NULL item");
return;
}
CInventoryItem* pIItem = smart_cast<CInventoryItem*>(&pItem->object());
if (!pIItem) {
ai().script_engine().script_log (ScriptStorage::eLuaMessageTypeError,"Cannot transfer not CInventoryItem item");
return ;
}
// выбросить у себя
NET_Packet P;
CGameObject::u_EventGen (P,GE_TRADE_SELL, object().ID());
P.w_u16 (pIItem->object().ID());
CGameObject::u_EventSend (P);
// отдать партнеру
CGameObject::u_EventGen (P,GE_TRADE_BUY, pForWho->object().ID());
P.w_u16 (pIItem->object().ID());
CGameObject::u_EventSend (P);
}
示例5: OnBuyMenu_Ok
void game_cl_CaptureTheArtefact::OnBuyMenu_Ok()
{
#ifdef DEBUG
Msg("* CTA: Buy menu OK...");
#endif // #ifdef DEBUG
typedef CUIGameCTA::BuyMenuItemsCollection TBuyCol;
VERIFY2(m_game_ui, "game ui not initialized");
CUIGameCTA::BuyMenuItemsCollection toBuyItemsCollection;
s32 moneyDif = 0;
m_game_ui->GetPurchaseItems(toBuyItemsCollection, moneyDif);
R_ASSERT(local_player);
if (local_player->testFlag(GAME_PLAYER_FLAG_VERY_VERY_DEAD))
{
if (InWarmUp())
{
buy_amount = 0;
} else
{
buy_amount = moneyDif;
}
UpdateMoneyIndicator();
}
CGameObject* pPlayer = smart_cast<CGameObject*>(Level().CurrentEntity());
VERIFY(pPlayer);
NET_Packet P;
pPlayer->u_EventGen(P, GE_GAME_EVENT, pPlayer->ID());
P.w_u16(GAME_EVENT_PLAYER_BUY_FINISHED);
if (InWarmUp())
{
P.w_s32(0);
} else
{
P.w_s32(moneyDif);
}
P.w_u16(static_cast<u16>(toBuyItemsCollection.size()));
TBuyCol::const_iterator bie = toBuyItemsCollection.end();
for (TBuyCol::const_iterator toBuyIter = toBuyItemsCollection.begin();
toBuyIter != bie; ++toBuyIter)
{
P.w_u8(toBuyIter->first);
P.w_u8(toBuyIter->second);
}
pPlayer->u_EventSend(P);
if (local_player->testFlag(GAME_PLAYER_FLAG_VERY_VERY_DEAD))
{
u_EventGen(P, GE_GAME_EVENT, local_player->GameID);
P.w_u16(GAME_EVENT_PLAYER_BUYMENU_CLOSE);
u_EventSend(P);
}
set_buy_menu_not_ready();
}
示例6:
void SHit::Write_Packet (NET_Packet &Packet)
{
Packet.w_begin (M_EVENT);
Packet.w_u32 (Time);
Packet.w_u16 (u16(PACKET_TYPE&0xffff));
Packet.w_u16 (u16(DestID&0xffff));
Write_Packet_Cont (Packet);
};
示例7: Level
void CLevel::ClearAllObjects ()
{
u32 CLObjNum = Level().Objects.o_count();
bool ParentFound = true;
while (ParentFound)
{
ParentFound = false;
for (u32 i=0; i<CLObjNum; i++)
{
CObject* pObj = Level().Objects.o_get_by_iterator(i);
if (!pObj->H_Parent()) continue;
//-----------------------------------------------------------
NET_Packet GEN;
GEN.w_begin (M_EVENT);
//---------------------------------------------
GEN.w_u32 (Level().timeServer());
GEN.w_u16 (GE_OWNERSHIP_REJECT);
GEN.w_u16 (pObj->H_Parent()->ID());
GEN.w_u16 (u16(pObj->ID()));
game_events->insert (GEN);
if (g_bDebugEvents) ProcessGameEvents();
//-------------------------------------------------------------
ParentFound = true;
//-------------------------------------------------------------
#ifdef DEBUG
Msg ("Rejection of %s[%d] from %s[%d]", *(pObj->cNameSect()), pObj->ID(), *(pObj->H_Parent()->cNameSect()), pObj->H_Parent()->ID());
#endif
};
ProcessGameEvents();
};
CLObjNum = Level().Objects.o_count();
for (u32 i=0; i<CLObjNum; i++)
{
CObject* pObj = Level().Objects.o_get_by_iterator(i);
R_ASSERT(pObj->H_Parent()==NULL);
//-----------------------------------------------------------
NET_Packet GEN;
GEN.w_begin (M_EVENT);
//---------------------------------------------
GEN.w_u32 (Level().timeServer());
GEN.w_u16 (GE_DESTROY);
GEN.w_u16 (u16(pObj->ID()));
game_events->insert (GEN);
if (g_bDebugEvents) ProcessGameEvents();
//-------------------------------------------------------------
ParentFound = true;
//-------------------------------------------------------------
#ifdef DEBUG
Msg ("Destruction of %s[%d]", *(pObj->cNameSect()), pObj->ID());
#endif
};
ProcessGameEvents();
};
示例8: PHSaveState
void CPhysicsShellHolder::PHSaveState(NET_Packet &P)
{
//CPhysicsShell* pPhysicsShell=PPhysicsShell();
CKinematics* K =smart_cast<CKinematics*>(Visual());
//Flags8 lflags;
//if(pPhysicsShell&&pPhysicsShell->isActive()) lflags.set(CSE_PHSkeleton::flActive,pPhysicsShell->isEnabled());
// P.w_u8 (lflags.get());
if(K)
{
P.w_u64(K->LL_GetBonesVisible());
P.w_u16(K->LL_GetBoneRoot());
}
else
{
P.w_u64(u64(-1));
P.w_u16(0);
}
/////////////////////////////
Fvector min,max;
min.set(flt_max,flt_max,flt_max);
max.set(-flt_max,-flt_max,-flt_max);
/////////////////////////////////////
u16 bones_number=PHGetSyncItemsNumber();
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
PHGetSyncItem(i)->get_State(state);
Fvector& p=state.position;
if(p.x<min.x)min.x=p.x;
if(p.y<min.y)min.y=p.y;
if(p.z<min.z)min.z=p.z;
if(p.x>max.x)max.x=p.x;
if(p.y>max.y)max.y=p.y;
if(p.z>max.z)max.z=p.z;
}
min.sub(2.f*EPS_L);
max.add(2.f*EPS_L);
VERIFY(!min.similar(max));
P.w_vec3(min);
P.w_vec3(max);
P.w_u16(bones_number);
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
PHGetSyncItem(i)->get_State(state);
state.net_Save(P,min,max);
}
}
示例9: OnPlayerChangeTeam
void game_sv_TeamDeathmatch::OnPlayerChangeTeam(ClientID id_who, s16 team)
{
game_PlayerState* ps_who = get_id (id_who);
if (!ps_who) return;
if (!team)
{
if (!ps_who->team)
team = AutoTeam();
else if (TeamSizeEqual())
{
team = ps_who->team;
}
else
{
team = AutoTeam();
}
};
//-----------------------------------------------------
NET_Packet Px;
GenerateGameMessage(Px);
Px.w_u32(GAME_EVENT_PLAYER_GAME_MENU_RESPOND);
Px.w_u8(PLAYER_CHANGE_TEAM);
Px.w_s16(team);
m_server->SendTo(id_who,Px,net_flags(TRUE,TRUE));
//-----------------------------------------------------
if (ps_who->team == team) return;
//-----------------------------------------------------
KillPlayer(id_who, ps_who->GameID);
//-----------------------------------------------------
ps_who->setFlag(GAME_PLAYER_FLAG_SPECTATOR);
//-----------------------------------------------------
s16 OldTeam = ps_who->team;
ps_who->team = u8(team & 0x00ff);
TeamStruct* pTS = GetTeamData(team);
if (pTS)
{
if ((ps_who->money_for_round < pTS->m_iM_Start) || (OldTeam == 0))
Money_SetStart(id_who);
}
/////////////////////////////////////////////////////////
//Send Switch team message
NET_Packet P;
// P.w_begin (M_GAMEMESSAGE);
GenerateGameMessage (P);
P.w_u32 (PLAYER_CHANGE_TEAM);
P.w_u16 (ps_who->GameID);
P.w_u16 (ps_who->team);
P.w_u16 (team);
u_EventSend(P);
/////////////////////////////////////////////////////////
SetPlayersDefItems(ps_who);
}
示例10: sizeof
void CSE_Abstract::Spawn_Write (NET_Packet &tNetPacket, BOOL bLocal)
{
// generic
tNetPacket.w_begin (M_SPAWN);
tNetPacket.w_stringZ (s_name );
tNetPacket.w_stringZ (s_name_replace ? s_name_replace : "");
tNetPacket.w_u8 (s_gameid );
tNetPacket.w_u8 (s_RP );
tNetPacket.w_vec3 (o_Position );
tNetPacket.w_vec3 (o_Angle );
tNetPacket.w_u16 (RespawnTime );
tNetPacket.w_u16 (ID );
tNetPacket.w_u16 (ID_Parent );
tNetPacket.w_u16 (ID_Phantom );
s_flags.set (M_SPAWN_VERSION,TRUE);
if (bLocal)
tNetPacket.w_u16 (u16(s_flags.flags|M_SPAWN_OBJECT_LOCAL) );
else
tNetPacket.w_u16 (u16(s_flags.flags&~(M_SPAWN_OBJECT_LOCAL|M_SPAWN_OBJECT_ASPLAYER)));
tNetPacket.w_u16 (SPAWN_VERSION);
tNetPacket.w_u16 (script_server_object_version());
//client object custom data serialization SAVE
u16 client_data_size = (u16)client_data.size(); //не может быть больше 256 байт
tNetPacket.w_u16 (client_data_size);
// Msg ("SERVER:saving:save:%d bytes:%d:%s",client_data_size,ID,s_name_replace ? s_name_replace : "");
if (client_data_size > 0) {
tNetPacket.w (&*client_data.begin(),client_data_size);
}
tNetPacket.w (&m_tSpawnID, sizeof(m_tSpawnID));
// tNetPacket.w_float (m_spawn_probability);
// tNetPacket.w_u32 (m_spawn_flags.get());
// tNetPacket.w_stringZ (m_spawn_control);
// tNetPacket.w_u32 (m_max_spawn_count);
// tNetPacket.w_u64 (m_min_spawn_interval);
// tNetPacket.w_u64 (m_max_spawn_interval);
#ifdef XRSE_FACTORY_EXPORTS
CScriptValueContainer::assign();
#endif
// write specific data
u32 position = tNetPacket.w_tell();
tNetPacket.w_u16 (0);
STATE_Write (tNetPacket);
u16 size = u16(tNetPacket.w_tell() - position);
//#ifdef XRSE_FACTORY_EXPORTS
R_ASSERT3 ((m_tClassID == CLSID_SPECTATOR) || (size > sizeof(size)),"object isn't successfully saved, get your backup :(",name_replace());
//#endif
tNetPacket.w_seek (position,&size,sizeof(u16));
}
示例11: SaveNetState
void CPHSkeleton::SaveNetState(NET_Packet& P)
{
CPhysicsShellHolder* obj=PPhysicsShellHolder();
CPhysicsShell* pPhysicsShell=obj->PPhysicsShell();
IKinematics* K =smart_cast<IKinematics*>(obj->Visual());
if(pPhysicsShell&&pPhysicsShell->isActive()) m_flags.set(CSE_PHSkeleton::flActive,pPhysicsShell->isEnabled());
P.w_u8 (m_flags.get());
if(K)
{
P.w_u64(K->LL_GetBonesVisible());
P.w_u16(K->LL_GetBoneRoot());
}
else
{
P.w_u64(u64(-1));
P.w_u16(0);
}
/////////////////////////////
Fvector min,max;
min.set(F_MAX,F_MAX,F_MAX);
max.set(-F_MAX,-F_MAX,-F_MAX);
/////////////////////////////////////
u16 bones_number=obj->PHGetSyncItemsNumber();
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
obj->PHGetSyncItem(i)->get_State(state);
Fvector& p=state.position;
if(p.x<min.x)min.x=p.x;
if(p.y<min.y)min.y=p.y;
if(p.z<min.z)min.z=p.z;
if(p.x>max.x)max.x=p.x;
if(p.y>max.y)max.y=p.y;
if(p.z>max.z)max.z=p.z;
}
min.sub(2.f*EPS_L);
max.add(2.f*EPS_L);
P.w_vec3(min);
P.w_vec3(max);
P.w_u16(bones_number);
for(u16 i=0;i<bones_number;i++)
{
SPHNetState state;
obj->PHGetSyncItem(i)->get_State(state);
state.net_Save(P,min,max);
}
}
示例12:
void CUIInventoryWnd::SendEvent_Item_Sell (PIItem pItem)
{
NET_Packet P;
pItem->object().u_EventGen (P, GEG_PLAYER_ITEM_SELL, pItem->object().H_Parent()->ID());
P.w_u16 (1);
P.w_u16 (pItem->object().ID());
pItem->object().u_EventSend (P);
g_pInvWnd->PlaySnd (eInvDropItem);
};
示例13: save
void CInventoryItem::save(NET_Packet &packet)
{
packet.w_u8 ((u8)m_eItemPlace);
if(object().H_Parent())
{
packet.w_u16 (CSE_ALifeInventoryItem::FLAG_NO_POSITION);
return;
}
packet.w_u16 (object().PHGetSyncItemsNumber());
object().PHSaveState(packet);
}
示例14: move_item_from_to
void move_item_from_to (u16 from_id, u16 to_id, u16 what_id)
{
NET_Packet P;
CGameObject::u_EventGen (P, GE_TRADE_SELL, from_id);
P.w_u16 (what_id);
CGameObject::u_EventSend (P);
//другому инвентарю - взять вещь
CGameObject::u_EventGen (P, GE_TRADE_BUY, to_id);
P.w_u16 (what_id);
CGameObject::u_EventSend (P);
}
示例15: ActivateNextItemInActiveSlot
void CInventory::ActivateNextItemInActiveSlot()
{
if(m_iActiveSlot==NO_ACTIVE_SLOT) return;
PIItem current_item = m_slots[m_iActiveSlot].m_pIItem;
PIItem new_item = NULL;
bool b = (current_item==NULL);
TIItemContainer::const_iterator it = m_all.begin();
TIItemContainer::const_iterator it_e = m_all.end();
for(; it!=it_e; ++it)
{
PIItem _pIItem = *it;
if(_pIItem==current_item)
{
b = true;
continue;
}
if(_pIItem->GetSlot()==m_iActiveSlot)
new_item = _pIItem;
if(b && new_item)
break;
}
if(new_item==NULL)
return; //only 1 item for this slot
bool res = Ruck (current_item);
R_ASSERT (res);
NET_Packet P;
current_item->object().u_EventGen (P, GEG_PLAYER_ITEM2RUCK, current_item->object().H_Parent()->ID());
P.w_u16 (current_item->object().ID());
current_item->object().u_EventSend (P);
res = Slot (new_item);
R_ASSERT (res);
new_item->object().u_EventGen (P, GEG_PLAYER_ITEM2SLOT, new_item->object().H_Parent()->ID());
P.w_u16 (new_item->object().ID());
new_item->object().u_EventSend (P);
//activate
new_item->object().u_EventGen (P, GEG_PLAYER_ACTIVATE_SLOT, new_item->object().H_Parent()->ID());
P.w_u32 (new_item->GetSlot());
new_item->object().u_EventSend (P);
Msg("CHANGE");
}