Files
Sun1602/Achievement
git 9cb257e7ae Add GameClients drops and keep current 1602 source work.
CN1602 is the local client. KR is the official tree with unpacked Data, System, and Sound. Packed .wpk files stay off git.
2026-08-30 23:24:31 +03:00
..
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00
all
2022-10-26 12:25:11 +08:00

클라이언트 참고: 


//클라이언트용 사용 가이드 

Achievement achievement;

/* ======== MSG_CG_AREACONQUEST_STREAM_CMD 수신시 ========== */
MSG_CG_AREACONQUEST_STREAM_CMD msg;
achievement.Serialize(msg.achievement_info_, SERIALIZE_STORE);

//업적 전체 순회
Achievement::ACHIEVEMENT_PART_ITER iter_part = achievement.Begin();
for(; iter_part != achievement.End() ; iter_part++)
{
	AchievementPart::ACHIEVEMENT_ITER iter = iter_part->second.Begin();

	WORD accomplishment_ratio = iter_part->second.GetAccomplishmentRatio(); //지역 달성률

	for(; iter != iter_part->second.End() ; iter++)
	{
		iter->second.GetIndex();
		//iter->second.GetStringCode();
		//iter->second.GetToolTipCode();
		//iter->second.GetIconCode();			
		iter->second.IsReward();

		for(int i = 0 ; i < MAX_ACHIEVEMENT_OBJECT ; i++)
		{
			iter->second.GetObjectInfo(i);			
		}
		for(int i = 0 ; i < MAX_ACHIEVEMENT_REWARD ; i++)
		{
			iter->second.GetRewardInfo(i);			
		}
	}
}
/* ========================================================= */



/* ======== MSG_CG_AREACONQUEST_VALUE_CHANGE_CMD 수신시 ========== */
MSG_CG_AREACONQUEST_VALUE_CHANGE_CMD msg;	
achievement.SetAchievementValue(msg.location_code, msg.index_number_, 
								msg.object_index_, msg.object_value_);
if(achievement.IsAccomplishment(msg.location_code, msg.index_number_))
{
	//업적 달성
}
/* =============================================================== */


	
/* ======== MSG_CG_AREACONQUEST_REWARD_ACK 수신시 ========== */
MSG_CG_AREACONQUEST_REWARD_ACK msg;
if(msg.m_accomplishment_ratio > 0)
{
	achievement.AddAccomplishmentRation(msg.location_code_,msg.m_accomplishment_ratio);
}	
//달성률이 보상인 경우을 제외하고 나머지는 동일하다.
/* ======================================================== */



/* ======== MSG_CG_AREACONQUEST_REWARD_NAK 수신시 ========== */
MSG_CG_AREACONQUEST_REWARD_NAK msg;
//기존과 동일하다.
/* ========================================================= */