1/3
2/3
3/3
崩3短片「因你而在的故事」中的C++代码到底写了什么
超弦鱼
2022年08月12日 15:50

抄了好久,眼睛都有点痛了QAQ

本人能力有限,暂不对该代码进行解读,仅标明大意[]~( ̄▽ ̄)~*。

如果有错误,还请各位指出

1:15 爱莉右眼遭受侵蚀

代码块
C++
自动换行
复制代码
//阻挡恶意活动
GRESULT IDS::BlockMailciousActivities(GDataSet *target){
	GRESULT gr;
		if ( !target || CurrentPos(target) != NULL)
			return EXCEED_BDUNDARY;
			
	SCAN_THREAD_PARAM *scanParam = new SCAN_THREAD_PARAM;
		if (scanParam == NULL) return NOT_VALID_STATE;
		
	scanParam->captureEvent = CreateEvent(g_CAPTURE, TRUE, TRUE, NULL);
		if (scanParam->captureEvent == NULL){
			gr = GLOBAL_SEARCH(LocateLastPos(target));
			delete scanParam;
			return gr;}
	
	scanParam->threadHandle = CreateThread
	(NULL, 0, &IDS::ScanThread, scanParam, FLAG_BLOCKING);
		if (scanParam->threadHandle == NULL){
			gr = GLOBAL_SEARCH(LocateLastPos(target));
			BlockHandle(scanParm->captureEvent);
			delete scanParam;
			return gr;}
			
	scanParam->enumurate = NULL;
	scanParam->instance = this;
	LocateOnTarget(&target)
	ResultThread(scanParam->threadHandle);
	
		return SUCCESS;
}
复制成功

1:24 武器被侵蚀

代码块
C++
自动换行
复制代码
//防御恶意攻击
GRESULT IPS::DefenseAgainstMalAttacks(GDataSet *target){
	SetDefenseLevel(DEFENCE_LEVEL_10, true, kGlobal);
	if (m_ObjExist(target))
		AnalysePreference(target);
		
	if(g_IDS->VDB????lwarcDetected){ //这里看不清
		g_IDS->ScanForComponets();
		g_AVDB->VerifySignature(target);
		if (!g_AVDB->IsContain(target))
			g_AVDB->UpdateToDatabase(target);
		bool m_flags = EXECUTE_FLAG(g_BindFlags, tElimination);
		
		if (m_flags){
			FlagsAndAttributes |= tAttrIsolate;
			m_handle = CreateEvent(m_flags, DesireAccess, ExecuteMode, NULL,
			CreationDisposition,
			FlagsAndAttributes, NULL);
			if (m_handle == INVALID_HANDLE_VALUE)
				gr = GLOBAL_SEARCH(LocateLastPos(target));
			g_Operator->Add(target);
			g_Operator->SetTargetHandle((void*)m_handle);}
			
		else {
			return NOT_VAILD_STATE;}}
			
		return SUCCESS;
}
复制成功

1:53 爱莉手臂被侵蚀

代码块
C++
自动换行
复制代码
//移除依靠
GRESULT IPS::RemoveDependencies(GDataSet *target, ULONG const flags){
	if( !target || CurrentPos(target) == NULL)
		return EXCEED_BOUNDARY;
	GCOORD pos;
	
	if (g_tAttr){
		g_tAttr->GetLocation(&pos);}
	g_BindFlags = 0;
	
	????? DesireAccess = 0, ExecuteMode = 0, FlagAndAttributes = 0;
	
	g_BindFlags = flags;
	gr = SUCCESS;
	if (g_BindFlags > 0){
		DesireAccess |= EXECUTE_FLAG
		(g_BindFlags, t????) ? ??? : 0;
		DesireAccess |= EXECUTE_FLAG
		(g_BindFlags, t????) ? ??? : ???;
		
		ExecuteMode |= EXECUTE_FLAG
		(g_BindFlags, tExecute????) ? EXECUTE_DELETE_??? : 0;
		ExecuteMode |= EXECUTE_FLAG
		(g_BindFlags, tExecute????) ? EXECUTE_DELETE_??? : ???;
		ExecuteMode |= EXECUTE_FLAG
		(g_BindFlags, tExecute?????) ? EXECUTE_?????_???;
		ExecuteMode |= EXECUTE_FLAG
		(g_BindFlags, tExecuteTime) ? EXECUTE_DELETE_??? : 0;
		
		FlagAndAttributes |= EXECUTE_FLAG
		(g_BindFlags, tAttrNormal) ? OBJECT_ATTRIBUTE_NORMAL : 0;
		FlagAndAttributes |= EXECUTE_FLAG
		(g_BindFlags, tAttrReadonly) ? OBJECT_ATTRIBUTE_VALID : 0;
		FlagAndAttributes |= EXECUTE_FLAG
		(g_BindFlags, tAttrSystem) ? OBJECT_ATTRIBUTE_SYSTEM : 0;
		FlagAndAttributes |= EXECUTE_FLAG;
		(g_BindFlags, tAttrBidden) ? OBJECT_ATTRIBUTE_BIDDEN : 0;
		FlagAndAttributes |= EXECUTE_FLAG;
		(g_BindFlags, tAttrPersistent) ? OBJECT_ATTRIBUTE_PERSISTENT : 0;}
		
	BreakRelatives(pos, DesireAccess, ExecuteMode, FlagAndAttributes);
	g_arr = (ULONG)(gr & 0xffff);
	return gr;
}
复制成功

1:57 水晶盾被侵蚀

代码块
C++
自动换行
复制代码
//清除对象
GRESULT IPS::EliminateObjective(GDataSet *target){
	if( !target || CurrentPos(target) == NULL)
		return EXCEED_BOUNDARY;
	
	if (EXECUTE_FLAG(g_BindFlags, tExecNow)){
		ExexAttr |= EXEC_NOW;}
	else if (EXECUTE_FLAG(g_BindFlags, tExecPersistent)){
		ExexAttr |= EXEC_PERSISTENT;}
	else if (EXECUTE_FLAG(g_BindFlags, tExecForce)){
		ExexAttr |= EXEC_FORCE;}
	else if (EXECUTE_FLAG(g_BindFlags, tExecExist)){
		ExexAttr |= EXEC_EXISTINE;}
	else{
		return G_INVALIDARG;}
		
	while (g_IDS ???? (target)){
		g_Operator->AddSchema("ELIMINATE");
		g_Operator->Add(&target)
		g_Operator->Execute();}
	RestructuringResources();
	
	return SUCCESS;
}
复制成功

2:16 爱莉被捕获

代码块
C++
自动换行
复制代码
//撤销往世乐土权限
GRESULT IDS::RevokeElysianRealmAuthorithy(GDataSet *target){?
	GDB *conn;
	conn = RealConnect(g_cfg.server, g_cfg.user, g_cfg_pw);
	if(!conn){
		return CONNECTED_FAILED;}
	else {?
		char buffer[100];
		sprintf(buffer,
		"REVOKE ElysianRealm ON *.* FROM '%s'&'%'",
		"Elysia");
		cmd = new SrvCommand(buffer, conn);
		result = cmd.Execute();
		if (!result){
			return REMOVE_FAILD;}?}
	return SUCCESS;
}

//撤销(爱莉的)往世乐土权限
g_IDS->RevokeElysianRealmAuthorithy(Elysia);

//2:20
//消除人性模拟
GRESULT IDS::EraseHumanitySimulation(GDataSet *target){?
	GetSimData(target->id,
	m_rows,
	m_id,
	m_max,
	kGlobal);
	for(size_t j = 0; j < m_date.size(); j++){
		for(size_t k = cur_row + 1; k < m_rows; k++){
			val = val * m_data[j][k];}}?
	g_Operator->AddSchema("UNIT_ERASE")
	g_Operator->AnalyseSimUnits(&target, val);
	g_Operator->Execute();
	return SUCCESS;
}

//消除(爱莉的)人性模拟
g_IDS->EraseHumanitySimulation(Elysia);
复制成功

2:23爱莉被侵蚀

代码块
C++
自动换行
复制代码
//擦除与“十三英桀”相关记忆
GRESULT IDS::EraseMemmeryOfTheMOTHs(GDataSet *target){
	size_t cur_row = 0;
	double val = 1.0;
	size_t cur_index = 0;
	for(size_t i = 0; i < m_rows; i++){
		double m_max = m_data[cur_index][cur_row];
		for(size_t j = cur_row + 1; j < m_rows; j++){
			if(m_data[cur_index][j] > m_max){
				m_max = m_data[cur_index][j];}}
		if(i != m_id){
			val = val * m_data[cur_index][cur_row];
			cur_index++;}}
	g_Operator->AddSchema("UNIT_ERASE");
	g_Operator->AnalyseMemUnits(&target, val);
	g_Operator->Execute();
	return SUCCESS;
}

//擦除(爱莉的)与“十三英桀”相关记忆
g_IDS->EraseMemmeryOfTheMOTHs(Elysia);

//删除永恒轮回
GRESULT IDS::DeleteEternalReturn(GDataSet *target){
	GStatus status;
	GMedic medic(target);
	GDependencyRes resIt;
	DESTORY_CONTEXT(target->context);
	GMessage::removeCallbacks(callbackIds);
	Check_GSTATUS(medic.dereg(target->id));
	CHECK_GSTATUS(medic.deregrCommand("EternalReturn"));
	for(resIt.reset(Gloop::m_productionNode);
		!resIt.isDone();
		resIt.next()){
		GObject pNode = resIt.item();
		GDependencyRes resNode(pNode);
		if(m_idExists(resNode.typeId())){
			ProReset(resNode.typeId());}}
	return SUCCESS;
}


g_IDS->DeleteEternalReturn(Elysia);


复制成功

以上为侵蚀律的代码,下面为红屏电脑的代码(爱莉的自我修复)

代码块
C++
自动换行
复制代码
//恢复自我
GRESULT RestoreEgo()
{
	CONIT dim;
	vector<GDATA>data_uint;
	vector<GDATA>cache;
	g_DB->RecoverNign->Initinalise();
	g_DB->Rollback();
	for(int i=0; i<sizeof(m_dim); i++){
		dim = m_dim.pop_back();
		data_unit.push_back(GetDataFromDim(dim));
	}
	block_size = max(1024 * 1024, GetSize(data_uint) / 1000);
	g_DB->GetRecord(cache, "Elysia", "Ego")
	for(GUNIT unit *cache.begin();
		unit!=cache.end();
		unit++)
	{
		GetCursorPos();
		while(g_cursor < GetEndOf(*unit) - block_size - 4){
			block_index = GetByteData(*unit, 4);
			block_index %= (block_size / 1024);
			if(Seek(g_cursor + block_size) = 1024){
				data_uint.push_back(GetByteData(*unit, 1024));
			} else {
				return SEEK_FAILED;
			}
		}
		int min_size;
		min_size = min(GetEndOf(*unit) - g_cursor, 1024 * 10);
		data_uint.push_back(GetByteData(min_size));
	}
	Connect(data_uint);
	return SUCCESS;
}

//修复粉色纯真之心
GRESULT RestorePurePinkHeart(){
	...
}
复制成功

其实细看的话,侵蚀律的代码块末端花括号(})会缩到最后一行有意义的代码后面,而爱莉的代码块则不会,相比之下更加标准。