서버 아이템 획득 및 사용 클라와 똑같이
This commit is contained in:
parent
95b3255c6f
commit
19e496144b
|
|
@ -233,12 +233,61 @@ function Get_Return(errorval, add) {
|
|||
}
|
||||
*/
|
||||
}
|
||||
function Add_Item(urod, itemid, amount, isCheat)
|
||||
function Add_Item(itemtable, urod, itemid, amount, isCheat)
|
||||
{
|
||||
if (!urod.Item[itemid])
|
||||
urod.Item[itemid] = [0,0,0];
|
||||
var itemdata = itemtable.find(f => f.n_ItemID === itemid);
|
||||
if (!itemdata) {
|
||||
log.error("Add_Item - Invalid item ID: " + itemid);
|
||||
return;
|
||||
}
|
||||
|
||||
log.info("add item : " + itemid + ', ' + amount + ", " + itemdata.e_ItemType);
|
||||
|
||||
switch (itemdata.e_ItemType)
|
||||
{
|
||||
default:
|
||||
if (!urod.Item[itemid]) urod.Item[itemid] = [0, 0, 0];
|
||||
urod.Item[itemid][0] += amount;
|
||||
if (!isCheat) urod.Item[itemid][1] += amount; // 총 획득량
|
||||
break;
|
||||
|
||||
case "Weapon":
|
||||
case "Armor":
|
||||
case "Helmet":
|
||||
case "Extra":
|
||||
case "Necklace":
|
||||
case "Ring":
|
||||
if (!urod.Equipment[itemid]) urod.Equipment[itemid] = [0, 0, 0];
|
||||
urod.Equipment[itemid][0] += amount;
|
||||
Add_Collection(urod, itemid, amount);
|
||||
break;
|
||||
|
||||
case "Skill":
|
||||
if (!urod.Skill[itemid]) urod.Skill[itemid] = [amount - 1,1,0]; // 레벨 증가
|
||||
else urod.Skill[itemid][0] += amount;
|
||||
break;
|
||||
|
||||
case "PC":
|
||||
if (!urod.PC.Obtain.includes(itemid))
|
||||
urod.PC.Obtain.push(itemid);
|
||||
break;
|
||||
|
||||
case "Pet":
|
||||
if (!urod.Pet[itemid]) urod.Pet[itemid] = [0, 1]; // [레벨, 획득 수]
|
||||
urod.Pet[itemid][0] += amount;
|
||||
break;
|
||||
|
||||
case "Enchant":
|
||||
if (!urod.Enchant[itemid]) urod.Enchant[itemid] = [0, 0, 0, 0];
|
||||
urod.Enchant[itemid][0] += amount;
|
||||
urod.Enchant[itemid][2] += amount;
|
||||
break;
|
||||
|
||||
case "Relic":
|
||||
if (!urod.Relic[itemid]) urod.Relic[itemid] = [0, 0, 0];
|
||||
urod.Relic[itemid][0] += amount;
|
||||
break;
|
||||
}
|
||||
}
|
||||
function Use_Item(urod, itemid, amount)
|
||||
{
|
||||
|
|
@ -251,6 +300,47 @@ function Use_Item(urod, itemid, amount)
|
|||
return true;
|
||||
}
|
||||
}
|
||||
else if (urod.Equipment[itemid])
|
||||
{
|
||||
if (urod.Equipment[itemid][0] >= amount)
|
||||
{
|
||||
urod.Equipment[itemid][0] -= amount;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (urod.Skill[itemid])
|
||||
{
|
||||
if (urod.Skill[itemid][0] >= amount)
|
||||
{
|
||||
urod.Skill[itemid][0] -= amount;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (urod.Pet[itemid])
|
||||
{
|
||||
if (urod.Pet[itemid][0] >= amount)
|
||||
{
|
||||
urod.Pet[itemid][0] -= amount;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (urod.Enchant[itemid])
|
||||
{
|
||||
if (urod.Enchant[itemid][0] >= amount)
|
||||
{
|
||||
urod.Enchant[itemid][0] -= amount;
|
||||
urod.Enchant[itemid][3] += amount;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (urod.Relic[itemid])
|
||||
{
|
||||
if (urod.Relic[itemid][0] >= amount)
|
||||
{
|
||||
urod.Relic[itemid][0] -= amount;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function Add_MissionCount(table, urod, purpose, conditionvalue, count, setValue) {
|
||||
|
|
@ -264,7 +354,7 @@ function Add_MissionCount(table, urod, purpose, conditionvalue, count, setValue)
|
|||
if (table[i].e_MissionConditionType == purpose)
|
||||
{
|
||||
matchingMissions.push(table[i]);
|
||||
log.info(purpose + " : " + table[i].e_MissionConditionType + ", " + table[i].n_MissionGroupId + ", " + table[i].n_MissionIndex);
|
||||
//log.info(purpose + " : " + table[i].e_MissionConditionType + ", " + table[i].n_MissionGroupId + ", " + table[i].n_MissionIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -292,6 +382,11 @@ function Add_MissionCount(table, urod, purpose, conditionvalue, count, setValue)
|
|||
if (guideData && guideData.e_MissionConditionType == purpose)
|
||||
urod.Common[11] += count;
|
||||
}
|
||||
function Add_Collection(urod, id, count)
|
||||
{
|
||||
if (!urod.Collection[id]) urod.Collection[id] = 0;
|
||||
urod.Collection[id] += count;
|
||||
}
|
||||
function Add_MobCollection(urod, id, count)
|
||||
{
|
||||
if (!urod.MobKill[id]) urod.MobKill[id] = 0;
|
||||
|
|
@ -307,7 +402,7 @@ function Get_Exp(lv) {
|
|||
handlers.Save_CheatItem = function(args)
|
||||
{
|
||||
var urod = Get_JsonUserData();
|
||||
Add_Item(urod, args.ID, args.Amount, true);
|
||||
Add_Item(Get_ItemTable(), urod, args.ID, args.Amount, true);
|
||||
Set_JsonUserData(urod);
|
||||
}
|
||||
|
||||
|
|
@ -325,6 +420,7 @@ handlers.Get_MailReward = function(args)
|
|||
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data;
|
||||
if (!CheckNullOrEmpty(userdata.Mail))
|
||||
{
|
||||
var itemtable = Get_ItemTable();
|
||||
var urod = Get_JsonUserData();
|
||||
var mailjson = JSON.parse(userdata.Mail.Value);
|
||||
var existmail = false;
|
||||
|
|
@ -335,7 +431,7 @@ handlers.Get_MailReward = function(args)
|
|||
if (maildate.getTime() === getdate.getTime())
|
||||
{
|
||||
existmail = true;
|
||||
Add_Item(urod, mailjson[i].ItemID, mailjson[i].Amount);
|
||||
Add_Item(itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount);
|
||||
delete mailjson[i];
|
||||
break;
|
||||
}
|
||||
|
|
@ -362,10 +458,11 @@ handlers.Get_AllMail = function(args)
|
|||
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data;
|
||||
if (!CheckNullOrEmpty(userdata.Mail))
|
||||
{
|
||||
var itemtable = Get_ItemTable();
|
||||
var urod = Get_JsonUserData();
|
||||
var mailjson = JSON.parse(userdata.Mail.Value);
|
||||
for (var i in mailjson)
|
||||
Add_Item(urod, mailjson[i].ItemID, mailjson[i].Amount);
|
||||
Add_Item(itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount);
|
||||
|
||||
server.UpdateUserData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"Mail": "[]"} });
|
||||
Set_JsonUserData(urod);
|
||||
|
|
@ -382,6 +479,7 @@ handlers.Save_StageResult = function(args) {
|
|||
|
||||
var urod = Get_JsonUserData();
|
||||
var table = Get_MissionTable();
|
||||
var itemtable = Get_ItemTable();
|
||||
|
||||
// 경험치 처리
|
||||
urod.PC.Exp += args.Exp;
|
||||
|
|
@ -395,10 +493,7 @@ handlers.Save_StageResult = function(args) {
|
|||
var itemId = key;
|
||||
var itemCount = items[key];
|
||||
|
||||
if (!urod.Item[itemId]) urod.Item[itemId] = [0, 0, 0];
|
||||
|
||||
urod.Item[itemId][0] += itemCount;
|
||||
urod.Item[itemId][1] += itemCount;
|
||||
Add_Item(itemtable, urod, itemId, itemCount);
|
||||
|
||||
Add_MissionCount(table, urod, "TAKE_GOODS", itemId, itemCount, false);
|
||||
Add_MissionCount(table, urod, "TAKE_GOODS_LIMIT", itemId, itemCount, false);
|
||||
|
|
@ -440,8 +535,6 @@ handlers.Save_StageResult = function(args) {
|
|||
Add_MissionCount(table, urod, "KILL_MONSTER_GRADE_ACC", 2, elitemobcount, false);
|
||||
Add_MissionCount(table, urod, "KILL_MONSTER_GRADE_ACC", 3, bossmobcount, false);
|
||||
|
||||
|
||||
|
||||
Set_JsonUserData(urod);
|
||||
return Get_Return(0);
|
||||
}
|
||||
|
|
@ -1169,6 +1262,11 @@ function Get_CouponTable()
|
|||
var table = JSON.parse(server.GetTitleInternalData("CouponTable").Data.CouponTable);
|
||||
return table.servertable_coupon;
|
||||
}
|
||||
function Get_ItemTable()
|
||||
{
|
||||
var titleData = server.GetTitleInternalData({ Keys: ["ItemTable"] });
|
||||
return JSON.parse(titleData.Data.ItemTable);
|
||||
}
|
||||
function Get_ShopTable()
|
||||
{
|
||||
var titleData = server.GetTitleInternalData({ Keys: ["ShopTable"] });
|
||||
|
|
|
|||
|
|
@ -1945,7 +1945,7 @@ public partial class ServerData
|
|||
Equipment.Add(key, new List<ObscuredDouble> { amount, 0, 0 });
|
||||
else
|
||||
Equipment[key][0] += amount;
|
||||
Equipment[key][1].RandomizeCryptoKey();
|
||||
Equipment[key][0].RandomizeCryptoKey();
|
||||
break;
|
||||
|
||||
case eItem.Skill: Add_Skill(id, (int)amount); break;
|
||||
|
|
@ -2042,7 +2042,7 @@ public partial class ServerData
|
|||
{
|
||||
Enchant[key][0] -= amount;
|
||||
Enchant[key][0].RandomizeCryptoKey();
|
||||
Enchant[key][3] -= amount;
|
||||
Enchant[key][3] += amount;
|
||||
Enchant[key][3].RandomizeCryptoKey();
|
||||
}
|
||||
break;
|
||||
|
|
@ -2068,7 +2068,6 @@ public partial class ServerData
|
|||
}
|
||||
public double Get_ItemAmount(int id)
|
||||
{
|
||||
var itemdata = table_itemlist.Ins.Get_Data(id);
|
||||
var key = Get_Key(id);
|
||||
if (Item.ContainsKey(key)) return Item[key][0];
|
||||
else if (Equipment.ContainsKey(key)) return Equipment[key][0];
|
||||
|
|
|
|||
Loading…
Reference in New Issue