void CUIStatsPlayerList::Init(CUIXml& xml_doc, LPCSTR path) { // init window CUIXmlInit::InitScrollView (xml_doc, path, 0, this); SetFixedScrollBar (false); m_bStatus_mode = xml_doc.ReadAttribInt(path,0,"status_mode",0)? true: false; m_bSpectator = xml_doc.ReadAttribInt(path,0,"spectator",0)? true: m_bStatus_mode; SetSpectator (m_bSpectator); // init item structure int tabsCount = xml_doc.GetNodesNum(path, 0, "field"); XML_NODE* tab_node = xml_doc.NavigateToNode(path,0); xml_doc.SetLocalRoot (tab_node); for (int i = 0; i < tabsCount; ++i) { LPCSTR name = xml_doc.ReadAttrib("field",i,"name"); float width = xml_doc.ReadAttribFlt("field",i,"width"); if (0 == xr_strcmp(name, "artefacts") && GameID() != eGameIDArtefactHunt) continue; AddField (name,width); } xml_doc.SetLocalRoot (xml_doc.GetRoot()); string256 _path; // init item text params CUIXmlInit::InitFont (xml_doc, strconcat(sizeof(_path),_path, path, ":text_format"), 0, m_i.c, m_i.f); m_i.h = xml_doc.ReadAttribFlt(strconcat(sizeof(_path),_path, path, ":text_format"), 0, "height", 25); // init list header switch (GameID()) { case eGameIDCaptureTheArtefact: case eGameIDArtefactHunt: case eGameIDTeamDeathmatch: if (!m_bSpectator || m_bStatus_mode) InitTeamHeader(xml_doc, path); case eGameIDDeathmatch: InitHeader(xml_doc, path); default: break; } }
void DuelSystemClass::WarpRoom(DWORD PlayerID, BYTE Room) { int Gate = 0; BOOL isSpectator = 0; switch(Room) { case 0: { if(Player[0][Room] == PlayerID) { Gate = 295; }else if(Player[1][Room] == PlayerID) { Gate = 296; }else { Gate = 303; isSpectator = 1; } }break; case 1: { if(Player[0][Room] == PlayerID) { Gate = 297; }else if(Player[1][Room] == PlayerID) { Gate = 298; }else { Gate = 304; isSpectator = 1; } }break; case 2: { if(Player[0][Room] == PlayerID) { Gate = 299; }else if(Player[1][Room] == PlayerID) { Gate = 300; }else { Gate = 305; isSpectator = 1; } }break; case 3: { if(Player[0][Room] == PlayerID) { Gate = 301; }else if(Player[1][Room] == PlayerID) { Gate = 302; }else { Gate = 306; isSpectator = 1; } }break; case 0xFF: { Gate = 294; } } if((isSpectator == 1) && (DuelRoom[Room] == 1)) { if(SetSpectator(PlayerID,Room) != 0xFF) { gObjMoveGate_JMP(PlayerID, Gate); SetDuelInfo(PlayerID,Room); } else { GCServerMsgStringSend(MSG18,PlayerID, 0x01); } } else { gObjMoveGate_JMP(PlayerID, Gate); } }
void CGameStats::OnGameplayEvent(IEntity *pEntity, const GameplayEvent &event) { /* for(int i=0;i<gEventNamesNum;++i) { if(gEventNames[i].key == event.event) { CryLog("GameStats : Event %s",gEventNames[i].name); } }*/ int e_id = pEntity ? (int) pEntity->GetId() : 0; switch(event.event) { case eGE_GameStarted: StartGame(event.value!=0); break; case eGE_GameEnd: EndGame(event.value!=0); break; case eGE_SuddenDeath: SuddenDeath(event.value!=0); break; case eGE_RoundEnd: EndRound(event.value!=0, atoi(event.description)); break; case eGE_Renamed: SetName(e_id, event.description); break; case eGE_Scored: SetScore(e_id, event.description, (int)event.value); break; case eGE_Kill: OnKill(e_id, (EntityId*)event.extra); if(pEntity) ProcessPlayerStat(pEntity,event); break; case eGE_Death: OnDeath(e_id, (int)(TRUNCATE_PTR)event.extra); if(pEntity) ProcessPlayerStat(pEntity,event); break; case eGE_WeaponShot: case eGE_WeaponHit: case eGE_SuitModeChanged: case eGE_WeaponMelee: case eGE_LeftVehicle: case eGE_EnteredVehicle: case eGE_ItemSelected: case eGE_WeaponReload: case eGE_Damage: case eGE_Revive: case eGE_WeaponFireModeChanged: case eGE_ZoomedIn: case eGE_ZoomedOut: if(pEntity) ProcessPlayerStat(pEntity,event); break; case eGE_Connected: { bool restored = event.value!=0.0f; struct SExtraData { int status[2]; }; SExtraData* pExtra = static_cast<SExtraData*>(event.extra); NewPlayer(e_id, pExtra->status[0], pExtra->status[1]!=0, restored); } break; case eGE_ChangedTeam: SetTeam(e_id,(int)event.value); break; case eGE_Spectator: SetSpectator(e_id,(int)event.value); if(pEntity) ProcessPlayerStat(pEntity,event); break; case eGE_Disconnected: RemovePlayer(e_id, event.value!=0); break; case eGE_ScoreReset: ResetScore(e_id); break; case eGE_Rank: SetRank(e_id,(int)event.value); break; case eGE_GameReset: GameReset(); break; default: break; } }
virtual void Enter() { SetSpectator( player, false ); player->CreateNewTeamWish(); menu->Exit(); }
virtual void Enter() { SetSpectator( player, false ); player->SetTeamWish( team ); menu->Exit(); }