코스튬 테이블 추가, 테이블에서 캐릭터 불러오기, 서버 장착에 코스튬 추가

This commit is contained in:
Ino 2024-12-28 13:54:50 +09:00
parent 84594b87a2
commit ad52b4b639
15 changed files with 8297 additions and 16 deletions

View File

@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 209441e030e4de748ac5f5c7a50771c0
m_currentHash:
serializedVersion: 2
Hash: e4e2986d535085f1b60f2c3ee39af48a
Hash: d008caf20abf3216730826d7c8eb0df2
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 1
m_BundleLocalCatalog: 0

View File

@ -0,0 +1,26 @@
[
{
"n_CostumeID": "코스튬ID",
"s_Image": "일러스트",
"s_Prefab": "프리팹",
"exception": "참고용 텍스트"
},
{
"n_CostumeID": "110001",
"s_Image": "01 Ai 01",
"s_Prefab": "Ai01",
"exception": "아이 교복"
},
{
"n_CostumeID": "110002",
"s_Image": "01 Ai 02",
"s_Prefab": "Ai02",
"exception": "아이 비키니"
},
{
"n_CostumeID": "110003",
"s_Image": "01 Ai 03",
"s_Prefab": "Ai03",
"exception": "아이 파자마"
}
]

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6ea8217e5232f0d4280e8125bdafb1a5
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2e66f4c5abf126544a0865eb45330437
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -37,6 +37,7 @@ GameObject:
- component: {fileID: -8518393941841301818}
- component: {fileID: -6382248281986488679}
- component: {fileID: -281431134350910714}
- component: {fileID: 1888006685352618916}
- component: {fileID: 2534282277955434348}
- component: {fileID: 5549183088889209134}
- component: {fileID: -295535229374951711}
@ -459,6 +460,19 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_json: {fileID: 4900000, guid: f1938cb3cee97c646b60a2770e87948f, type: 3}
--- !u!114 &1888006685352618916
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5043163894663193716}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3dee5d3380937844d9e043b9cf10c31d, type: 3}
m_Name:
m_EditorClassIdentifier:
m_json: {fileID: 4900000, guid: 6ea8217e5232f0d4280e8125bdafb1a5, type: 3}
--- !u!114 &2534282277955434348
MonoBehaviour:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a0a1ac319e77ef140b43b984d481c840
timeCreated: 1484403937
licenseType: Store
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,9 +0,0 @@
using UnityEngine;
public class PCCostumeSetting : MonoBehaviour
{
[Header("Root Bone, 기본은 Root_M")]
public Transform Root_M;
public Transform Hair_Root;
public Transform Knee_L;
}

View File

@ -13,8 +13,9 @@ public class PCInfo : MonoBehaviourSingletonTemplate<PCInfo>
// PC
var pcid = sdata.Get_EqiupmentEquip(eItem.PC);
var pctable = table_classconfig.Ins.Get_Data_orNull(pcid);
var pcprefab = "MainPC";
AddrResourceMgr.Ins.LoadObject<GameObject>($"Assets/Res_Addr/PC/{pcprefab}.prefab", handle =>
var costumeid = sdata.Get_EqiupmentEquip(eItem.PCCostume);
var costumetable = table_costumelist.Ins.Get_Data_orNull(costumeid);
AddrResourceMgr.Ins.LoadObject<GameObject>($"Assets/Res_Addr/PC/{costumetable.s_Prefab}.prefab", handle =>
{
if (handle.IsDone && handle.Status == AsyncOperationStatus.Succeeded)
{
@ -22,7 +23,7 @@ public class PCInfo : MonoBehaviourSingletonTemplate<PCInfo>
AddrResourceMgr.Ins.Set_AddressableReleaseSelf(pc.gameObject);
pc.Set(_IsEnemy, null, sdata, pcid, true);
pc.Set_MyPet(null);
ActorInfo.Ins.Add_Actor(pc, _IsEnemy ? eRole.EnemyPC : eRole.PC, 0, pcprefab);
ActorInfo.Ins.Add_Actor(pc, _IsEnemy ? eRole.EnemyPC : eRole.PC, 0, costumetable.s_Prefab);
var chapter = curMapData.n_MapID;
// Pets -> 2024. 9. 21 펫은 한 마리로 변경

View File

@ -2269,6 +2269,7 @@ public class SD_Equip
Equip = new Dictionary<eItem, ObscuredInt>
{
[eItem.PC] = table_GlobalValue.Ins.Get_Int("n_FirstClassID"),
[eItem.PCCostume] = 110001, // table_GlobalValue.Ins.Get_Int("n_FirstPCCostumeID"),
[eItem.Weapon] = 0,
[eItem.WeaponCostume] = 0,
[eItem.Armor] = 0,

View File

@ -0,0 +1,52 @@
using CodeStage.AntiCheat.ObscuredTypes;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
[Serializable]
public class CostumeListTableData : TableDataBase
{
ObscuredInt _CostumeID;
public int n_CostumeID
{
get { return _CostumeID; }
set { _CostumeID = value; _CostumeID.RandomizeCryptoKey(); }
} // 클래스 ID
public string s_Image, s_Prefab;
public override string Get_Name() { return table_itemlist.Ins.Get_ItemName(n_CostumeID); }
}
public class table_costumelist : table_missionbase
{
public static table_costumelist Ins;
List<CostumeListTableData> tableDatas;
Dictionary<int, CostumeListTableData> dic_Data = new Dictionary<int, CostumeListTableData>();
protected override void Awake()
{
base.Awake();
Ins = this;
// TODO 정인호 : 임의로 만든 json 파일 오류 처리 (정식에선 지워야함)
int startIndex = json_last.IndexOf(","); // 첫 번째 객체 시작
int endIndex = json_last.IndexOf(",") + 1; // 첫 번째 객체 끝
json_last = json_last.Remove(startIndex, endIndex - startIndex);
}
protected override void Start()
{
tableDatas = JsonConvert.DeserializeObject<List<CostumeListTableData>>(json_last);
for (int i = 0; i < Get_DataList().Count; i++)
{
var temp = Get_DataList()[i];
dic_Data.Add(temp.n_CostumeID, temp);
}
base.Start();
}
public CostumeListTableData Get_Data_orNull(int id) { return dic_Data[id]; }
public List<CostumeListTableData> Get_DataList() { return tableDatas; }
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 100b8ac30f1e90c42a6579ed6b552453
guid: 3dee5d3380937844d9e043b9cf10c31d
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@ -233,7 +233,7 @@ public enum eItem
// 뽑기권
AllGambleTicket, WeaponTicket, RingTicket, NeckTicket, BootsTicket, FairyTicket, MagicTicket, PetTicket,
Exp,
PC, Weapon, Armor, Helmet, Extra, Necklace, Ring,
PC, PCCostume, Weapon, Armor, Helmet, Extra, Necklace, Ring,
Fairy, WeaponCostume, Pet, Farmer, Book, Page, Food, Seed,
Title, Inven, Pass, Potion, Relic,
Heart, MobDropItem,

View File

@ -47,7 +47,7 @@ public class SettingsMain : MonoBehaviourSingletonTemplate<SettingsMain>
if (pcdata != null)
{
AddrResourceMgr.Ins.LoadObject<GameObject>("Assets/Res_Addr/PC/MainPC.prefab", handle =>
AddrResourceMgr.Ins.LoadObject<GameObject>("Assets/Res_Addr/PC/Ai01.prefab", handle =>
{
m_Actor = DSUtil.Get_Clone<Actor>(handle.Result);
m_Actor.Set(false, null, new ServerData(), pcdata.n_ClassID, false);