pubgv3/assets/scripts/forsub/playerData.js
2022-05-26 11:46:36 +08:00

661 lines
14 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.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.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;
}
};
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, //
player_count: 4, //
energy_shield: 0, //
baseskin: [this.skinres, 0, 0, 0],
team_uuid: '',
team_mode: 1,
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: 'alabo', //
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: {
//struct SeasonCard,
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: [
//struct CostInfoItem
{
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;