Save_PC_MenuBack

This commit is contained in:
Ino 2025-07-30 09:23:52 +09:00
parent 40f048b7c4
commit 112c4a4e7d
14 changed files with 85 additions and 469 deletions

View File

@ -793,6 +793,7 @@ handlers.Save_PC_MenuBack = function(args)
var urod = Get_JsonUserData(readonlydata); var urod = Get_JsonUserData(readonlydata);
var table = Get_MissionTable(); var table = Get_MissionTable();
// 각성
var awakenData = args.AwakenData; var awakenData = args.AwakenData;
var awakenupgradeid = Get_GlobalValue_nValue("AWAKEN_GOODS_UPGRADE"); var awakenupgradeid = Get_GlobalValue_nValue("AWAKEN_GOODS_UPGRADE");
var awakenUpgradeTable = Get_AwakenUpgradeTable(); var awakenUpgradeTable = Get_AwakenUpgradeTable();
@ -852,6 +853,21 @@ handlers.Save_PC_MenuBack = function(args)
for (var id in useawakenMatIds) for (var id in useawakenMatIds)
rtn_awakenMatIds.push({ itemid : parseInt(id), amount : Get_ItemAmount(urod, id) }); rtn_awakenMatIds.push({ itemid : parseInt(id), amount : Get_ItemAmount(urod, id) });
// 코스튬
if (IsObtainItem(urod, args.CostumeID))
urod.Equip.Equip["PCCostume"] = args.CostumeID;
// 일꾼
if (IsObtainItem(urod, args.WorkerID))
urod.Equip.Equip["Worker"] = args.WorkerID;
// 직업
if (IsObtainItem(urod, args.JobID))
urod.Equip.Equip["PC"] = args.JobID;
// 초월 프리셋
urod.Equip.LimitPreset = args.Preset;
Set_JsonUserData(urod); Set_JsonUserData(urod);
return Get_Return(0, { return Get_Return(0, {
awakekMats : rtn_awakenMatIds, awakekMats : rtn_awakenMatIds,
@ -1099,106 +1115,6 @@ handlers.Save_PC_BuyJob = function(args)
return Get_Return(2); // 재화 부족 return Get_Return(2); // 재화 부족
} }
} }
handlers.Save_PC_EquipJob = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
if (!urod.PC.Obtain.includes(args.JobID))
return Get_Return(1); // 없는 직업
urod.Equip.Equip["PC"] = args.JobID;
Set_JsonUserData(urod);
return Get_Return(0);
}
handlers.Save_PC_AwakenLvUp = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
var global = Get_GlobalValueTable();
var matdata = global.find(f => f.s_ID == "AWAKEN_GOODS_UPGRADE");
if (!matdata) return Get_Return(1); // 설정 누락
var materialId = matdata.n_Value;
var awakenupgradetable = Get_AwakenUpgradeTable();
var audata = awakenupgradetable.find(f=>f.n_AwakenStep == urod.Awaken[args.AwakenStat].Lv);
// 각성 경험치가 n_MaxUpgradeLevel 보다 작으면 가능
if (urod.Awaken[args.AwakenStat].Exp < audata.n_MaxUpgradeLevel)
{
var price = Get_K_Value(audata.n_AwakenStep, audata.f_BalanceConstant, audata.n_DefaultUpgradeCostValue, audata.f_CountPerUpgradeCostValue);
//log.info("강화 가격 : " + price)
if (Use_Item(Get_MissionTable(), urod, materialId, price))
{
++urod.Awaken[args.AwakenStat].Exp;
Set_JsonUserData(urod);
return Get_Return(0);
}
else
return Get_Return(2);
}
else
return Get_Return(3);
}
handlers.Save_PC_Awaken = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
var awakenupgradetable = Get_AwakenUpgradeTable();
var audata = awakenupgradetable.find(f=>f.n_AwakenStep == urod.Awaken[args.AwakenStat].Lv);
// 각성 경험치가 n_MaxUpgradeLevel 보다 같으면 가능
if (urod.Awaken[args.AwakenStat].Exp >= audata.n_MaxUpgradeLevel)
{
// 다음 각성 단계가 있어야 각성 가능
var nextaudata = awakenupgradetable.find(f=>f.n_AwakenStep == urod.Awaken[args.AwakenStat].Lv + 1);
if (nextaudata)
{
var matkey = "";
switch (args.AwakenStat)
{
case "STR": matkey = "AWAKEN_GOODS_STR"; break;
case "DEX": matkey = "AWAKEN_GOODS_DEX"; break;
case "INT": matkey = "AWAKEN_GOODS_INT"; break;
case "LUK": matkey = "AWAKEN_GOODS_LUK"; break;
}
var global = Get_GlobalValueTable();
var matdata = global.find(f => f.s_ID == matkey);
if (!matdata) return Get_Return(1); // 설정 누락
var materialId = matdata.n_Value;
//log.info("필요한 재화 " + materialId + ", 필요한 갯수 " + audata.n_AwakenGoodsCost);
if (Use_Item(Get_MissionTable(), urod, materialId, audata.n_AwakenGoodsCost))
{
++urod.Awaken[args.AwakenStat].Lv;
urod.Awaken[args.AwakenStat].Exp = 0;
Set_JsonUserData(urod);
return Get_Return(0);
}
else
return Get_Return(2);
}
else
return Get_Return(4);
}
else
return Get_Return(3);
}
handlers.Save_PC_LimitLvUp = function(args) handlers.Save_PC_LimitLvUp = function(args)
{ {
@ -1338,18 +1254,6 @@ handlers.Save_PC_LimitSlotLock = function(args)
else else
return Get_Return(1); return Get_Return(1);
} }
handlers.Save_PC_LimitPreset = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
urod.Equip.LimitPreset = args.Preset;
Set_JsonUserData(urod);
return Get_Return(0);
}
handlers.Save_Equipment_Craft = function(args) handlers.Save_Equipment_Craft = function(args)
{ {
@ -1470,48 +1374,6 @@ handlers.Save_Equipment_Smelting = function(args)
} }
return Get_Return(1); return Get_Return(1);
} }
handlers.Save_Equipment_Smelting = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
if (!urod.Equipment[args.ItemID]) return Get_Return(3);
var lv = urod.Equipment[args.ItemID][1];
// 영웅 초월 레벨에 따른 레벨 제한 확인
var llv = urod.PC.LLv > 9 ? 9 : urod.PC.LLv;
var limitData = Get_BreakingLimitTable().find(f=>f.n_LimitLv == llv);
if (lv >= limitData.n_Equip_Upgrade_Limit) return Get_Return(2);
// 다음 강화 가능한 지 확인
var smeltingTable = Get_EquipSmeltingTable();
var nextSmeltingData = smeltingTable.find(f=>f.n_SmeltingStep == lv + 1);
if (!nextSmeltingData) return Get_Return(2);
// 재료 확인
var table = Get_MissionTable();
var smeltingData = smeltingTable.find(f=>f.n_SmeltingStep == lv);
if (Use_Item(table, urod, args.ItemID, smeltingData.n_UpgradePrice))
{
// 확률 적용
if (IsRateTrue1000000(smeltingData.n_NextStepRate))
{
++urod.Equipment[args.ItemID][1]; // 제련 레벨
Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_ACC", 0, 1);
Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_ALL", 0, 1);
Add_MissionCount(table, urod, "EQUIP_ITEM_UPGRADE_LIMIT", 0, 1);
Set_JsonUserData(urod);
return Get_Return(0);
}
++urod.Equipment[args.ItemID][2]; // 제련 시도 횟수
return Get_Return(4);
}
return Get_Return(1);
}
handlers.Save_Equipment_Decomposition = function(args) handlers.Save_Equipment_Decomposition = function(args)
{ {
var readonlydata = Get_UserReadOnlyData(); var readonlydata = Get_UserReadOnlyData();
@ -2284,22 +2146,6 @@ handlers.Save_GachaBonus = function(args)
return Get_Return(1); return Get_Return(1);
} }
handlers.Save_Costume_Equip = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
if (IsObtainItem(urod, args.CostumeID))
{
urod.Equip.Equip["PCCostume"] = args.CostumeID;
Set_JsonUserData(urod);
return Get_Return(0);
}
return Get_Return(1);
}
handlers.Save_Costume_Buy = function(args) handlers.Save_Costume_Buy = function(args)
{ {
var readonlydata = Get_UserReadOnlyData(); var readonlydata = Get_UserReadOnlyData();
@ -2321,22 +2167,6 @@ handlers.Save_Costume_Buy = function(args)
return Get_Return(1); return Get_Return(1);
} }
handlers.Save_Worker_Equip = function(args)
{
var readonlydata = Get_UserReadOnlyData();
var error = Get_Error(readonlydata, args.Token);
if (error < 0) return Get_Return(error);
var urod = Get_JsonUserData(readonlydata);
if (IsObtainItem(urod, args.WorkerID))
{
urod.Equip.Equip["Worker"] = args.WorkerID;
Set_JsonUserData(urod);
return Get_Return(0);
}
return Get_Return(1);
}
handlers.Save_Worker_Buy = function(args) handlers.Save_Worker_Buy = function(args)
{ {
var readonlydata = Get_UserReadOnlyData(); var readonlydata = Get_UserReadOnlyData();

View File

@ -1837,13 +1837,6 @@ public partial class ServerData
break; break;
case eItem.Fairy:
//var equipment = Equipment[_itemdata.ItemType.ToString()].Find(f => f[0] == _itemdata.Get_ID());
//if (equipment != null) Check_EquipmentGet(equipment, _itemdata.Amount);
//if (MessageInfo.Ins != null && _itemdata.Grade >= eItemGrade.Legend)
// MessageInfo.Ins.Add_NotiToChatServer(DSUtil.Format("{0} {1}{2}[-] 획득", ServerInfo.Ins.UserName, MyValue.Get_GradeColor(_itemdata.Grade), _itemdata.Name));
//if (GameUI.Ins != null) GameUI.Ins.Add_newItem(_itemdata.ItemType, _itemdata.Get_ID());
break;
case eItem.Skill: // ID, 갯수, 레벨, 특성1, 특성2 case eItem.Skill: // ID, 갯수, 레벨, 특성1, 특성2
//var magicamount = (int)_itemdata.Amount; //var magicamount = (int)_itemdata.Amount;
//var magic = Skill.Find(f => f[0] == _itemdata.Get_ID()); //var magic = Skill.Find(f => f[0] == _itemdata.Get_ID());
@ -2344,7 +2337,6 @@ public class SD_Equip
[eItem.Necklace] = 0, [eItem.Necklace] = 0,
[eItem.Ring] = 0, [eItem.Ring] = 0,
[eItem.Pet] = table_GlobalValue.Ins.Get_Int("n_FirstEquipPet"), [eItem.Pet] = table_GlobalValue.Ins.Get_Int("n_FirstEquipPet"),
[eItem.Fairy] = 0,
[eItem.Farmer] = 0, [eItem.Farmer] = 0,
[eItem.Worker] = 70001, [eItem.Worker] = 70001,
}; };

View File

@ -859,7 +859,7 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_StageResult(_act); }, 2f); Set_Coroutine(() => { Save_StageResult(_act); }, 2f);
}); });
} }
public void Save_PC_MenuBack(CS_AwakenData awakenData, Action<SC_PCMenuBackResult> _act) public void Save_PC_MenuBack(int costumeid, int workerid, int jobid, int preset, CS_AwakenData awakenData, Action<SC_PCMenuBackResult> _act)
{ {
NetWait.Ins.Set(true); NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
@ -869,6 +869,10 @@ public class ServerInfo : MyCoroutine
FunctionParameter = new FunctionParameter = new
{ {
Token = m_LoginInfo.EntityToken.EntityToken, Token = m_LoginInfo.EntityToken.EntityToken,
CostumeID = costumeid,
WorkerID = workerid,
JobID = jobid,
Preset = preset,
AwakenData = awakenData AwakenData = awakenData
} }
}, },
@ -889,11 +893,11 @@ public class ServerInfo : MyCoroutine
} }
} }
else else
Set_Coroutine(() => { Save_PC_MenuBack(awakenData, _act); }, 2f); Set_Coroutine(() => { Save_PC_MenuBack(costumeid, workerid, jobid, preset, awakenData, _act); }, 2f);
}, },
fail => fail =>
{ {
Set_Coroutine(() => { Save_PC_MenuBack(awakenData, _act); }, 2f); Set_Coroutine(() => { Save_PC_MenuBack(costumeid, workerid, jobid, preset, awakenData, _act); }, 2f);
}); });
} }
@ -1086,113 +1090,6 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_PC_BuyJob(jobid, _act); }, 2f); Set_Coroutine(() => { Save_PC_BuyJob(jobid, _act); }, 2f);
}); });
} }
public void Save_PC_EquipJob(int jobid, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
JobID = jobid,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var error = MyErrorCheck(result.FunctionResult.ToString());
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900009); break;
}
}
else
Set_Coroutine(() => { Save_PC_EquipJob(jobid, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_PC_EquipJob(jobid, _act); }, 2f);
});
}
public void Save_PC_AwakenLvUp(eStat stat, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
AwakenStat = stat,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var error = MyErrorCheck(result.FunctionResult.ToString());
// (0 성공, 1 실패(재화 id 없음), 2 실패 (재화 부족), 3 실패 (더 이상 강화 불가))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900005); break;
case 2: ToastUI.Ins.Set(388); break;
case 3: ToastUI.Ins.Set(236); break;
}
}
else
Set_Coroutine(() => { Save_PC_AwakenLvUp(stat, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_PC_AwakenLvUp(stat, _act); }, 2f);
});
}
public void Save_PC_Awaken(eStat stat, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
AwakenStat = stat,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var error = MyErrorCheck(result.FunctionResult.ToString());
// (0 성공, 1 실패(재화 id 없음), 2 실패 (재화 부족), 3, 실패 (각성 레벨 부족), 4 실패 (더 이상 각성 불가))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900005); break;
case 2: ToastUI.Ins.Set(388); break;
case 3: ToastUI.Ins.Set(263); break;
case 4: ToastUI.Ins.Set(999900010); break;
}
}
else
Set_Coroutine(() => { Save_PC_Awaken(stat, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_PC_Awaken(stat, _act); }, 2f);
});
}
public void Save_PC_LimitLvUp(Action _act) public void Save_PC_LimitLvUp(Action _act)
{ {
@ -1308,41 +1205,6 @@ public class ServerInfo : MyCoroutine
Set_Coroutine(() => { Save_PC_LimitSlotLock(preset, slot, _act); }, 2f); Set_Coroutine(() => { Save_PC_LimitSlotLock(preset, slot, _act); }, 2f);
}); });
} }
public void Save_PC_LimitPreset(int preset, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
Preset = preset,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 나머지는 잘못된 요청)
switch (error)
{
case 0: _act?.Invoke(); break;
default: ToastUI.Ins.Set(999900002); break;
}
}
else
Set_Coroutine(() => { Save_PC_LimitPreset(preset, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_PC_LimitPreset(preset, _act); }, 2f);
});
}
public void Save_Equipment_Craft(int itemid, Action _act) public void Save_Equipment_Craft(int itemid, Action _act)
{ {
@ -2132,41 +1994,6 @@ public class ServerInfo : MyCoroutine
}); });
} }
public void Save_Costume_Equip(int id, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
CostumeID = id,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (없는 코스튬))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900032); break;
}
}
else
Set_Coroutine(() => { Save_Costume_Equip(id, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Costume_Equip(id, _act); }, 2f);
});
}
public void Save_Costume_Buy(int id, Action _act) public void Save_Costume_Buy(int id, Action _act)
{ {
NetWait.Ins.Set(true); NetWait.Ins.Set(true);
@ -2204,41 +2031,6 @@ public class ServerInfo : MyCoroutine
}); });
} }
public void Save_Worker_Equip(int id, Action _act)
{
NetWait.Ins.Set(true);
PlayFabClientAPI.ExecuteCloudScript(new ExecuteCloudScriptRequest
{
FunctionName = MethodBase.GetCurrentMethod().Name,
GeneratePlayStreamEvent = true,
FunctionParameter = new
{
Token = m_LoginInfo.EntityToken.EntityToken,
WorkerID = id,
}
},
result =>
{
if (result.Error == null)
{
NetWait.Ins.Set(false);
var str_result = result.FunctionResult.ToString();
var error = MyErrorCheck(str_result);
// (0 성공, 1 실패 (없는 일꾼))
switch (error)
{
case 0: _act?.Invoke(); break;
case 1: ToastUI.Ins.Set(999900034); break;
}
}
else
Set_Coroutine(() => { Save_Worker_Equip(id, _act); }, 2f);
},
fail =>
{
Set_Coroutine(() => { Save_Worker_Equip(id, _act); }, 2f);
});
}
public void Save_Worker_Buy(int id, Action _act) public void Save_Worker_Buy(int id, Action _act)
{ {
NetWait.Ins.Set(true); NetWait.Ins.Set(true);

View File

@ -48,7 +48,6 @@ public class ItemData
case eItem.Ring: case eItem.Ring:
case eItem.Necklace: case eItem.Necklace:
case eItem.Extra: case eItem.Extra:
case eItem.Fairy:
Lv = sdata.Get_SmeltingLv(id); Lv = sdata.Get_SmeltingLv(id);
Lv.RandomizeCryptoKey(); Lv.RandomizeCryptoKey();
TLv = sdata.Get_EquipmentTLv(ItemType, id); TLv = sdata.Get_EquipmentTLv(ItemType, id);
@ -70,9 +69,6 @@ public class ItemData
case eItem.Weapon: case eItem.Weapon:
//equipmenttabledata = table_weapon.Ins.Get_Data(ID); //equipmenttabledata = table_weapon.Ins.Get_Data(ID);
break; break;
case eItem.Fairy:
//equipmenttabledata = table_fairy.Ins.Get_Data(ID);
break;
case eItem.Pet: case eItem.Pet:
break; break;
case eItem.Skill: case eItem.Skill:
@ -135,7 +131,6 @@ public class UIItemCard : CardCoolTimeBase
case eItem.Ring: case eItem.Ring:
case eItem.Necklace: case eItem.Necklace:
case eItem.Extra: case eItem.Extra:
case eItem.Fairy:
case eItem.WeaponCostume: case eItem.WeaponCostume:
case eItem.Skill: case eItem.Skill:
case eItem.Pet: case eItem.Pet:

View File

@ -38,7 +38,7 @@ public class Lobby_Bundle
{ {
var sdata = ServerInfo.Ins.m_ServerData; var sdata = ServerInfo.Ins.m_ServerData;
gos_noti[0].SetActive(false); gos_noti[0].SetActive(false);
gos_noti[1].SetActive(GameUI.Ins.ExistNewItem(eItem.Weapon) || GameUI.Ins.ExistNewItem(eItem.Ring) || GameUI.Ins.ExistNewItem(eItem.Necklace) || GameUI.Ins.ExistNewItem(eItem.Extra) || GameUI.Ins.ExistNewItem(eItem.Fairy)); gos_noti[1].SetActive(GameUI.Ins.ExistNewItem(eItem.Weapon) || GameUI.Ins.ExistNewItem(eItem.Ring) || GameUI.Ins.ExistNewItem(eItem.Necklace) || GameUI.Ins.ExistNewItem(eItem.Extra));
gos_noti[2].SetActive(GameUI.Ins.ExistNewItem(eItem.Pet)); gos_noti[2].SetActive(GameUI.Ins.ExistNewItem(eItem.Pet));
gos_noti[3].SetActive(sdata.ExistCanCompleteBook()); gos_noti[3].SetActive(sdata.ExistCanCompleteBook());
gos_noti[7].SetActive(false); gos_noti[7].SetActive(false);

View File

@ -61,12 +61,8 @@ public class PCCostumeListUI : uScrollViewMgr
if (sdata.IsObtainItem(costumeid) && !sdata.IsEquip(eItem.PCCostume, costumeid)) if (sdata.IsObtainItem(costumeid) && !sdata.IsEquip(eItem.PCCostume, costumeid))
{ {
ServerInfo.Ins.Save_Costume_Equip(costumeid, () => sdata.Equip.Set_Equip(eItem.PCCostume, costumeid);
{ PCInfoUI.Ins.Set_UI();
sdata.Equip.Set_Equip(eItem.PCCostume, costumeid);
PCInfoUI.Ins.Set_UI();
});
} }
} }
} }

View File

@ -7,9 +7,6 @@ public class PCInfoUI_Center : UI3DModel
public TextMeshProUGUI[] texts; // 0 코스튬 이름, 1 코스튬 대사 public TextMeshProUGUI[] texts; // 0 코스튬 이름, 1 코스튬 대사
public GameObject[] gos; // 0 코스튬 착용 버튼 public GameObject[] gos; // 0 코스튬 착용 버튼
public int CostumeIdWhenEnter;
public bool firstInit = false;
CardBase SelectCard; CardBase SelectCard;
public void Set(CardBase choiceCard) public void Set(CardBase choiceCard)
@ -21,18 +18,17 @@ public class PCInfoUI_Center : UI3DModel
SelectCard = choiceCard; SelectCard = choiceCard;
SelectCard.Set_Selected(true); SelectCard.Set_Selected(true);
var costumeid = SelectCard.Get_IntData();
PCInfoUI.Ins.m_PCInfoUI_List.m_PCCostumeListUI.Select_Costume(choiceCard); PCInfoUI.Ins.m_PCInfoUI_List.m_PCCostumeListUI.Select_Costume(choiceCard);
if (!firstInit) if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.PCCostume) == 0)
{ {
firstInit = true;
m_MyPet.Set(table_petlist.Ins.Get_Data_orNull(sdata.Get_EqiupmentEquip(eItem.Pet))); m_MyPet.Set(table_petlist.Ins.Get_Data_orNull(sdata.Get_EqiupmentEquip(eItem.Pet)));
m_MyPet.Set_CardType(eUICardType.NoTouch); m_MyPet.Set_CardType(eUICardType.NoTouch);
CostumeIdWhenEnter = choiceCard.Get_IntData(); NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.PCCostume, costumeid);
} }
var costumeid = SelectCard.Get_IntData();
var costumeData = table_costumelist.Ins.Get_Data_orNull(costumeid); var costumeData = table_costumelist.Ins.Get_Data_orNull(costumeid);
texts[0].text = costumeData.Get_Name(); texts[0].text = costumeData.Get_Name();
texts[1].text = costumeData.Get_Desc(); texts[1].text = costumeData.Get_Desc();
@ -52,13 +48,5 @@ public class PCInfoUI_Center : UI3DModel
return true; return true;
} }
public void OnClick_EquipCostume()
{
if (!CanEquip()) return;
var sdata = ServerInfo.Ins.m_ServerData;
sdata.Equip.Set_Equip(eItem.PCCostume, SelectCard.Get_IntData());
PCInfoUI.Ins.Set_UI();
}
public CardBase Get_SelectCard() { return SelectCard; } public CardBase Get_SelectCard() { return SelectCard; }
} }

View File

@ -32,9 +32,11 @@ public class PCWorkerListUI : UI3DModel
SelectCard.Set_Selected(true); SelectCard.Set_Selected(true);
int workerid = SelectCard.Get_IntData(); int workerid = SelectCard.Get_IntData();
if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.PCCostume) == 0)
NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.PCCostume, workerid);
var sdata = ServerInfo.Ins.m_ServerData; var sdata = ServerInfo.Ins.m_ServerData;
if (sdata.IsEquip(eItem.PCCostume, workerid)) if (sdata.IsEquip(eItem.Worker, workerid))
DSUtil.InActivateGameObjects(gos); DSUtil.InActivateGameObjects(gos);
else if (sdata.IsObtainItem(workerid)) else if (sdata.IsObtainItem(workerid))
DSUtil.InActivateGameObjects(gos, 0); DSUtil.InActivateGameObjects(gos, 0);
@ -79,12 +81,8 @@ public class PCWorkerListUI : UI3DModel
if (sdata.IsObtainItem(id) && !sdata.IsEquip(eItem.Worker, id)) if (sdata.IsObtainItem(id) && !sdata.IsEquip(eItem.Worker, id))
{ {
ServerInfo.Ins.Save_Worker_Equip(id, () => sdata.Equip.Set_Equip(eItem.Worker, id);
{ PCInfoUI.Ins.Set_UI();
sdata.Equip.Set_Equip(eItem.Worker, id);
PCInfoUI.Ins.Set_UI();
});
} }
} }
} }

View File

@ -81,13 +81,10 @@ public class PCJobCard : CardBase
{ // 착용 여부 { // 착용 여부
if (sdata.Get_EqiupmentEquip(eItem.PC) != m_Data.n_ClassID) if (sdata.Get_EqiupmentEquip(eItem.PC) != m_Data.n_ClassID)
{ // 착용하기 { // 착용하기
ServerInfo.Ins.Save_PC_EquipJob(m_Data.n_ClassID, () => sdata.Equip.Set_Equip(eItem.PC, m_Data.n_ClassID);
{ Set_UI();
sdata.Equip.Set_Equip(eItem.PC, m_Data.n_ClassID); PCJobUI.Ins.Set();
Set_UI(); MyValue.Get_ActorStatInfoorNull(eRole.PC);
PCJobUI.Ins.Set();
MyValue.Get_ActorStatInfoorNull(eRole.PC);
});
} }
} }
else else

View File

@ -49,5 +49,8 @@ public class PCJobUI : PCUIMenu
m_PCJobUI_Class.Set(classid); m_PCJobUI_Class.Set(classid);
m_PCJobUI_Skill.Set(classid); m_PCJobUI_Skill.Set(classid);
m_PCJobUI_Top.Set(); m_PCJobUI_Top.Set();
if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.PC) == 0)
NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.PC, classid);
} }
} }

View File

@ -15,5 +15,8 @@ public class PCLimitUI : PCUIMenu
NewGameUI.Ins.m_PCUI.Set_Money(table_GlobalValue.Ins.Get_Int("n_BreakingLimitSlotMaterialID"), 0); NewGameUI.Ins.m_PCUI.Set_Money(table_GlobalValue.Ins.Get_Int("n_BreakingLimitSlotMaterialID"), 0);
m_PCLimit_Center.Set(); m_PCLimit_Center.Set();
m_PCLimitUI_Right.Set(); m_PCLimitUI_Right.Set();
if (NewGameUI.Ins.m_PCUI.Get_EnterID(eItem.Preset) == 0)
NewGameUI.Ins.m_PCUI.Set_EnterID(eItem.Preset, ServerInfo.Ins.m_ServerData.Equip.LimitPreset);
} }
} }

View File

@ -23,7 +23,7 @@ public class PCLimitUI_Right : uScrollViewMgr
m_Tab.Set_Index(ServerInfo.Ins.m_ServerData.Equip.LimitPreset - 1); m_Tab.Set_Index(ServerInfo.Ins.m_ServerData.Equip.LimitPreset - 1);
for (int i = 0; i < list_TabData.Count; i++) for (int i = 0; i < list_TabData.Count; i++)
{ {
list_TabData[i].onClick = OnClick_Preset_byTouch; list_TabData[i].onClick = OnClick_Preset;
} }
m_Tab.Set(list_TabData); m_Tab.Set(list_TabData);
OnClick_Preset(); OnClick_Preset();
@ -93,10 +93,6 @@ public class PCLimitUI_Right : uScrollViewMgr
sdata.Equip.LimitPreset.RandomizeCryptoKey(); sdata.Equip.LimitPreset.RandomizeCryptoKey();
Set_UI(); Set_UI();
} }
public void OnClick_Preset_byTouch()
{
ServerInfo.Ins.Save_PC_LimitPreset(m_Tab.Get_Index() + 1, OnClick_Preset);
}
public void OnClick_ProtectGrade(int grade) public void OnClick_ProtectGrade(int grade)
{ {

View File

@ -1,4 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
public class PCUI : BotMenuBase public class PCUI : BotMenuBase
{ {
@ -11,6 +12,9 @@ public class PCUI : BotMenuBase
new TabUIData{ n_btnName = 217, },new TabUIData{ n_btnName = 231, }, new TabUIData{ n_btnName = 217, },new TabUIData{ n_btnName = 231, },
}; };
Dictionary<eItem, int> dic_EnterID = new Dictionary<eItem, int>
{ { eItem.PCCostume, 0 }, { eItem.Worker, 0 }, { eItem.PC, 0 }, { eItem.Preset , 0 } };
public override void Set() public override void Set()
{ {
base.Set(); base.Set();
@ -22,10 +26,15 @@ public class PCUI : BotMenuBase
} }
m_Tab.Set(list_TabData); m_Tab.Set(list_TabData);
if (PCInfoUI.Ins) PCInfoUI.Ins.m_PCInfoUI_Center.firstInit = false; foreach (var key in dic_EnterID.Keys.ToList())
dic_EnterID[key] = 0;
OnClick_Tab(); OnClick_Tab();
} }
public void Set_EnterID(eItem item, int id) { dic_EnterID[item] = id; }
public int Get_EnterID(eItem item) { return dic_EnterID[item]; }
public void OnClick_Tab() public void OnClick_Tab()
{ {
for (int i = 0; i < m_PCMenu.Length; i++) for (int i = 0; i < m_PCMenu.Length; i++)
@ -33,28 +42,45 @@ public class PCUI : BotMenuBase
m_PCMenu[m_Tab.Get_Index()].Set(); m_PCMenu[m_Tab.Get_Index()].Set();
} }
CS_AwakenData emptyawaken = new CS_AwakenData();
public override void OnClick_Back() public override void OnClick_Back()
{ {
base.OnClick_Back();
var sdata = ServerInfo.Ins.m_ServerData; var sdata = ServerInfo.Ins.m_ServerData;
if (PCInfoUI.Ins.m_PCInfoUI_Center.CostumeIdWhenEnter != sdata.Get_EqiupmentEquip(eItem.PCCostume))
{
ActorInfo.Ins.Destroy_All();
CoroutineMgr.Ins.Set_Coroutine(() =>
{
PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData);
}, 0.02f);
}
//if (PCAwakenUI.isIns && PCAwakenUI.Ins.IsSendAwakenData()) bool changeCostume = Get_EnterID(eItem.PCCostume) > 0 && Get_EnterID(eItem.PCCostume) != sdata.Get_EqiupmentEquip(eItem.PCCostume);
if (PCAwakenUI.isIns) bool changeworker = Get_EnterID(eItem.Worker) > 0 && Get_EnterID(eItem.Worker) != sdata.Get_EqiupmentEquip(eItem.Worker);
bool changejob = Get_EnterID(eItem.PC) > 0 && Get_EnterID(eItem.PC) != sdata.Get_EqiupmentEquip(eItem.PC);
bool changepreset = Get_EnterID(eItem.Preset) > 0 && Get_EnterID(eItem.Preset) != sdata.Equip.LimitPreset;
bool pcawakend = PCAwakenUI.isIns && PCAwakenUI.Ins.IsSendAwakenData();
if (changeCostume || changeworker || changejob || changepreset || pcawakend)
{ {
ServerInfo.Ins.Save_PC_MenuBack(PCAwakenUI.Ins.Get_CS_AwakenData(), result => ServerInfo.Ins.Save_PC_MenuBack(sdata.Get_EqiupmentEquip(eItem.PCCostume),
sdata.Get_EqiupmentEquip(eItem.Worker),
sdata.Get_EqiupmentEquip(eItem.PC),
sdata.Equip.LimitPreset,
PCAwakenUI.isIns ? PCAwakenUI.Ins.Get_CS_AwakenData() : emptyawaken,
result =>
{ {
for (int i = 0; i < result.awakekMats.Count; i++) for (int i = 0; i < result.awakekMats.Count; i++)
sdata.Set_Item(result.awakekMats[i].itemid, result.awakekMats[i].amount); sdata.Set_Item(result.awakekMats[i].itemid, result.awakekMats[i].amount);
foreach (var item in result.awaken) sdata.Awaken[item.Key] = item.Value.Get(); foreach (var item in result.awaken) sdata.Awaken[item.Key] = item.Value.Get();
if (changeCostume || changeworker)
{
ActorInfo.Ins.Destroy_All();
CoroutineMgr.Ins.Set_Coroutine(() =>
{
PCInfo.Ins.Make_Actors(false, ServerInfo.Ins.m_ServerData);
InGameInfo.Ins.StartCam();
base.OnClick_Back();
}, 0.02f);
}
else
base.OnClick_Back();
}); });
} }
else
base.OnClick_Back();
} }
} }

View File

@ -256,7 +256,7 @@ public enum eItem
// Money // Money
Gold, Gem, WeaponStone, RingStone, NeckStone, BootsStone, FairyStone, SelectSkillShuffle, ChapterQuestShuffle, mClover, MemoryField, MemoryForest, MemoryDungeon, MemoryWitchGrade, MemoryPetBattle, Gold, Gem, WeaponStone, RingStone, NeckStone, BootsStone, FairyStone, SelectSkillShuffle, ChapterQuestShuffle, mClover, MemoryField, MemoryForest, MemoryDungeon, MemoryWitchGrade, MemoryPetBattle,
PC, PCCostume, Weapon, Armor, Helmet, Extra, Necklace, Ring, PC, PCCostume, Weapon, Armor, Helmet, Extra, Necklace, Ring,
Fairy, WeaponCostume, Pet, Worker, Farmer, Book, Page, Food, Seed, Preset, WeaponCostume, Pet, Worker, Farmer, Book, Page, Food, Seed,
Title, Inven, Pass, Potion, Relic, Essence, Title, Inven, Pass, Potion, Relic, Essence,
// 상점 // 상점
Shop, Shop,