void CLocalPlayer::DoDeathCheck() { // Have we not yet processed the death and is the local player dead? if(!CLocalPlayer::m_bIsDead && IsDead()) { // Get the kill info EntityId playerId = INVALID_ENTITY_ID; EntityId vehicleId = INVALID_ENTITY_ID; EntityId weaponId = INVALID_ENTITY_ID; GetKillInfo(&playerId, &vehicleId,&weaponId); CLogFile::Printf("HandleDeath(LocalPlayer, %d, %d, %d)", playerId, vehicleId, weaponId); g_pCore->GetChat()->Outputf(false, "HandleDeath(LocalPlayer, %d, %d, %d)", playerId, vehicleId, weaponId); // Send the death notification to the server BitStream bsSend; bsSend.WriteCompressed(playerId); bsSend.WriteCompressed(vehicleId); bsSend.WriteCompressed(weaponId); g_pCore->GetNetworkManager()->Call(GET_RPC_CODEX(RPC_PLAYER_DEATH), &bsSend, HIGH_PRIORITY, RELIABLE_ORDERED, true); // Mark ourselves as dead CLocalPlayer::m_bIsDead = true; // Delete the object CIVScript::DeleteObject(&m_pObj); // Reset vehicle entry/exit flags SetExitFlag(true); ResetVehicleEnterExit(); // Get current day time so we don't have to set the time always.. CGameFunction::GetTime(&m_iRespawnTime[0], &m_iRespawnTime[1]); } }
int KMonster::UnInit() { SetExitFlag(); if (m_nThreadFlag) { m_WorkThread.Destroy(); m_nThreadFlag = FALSE; } DestroySimulator(m_piOperator); m_piOperator = NULL; m_Eyeshot.UnInit(); m_PlayerClient.UnInit(); m_BishopClient.UnInit(); m_pRole = NULL; return TRUE; }
// 次のシーンを作る bool SceneMgr::CreateScene(){ std::shared_ptr<BaseScene> tmpScene = nullptr; switch (nextScene){ case eScene_Title: tmpScene = std::make_shared<Title>(this); break; case eScene_Menu: tmpScene = std::make_shared<Menu>(this); break; case eScene_Game: tmpScene = std::make_shared<GameMgrScene>(this); break; case eScene_GameClear1: tmpScene = std::make_shared<GameClear1>(this); break; case eScene_GameExit: SetExitFlag(); nextScene = eScene_None; return true; case eScene_None: break; default: break; } nextScene = eScene_None; // 確保に失敗したらfalseを返す if (tmpScene == nullptr){ return false; } else { allSceneSrack.push_front(tmpScene); return true; } }