pubgv3/assets/scripts/forsub/playerData.js
2022-05-30 15:51:22 +08:00

710 lines
23 KiB
JavaScript

var Utils = require("Utils");
var gameConfig = require("gameConfig");
var NetManage = require("NetManage");
var SDKManage = require("SDKManage");
var Main = require("Main");
var jcshare = require("jcfw").share;
var playerData = function () {
this.init = function () {
this.itemtype = {
hero: 3,
heroskin: 4,
};
this.node_id = 1;
this.worldtime = 0;
this.skinmap = {};
this.gold = 0;
this.diamond = 0;
this.hero_id = 0;
this.head_id = "0";
this.head_frame = 0;
this.level = 1;
this.exp = 0;
this.max_exp = 100;
this.name = "guest";
this.head_list = [];
this.head_frame_list = [];
this.goods_list = [];
this.hero_list = [];
this.skin_list = [];
this.item_list = [];
this.talent_list = [];
this.season = {};
this.rank = 1;
this.m_friendApplyArr = [];
this.getopenhero();
};
this.property = function (obj) {
if (obj.user_info) {
this.refreshInfo(obj.user_info);
if (
obj.user_info.head_id ||
obj.user_info.name ||
obj.user_info.head_frame
) {
cc.chatMgr.sendmsg("CMUpdateUserInfo", {
nickname: this.name,
avatar_url: this.head_id,
head: Number(this.head_frame),
});
}
cc.Notifier.emit("refreshBaseInfo");
}
if (obj.container_chg) {
for (var i = 0; i < obj.container_chg.length; i++) {
var bd = obj.container_chg[i];
if (bd == "bag") {
NetManage.getItemList();
} else if (bd == "hero") {
NetManage.getHeroList();
} else if (bd == "heroSkin") {
NetManage.getSkinList();
}
}
}
};
this.AddfriendApplyArr = function (_uid) {
let isHave = 0;
for (let i = 0; i < this.m_friendApplyArr.length; i++) {
let tmpUID = this.m_friendApplyArr[i];
if (tmpUID == _uid) {
isHave = 1;
break;
}
}
if (isHave == 0) {
this.m_friendApplyArr.push(_uid);
}
};
this.deleteFriendApplyArr = function (_uid) {
for (let i = 0; i < this.m_friendApplyArr.length; i++) {
let tmpUID = this.m_friendApplyArr[i];
if (tmpUID == _uid) {
this.m_friendApplyArr.splice(i, 1);
break;
}
}
};
this.checkAtFriendApplyArr = function (_uid) {
let isHave = 0;
for (let i = 0; i < this.m_friendApplyArr.length; i++) {
let tmpUID = this.m_friendApplyArr[i];
if (tmpUID == _uid) {
isHave = 1;
break;
}
}
return isHave;
};
this.refreshInfo = function (obj) {
for (var k in obj) {
this[k] = obj[k];
}
};
this.getRankList = function (obj) {
this.ranking_list = obj.ranking_list;
};
this.getSeasonInfo = function (obj) {
this.season = obj.info;
cc.Notifier.emit("ongetSeasonInfo");
};
this.getDiscountList = function (obj) {
this.this.goods_list = obj.goods_list;
};
this.getHeroList = function (obj) {
this.hero_list = obj.hero_list;
cc.Notifier.emit("ongetHeroList");
};
this.getSkinList = function (obj) {
this.skin_list = obj.skin_list;
cc.Notifier.emit("ongetSkinList");
};
this.getItemList = function (obj) {
this.item_list = obj.item_list;
cc.Notifier.emit("ongetItemList");
};
this.gettalentList = function (obj) {
this.talent_list = obj.talent_list;
cc.Notifier.emit("ontalent_list");
};
this.getDrop = function (dropid) {
var cfg = gameConfig.dropConfig[dropid];
if (!cfg.itemdata) {
cfg.itemdata = [];
var itemarr = (cfg.item_id + "").split("|");
var numarr = (cfg.num + "").split("|");
for (var i = 0; i < itemarr.length; i++) {
cfg.itemdata.push({
id: itemarr[i],
num: numarr[i],
});
}
}
return cfg.itemdata;
};
this.getItemsByType = function (type) {
var arr = [];
for (var i = 0; i < this.item_list.length; i++) {
if (
gameConfig.all_ItemConfig[this.item_list[i].item_id].tab ==
type ||
type == 0
) {
arr.push(this.item_list[i]);
}
}
return arr;
};
this.getItemCount = function (id) {
if (id == 10001) {
return this.gold;
} else if (id == 10002) {
return this.diamond;
} else {
for (var i = 0; i < this.item_list.length; i++) {
if (this.item_list[i].item_id == id) {
return this.item_list[i].item_num;
}
}
}
return 0;
};
this.checkItemEnough = function (id, v) {
v = Number(v);
id = Number(id);
if (id == 10001) {
return this.gold >= v;
} else if (id == 10002) {
return this.diamond >= v;
} else {
for (var i = 0; i < this.item_list.length; i++) {
if (this.item_list[i].item_id == id) {
return this.item_list[i].item_num >= v;
}
}
}
return false;
};
this.getLearnedTalent = function (id) {
for (var i = 0; i < this.talent_list.length; i++) {
if (this.talent_list[i].talent_id == id) {
return this.talent_list[i];
}
}
if (this.level >= this.xinpian[id][0].need_user_level) {
return {
talent_id: id,
talent_lv: 1,
};
}
return null;
};
this.getDiscount = function (id) {
for (var i = this.goods_list.length - 1; i >= 0; i--) {
if (this.goods_list[i].item_id == id) {
return [
this.goods_list[i].gold_discount,
this.goods_list[i].diamond_discount,
];
}
}
return [100, 100];
};
this.getshowhero = function () {
return this.getheroSkinbyId(this.hero_id, 0);
};
this.getskinarrbyId = function (id) {
return this.skinmap[id].skins;
};
this.getheroSkinbyId = function (hid, idx) {
var skinArr = this.skinmap[hid].skins;
var skinid = skinArr[idx];
var skincfg = gameConfig.all_ItemConfig[skinid];
var skinres = skincfg.skinid;
return skinres;
};
this.getheroSkinidbyId = function (hid, idx) {
var skinArr = this.skinmap[hid].skins;
var skinid = skinArr[idx];
return Number(skinid);
};
this.checkhasgetskin = function (sid) {
if (gameConfig.all_ItemConfig[sid].isdefaultskin) {
return true;
}
for (var i = this.skin_list.length - 1; i >= 0; i--) {
if (this.skin_list[i].skin_id == sid) {
return true;
}
}
return false;
};
this.checkhasgethero = function (hid) {
for (var i = this.hero_list.length - 1; i >= 0; i--) {
if (this.hero_list[i].hero_id == hid) {
return true;
}
}
return false;
};
this.getopenhero = function () {
if (!this.openherolist) {
this.openherolist = [];
for (var k in gameConfig.all_ItemConfig) {
var cfg = gameConfig.all_ItemConfig[k];
if (cfg.type == this.itemtype.hero && cfg.getway) {
this.openherolist.push(cfg.id);
}
if (cfg.type == this.itemtype.heroskin && cfg.getway) {
if (!this.skinmap[cfg.playerid]) {
this.skinmap[cfg.playerid] = {
skins: [],
};
}
this.skinmap[cfg.playerid].skins.push(cfg.id);
if (cfg.isdefaultskin) {
this.skinmap[cfg.playerid].defaultskin = cfg.id;
}
}
}
}
for (var k in this.skinmap) {
this.skinmap[k].skins = this.skinmap[k].skins.sort((a, b) => {
var c = 0;
if (a == this.skinmap[k].defaultskin) {
c = -99999;
}
if (b == this.skinmap[k].defaultskin) {
c = 99999;
}
return a - b + c;
});
}
return this.openherolist;
};
this.getheroskill = function (hid) {
var cfg = gameConfig.playerConfig[hid];
var skill1 = Number(cfg.skill1list.split("|")[0]);
var skill2 = Number(cfg.skill2list.split("|")[0]);
var skill3 = cfg.skill3list;
return [skill1, skill2, skill3];
};
this.changeHero = function (hid) {
this.nowheroid = hid;
this.nowherocfg = gameConfig.playerConfig[hid];
this.skinArr = (this.nowherocfg.skinlist + "").split("|");
this.skinid = this.skinmap[hid].defaultskin; //this.skinArr[0]
this.skill1 = Number(this.nowherocfg.skill1list.split("|")[0]);
this.skill2 = Number(this.nowherocfg.skill2list.split("|")[0]);
this.skill3 = this.nowherocfg.skill3list;
this.changeSkin(this.skinid);
};
this.changeSkin = function (v) {
this.skinid = v;
this.skincfg = gameConfig.all_ItemConfig[v];
this.skinres = this.skincfg.skinid;
};
this.getTime = function (obj) {
var date = new Date();
this.sertime = obj.time - date.getTime() / 1000;
this.sertimestr = obj.time;
};
this.getNodeID = function (obj) {
if (obj.errcode == 0) {
this.node_id = obj.node_id;
cc.SDKManage.NodeId = obj.node_id;
console.log("NodeID====", cc.SDKManage.NodeId);
}
};
this.dirtyWordCheck = function (obj) {
cc.Notifier.emit("dirtywordcheck", obj);
};
this.getbattleskilllist = function () {
return [
{
key: this.skill1,
value: 0,
},
{
key: this.skill2,
value: 0,
},
{
key: this.skill3,
value: 0,
},
];
};
this.getbattleopt = function () {
return {
account_id: SDKManage.account_id, // account_id
player_count: 4, //(
energy_shield: 0, //
baseskin: [this.skinres, 0, 0, 0],
team_uuid: "", // ()
team_mode: 1, // 0:
auto_fill: true, //
// team_members: _teamMembers,
weapons: [],
first_game: false,
skins: [],
prepare_items: [], // 12809
prepare_items2: [],
atk_add: 0,
battlecount: 1,
pre_settlement_info: "",
emojis: ["1", "2", "3", "4", "5", "6"],
show_team_ui: 1,
//offline: true,
newbiemode: false,
mapid: 1008,
sex: 2,
skill_list: [
{
key: this.skill1,
value: 0,
},
{
key: this.skill2,
value: 0,
},
{
key: this.skill3,
value: 0,
},
],
hero_id: this.nowheroid,
};
};
this.init2 = function () {
var cfg = gameConfig.gunTalentGrow;
this.xinpian = {};
for (var k in cfg) {
var onecfg = cfg[k];
if (!this.xinpian[onecfg.talent_id]) {
this.xinpian[onecfg.talent_id] = [];
}
this.xinpian[onecfg.talent_id].push(onecfg);
}
for (var kk in this.xinpian) {
this.xinpian[kk] = this.xinpian[kk].sort((a, b) => {
var aa = a.talent_lv;
var bb = b.talent_lv;
return aa - bb;
});
}
var cfg2 = gameConfig.all_ItemConfig;
gameConfig.skintohero = {};
for (var k in cfg2) {
var onecfg = cfg2[k];
if (onecfg.skinid) {
gameConfig.skintohero[onecfg.skinid] = onecfg.playerid;
}
}
};
this.debug = function (tp, v, v2) {
if (tp == 1) {
var itemcfg = gameConfig.all_ItemConfig[v];
if (itemcfg.type == this.itemtype.hero) {
if (!this.checkhasgethero(v)) {
this.hero_list.push({
hero_id: v,
});
}
} else if (itemcfg.type == this.itemtype.heroskin) {
if (!this.checkhasgetskin(v)) {
this.skin_list.push({
skin_id: v,
});
}
}
cc.Notifier.emit("herochange");
} else if (tp == 2) {
var hasfind = false;
for (var i = 0; i < this.talent_list.length; i++) {
if (this.talent_list[i].talent_id == v) {
this.talent_list[i].talent_lv++;
hasfind = true;
}
}
if (!hasfind) {
this.talent_list.push({
talent_id: v,
talent_lv: 2,
});
}
cc.Notifier.emit("talent_lvup", v);
} else if (tp == 3) {
for (var i = this.item_list.length - 1; i >= 0; i--) {
if (this.item_list[i].item_id == v) {
this.item_list[i].item_num -= v2;
if (this.item_list[i].item_num == 0) {
this.item_list.splice(i, 1);
}
}
if (v2) {
this.nickname = v2;
}
}
cc.Notifier.emit("refreshitem");
} else if (tp == 4) {
v();
} else if (tp == 5) {
this.ranking_list = {
//
type: 0, //
ranking_list: [
//
{
ranked: 1, //
account_id: "1122", //
name: "aaa", //
head_id: 50003, //
head_frame: 60001, //
level: 10, //
exp: 0, //
gold: 0, //
diamond: 0, //
hero_id: 30100, //
rank: 11, //
score: 220, //
},
{
ranked: 2, //
account_id: "3344", //
name: "aaa", //
head_id: 50003, //
head_frame: 60001, //
level: 10, //
exp: 0, //
gold: 0, //
diamond: 0, //
hero_id: 30300, //
rank: 11, //
score: 220, //
},
],
my_ranked: {
//(<)
ranked: 0, //
account_id: "", //
name: "ssss", //
head_id: 0, //
head_frame: 0, //
level: 20,
exp: 0, //
gold: 0, //
diamond: 0, //
hero_id: 30200, //
rank: 12, //
score: 110, //
},
};
v();
} else if (tp == 6) {
v();
} else if (tp == 7) {
v({
errcode: 0, //
errmsg: "", //
info: {
//()
activate: 0, //
account_id: "", //
name: "name", //
head_id: 50003, //
head_frame: 60001, //
level: 10, //
exp: 30, //
max_exp: 90, //()
gold: 0, //
diamond: 0, //
hero_id: 30200, //
current_rank: 10, //
history_best_rank: 11, //
history_seasons: [
//
{
season_id: 22, //
total_kills: 10, //()
game_times: 20, //()
win_times: 30, //()
win_rate: 40, //(,)
max_kills: 50, //()
avg_kills: 60, //()
max_damage_out: 70, //()
avg_damage_out: 80, //()
star_kills: 50, //(-, )
star_damage: 60, //(-, )
star_alive: 70, //(-,)
star_recover: 80, //(-, )
star_win: 100, //(-,)
},
],
},
});
} else if (tp == 8) {
var tdata = {
errcode: 0, //
errmsg: "", //
current_active_value: 30, //
max_active_value: 100, //
mission_list1: [
//
{
mission_id: 71001,
current: 0,
target: 0,
state: 0,
show_progress: 0,
},
{
mission_id: 71003,
current: 5,
target: 5,
state: 1,
show_progress: 1,
},
{
mission_id: 71006,
current: 2,
target: 5,
state: 2,
show_progress: 1,
},
{
mission_id: 71006,
current: 2,
target: 5,
state: 2,
show_progress: 2,
},
{
mission_id: 71006,
current: 2,
target: 5,
state: 2,
show_progress: 2,
},
],
mission_list2: [
{
mission_id: 71001,
current: 0,
target: 0,
state: 0,
show_progress: 0,
},
{
mission_id: 71003,
current: 5,
target: 5,
state: 1,
show_progress: 1,
},
{
mission_id: 71006,
current: 2,
target: 5,
state: 2,
show_progress: 1,
},
],
};
v(tdata);
} else if (tp == 9) {
var tdata = {
errcode: 0,
errmsg: "",
info: {
season_id: 5,
card_lv: 11,
card_exp: 10,
card_max_exp: 100,
season_begin_time: 1638951964,
season_end_time: 1638951964,
gift_packages: [
//struct SeasonCardGiftPackage
{
package_id: 0,
state: 0,
price_info: {
//struct PriceInfo,
cost_list: [
//struct CostInfo
{
cost_group: [
{
item_id: 0,
item_num: 0,
discount: 0,
},
],
},
],
discount_begin_time: 0,
discount_end_time: 0,
},
},
],
received_level_rewards1: [
1, 2, 3,
],
received_level_rewards2: [
1, 2, 3, 4,
],
},
};
v(tdata.info);
} else if (tp == 10) {
v();
}
};
};
var instance = new playerData();
instance.init();
instance.init2();
cc.playerData = instance;
module.exports = instance;