서버 아이템 획득 및 사용 클라와 똑같이
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])
|
var itemdata = itemtable.find(f => f.n_ItemID === itemid);
|
||||||
urod.Item[itemid] = [0,0,0];
|
if (!itemdata) {
|
||||||
urod.Item[itemid][0] += amount;
|
log.error("Add_Item - Invalid item ID: " + itemid);
|
||||||
if (!isCheat) urod.Item[itemid][1] += amount; // 총 획득량
|
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)
|
function Use_Item(urod, itemid, amount)
|
||||||
{
|
{
|
||||||
|
|
@ -251,6 +300,47 @@ function Use_Item(urod, itemid, amount)
|
||||||
return true;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
function Add_MissionCount(table, urod, purpose, conditionvalue, count, setValue) {
|
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)
|
if (table[i].e_MissionConditionType == purpose)
|
||||||
{
|
{
|
||||||
matchingMissions.push(table[i]);
|
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)
|
if (guideData && guideData.e_MissionConditionType == purpose)
|
||||||
urod.Common[11] += count;
|
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)
|
function Add_MobCollection(urod, id, count)
|
||||||
{
|
{
|
||||||
if (!urod.MobKill[id]) urod.MobKill[id] = 0;
|
if (!urod.MobKill[id]) urod.MobKill[id] = 0;
|
||||||
|
|
@ -307,7 +402,7 @@ function Get_Exp(lv) {
|
||||||
handlers.Save_CheatItem = function(args)
|
handlers.Save_CheatItem = function(args)
|
||||||
{
|
{
|
||||||
var urod = Get_JsonUserData();
|
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);
|
Set_JsonUserData(urod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -325,6 +420,7 @@ handlers.Get_MailReward = function(args)
|
||||||
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data;
|
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data;
|
||||||
if (!CheckNullOrEmpty(userdata.Mail))
|
if (!CheckNullOrEmpty(userdata.Mail))
|
||||||
{
|
{
|
||||||
|
var itemtable = Get_ItemTable();
|
||||||
var urod = Get_JsonUserData();
|
var urod = Get_JsonUserData();
|
||||||
var mailjson = JSON.parse(userdata.Mail.Value);
|
var mailjson = JSON.parse(userdata.Mail.Value);
|
||||||
var existmail = false;
|
var existmail = false;
|
||||||
|
|
@ -335,7 +431,7 @@ handlers.Get_MailReward = function(args)
|
||||||
if (maildate.getTime() === getdate.getTime())
|
if (maildate.getTime() === getdate.getTime())
|
||||||
{
|
{
|
||||||
existmail = true;
|
existmail = true;
|
||||||
Add_Item(urod, mailjson[i].ItemID, mailjson[i].Amount);
|
Add_Item(itemtable, urod, mailjson[i].ItemID, mailjson[i].Amount);
|
||||||
delete mailjson[i];
|
delete mailjson[i];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -362,10 +458,11 @@ handlers.Get_AllMail = function(args)
|
||||||
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data;
|
var userdata = server.GetUserData({ PlayFabId: currentPlayerId, Keys: ["Mail"] }).Data;
|
||||||
if (!CheckNullOrEmpty(userdata.Mail))
|
if (!CheckNullOrEmpty(userdata.Mail))
|
||||||
{
|
{
|
||||||
|
var itemtable = Get_ItemTable();
|
||||||
var urod = Get_JsonUserData();
|
var urod = Get_JsonUserData();
|
||||||
var mailjson = JSON.parse(userdata.Mail.Value);
|
var mailjson = JSON.parse(userdata.Mail.Value);
|
||||||
for (var i in mailjson)
|
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": "[]"} });
|
server.UpdateUserData({ PlayFabId: currentPlayerId, Permission: "Public", Data: {"Mail": "[]"} });
|
||||||
Set_JsonUserData(urod);
|
Set_JsonUserData(urod);
|
||||||
|
|
@ -382,6 +479,7 @@ handlers.Save_StageResult = function(args) {
|
||||||
|
|
||||||
var urod = Get_JsonUserData();
|
var urod = Get_JsonUserData();
|
||||||
var table = Get_MissionTable();
|
var table = Get_MissionTable();
|
||||||
|
var itemtable = Get_ItemTable();
|
||||||
|
|
||||||
// 경험치 처리
|
// 경험치 처리
|
||||||
urod.PC.Exp += args.Exp;
|
urod.PC.Exp += args.Exp;
|
||||||
|
|
@ -394,11 +492,8 @@ handlers.Save_StageResult = function(args) {
|
||||||
for (var key in items) {
|
for (var key in items) {
|
||||||
var itemId = key;
|
var itemId = key;
|
||||||
var itemCount = items[key];
|
var itemCount = items[key];
|
||||||
|
|
||||||
if (!urod.Item[itemId]) urod.Item[itemId] = [0, 0, 0];
|
Add_Item(itemtable, urod, itemId, itemCount);
|
||||||
|
|
||||||
urod.Item[itemId][0] += itemCount;
|
|
||||||
urod.Item[itemId][1] += itemCount;
|
|
||||||
|
|
||||||
Add_MissionCount(table, urod, "TAKE_GOODS", itemId, itemCount, false);
|
Add_MissionCount(table, urod, "TAKE_GOODS", itemId, itemCount, false);
|
||||||
Add_MissionCount(table, urod, "TAKE_GOODS_LIMIT", 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", 2, elitemobcount, false);
|
||||||
Add_MissionCount(table, urod, "KILL_MONSTER_GRADE_ACC", 3, bossmobcount, false);
|
Add_MissionCount(table, urod, "KILL_MONSTER_GRADE_ACC", 3, bossmobcount, false);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Set_JsonUserData(urod);
|
Set_JsonUserData(urod);
|
||||||
return Get_Return(0);
|
return Get_Return(0);
|
||||||
}
|
}
|
||||||
|
|
@ -1169,6 +1262,11 @@ function Get_CouponTable()
|
||||||
var table = JSON.parse(server.GetTitleInternalData("CouponTable").Data.CouponTable);
|
var table = JSON.parse(server.GetTitleInternalData("CouponTable").Data.CouponTable);
|
||||||
return table.servertable_coupon;
|
return table.servertable_coupon;
|
||||||
}
|
}
|
||||||
|
function Get_ItemTable()
|
||||||
|
{
|
||||||
|
var titleData = server.GetTitleInternalData({ Keys: ["ItemTable"] });
|
||||||
|
return JSON.parse(titleData.Data.ItemTable);
|
||||||
|
}
|
||||||
function Get_ShopTable()
|
function Get_ShopTable()
|
||||||
{
|
{
|
||||||
var titleData = server.GetTitleInternalData({ Keys: ["ShopTable"] });
|
var titleData = server.GetTitleInternalData({ Keys: ["ShopTable"] });
|
||||||
|
|
|
||||||
|
|
@ -1945,7 +1945,7 @@ public partial class ServerData
|
||||||
Equipment.Add(key, new List<ObscuredDouble> { amount, 0, 0 });
|
Equipment.Add(key, new List<ObscuredDouble> { amount, 0, 0 });
|
||||||
else
|
else
|
||||||
Equipment[key][0] += amount;
|
Equipment[key][0] += amount;
|
||||||
Equipment[key][1].RandomizeCryptoKey();
|
Equipment[key][0].RandomizeCryptoKey();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case eItem.Skill: Add_Skill(id, (int)amount); 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] -= amount;
|
||||||
Enchant[key][0].RandomizeCryptoKey();
|
Enchant[key][0].RandomizeCryptoKey();
|
||||||
Enchant[key][3] -= amount;
|
Enchant[key][3] += amount;
|
||||||
Enchant[key][3].RandomizeCryptoKey();
|
Enchant[key][3].RandomizeCryptoKey();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -2068,7 +2068,6 @@ public partial class ServerData
|
||||||
}
|
}
|
||||||
public double Get_ItemAmount(int id)
|
public double Get_ItemAmount(int id)
|
||||||
{
|
{
|
||||||
var itemdata = table_itemlist.Ins.Get_Data(id);
|
|
||||||
var key = Get_Key(id);
|
var key = Get_Key(id);
|
||||||
if (Item.ContainsKey(key)) return Item[key][0];
|
if (Item.ContainsKey(key)) return Item[key][0];
|
||||||
else if (Equipment.ContainsKey(key)) return Equipment[key][0];
|
else if (Equipment.ContainsKey(key)) return Equipment[key][0];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue