미션 작업 중... 2

This commit is contained in:
Ino 2025-03-18 08:31:46 +09:00
parent 204c643458
commit c27362b432
10 changed files with 228 additions and 98 deletions

View File

@ -1 +1 @@
[{"n_MissionIndex": "1", "n_MissionGroupId": "0", "s_LinkedQuestType": "None", "n_MissionDesc": "100034", "e_MissionConditionType": "DAILY_MISSION_CLEAR_ALL", "n_MissionConditionValue": "0", "l_MissionConditionCount": "5", "e_RewardType": "", "n_RewardValue": "1", "n_RewardCount": "100", "b_RepeatMission": "False"}, {"n_MissionIndex": "2", "n_MissionGroupId": "0", "s_LinkedQuestType": "None", "n_MissionDesc": "100001", "e_MissionConditionType": "KILL_MONSTER_ALL", "n_MissionConditionValue": "0", "l_MissionConditionCount": "20", "e_RewardType": "", "n_RewardValue": "2", "n_RewardCount": "1000", "b_RepeatMission": "False"}]
[{"n_MissionIndex": "1", "n_MissionGroupId": "0", "e_LinkedQuestType": "None", "n_MissionDesc": "100034", "e_MissionConditionType": "DAILY_MISSION_CLEAR_ALL", "n_MissionConditionValue": "0", "l_MissionConditionCount": "5", "e_RewardType": "", "n_RewardValue": "1", "n_RewardCount": "100", "b_RepeatMission": "False"}, {"n_MissionIndex": "2", "n_MissionGroupId": "0", "e_LinkedQuestType": "None", "n_MissionDesc": "100001", "e_MissionConditionType": "KILL_MONSTER", "n_MissionConditionValue": "101", "l_MissionConditionCount": "20", "e_RewardType": "", "n_RewardValue": "2", "n_RewardCount": "100", "b_RepeatMission": "False"}, {"n_MissionIndex": "3", "n_MissionGroupId": "0", "e_LinkedQuestType": "None", "n_MissionDesc": "100002", "e_MissionConditionType": "KILL_MONSTER_ALL", "n_MissionConditionValue": "0", "l_MissionConditionCount": "30", "e_RewardType": "", "n_RewardValue": "2", "n_RewardCount": "200", "b_RepeatMission": "False"}, {"n_MissionIndex": "4", "n_MissionGroupId": "0", "e_LinkedQuestType": "First", "n_MissionDesc": "100003", "e_MissionConditionType": "KILL_MONSTER_ACC", "n_MissionConditionValue": "0", "l_MissionConditionCount": "40", "e_RewardType": "", "n_RewardValue": "2", "n_RewardCount": "300", "b_RepeatMission": "False"}]

Binary file not shown.

View File

@ -1239,7 +1239,19 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 5574855886466035148}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_Calls:
- m_Target: {fileID: 316400532164236271}
m_TargetAssemblyTypeName: MissionCard, Assembly-CSharp
m_MethodName: OnClick_GetReward
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &2990336255413429717
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@ -51441,7 +51441,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -1.34, y: -127.58}
m_AnchoredPosition: {x: 0, y: -127.58}
m_SizeDelta: {x: 908.49, y: 602.29}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8809303088549965169
@ -58453,6 +58453,7 @@ RectTransform:
m_Children:
- {fileID: 4615820290691843644}
- {fileID: 8180201768747246641}
- {fileID: 7176626439662055994}
- {fileID: 7962533988007672671}
m_Father: {fileID: 2975530085048663680}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -93443,7 +93444,7 @@ GameObject:
- component: {fileID: 630267724400035499}
- component: {fileID: 4941279522961301053}
m_Layer: 5
m_Name: btn_
m_Name: btn_bg
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -114420,6 +114421,7 @@ MonoBehaviour:
m_Content: {fileID: 0}
go_card: {fileID: 5840162431427643664, guid: 7f901e994eb763545b216b8f31498484, type: 3}
m_Tab: {fileID: 3248488230996330858}
m_Complete: {fileID: 7517454807443385503}
--- !u!1 &9168678807105416018
GameObject:
m_ObjectHideFlags: 0
@ -138055,6 +138057,152 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c2d3bea595a34c94981f5760375e7387, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &7797782415955722096
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1065787735305380702}
m_Modifications:
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_SizeDelta.x
value: 908
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_SizeDelta.y
value: 100
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 229
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1168384990060815034, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1168384990060815034, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5840162431427643664, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
propertyPath: m_Name
value: MissionCard
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7f901e994eb763545b216b8f31498484, type: 3}
--- !u!224 &7176626439662055994 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 1130181902522142026, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
m_PrefabInstance: {fileID: 7797782415955722096}
m_PrefabAsset: {fileID: 0}
--- !u!114 &7517454807443385503 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 316400532164236271, guid: 7f901e994eb763545b216b8f31498484,
type: 3}
m_PrefabInstance: {fileID: 7797782415955722096}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ed2923fa018a52644b6d941924384b81, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &7824460769494381830
PrefabInstance:
m_ObjectHideFlags: 0

View File

@ -413,29 +413,16 @@ public class MobActor : Actor
}
}
sdata.Add_CollectionMobKill(m_MonsterTableData.n_MonsterID);
}
base.Set_Die();
m_DieTime = m_MonsterAppearData.f_SpawnerDelay;
if (IsSubRole(eSubRol.Boss))
{
//Time.timeScale = 0.3f;
//Set_Coroutine(() =>
//{
// Time.timeScale = MyValue.Get_GameSpeed();
//}, 0.4f);
//sdata.Add_MissionCount(MyValue.arr_Mission[0], 3);
//sdata.Add_MissionCount(MyValue.arr_Mission[1], 2);
}
else
{
#if UNITY_EDITOR
if (SceneManager.GetActiveScene().name == "StatTest") return;
#endif
//sdata.Add_MissionCount(MyValue.arr_Mission[0], 2);
//sdata.Add_MissionCount(MyValue.arr_Mission[1], 1);
sdata.Add_CollectionMobKill(m_MonsterTableData.n_MonsterID);
sdata.Add_MissionCount(ePurpose.KILL_MONSTER, m_MonsterTableData.n_MonsterID);
sdata.Add_MissionCount(ePurpose.KILL_MONSTER_ALL);
sdata.Add_MissionCount(ePurpose.KILL_MONSTER_ACC);
}
base.Set_Die();
m_DieTime = m_MonsterAppearData.f_SpawnerDelay;
}
protected override void After_Die()
{

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using CodeStage.AntiCheat.ObscuredTypes;
using UnityEngine;
@ -79,7 +80,7 @@ public partial class ServerData
/// </summary>
public Dictionary<string, List<ObscuredInt>> Dungeon = new Dictionary<string, List<ObscuredInt>>();
/// <summary>
/// { 미션그룹, { 미션 ID, 0 미션 레벨, 1 미션 카운트 } }
/// { 미션그룹, { 미션 Index, 0 미션 레벨, 1 미션 카운트 } }
/// </summary>
public Dictionary<string, Dictionary<string, List<ObscuredInt>>> Mission = new Dictionary<string, Dictionary<string, List<ObscuredInt>>>();
@ -1122,15 +1123,17 @@ public partial class ServerData
}
}
}
public void Add_MissionCount(int group, int _id, int _v = 1)
public void Add_MissionCount(ePurpose purpose, int conditionvalue = 0, int _v = 1)
{
if (_v < 1) return;
var key1 = Get_Key(group);
if (Mission.ContainsKey(key1))
var lst = table_missionlist.Ins.Get_DataList(purpose);
for (int i = 0; i < lst.Count; i++)
{
var key2 = Get_Key(_id);
if (Mission[key1].ContainsKey(key2))
if (conditionvalue == lst[i].n_MissionConditionValue)
{
var key1 = Get_Key(lst[i].n_MissionGroupId);
var key2 = Get_Key(lst[i].n_MissionIndex);
if (!Mission.ContainsKey(key1)) Mission.Add(key1, new Dictionary<string, List<ObscuredInt>>());
if (!Mission[key1].ContainsKey(key2)) Mission[key1].Add(key2, new List<ObscuredInt> { 0, 0 });
Mission[key1][key2][1] += _v;
Mission[key1][key2][1].RandomizeCryptoKey();
}
@ -1147,73 +1150,19 @@ public partial class ServerData
}
return 0;
}
public bool CanGet_MissionDaily()
public bool CanGet_Mission(int group, int _id)
{
//var dm = Mission[MyValue.arr_Mission[0]];
//var tdata = table_dailymission.Ins.Get_DataList();
//for (int i = 0; i < dm.Count; i++)
//{
// if (dm[i][2] == 0)
// {
// var purposecount = tdata.Find(f => f.n_MissionIndex == dm[i][0]).n_PurposeCount;
// if (dm[i][1] >= purposecount)
// return true;
// }
//}
return false;
}
public bool CanGet_MissionRepeat()
{
//var dm = Mission[MyValue.arr_Mission[1]];
//var tdata = table_repeatmission.Ins.Get_DataList();
//for (int i = 0; i < dm.Count; i++)
//{
// var purposecount = tdata.Find(f => f.n_MissionIndex == dm[i][0]).n_PurposeCount;
// var curCount = dm[i][1] - dm[i][2] * purposecount;
// if (curCount >= purposecount)
// return true;
//}
return false;
}
public bool CanGet_MissionAchi(int chapter)
{
//var dm = Mission[MyValue.arr_Mission[2]];
//var t_achi = table_achievementsmission.Ins.Get_DataList(chapter);
//for (int i = 0; i < t_achi.Count; i++)
//{
// var mdata = dm.Find(f => f[0] == t_achi[i].n_MissionIndex);
// if (mdata[2] < 1)
// {
// var tabledata = t_achi[i];
// if (Get_AchiCount(t_achi[i].n_MissionIndex) >= tabledata.n_PurposeCount)
// return true;
// }
//}
return false;
}
int Get_EquipmentObtainCount(int type, int minid, int maxid)
{
int count = 0;
//var items = Equipment[MyValue.str_EquipMent[type]].FindAll(f => f[0] >= minid && f[0] <= maxid);
//for (int i = 0; i < items.Count; i++)
// count += items[i][1] > 0 ? 1 : 0;
return count;
}
int Get_MagicObtainCount(int minid, int maxid)
{
int count = 0;
// 조건에 맞는 항목 필터링
var items = Skill.Values.Where(list => list[0] >= minid && list[0] <= maxid);
// 필터링된 항목에 대해 처리
foreach (var item in items)
var key1 = Get_Key(group);
if (Mission.ContainsKey(key1))
{
if (item[2] > 0)
count++;
var key2 = Get_Key(_id);
if (Mission[key1].ContainsKey(key2))
{
var condition = table_missionlist.Ins.Get_Data(group, _id);
return Mission[key1][key2][1] >= condition.l_MissionConditionCount;
}
}
return count;
return false;
}
#endregion

View File

@ -2,7 +2,8 @@ using CodeStage.AntiCheat.ObscuredTypes;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using UnityEngine;
public enum eLinkedQuestType { None, First, Ing, Last }
[Serializable]
public class MissionListTableData : TableDataBase
@ -21,7 +22,7 @@ public class MissionListTableData : TableDataBase
set { _MissionGroupId = value; _MissionGroupId.RandomizeCryptoKey(); }
}
public string s_LinkedQuestType;
public eLinkedQuestType e_LinkedQuestType;
public int n_MissionDesc;
public ePurpose e_MissionConditionType;
@ -67,7 +68,10 @@ public class table_missionlist : table_missionbase
{
public static table_missionlist Ins;
List<MissionListTableData> tableDatas;
Dictionary<int, List<MissionListTableData>> dic_alldatas = new Dictionary<int, List<MissionListTableData>>();
Dictionary<ePurpose, List<MissionListTableData>> dic_purposdatas = new Dictionary<ePurpose, List<MissionListTableData>>();
Dictionary<int, List<MissionListTableData>> dic_datas = new Dictionary<int, List<MissionListTableData>>();
Dictionary<int, MissionListTableData> dic_Completedata = new Dictionary<int, MissionListTableData>();
protected override void Awake()
{
@ -83,9 +87,28 @@ public class table_missionlist : table_missionbase
{
var temp = Get_DataList()[i];
var itemtype = temp.n_MissionGroupId;
if (!dic_alldatas.ContainsKey(temp.n_MissionGroupId))
dic_alldatas.Add(temp.n_MissionGroupId, new List<MissionListTableData>());
dic_alldatas[temp.n_MissionGroupId].Add(temp);
if (!dic_purposdatas.ContainsKey(temp.e_MissionConditionType))
dic_purposdatas.Add(temp.e_MissionConditionType, new List<MissionListTableData>());
dic_purposdatas[temp.e_MissionConditionType].Add(temp);
if (!dic_datas.ContainsKey(temp.n_MissionGroupId))
dic_datas.Add(temp.n_MissionGroupId, new List<MissionListTableData>());
dic_datas[temp.n_MissionGroupId].Add(temp);
switch (temp.e_MissionConditionType)
{
case ePurpose.DAILY_MISSION_CLEAR_ALL:
case ePurpose.WEEKLY_MISSION_CLEAR_ALL:
case ePurpose.ACHIEVEMENT_CLEAR_ALL:
dic_Completedata.Add(temp.n_MissionGroupId, temp);
break;
default:
dic_datas[temp.n_MissionGroupId].Add(temp);
break;
}
}
base.Start();
@ -93,4 +116,7 @@ public class table_missionlist : table_missionbase
public List<MissionListTableData> Get_DataList() { return tableDatas; }
public List<MissionListTableData> Get_DataList(int group) { return dic_datas[group]; }
public List<MissionListTableData> Get_DataList(ePurpose purpose) { return dic_purposdatas[purpose]; }
public MissionListTableData Get_CompleteData(int group) { return dic_Completedata[group]; }
public MissionListTableData Get_Data(int group, int id) { return dic_alldatas[group][id]; }
}

View File

@ -63,7 +63,6 @@ public class Lobby_Bundle
if (!gos_noti[4].activeSelf) gos_noti[4].SetActive(MyValue.CanGetMemoryForestReward());
gos_noti[5].SetActive(sdata.CanShow_ShopAD());
gos_noti[7].SetActive(false);
gos_noti[9].SetActive(sdata.CanGet_MissionDaily() || sdata.CanGet_MissionRepeat() || sdata.CanGet_MissionAchi(-1));
gos_noti[10].SetActive(TitleGetUI.list_gettitle.Count > 0);
gos_noti[12].SetActive(sdata.ExistCanGetPass());

View File

@ -25,5 +25,12 @@ public class MissionCard : CardBase
public virtual void OnClick_GetReward()
{
var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.CanGet_Mission(m_Data.n_MissionGroupId, m_Data.n_MissionIndex))
{
Popup.Ins.Set(ePopupType.One, 174, null, null, "미션 보상 받을 수 있음");
}
else
Popup.Ins.Set(ePopupType.One, 174, null, null, "미션 보상 받을 수 없음");
}
}

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
public class MissionUI : uScrollViewMgr
{
public TabUIBase m_Tab;
public MissionCard m_Complete;
List<TabUIData> list_tabData = new List<TabUIData>
{
@ -22,6 +23,7 @@ public class MissionUI : uScrollViewMgr
public override void Set_UI()
{
m_Complete.Set(table_missionlist.Ins.Get_CompleteData(m_Tab.Get_Index()));
Set_ScrollView(table_missionlist.Ins.Get_DataList(m_Tab.Get_Index()));
}
}