1525 lines
43 KiB
JavaScript
1525 lines
43 KiB
JavaScript
|
import MyModel from "../ts/core/MyModel";
|
||
|
import LocalUtil from "../ts/core/LocalUtil";
|
||
|
import GameModel from "../ts/core/GameModel";
|
||
|
import SKDataUtil from "../ts/gear_2.3.4/util/SKDataUtil";
|
||
|
import SKHotUpdate from "../ts/gear_2.3.4/util/SKHotUpdate";
|
||
|
import FGAlert from "../ts/gear_2.3.4/fgui/FGAlert";
|
||
|
import SKUIUtil from "../ts/gear_2.3.4/util/SKUIUtil";
|
||
|
import SKLogger from "../ts/gear_2.3.4/util/SKLoader";
|
||
|
import {
|
||
|
ELivingType
|
||
|
} from "../ts/core/EEnum";
|
||
|
import ItemUtil from "../ts/core/ItemUtil";
|
||
|
import RecastAlert from "../ts/game/baldric/RecastAlert";
|
||
|
import RecastPanel from "../ts/game/baldric/RecastPanel";
|
||
|
import JSUtil from "../ts/core/JSUtil";
|
||
|
import FGUtil from "../ts/gear_2.3.4/fgui/FGUtil";
|
||
|
import Arena from "../ts/arena/Arena";
|
||
|
import Contact from "../ts/contact/Contact";
|
||
|
import TeamPanel from "../ts/team/TeamPanel";
|
||
|
import RechargeReward from "../ts/rechargeReward/RechargeReward";
|
||
|
import Question from "../ts/question/Question";
|
||
|
import TurnTable from "../ts/turnTable/TurnTable";
|
||
|
import Guide from "../ts/guide/Guide";
|
||
|
import BtlInfo from "../ts/btlInfo/BtlInfo";
|
||
|
import Transformation from "../ts/transformation/Transformation";
|
||
|
import Welfare from "../ts/welfare/Welfare";
|
||
|
import DecisiveBattle from "../ts/decisiveBattle/DecisiveBattle";
|
||
|
import DebateDao from "../ts/debateDao/DebateDao";
|
||
|
import Gang from "../ts/gang/Gang";
|
||
|
import Bag from "../ts/bag/Bag";
|
||
|
import Appearance from "../ts/appearance/Appearance";
|
||
|
import visitingPrison from "../ts/visitingPrison";
|
||
|
import FactionTalent from "../ts/FactionTalent";
|
||
|
import EquipRefine from "../ts/EquipRefine"
|
||
|
import DailyActivity from "../ts/DailyActivity"
|
||
|
import Set from "../ts/set";
|
||
|
import Shop from "../ts/Shop";
|
||
|
import GangWar from "../ts/GangWar";
|
||
|
import MsgAlert from "../ts/game/msg/MsgAlert";
|
||
|
import GameMap from "../ts/GameMap";
|
||
|
import PetRefine from "../ts/petRefine";
|
||
|
import Debris from "../ts/debris"
|
||
|
import GuoShop from "../ts/GuoShop"
|
||
|
import DrawMoney from "../ts/drawMoney";
|
||
|
import DailyActivityData from "../ts/DailyActivityData";
|
||
|
// import ChatPanel from "../ts/ChatPanel";
|
||
|
import zhenFa from "../ts/zhenFa/zhenfa"
|
||
|
import myXinwu from "../ts/zhenFa/myXinwu"
|
||
|
import tuJian from "../ts/zhenFa/activeZhenFa"
|
||
|
import equip_list from "../ts/zhenFa/equip_list"
|
||
|
import active_panel from "../ts/zhenFa/active_panel"
|
||
|
import BabyMgrPannel from "../ts/nurture/BabyMgrPannel";
|
||
|
import TianTiPanel from "../ts/TianTiPanel/TianTiPanel";
|
||
|
import TianTiPiPei from "../ts/TianTiPanel/TianTiPiPei";
|
||
|
let GameDefine = require('./GameDefine');
|
||
|
|
||
|
let CMainPlayerInfo = require('./MainPlayerInfo');
|
||
|
let CNpcMgr = require('./NpcMgr');
|
||
|
let CPubFunction = require('./PubFunction');
|
||
|
let pScreenNoticeMgr = require('./ScreenNotice');
|
||
|
|
||
|
cc.Class({
|
||
|
extends: cc.Component,
|
||
|
properties: {
|
||
|
mapLayer: cc.Node,
|
||
|
mainMapPre: cc.Prefab,
|
||
|
mainUI: cc.Node,
|
||
|
battleStagePre: cc.Prefab,
|
||
|
battleUIPre: cc.Prefab,
|
||
|
rolepre: cc.Prefab,
|
||
|
petSelectedPre: cc.Prefab,
|
||
|
autoNode: cc.Node,
|
||
|
autoSearchNodes: [cc.Node],
|
||
|
autoPatrolNode: cc.Node,
|
||
|
autoPatrolNodes: [cc.Node],
|
||
|
YinYaoXiangPanel: cc.Prefab,
|
||
|
|
||
|
EquipItemDetail: cc.Prefab,
|
||
|
SchemeEquipItemDetail: cc.Prefab,
|
||
|
SummonDetail: cc.Prefab,
|
||
|
BagItemDetail: cc.Prefab,
|
||
|
GoodsItemDetail: cc.Prefab,
|
||
|
},
|
||
|
|
||
|
onLoad() {
|
||
|
cc.log("GameLogic")
|
||
|
pScreenNoticeMgr.Reset();
|
||
|
this.node.on(cc.Node.EventType.TOUCH_START, this.touchBegan.bind(this));
|
||
|
this.node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMoved.bind(this));
|
||
|
this.node.on(cc.Node.EventType.TOUCH_END, this.touchEnded.bind(this));
|
||
|
|
||
|
this.mapLogic = this.mapLayer.getComponent('GameMapLogic');
|
||
|
this.uiLogic = this.mainUI.getComponent('MainUI');
|
||
|
|
||
|
this.playerObjs = {};
|
||
|
this.startAutoSearchAni();
|
||
|
this.startAutoPatrolAni();
|
||
|
|
||
|
this.mainMap = cc.instantiate(this.mainMapPre);
|
||
|
this.mainMap.parent = this.node;
|
||
|
this.mainMap.active = false;
|
||
|
|
||
|
this.autoNode.active = false;
|
||
|
this.autoPatrolNode.active = false;
|
||
|
|
||
|
GameModel.send('c2s_get_bagitem', {
|
||
|
roleid: GameModel.player.roleid
|
||
|
});
|
||
|
GameModel.send('c2s_equip_list', {
|
||
|
roleid: GameModel.player.roleid
|
||
|
});
|
||
|
|
||
|
GameModel.send('c2s_whitelist_interface', {
|
||
|
roleid: GameModel.player.roleid
|
||
|
});
|
||
|
|
||
|
DailyActivityData.init();
|
||
|
|
||
|
this.role_need_sync = {};
|
||
|
let test = cc.find("test", this.node);
|
||
|
if (test) {
|
||
|
test.active = GameModel.debug;
|
||
|
}
|
||
|
SKHotUpdate.changeBlock = (info) => {
|
||
|
FGAlert.shared.title.text = info;
|
||
|
};
|
||
|
SKHotUpdate.progressBlock = (info) => {
|
||
|
FGAlert.shared.title.text = info;
|
||
|
FGAlert.shared.progressBar.value = SKHotUpdate.shared.percent;
|
||
|
};
|
||
|
SKHotUpdate.hasNewBlock = () => {
|
||
|
FGAlert.show(`檢查到新版本${SKHotUpdate.shared.remoteVesion},是否進行更新?`, () => {
|
||
|
FGAlert.hide();
|
||
|
}, () => {
|
||
|
FGAlert.showProgress();
|
||
|
SKHotUpdate.shared.startUpdate();
|
||
|
});
|
||
|
};
|
||
|
SKHotUpdate.delayCheck();
|
||
|
|
||
|
this.addTypeScript();
|
||
|
|
||
|
// 加載字體
|
||
|
cc.loader.loadRes("fonts/Hanyi_xiaodishujian", cc.Font, (err, res) => {
|
||
|
GameModel.fontRes = res;
|
||
|
fgui.registerFont("汉仪小棣书简", res);
|
||
|
})
|
||
|
|
||
|
},
|
||
|
start() {
|
||
|
GameModel.autoWorldVoice = cc.sys.localStorage.getItem('auto_play_world');
|
||
|
if (!GameModel.autoWorldVoic) {
|
||
|
GameModel.autoWorldVoice = 0;
|
||
|
cc.sys.localStorage.setItem('auto_play_world', 0);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 添加腳本單例
|
||
|
*/
|
||
|
addTypeScript() {
|
||
|
// 添加隊伍腳本
|
||
|
if (TeamPanel.Instance) {
|
||
|
TeamPanel.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(TeamPanel);
|
||
|
|
||
|
// 添加競技場腳本
|
||
|
if (Arena.Instance) {
|
||
|
Arena.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Arena);
|
||
|
|
||
|
// 添加充值獎勵腳本
|
||
|
if (RechargeReward.Instance) {
|
||
|
RechargeReward.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(RechargeReward);
|
||
|
|
||
|
// 添加社交腳本
|
||
|
if (Contact.Instance) {
|
||
|
Contact.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Contact);
|
||
|
|
||
|
// 添加文曲星腳本
|
||
|
if (Question.Instance) {
|
||
|
Question.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Question);
|
||
|
|
||
|
// 添加轉盤腳本
|
||
|
if (TurnTable.Instance) {
|
||
|
TurnTable.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(TurnTable);
|
||
|
|
||
|
// 添加攻略引導腳本
|
||
|
if (Guide.Instance) {
|
||
|
Guide.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Guide);
|
||
|
|
||
|
// 添加戰鬥指令腳本
|
||
|
if (BtlInfo.Instance) {
|
||
|
BtlInfo.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(BtlInfo);
|
||
|
|
||
|
// 添加變身卡腳本
|
||
|
if (Transformation.Instance) {
|
||
|
Transformation.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Transformation);
|
||
|
|
||
|
// 添加信物腳本
|
||
|
if (myXinwu.Instance) {
|
||
|
myXinwu.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(myXinwu);
|
||
|
|
||
|
// 添加信物腳本
|
||
|
if (zhenFa.Instance) {
|
||
|
zhenFa.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(zhenFa);
|
||
|
|
||
|
// 添加圖鑑腳本
|
||
|
if (tuJian.Instance) {
|
||
|
tuJian.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(tuJian);
|
||
|
|
||
|
// 添加圖鑑腳本
|
||
|
if (equip_list.Instance) {
|
||
|
equip_list.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(equip_list);
|
||
|
|
||
|
//天梯面板腳本
|
||
|
if (TianTiPanel.Instance) {
|
||
|
TianTiPanel.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(TianTiPanel);
|
||
|
//天梯匹配面板腳本
|
||
|
if (TianTiPiPei.Instance) {
|
||
|
TianTiPiPei.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(TianTiPiPei);
|
||
|
|
||
|
// 添加激活面板腳本
|
||
|
if (active_panel.Instance) {
|
||
|
active_panel.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(active_panel);
|
||
|
GameModel.send("c2s_five_phases", {
|
||
|
roleid: GameModel.player.roleid,
|
||
|
type: 1
|
||
|
})
|
||
|
|
||
|
// 添加福利腳本
|
||
|
if (Welfare.Instance) {
|
||
|
Welfare.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Welfare);
|
||
|
|
||
|
// 添加決戰腳本
|
||
|
if (DecisiveBattle.Instance) {
|
||
|
DecisiveBattle.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(DecisiveBattle);
|
||
|
|
||
|
// 添加證道腳本
|
||
|
if (DebateDao.Instance) {
|
||
|
DebateDao.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(DebateDao);
|
||
|
if (GameModel.player.mapid == 4004)
|
||
|
GameModel.send("c2s_say_team_info", {
|
||
|
teamId: GameModel.player.teamid,
|
||
|
})
|
||
|
|
||
|
// 添加幫派腳本
|
||
|
if (Gang.Instance) {
|
||
|
Gang.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Gang);
|
||
|
|
||
|
// 添加背包腳本
|
||
|
if (Bag.Instance) {
|
||
|
Bag.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Bag);
|
||
|
|
||
|
// 添加外觀腳本
|
||
|
if (Appearance.Instance) {
|
||
|
Appearance.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Appearance);
|
||
|
GameModel.send("c2s_has_seffect", {
|
||
|
roleid: GameModel.player.roleid
|
||
|
})
|
||
|
|
||
|
// 添加探監腳本
|
||
|
if (visitingPrison.Instance) {
|
||
|
visitingPrison.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(visitingPrison);
|
||
|
|
||
|
if (FactionTalent.Instance) {
|
||
|
FactionTalent.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(FactionTalent);
|
||
|
|
||
|
if (EquipRefine.Instance) {
|
||
|
EquipRefine.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(EquipRefine);
|
||
|
|
||
|
if (DailyActivity.Instance) {
|
||
|
DailyActivity.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(DailyActivity);
|
||
|
|
||
|
if (Set.Instance) {
|
||
|
Set.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Set);
|
||
|
if (Shop.Instance) {
|
||
|
Shop.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Shop);
|
||
|
|
||
|
if (GangWar.Instance) {
|
||
|
GangWar.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(GangWar);
|
||
|
|
||
|
if (GameMap.Instance) {
|
||
|
GameMap.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(GameMap);
|
||
|
|
||
|
if (PetRefine.Instance) {
|
||
|
PetRefine.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(PetRefine);
|
||
|
|
||
|
if (Debris.Instance) {
|
||
|
Debris.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(Debris);
|
||
|
|
||
|
|
||
|
if (GuoShop.Instance) {
|
||
|
GuoShop.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(GuoShop);
|
||
|
|
||
|
if (DrawMoney.Instance) {
|
||
|
DrawMoney.Instance = null
|
||
|
}
|
||
|
this.node.addComponent(DrawMoney);
|
||
|
|
||
|
// if (ChatPanel.Instance) {
|
||
|
// ChatPanel.Instance = null
|
||
|
// }
|
||
|
// this.node.addComponent(ChatPanel);
|
||
|
},
|
||
|
|
||
|
setAllPlayerActive() {
|
||
|
for (let key in this.playerObjs) {
|
||
|
if (SKDataUtil.hasProperty(this.playerObjs, key)) {
|
||
|
let role = this.playerObjs[key].getComponent('role');
|
||
|
if (role) {
|
||
|
role.resetHidden();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
loadComplete() {
|
||
|
let params = {
|
||
|
accountid: GameModel.player.accountid,
|
||
|
roleId: GameModel.player.roleid
|
||
|
};
|
||
|
GameModel.send("c2s_enter_game", params);
|
||
|
GameModel.send('c2s_title_info', {}); //請求用戶所有的稱謂數據
|
||
|
},
|
||
|
|
||
|
GetMainPlayerID() {
|
||
|
return this.mapLogic.myRole.netInfo.onlyid;
|
||
|
},
|
||
|
|
||
|
GetPlayerObjs(onlyid) {
|
||
|
return this.playerObjs[onlyid];
|
||
|
},
|
||
|
|
||
|
clearPlayer(onlyid) {
|
||
|
this.playerObjs[onlyid].getComponent('role').clear();
|
||
|
this.playerObjs[onlyid].parent = null;
|
||
|
this.playerObjs[onlyid].destroy();
|
||
|
delete this.playerObjs[onlyid];
|
||
|
},
|
||
|
|
||
|
clearPlayerObjs() {
|
||
|
for (const key in this.playerObjs) {
|
||
|
if (SKDataUtil.hasProperty(this.playerObjs, key)) {
|
||
|
this.clearPlayer(key);
|
||
|
}
|
||
|
}
|
||
|
this.playerObjs = {};
|
||
|
},
|
||
|
|
||
|
synPlayerPos(data) {
|
||
|
let curRole = null;
|
||
|
if (data.onlyid == GameModel.player.onlyid) {
|
||
|
curRole = this.mapLogic.roleNode;
|
||
|
}
|
||
|
if (curRole == null) {
|
||
|
curRole = this.playerObjs[data.onlyid];
|
||
|
}
|
||
|
if (curRole != null) {
|
||
|
let plogic = curRole.getComponent('role');
|
||
|
plogic.actlist = [];
|
||
|
curRole.stopAllActions();
|
||
|
plogic.setObjPos(data.x, data.y);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
|
||
|
resetSelfPlayerTitle() {
|
||
|
this.mapLogic.myRole.resetRoleTitle();
|
||
|
},
|
||
|
|
||
|
/*
|
||
|
* 按幀數同步玩家數據
|
||
|
*/
|
||
|
synPlayerByFrame(data) {
|
||
|
for (let item of data) {
|
||
|
if (item.npcconfig) {
|
||
|
if (item.npcconfig == 70005 || item.npcconfig >= 810016 && item.npcconfig <= 810021)
|
||
|
continue;
|
||
|
}
|
||
|
this.role_need_sync[item.onlyid] = item;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synPlayerInfo(info) {
|
||
|
if (info.onlyid == GameModel.player.onlyid && (GameModel.player.teamid == 0 || (GameModel.player
|
||
|
.teamid > 0 && (GameModel.player.isleader || GameModel.player.tempLeave)))) {
|
||
|
if (info.name != this.mapLogic.myRole.netInfo.name || info.titleid != this.mapLogic.myRole.netInfo
|
||
|
.titleid || info.titleval != this.mapLogic.myRole.netInfo.titleval) {
|
||
|
this.mapLogic.myRole.setInfo(info);
|
||
|
this.mapLogic.myRole.resetRoleTitle();
|
||
|
}
|
||
|
if (this.mainUI.getChildByName('RolePanel')) {
|
||
|
this.mainUI.getChildByName('RolePanel').getComponent('RolePanel').resetRoleName(info.name);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
if (GameModel.player.mapid != info.mapid) {
|
||
|
return;
|
||
|
}
|
||
|
if (info.livingtype == ELivingType.PLAYER) {
|
||
|
let curRole = null;
|
||
|
if (info.onlyid == GameModel.player.onlyid) {
|
||
|
curRole = this.mapLogic.roleNode;
|
||
|
}
|
||
|
if (!curRole) {
|
||
|
curRole = this.playerObjs[info.onlyid];
|
||
|
}
|
||
|
if (!curRole) {
|
||
|
curRole = cc.instantiate(this.rolepre); //cc.instantiate(this.mapLogic.roleNode);
|
||
|
curRole.parent = this.mapLayer;
|
||
|
curRole.zIndex = 3;
|
||
|
curRole.livingtype = info.livingtype;
|
||
|
let comRole = curRole.getComponent('role');
|
||
|
comRole.setObjPos(info.x, info.y);
|
||
|
comRole.setInfo(info);
|
||
|
comRole.onlyid = info.onlyid;
|
||
|
this.playerObjs[info.onlyid] = curRole;
|
||
|
this.mapLogic.setTeamPath();
|
||
|
} else {
|
||
|
let plogic = curRole.getComponent('role');
|
||
|
if (plogic.tResid != info.changeid) {
|
||
|
if (info.changeid > 0) {
|
||
|
plogic.resetResid(info.changeid)
|
||
|
}
|
||
|
if (info.changeid == 0) {
|
||
|
plogic.clearChange(info.changeid)
|
||
|
}
|
||
|
}
|
||
|
let wingId = SKDataUtil.findByDict(GameModel.game_conf.wing, "resid", info.wingId, "id", 0);
|
||
|
plogic.changeWing(wingId);
|
||
|
if (!plogic.isShane && info.shane > 0 && info.mapid != 1201) {
|
||
|
plogic.isShane = true;
|
||
|
plogic.resetRoleTitle();
|
||
|
}
|
||
|
if (plogic.isShane && (info.shane <= 0 || info.mapid == 1201)) {
|
||
|
plogic.isShane = false;
|
||
|
plogic.resetRoleTitle();
|
||
|
}
|
||
|
if (!plogic.checkInTeam() || info.pause == 1) {
|
||
|
let result = this.mapLogic.searchMovePath(plogic.netInfo.x, plogic.netInfo.y, info.x, info
|
||
|
.y);
|
||
|
plogic.actlist = [];
|
||
|
curRole.stopAllActions();
|
||
|
if (result.length > 0) {
|
||
|
for (const act of result) {
|
||
|
plogic.actlist.push({
|
||
|
type: 2,
|
||
|
info: act
|
||
|
});
|
||
|
}
|
||
|
plogic.living_state = 0;
|
||
|
}
|
||
|
plogic.objUpdate();
|
||
|
}
|
||
|
}
|
||
|
if (curRole) {
|
||
|
let plogic = curRole.getComponent('role');
|
||
|
plogic.netInfo.teamid = info.teamid;
|
||
|
plogic.netInfo.isleader = info.isleader;
|
||
|
if (info.name != plogic.netInfo.name || info.titleid != plogic.netInfo.titleid || info
|
||
|
.titleval != plogic.netInfo.titleval) {
|
||
|
plogic.netInfo.titleid = info.titleid;
|
||
|
plogic.netInfo.titleval = info.titleval;
|
||
|
plogic.netInfo.titletype = info.titletype;
|
||
|
plogic.netInfo.bangname = info.bangname;
|
||
|
//plogic.resetName(info.name);
|
||
|
plogic.resetRoleTitle();
|
||
|
}
|
||
|
if (info.teamid > 0 && info.isleader) {
|
||
|
plogic.addHeadStatus(info.teamcnt >= 5 ? 'zudui2' : 'zudui');
|
||
|
} else {
|
||
|
plogic.delHeadStatus('zudui');
|
||
|
plogic.delHeadStatus('zudui2');
|
||
|
}
|
||
|
if (info.battleid > 0) {
|
||
|
plogic.addHeadStatus('zhandou');
|
||
|
} else {
|
||
|
plogic.delHeadStatus('zhandou');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (info.livingtype == ELivingType.NPC) {
|
||
|
let newp = CPubFunction.CreateNpc(info.onlyid, info.resid, info.name, 0, 0, {
|
||
|
nX: info.x,
|
||
|
nY: info.y
|
||
|
}, this.mapLayer);
|
||
|
newp.parent = this.mapLayer;
|
||
|
newp.zIndex = 3;
|
||
|
newp.livingtype = info.livingtype;
|
||
|
newp.onlyid = info.onlyid;
|
||
|
newp.resid = info.resid;
|
||
|
let nDir = CNpcMgr.GetNpcDefaultDir(info.npcconfig);
|
||
|
info.dir = nDir;
|
||
|
let comNpc = newp.getComponent('Npc');
|
||
|
comNpc.setInfo(info);
|
||
|
CNpcMgr.AddNpcObj(info.onlyid, newp);
|
||
|
let stConfig = CNpcMgr.mapNpcConfig[info.npcconfig];
|
||
|
if (stConfig) {
|
||
|
comNpc.Npc_Init(stConfig.stTalk, stConfig.mapButton);
|
||
|
} else {
|
||
|
cc.log(`任務沒有找到:${info}`);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synPlayerStop(data) {
|
||
|
let plogic = this.playerObjs[data.onlyid].getComponent('role');
|
||
|
plogic.setObjPos(data.x, data.y);
|
||
|
plogic.playStop();
|
||
|
},
|
||
|
|
||
|
synPlayerExit(data) {
|
||
|
if (this.role_need_sync[data.onlyid]) {
|
||
|
delete this.role_need_sync[data.onlyid];
|
||
|
}
|
||
|
if (this.playerObjs[data.onlyid] != null) {
|
||
|
// this.playerObjs[data.onlyid].destroy();
|
||
|
// delete this.playerObjs[data.onlyid];
|
||
|
this.clearPlayer(data.onlyid);
|
||
|
}
|
||
|
|
||
|
if (CNpcMgr.mapNpcObj[data.onlyid] != null) {
|
||
|
CNpcMgr.DestroyNpc(data.onlyid);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synPlayerData(data) {
|
||
|
GameModel.player.setUserInfo(data);
|
||
|
let wingId = SKDataUtil.findByDict(GameModel.game_conf.wing, "resid", data.wingId, "id", 0);
|
||
|
if (wingId) {
|
||
|
this.mapLogic.myRole.changeWing(wingId);
|
||
|
}
|
||
|
if (this.mainUI.getChildByName('RolePanel')) {
|
||
|
this.mainUI.getChildByName('RolePanel').getComponent('RolePanel').loadGameData();
|
||
|
}
|
||
|
this.uiLogic.setRoleLevel(data.level);
|
||
|
this.uiLogic.setExp(data.exp, data.maxexp);
|
||
|
// let bangPanel = this.node.getChildByName('BangPanel');
|
||
|
// if (bangPanel) {
|
||
|
// let banglogic = bangPanel.getComponent('BangPanel');
|
||
|
// if (banglogic.xiulianNode.active == true) {
|
||
|
// banglogic.xiulianNode.getComponent('BangXiulian').loadInfo();
|
||
|
// }
|
||
|
// if (banglogic.upgradeNode.active == true) {
|
||
|
// banglogic.upgradeNode.getComponent('BangUpgrade').loadInfo();
|
||
|
// }
|
||
|
// }
|
||
|
if (Gang.Instance.practicePanel)
|
||
|
Gang.Instance.initPracticeData();
|
||
|
if (Gang.Instance.practiceUpGradePanel)
|
||
|
Gang.Instance.refreshUpPracticeGrade();
|
||
|
let bagLayer = this.mainUI.getChildByName('BagPanel');
|
||
|
if (bagLayer) {
|
||
|
bagLayer.getComponent('BagPanel').setSchemeName();
|
||
|
}
|
||
|
if (data.changeid > 0) {
|
||
|
if (this.uiLogic)
|
||
|
this.uiLogic.showTransformationBuff();
|
||
|
} else {
|
||
|
if (this.uiLogic)
|
||
|
this.uiLogic.hideTransformationBuff();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synChatInfo(info) {
|
||
|
if (info.teamData.length > 0) {
|
||
|
info.msg =
|
||
|
`[${info.teamData[0].type}@${info.teamData[0].teamId}@9](${info.teamData[0].num}/5)${info.teamData[0].content}[join@${info.teamData[0].teamId}@10]`
|
||
|
}
|
||
|
let voice_index = 0;
|
||
|
if (info.voice.length > 0) {
|
||
|
voice_index = GameModel.voiceMgr.addVoice(info.voice);
|
||
|
info.voice = voice_index;
|
||
|
} else {
|
||
|
info.voice = -1;
|
||
|
}
|
||
|
if (this.mapLogic.mapId == 4004 && info.scale == 3) {
|
||
|
if (GameModel.player.teamid != info.teamid)
|
||
|
return
|
||
|
}
|
||
|
this.uiLogic.chatLogic.addListInfo(info);
|
||
|
if (this.node.getChildByName('ChatPanel')) {
|
||
|
this.node.getChildByName('ChatPanel').getComponent('ChatPanel').addListInfo(info);
|
||
|
}
|
||
|
if (info.msg.length > 0) {
|
||
|
if (info.scale == 1) {
|
||
|
let stage = cc.find('Canvas/BattleLayer/BattleStage');
|
||
|
if (stage) {
|
||
|
stage.getComponent('BattleStage').objTalk(info);
|
||
|
}
|
||
|
} else if (info.scale == 3) {
|
||
|
let node = cc.find('Canvas/PalaceNotice');
|
||
|
if (node) {
|
||
|
let logic = node.getComponent('PalaceNotice');
|
||
|
if (logic) {
|
||
|
// logic.addStrToList(info.msg);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 同步系統通知消息
|
||
|
*/
|
||
|
synChatSystemMessage(info) {
|
||
|
if (!info) return;
|
||
|
console.log("準備添加系統信息", info);
|
||
|
// this.uiLogic.chatLogic.addListInfo(info);
|
||
|
// if (this.node.getChildByName('ChatPanel')) {
|
||
|
// this.node.getChildByName('ChatPanel').getComponent('ChatPanel').addListInfo(info);
|
||
|
// }
|
||
|
|
||
|
},
|
||
|
|
||
|
syncChatGoodsInfo(data) {
|
||
|
let info = JSON.parse(data.info);
|
||
|
// cc.log(info);
|
||
|
if (data.type == 1) {
|
||
|
if (info.EIndex < 7) {
|
||
|
let EquipItemDetail = cc.instantiate(this.EquipItemDetail);
|
||
|
EquipItemDetail.parent = cc.find('Canvas');
|
||
|
if (EquipItemDetail != null) {
|
||
|
EquipItemDetail.getComponent('EquipItemDetail').loadInfo(info, true);
|
||
|
}
|
||
|
} else {
|
||
|
ItemUtil.showMenu = false;
|
||
|
ItemUtil.showAccessDetail(info, false, false);
|
||
|
}
|
||
|
} else if (data.type == 2) {
|
||
|
let BagItemDetail = cc.instantiate(this.BagItemDetail);
|
||
|
if (BtlInfo.Instance && BtlInfo.Instance.btlInfoPanel && BtlInfo.Instance.btlInfoPanel.node) {
|
||
|
BagItemDetail.x = BtlInfo.Instance.btlInfoPanel.node.width / 2
|
||
|
BagItemDetail.y = -BtlInfo.Instance.btlInfoPanel.node.height / 2
|
||
|
BagItemDetail.parent = BtlInfo.Instance.btlInfoPanel.node
|
||
|
} else
|
||
|
BagItemDetail.parent = cc.find('Canvas');
|
||
|
info = ItemUtil.getItemData(info.id);
|
||
|
if (BagItemDetail != null) {
|
||
|
BagItemDetail.getComponent('BagItemDetail').loadInfo(info);
|
||
|
}
|
||
|
} else if (data.type == 3) {
|
||
|
// let petInfo = GameModel.player.petInfo;
|
||
|
// let pinfo = petInfo.list[2];
|
||
|
let SummonDetail = cc.instantiate(this.SummonDetail);
|
||
|
if (BtlInfo.Instance && BtlInfo.Instance.btlInfoPanel && BtlInfo.Instance.btlInfoPanel.node) {
|
||
|
SummonDetail.x = BtlInfo.Instance.btlInfoPanel.node.width / 2
|
||
|
SummonDetail.y = -BtlInfo.Instance.btlInfoPanel.node.height / 2
|
||
|
SummonDetail.parent = BtlInfo.Instance.btlInfoPanel.node
|
||
|
} else
|
||
|
SummonDetail.parent = cc.find('Canvas');
|
||
|
if (SummonDetail != null) {
|
||
|
SummonDetail.getComponent('SummonDetail').loadInfo(info);
|
||
|
}
|
||
|
} else if (data.type == 4) {
|
||
|
|
||
|
} else if (data.type == 5) {
|
||
|
let iinfo;
|
||
|
let tempList = SKDataUtil.clone(GameDefine.RoleTitleList);
|
||
|
for (let i = 0; i < tempList.length; i++) {
|
||
|
if (info.id == tempList[i].id) {
|
||
|
iinfo = tempList[i];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
iinfo.type = 5;
|
||
|
let itemDetail = cc.instantiate(this.GoodsItemDetail);
|
||
|
if (itemDetail != null) {
|
||
|
itemDetail.parent = cc.find('Canvas');
|
||
|
itemDetail.getComponent('GoodsItemDetail').loadInfo(iinfo);
|
||
|
}
|
||
|
} else if (data.type == 6) {
|
||
|
let stTaskConfig = JSUtil.getTaskConfigMgr().GetTaskInfo(info.id);
|
||
|
cc.log(stTaskConfig);
|
||
|
stTaskConfig.type = 6;
|
||
|
let itemDetail = cc.instantiate(this.GoodsItemDetail);
|
||
|
if (itemDetail != null) {
|
||
|
itemDetail.parent = cc.find('Canvas');
|
||
|
itemDetail.getComponent('GoodsItemDetail').loadInfo(stTaskConfig);
|
||
|
}
|
||
|
} else if (data.type == 9) {
|
||
|
let teamInfoPanel = FGUtil.create("main_ui", "team_memeber_info_panel");
|
||
|
FGUtil.root().addChild(teamInfoPanel);
|
||
|
|
||
|
FGUtil.getComponent(teamInfoPanel, "mask").onClick(() => {
|
||
|
FGUtil.dispose(teamInfoPanel);
|
||
|
})
|
||
|
var joinBtn = FGUtil.getButton(teamInfoPanel, "alert/join");
|
||
|
joinBtn.clearClick();
|
||
|
joinBtn.onClick(() => {
|
||
|
GameModel.send('c2s_requst_team', {
|
||
|
roleid: GameModel.player.roleid,
|
||
|
teamid: info.teamid
|
||
|
});
|
||
|
}, this)
|
||
|
FGUtil.getTextField(teamInfoPanel, "alert/n10").text = info.type + "(" + info.datum.length + "/5)";
|
||
|
for (let i in info.datum) {
|
||
|
FGUtil.getLoader(teamInfoPanel, `alert/m${i}/ava`).texture = GameModel.getRoleHead(info.datum[i]
|
||
|
.resid)
|
||
|
FGUtil.getLoader(teamInfoPanel, `alert/m${i}/n3`).url =
|
||
|
`ui://main_ui/icon_race${info.datum[i].race}`
|
||
|
FGUtil.getTextField(teamInfoPanel, `alert/m${i}/name`).text = info.datum[i].name
|
||
|
FGUtil.getTextField(teamInfoPanel, `alert/m${i}/n4`).text = info.datum[i].relive + "轉" + info
|
||
|
.datum[i].level + "級"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synGetFriendList(list) {
|
||
|
let friendsLayer = this.mainUI.getChildByName('FriendPanel');
|
||
|
if (this.mainUI.getChildByName('FriendAddLayer')) {
|
||
|
this.mainUI.getChildByName('FriendAddLayer').destroy();
|
||
|
}
|
||
|
if (friendsLayer != null) {
|
||
|
friendsLayer.getComponent('FriendPanel').loadFriendListInfo(list);
|
||
|
}
|
||
|
let pkPanel = this.mainUI.getChildByName('PKPanel');
|
||
|
if (pkPanel) {
|
||
|
pkPanel.getComponent('PKPanel').showScrollList(list);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synFriendChatInfo(info) {
|
||
|
GameModel.player.addFriendChatInfo(info);
|
||
|
},
|
||
|
synFriendAddTip() {
|
||
|
this.uiLogic.friendAddTip();
|
||
|
},
|
||
|
synSearchFriendList(list) {
|
||
|
let addLayer = this.mainUI.getChildByName('FriendAddLayer');
|
||
|
if (addLayer != null) {
|
||
|
addLayer.getComponent('FriendAddLayer').showFriendList(list);
|
||
|
}
|
||
|
let pkPanel = this.mainUI.getChildByName('PKPanel');
|
||
|
if (pkPanel) {
|
||
|
pkPanel.getComponent('PKPanel').showSearch(list);
|
||
|
}
|
||
|
},
|
||
|
// 同步背包數量
|
||
|
synbackpackNum(data) {
|
||
|
console.log("開啟背包格子", data)
|
||
|
if (!data.num || data.num <= 50)
|
||
|
return
|
||
|
GameModel.player.bagKindNum = data.num;
|
||
|
let bagLayer = this.mainUI.getChildByName('BagPanel');
|
||
|
if (bagLayer != null) {
|
||
|
bagLayer.getComponent('BagPanel').loadBagList();
|
||
|
}
|
||
|
},
|
||
|
// 同步背包數據
|
||
|
synBagItemList(data) {
|
||
|
let iteminfo = SKDataUtil.jsonBy(data.info);
|
||
|
if (iteminfo == null || iteminfo.length == 0) return
|
||
|
let list = [];
|
||
|
for (const itemid in iteminfo) {
|
||
|
if (SKDataUtil.hasProperty(iteminfo, itemid)) {
|
||
|
list.push({
|
||
|
itemid: itemid,
|
||
|
count: iteminfo[itemid]
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
GameModel.player.itemList = iteminfo;
|
||
|
CMainPlayerInfo.vecBagItem = list;
|
||
|
|
||
|
// TODO數據刷新即可 視圖暫時不刷新
|
||
|
//if (true ){
|
||
|
// return
|
||
|
//}
|
||
|
|
||
|
let bagLayer = this.mainUI.getChildByName('BagPanel');
|
||
|
if (bagLayer != null) {
|
||
|
bagLayer.getComponent('BagPanel').loadBagList();
|
||
|
}
|
||
|
Bag.Instance.refreshBagPanel();
|
||
|
let schemePanel = cc.find('Canvas/MainUI/SchemePanel');
|
||
|
if (schemePanel) {
|
||
|
let equipsNode = schemePanel.getChildByName('schemeNode').getChildByName('EquipsNode');
|
||
|
let equipsLogic = equipsNode.getComponent('SchemeEquipsPanel');
|
||
|
if (equipsLogic) {
|
||
|
equipsLogic.loadBagList();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
let nodPartnerUI = this.mainUI.getChildByName('PartnerUI');
|
||
|
if (nodPartnerUI != null) {
|
||
|
nodPartnerUI.getComponent('PartnerUI').OnReceiveBagItem();
|
||
|
}
|
||
|
|
||
|
let nodComposUI = this.mainUI.getChildByName('ComposUI');
|
||
|
if (nodComposUI != null) {
|
||
|
nodComposUI.getComponent('ComposUI').OnReceiveBagItem();
|
||
|
}
|
||
|
|
||
|
let MainUI = cc.find('Canvas/MainUI');
|
||
|
let petLayer = MainUI.getChildByName('PetPanel');
|
||
|
if (petLayer != null) {
|
||
|
petLayer.getComponent('PetPanel').refreshInfoNum();
|
||
|
}
|
||
|
|
||
|
if (Transformation.Instance) {
|
||
|
if (Transformation.Instance.practicePanel && Transformation.Instance.practicePanel.node) {
|
||
|
Transformation.Instance.refreshItemCount();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
let workshop = this.node.getChildByName('WorkShopPanel');
|
||
|
if (workshop) {
|
||
|
workshop.getComponent('WorkShopPanel').refreshNeedLabel();
|
||
|
}
|
||
|
|
||
|
BabyMgrPannel.shared.resetBabyGoodsList()
|
||
|
},
|
||
|
|
||
|
synEquipList(data) {
|
||
|
if (!data) {
|
||
|
GameModel.equipData = null;
|
||
|
} else {
|
||
|
let temp = SKDataUtil.jsonBy(data.list);
|
||
|
GameModel.equipData = temp;
|
||
|
if (temp.use) {
|
||
|
let hasWing = false;
|
||
|
for (let key in temp.use) {
|
||
|
let equip = temp.info[temp.use[key]];
|
||
|
if (equip) {
|
||
|
if (equip.EIndex == 6) {
|
||
|
hasWing = true;
|
||
|
let wingId = SKDataUtil.findByDict(GameModel.game_conf.wing, "resid", equip.Shape,
|
||
|
"id", 0);
|
||
|
if (this.mapLogic && this.mapLogic.myRole) {
|
||
|
this.mapLogic.myRole.changeWing(wingId);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if (!hasWing) {
|
||
|
if (this.mapLogic && this.mapLogic.myRole) {
|
||
|
this.mapLogic.myRole.changeWing(0);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
let bagLayer = this.mainUI.getChildByName('BagPanel');
|
||
|
if (bagLayer) {
|
||
|
bagLayer.getComponent('BagPanel').loadBagList();
|
||
|
}
|
||
|
Bag.Instance.refreshBagPanel();
|
||
|
let shenbingup = this.node.getChildByName('ShenBingUpPanel');
|
||
|
if (shenbingup) {
|
||
|
shenbingup.getComponent('ShenBingUpPanel').loadEquipList();
|
||
|
}
|
||
|
let xianqi = this.node.getChildByName('XianQiPanel');
|
||
|
if (xianqi) {
|
||
|
if (xianqi.getComponent('XianQiPanel').upgradeNode.active) {
|
||
|
xianqi.getComponent('XianQiPanel').upgradeNode.getComponent('XianQiUpPanel').loadEquipList();
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synEquipInfo(data) {
|
||
|
let info = SKDataUtil.jsonBy(data.equip);
|
||
|
// cc.log(info);
|
||
|
if (GameModel.equipData && GameModel.equipData.info) {
|
||
|
GameModel.equipData.info[info.EquipID] = info;
|
||
|
} else {
|
||
|
return;
|
||
|
}
|
||
|
if (ItemUtil.isBaldric(info.EIndex)) {
|
||
|
if (ItemUtil.isShowDetail()) {
|
||
|
ItemUtil.showAccessDetail(info, false);
|
||
|
}
|
||
|
if (RecastAlert.shared.isShow()) {
|
||
|
RecastAlert.shared.refresh(info);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
Bag.Instance.refreshEquipItenDetail(info);
|
||
|
|
||
|
let detailNode = this.node.getChildByName('EquipItemDetail');
|
||
|
if (detailNode != null && detailNode.getComponent('EquipItemDetail').iteminfo.EquipID == info.EquipID) {
|
||
|
detailNode.getComponent('EquipItemDetail').loadInfo(info);
|
||
|
}
|
||
|
let schemeDetailNode = this.node.getChildByName('SchemeEquipItemDetail');
|
||
|
if (schemeDetailNode != null && schemeDetailNode.getComponent('SchemeEquipItemDetail').iteminfo
|
||
|
.EquipID == info.EquipID) {
|
||
|
schemeDetailNode.getComponent('SchemeEquipItemDetail').loadInfo(info);
|
||
|
}
|
||
|
let workshop = this.node.getChildByName('WorkShopPanel');
|
||
|
if (workshop) {
|
||
|
workshop.getComponent('WorkShopPanel').reloadListData(info);
|
||
|
}
|
||
|
let wingUpdate = this.node.getChildByName('WingUpdatePanel');
|
||
|
if (wingUpdate) {
|
||
|
wingUpdate.getComponent('WingUpdatePanel').reloadListData(info);
|
||
|
}
|
||
|
let shenbingCombine = this.node.getChildByName('ShenBingCombinePanel');
|
||
|
if (shenbingCombine) {
|
||
|
shenbingCombine.getComponent('ShenBingCombinePanel').finishedCombine(info);
|
||
|
}
|
||
|
let shenbingup = this.node.getChildByName('ShenBingUpPanel');
|
||
|
if (shenbingup) {
|
||
|
shenbingup.getComponent('ShenBingUpPanel').reloadListData(info);
|
||
|
}
|
||
|
let xianqi = this.node.getChildByName('XianQiPanel');
|
||
|
if (xianqi) {
|
||
|
if (xianqi.getComponent('XianQiPanel').upgradeNode.active) {
|
||
|
xianqi.getComponent('XianQiPanel').upgradeNode.getComponent('XianQiUpPanel').loadEquipList();
|
||
|
}
|
||
|
if (xianqi.getComponent('XianQiPanel').combineNode.active) {
|
||
|
xianqi.getComponent('XianQiPanel').combineNode.getComponent('XianQiCombinePanel')
|
||
|
.finishedCombine(info);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
// 鑑定佩飾
|
||
|
authenticate(data) {
|
||
|
var node = this.node.getChildByName('accessory_main_third');
|
||
|
if (node == null) return;
|
||
|
node.getComponent("Appraisal").appraisalSuccess(data)
|
||
|
},
|
||
|
synNextEquip(data) {
|
||
|
let info = JSON.parse(data.equip);
|
||
|
if (!info || info == null) {
|
||
|
return;
|
||
|
}
|
||
|
let workshop = this.node.getChildByName('WorkShopPanel');
|
||
|
if (workshop != null) {
|
||
|
workshop.getComponent('WorkShopPanel').nextEquipInfo = info;
|
||
|
workshop.getComponent('WorkShopPanel').showInfo();
|
||
|
}
|
||
|
|
||
|
let shenbingup = this.node.getChildByName('ShenBingUpPanel');
|
||
|
if (shenbingup != null) {
|
||
|
shenbingup.getComponent('ShenBingUpPanel').showNextEquipInfo(info);
|
||
|
}
|
||
|
|
||
|
let xianqi = this.node.getChildByName('XianQiPanel');
|
||
|
if (xianqi != null) {
|
||
|
if (xianqi.getComponent('XianQiPanel').upgradeNode.active) {
|
||
|
xianqi.getComponent('XianQiPanel').upgradeNode.getComponent('XianQiUpPanel').showNextEquipInfo(
|
||
|
info);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synEquipProperty(data) {
|
||
|
let workshop = this.node.getChildByName('WorkShopPanel');
|
||
|
if (workshop) {
|
||
|
workshop.getComponent('WorkShopPanel').newScore = data.score
|
||
|
workshop.getComponent('WorkShopPanel').showNewProperty(data.property);
|
||
|
}
|
||
|
let wingUpdate = this.node.getChildByName('WingUpdatePanel');
|
||
|
if (wingUpdate) {
|
||
|
wingUpdate.getComponent('WingUpdatePanel').showNewProperty(data.property);
|
||
|
}
|
||
|
if (RecastPanel.shared.isShow()) {
|
||
|
RecastPanel.shared.sync(data.property);
|
||
|
}
|
||
|
if (RecastAlert.shared.isShow()) {
|
||
|
RecastAlert.shared.refreshRight(data.property);
|
||
|
}
|
||
|
},
|
||
|
synEquipPropertyScore(data) {
|
||
|
let workshop = this.node.getChildByName('WorkShopPanel');
|
||
|
if (workshop) {
|
||
|
workshop.getComponent('WorkShopPanel').oldScore = data
|
||
|
workshop.getComponent('WorkShopPanel').newScore = 0;
|
||
|
workshop.getComponent('WorkShopPanel').refreshOldScore()
|
||
|
}
|
||
|
},
|
||
|
synChangeWeapon(weapon) {
|
||
|
GameModel.player.weapon = weapon;
|
||
|
this.mapLogic.myRole.changeWeapon(GameModel.player.weapon);
|
||
|
},
|
||
|
|
||
|
synXianQiList(data) {
|
||
|
let xianqi = this.node.getChildByName('XianQiPanel');
|
||
|
if (xianqi != null) {
|
||
|
xianqi.getChildByName('combine').getComponent('XianQiCombinePanel').loadTypeList(data);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// 打開倉庫時獲取數據
|
||
|
synLockerItemList(data) {
|
||
|
console.log(data)
|
||
|
let lockerLayer = this.node.getChildByName('LockerPanel');
|
||
|
if (lockerLayer) {
|
||
|
let baginfo = JSON.parse(data.bag);
|
||
|
let lockerinfo = JSON.parse(data.locker);
|
||
|
let equipinfo = JSON.parse(data.equip);
|
||
|
lockerLayer.getComponent('LockerPanel').loadInfo(baginfo, lockerinfo, equipinfo);
|
||
|
// lockerLayer.getComponent('LockerPanel').loadBagList(baginfo);
|
||
|
// lockerLayer.getComponent('LockerPanel').loadLockerList(lockerinfo);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synIncenseState(data) {
|
||
|
if (data.ltime > 0) {
|
||
|
if (this.node.getChildByName('YinYaoXiangPanel')) {
|
||
|
this.node.getChildByName('YinYaoXiangPanel').destroy();
|
||
|
}
|
||
|
let yinyao = cc.instantiate(this.YinYaoXiangPanel);
|
||
|
yinyao.name = 'YinYaoXiangPanel';
|
||
|
yinyao.parent = this.node;
|
||
|
let yinyaologic = yinyao.getComponent('YinYaoXiangPanel');
|
||
|
yinyaologic.setTime(data.ltime);
|
||
|
} else {
|
||
|
if (this.node.getChildByName('YinYaoXiangPanel')) {
|
||
|
this.node.getChildByName('YinYaoXiangPanel').getComponent('YinYaoXiangPanel').closePanel();
|
||
|
}
|
||
|
if (this.autoPatrolNode.active) {
|
||
|
this.autoPatrolNode.active = false;
|
||
|
this.mapLogic.myRole.playStop();
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synBangList(list) {
|
||
|
let bangLayer = this.node.getChildByName('BangPanel');
|
||
|
if (bangLayer != null) {
|
||
|
bangLayer.getComponent('BangPanel').showAddlayer();
|
||
|
bangLayer.getComponent('BangPanel').showBangList(list);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
closeBangList() {
|
||
|
let bangLayer = this.node.getChildByName('BangPanel');
|
||
|
if (bangLayer != null) {
|
||
|
bangLayer.destroy();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
clearSelfRoleTitleInfo() {
|
||
|
// GameModel.player.bangdata = null;
|
||
|
GameModel.player.bangid = 0;
|
||
|
|
||
|
// GameModel.player.titleid = 0;
|
||
|
// GameModel.player.bangname = '';
|
||
|
|
||
|
// this.resetSelfPlayerTitle();
|
||
|
|
||
|
},
|
||
|
|
||
|
|
||
|
synBangInfo(data) {
|
||
|
GameModel.player.bangdata = data;
|
||
|
GameModel.player.bangid = data.info.bangid;
|
||
|
GameModel.player.bangname = data.info.name;
|
||
|
let bangLayer = this.node.getChildByName('BangPanel');
|
||
|
if (bangLayer != null) {
|
||
|
bangLayer.getComponent('BangPanel').showBangLayer();
|
||
|
bangLayer.getComponent('BangPanel').showBangInfo(data);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synBangRequest(data) {
|
||
|
let bangLayer = this.node.getChildByName('BangPanel');
|
||
|
if (bangLayer != null) {
|
||
|
bangLayer.getComponent('BangPanel').requestNode.getComponent('BangList').showRequestList(data
|
||
|
.requestlist);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
choosePet() {
|
||
|
let choose = cc.instantiate(this.petSelectedPre);
|
||
|
choose.parent = this.node;
|
||
|
GameModel.send('c2s_creat_equip', {
|
||
|
type: 0,
|
||
|
roleid: GameModel.player.roleid,
|
||
|
index: 1,
|
||
|
is: 0
|
||
|
});
|
||
|
|
||
|
GameModel.send('c2s_creat_equip', {
|
||
|
type: 0,
|
||
|
roleid: GameModel.player.roleid,
|
||
|
index: 2,
|
||
|
is: 0
|
||
|
});
|
||
|
|
||
|
GameModel.send('c2s_creat_equip', {
|
||
|
type: 0,
|
||
|
roleid: GameModel.player.roleid,
|
||
|
index: 3,
|
||
|
is: 0
|
||
|
});
|
||
|
GameModel.send('c2s_creat_equip', {
|
||
|
type: 0,
|
||
|
roleid: GameModel.player.roleid,
|
||
|
index: 4,
|
||
|
is: 0
|
||
|
});
|
||
|
GameModel.send('c2s_creat_equip', {
|
||
|
type: 0,
|
||
|
roleid: GameModel.player.roleid,
|
||
|
index: 5,
|
||
|
is: 0
|
||
|
});
|
||
|
},
|
||
|
|
||
|
synPetInfo(data) {
|
||
|
if (!data) {
|
||
|
cc.log(`寶寶數據錯誤!`);
|
||
|
return;
|
||
|
}
|
||
|
cc.log(data);
|
||
|
GameModel.player.petInfo = data;
|
||
|
MyModel.shared.petList = data;
|
||
|
if (data.list.length < 1) {
|
||
|
SKLogger(`$警告:召喚獸列表為空!`);
|
||
|
return;
|
||
|
}
|
||
|
let curInfo = null;
|
||
|
if (data.curid == 0) {
|
||
|
curInfo = data.list[0];
|
||
|
} else {
|
||
|
for (let index = 0; index < data.list.length; index++) {
|
||
|
if (data.list[index].petid == data.curid) {
|
||
|
curInfo = data.list[index];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if (!curInfo) {
|
||
|
curInfo = data.list[0];
|
||
|
}
|
||
|
}
|
||
|
this.uiLogic.setPetHeadIcon(curInfo.resid);
|
||
|
this.uiLogic.setPetLevel(curInfo.level);
|
||
|
let petLayer = this.mainUI.getChildByName('PetPanel');
|
||
|
if (petLayer) {
|
||
|
petLayer.getComponent('PetPanel').loadPetList();
|
||
|
}
|
||
|
},
|
||
|
synPetSupportPanel() {
|
||
|
let petLayer = this.mainUI.getChildByName('PetPanel');
|
||
|
if (petLayer) {
|
||
|
petLayer.getComponent('PetPanel').loadPetSupportList();
|
||
|
}
|
||
|
},
|
||
|
synChangePet(data) {
|
||
|
GameModel.player.petInfo.curid = data.curid;
|
||
|
|
||
|
let petLayer = this.mainUI.getChildByName('PetPanel');
|
||
|
if (petLayer != null) {
|
||
|
petLayer.getComponent('PetPanel').loadPetList();
|
||
|
}
|
||
|
// 重置寵物自動技能
|
||
|
LocalUtil.set('battle_p_skill', 0);
|
||
|
|
||
|
let petlist = GameModel.player.petInfo.list;
|
||
|
for (let index = 0; index < petlist.length; index++) {
|
||
|
if (petlist[index].petid == data.curid) {
|
||
|
this.uiLogic.setPetHeadIcon(petlist[index].resid);
|
||
|
this.uiLogic.setPetLevel(petlist[index].level);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
synDelPet(data) {
|
||
|
GameModel.player.petInfo.curid = data.curid;
|
||
|
let delpos = -1;
|
||
|
for (let index = 0; index < GameModel.player.petInfo.list.length; index++) {
|
||
|
if (GameModel.player.petInfo.list[index].petid == data.delid) {
|
||
|
delpos = index;
|
||
|
}
|
||
|
}
|
||
|
if (delpos != -1) {
|
||
|
GameModel.player.petInfo.list.splice(delpos, 1);
|
||
|
}
|
||
|
let petLayer = this.mainUI.getChildByName('PetPanel');
|
||
|
if (petLayer != null) {
|
||
|
petLayer.getComponent('PetPanel').loadPetList();
|
||
|
}
|
||
|
|
||
|
let curInfo = {};
|
||
|
for (let index = 0; index < GameModel.player.petInfo.list.length; index++) {
|
||
|
if (GameModel.player.petInfo.list[index].petid == data.curid) {
|
||
|
curInfo = GameModel.player.petInfo.list[index];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
this.uiLogic.setPetHeadIcon(curInfo.resid);
|
||
|
this.uiLogic.setPetLevel(curInfo.level);
|
||
|
},
|
||
|
|
||
|
synUpdatePet(data) {
|
||
|
let petinfo = data.info;
|
||
|
if (!GameModel.player || !GameModel.player.petInfo || !GameModel.player.petInfo.list) {
|
||
|
cc.warn(`$警告:同步召喚獸數據異常!`);
|
||
|
return;
|
||
|
}
|
||
|
for (let index = 0; index < GameModel.player.petInfo.list.length; index++) {
|
||
|
if (GameModel.player.petInfo.list[index].petid == petinfo.petid) {
|
||
|
GameModel.player.petInfo.list[index] = petinfo;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
let MainUI = cc.find('Canvas/MainUI');
|
||
|
let petLayer = MainUI.getChildByName('PetPanel');
|
||
|
if (petLayer != null) {
|
||
|
petLayer.getComponent('PetPanel').reloadInfo(petinfo, true);
|
||
|
}
|
||
|
if (GameModel.player.petInfo.curid == petinfo.petid) {
|
||
|
this.uiLogic.setPetHeadIcon(petinfo.resid);
|
||
|
this.uiLogic.setPetLevel(petinfo.level);
|
||
|
}
|
||
|
// console.log("dianshu1::::====",petinfo.resid)
|
||
|
// console.log("dianshu2::::====",petinfo.petid)
|
||
|
let petFlyPanel = MainUI.getChildByName('PetFlyPanel');
|
||
|
if (petFlyPanel) {
|
||
|
petFlyPanel.getComponent('PetFlyPanel').refrush();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
updatePetSSkill(petid, skillid) {
|
||
|
for (let index = 0; index < GameModel.player.petInfo.list.length; index++) {
|
||
|
let petdata = GameModel.player.petInfo.list[index];
|
||
|
if (petdata.petid == petid) {
|
||
|
petdata.shenskill = skillid;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
let petPanel = cc.find('PetPanel', this.mainUI);
|
||
|
if (petPanel) {
|
||
|
let petlogic = petPanel.getComponent('PetPanel');
|
||
|
petlogic.changeShenSkill(petid, skillid);
|
||
|
}
|
||
|
let petSSkillPanel = cc.find('PetPanel/PetShenSkill', this.mainUI);
|
||
|
if (petSSkillPanel != null) {
|
||
|
let logic = petSSkillPanel.getComponent('PetShenSkill');
|
||
|
logic.destroySelf();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
|
||
|
OnClickEarth() {
|
||
|
let comTaskTip = cc.find('TaskTip', cc.find('Canvas/MainUI/right')).getComponent('TaskTip');
|
||
|
if (comTaskTip) {
|
||
|
comTaskTip.stAuto.nKind = 0;
|
||
|
comTaskTip.stAuto.nTaskID = 0;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
touchBegan(event) {
|
||
|
if (GameModel.player.getLogic().isBing) {
|
||
|
MsgAlert.addMsg("冰凍中,不可進行操作")
|
||
|
return
|
||
|
}
|
||
|
if (GameModel.player.teamid > 0 && !GameModel.player.isleader && !GameModel.player.tempLeave) {
|
||
|
return;
|
||
|
}
|
||
|
this.OnClickEarth();
|
||
|
|
||
|
let touchPos = event.getLocation();
|
||
|
if (this.node.getChildByName('ChatPanel') != null) {
|
||
|
this.node.getChildByName('ChatPanel').getComponent('ChatPanel').hideEmoji();
|
||
|
}
|
||
|
if (GameModel.player.prisonTime == 0) {
|
||
|
for (let key in CNpcMgr.mapNpcObj) {
|
||
|
if (SKDataUtil.hasProperty(CNpcMgr.mapNpcObj, key)) {
|
||
|
let npc = CNpcMgr.mapNpcObj[key];
|
||
|
let valid = SKUIUtil.isValid(npc);
|
||
|
if (valid) {
|
||
|
let btn = npc.getChildByName('Button');
|
||
|
if (btn) {
|
||
|
let temp = btn.getBoundingBoxToWorld().contains(touchPos);
|
||
|
if (temp) {
|
||
|
npc.getComponent('Npc').OnNpcClick();
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if (!GameModel.hideNotTeam) {
|
||
|
for (const key in this.playerObjs) {
|
||
|
if (SKDataUtil.hasProperty(this.playerObjs, key)) {
|
||
|
const p = this.playerObjs[key];
|
||
|
if (p.getChildByName('Button').getBoundingBoxToWorld().contains(touchPos)) {
|
||
|
p.getComponent('role').OnClick();
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
let drawPos = this.mapLayer.convertToNodeSpaceAR(touchPos);
|
||
|
this.mapLogic.touchPos(drawPos);
|
||
|
},
|
||
|
|
||
|
touchMoved(event) {
|
||
|
|
||
|
},
|
||
|
|
||
|
touchEnded(event) {
|
||
|
|
||
|
},
|
||
|
|
||
|
startAutoSearchAni() {
|
||
|
for (let index = 0; index < this.autoSearchNodes.length; index++) {
|
||
|
const n = this.autoSearchNodes[index];
|
||
|
n.stopAllActions();
|
||
|
let ani = cc.sequence(cc.scaleTo(0.35, 1.5), cc.scaleTo(0.35, 1), cc.delayTime(1.8));
|
||
|
n.runAction(cc.sequence(cc.delayTime(index * 0.4), cc.callFunc(() => {
|
||
|
n.runAction(cc.repeatForever(ani));
|
||
|
})));
|
||
|
}
|
||
|
},
|
||
|
|
||
|
startAutoPatrolAni() {
|
||
|
for (let index = 0; index < this.autoPatrolNodes.length; index++) {
|
||
|
const n = this.autoPatrolNodes[index];
|
||
|
n.stopAllActions();
|
||
|
let ani = cc.sequence(cc.scaleTo(0.35, 1.5), cc.scaleTo(0.35, 1), cc.delayTime(1.8));
|
||
|
n.runAction(cc.sequence(cc.delayTime(index * 0.4), cc.callFunc(() => {
|
||
|
n.runAction(cc.repeatForever(ani));
|
||
|
})));
|
||
|
}
|
||
|
},
|
||
|
|
||
|
showMainMap() {
|
||
|
if (!SKUIUtil.isValid(this.mainMap)) {
|
||
|
let info = `$警告:主地圖節點無效`;
|
||
|
cc.warn(info);
|
||
|
return;
|
||
|
}
|
||
|
this.mainMap.active = true;
|
||
|
this.mainMap.getComponent('MainMapLogic').init();
|
||
|
},
|
||
|
|
||
|
showSmallMap() {
|
||
|
console.log(GameModel.conf_map[GameModel.player.mapid])
|
||
|
if (GameModel.conf_map[GameModel.player.mapid].bmap == 0) {
|
||
|
return;
|
||
|
}
|
||
|
if (!SKUIUtil.isValid(this.mainMap)) {
|
||
|
cc.warn(`$警告:顯示小地圖節點無效${GameModel.player.mapid}`);
|
||
|
return;
|
||
|
}
|
||
|
this.mainMap.active = true;
|
||
|
let mainmapLogic = this.mainMap.getComponent('MainMapLogic');
|
||
|
mainmapLogic.init();
|
||
|
mainmapLogic.showAboveNode(GameModel.player.mapid);
|
||
|
mainmapLogic.mainLayer.active = false;
|
||
|
},
|
||
|
// 進入戰鬥
|
||
|
enterBattle(teamA, teamB) {
|
||
|
if (this.autoPatrolNode.active) {
|
||
|
this.autoPatrolNode.active = false;
|
||
|
}
|
||
|
this.mapLogic.myRole.playStop();
|
||
|
// clean battle layer
|
||
|
let battlelayer = cc.find('Canvas/BattleLayer');
|
||
|
battlelayer.destroyAllChildren();
|
||
|
let battlestage = cc.instantiate(this.battleStagePre);
|
||
|
battlestage.parent = battlelayer;
|
||
|
battlestage.name = 'BattleStage';
|
||
|
let battlelogic = battlestage.getComponent('BattleStage');
|
||
|
// check battle ui
|
||
|
let battleui = cc.find('Canvas/BattleUILayer/BattleUI');
|
||
|
if (battleui == null) {
|
||
|
let parent = cc.find('Canvas/BattleUILayer');
|
||
|
battleui = cc.instantiate(this.battleUIPre);
|
||
|
battleui.parent = parent;
|
||
|
}
|
||
|
let battleuilogic = battleui.getComponent('BattleUI');
|
||
|
battleuilogic.initPetPanel(teamA.list);
|
||
|
this.uiLogic.isBattle = true;
|
||
|
GameModel.notice.removeMsg();
|
||
|
battlelogic.onBattle();
|
||
|
battlelogic.setTeam(teamA.list, 1);
|
||
|
battlelogic.setTeam(teamB.list, 2);
|
||
|
},
|
||
|
|
||
|
exitBattle(data) {
|
||
|
let battlelayer = cc.find('Canvas/BattleLayer');
|
||
|
let battlestage = battlelayer.getChildByName('BattleStage');
|
||
|
if (battlestage) {
|
||
|
// let deps = cc.loader.getDependsRecursively('Prefabs/Battle/BattleStage');
|
||
|
// cc.loader.release(deps);
|
||
|
let logic = battlestage.getComponent('BattleStage');
|
||
|
logic.clear();
|
||
|
battlestage.destroy();
|
||
|
}
|
||
|
battlelayer.destroyAllChildren();
|
||
|
this.uiLogic.showBattleEnd(data.result > 0);
|
||
|
},
|
||
|
|
||
|
update() {
|
||
|
let count = 0;
|
||
|
for (let key in this.role_need_sync) {
|
||
|
if (SKDataUtil.hasProperty(this.role_need_sync, key)) {
|
||
|
this.synPlayerInfo(this.role_need_sync[key]);
|
||
|
delete this.role_need_sync[key];
|
||
|
++count;
|
||
|
}
|
||
|
if (count == 1) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
// 同步騎乘
|
||
|
syncRide(data) {
|
||
|
let curRole = null;
|
||
|
if (data.onlyId == GameModel.player.onlyid) {
|
||
|
curRole = this.mapLogic.roleNode;
|
||
|
}
|
||
|
if (curRole == null) {
|
||
|
curRole = this.playerObjs[data.onlyId];
|
||
|
}
|
||
|
if (curRole != null) {
|
||
|
let role = curRole.getComponent('role');
|
||
|
if (role != null) {
|
||
|
role.horseList.syncRide(data.horseIndex);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
// 同步下騎
|
||
|
syncGetDown(data) {
|
||
|
let curRole = null;
|
||
|
if (data.onlyId == GameModel.player.onlyid) {
|
||
|
curRole = this.mapLogic.roleNode;
|
||
|
}
|
||
|
if (curRole == null) {
|
||
|
curRole = this.playerObjs[data.onlyId];
|
||
|
}
|
||
|
if (curRole != null) {
|
||
|
let role = curRole.getComponent('role');
|
||
|
if (role) {
|
||
|
role.horseList.syncGetDown();
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
// 同步轉職
|
||
|
syncRace(data) {
|
||
|
let curRole = null;
|
||
|
if (data.onlyId == GameModel.player.onlyid) {
|
||
|
curRole = this.mapLogic.roleNode;
|
||
|
}
|
||
|
if (curRole == null) {
|
||
|
curRole = this.playerObjs[data.info.onlyid];
|
||
|
}
|
||
|
if (curRole != null) {
|
||
|
let role = curRole.getComponent('role');
|
||
|
if (role != null) {
|
||
|
role.setInfo(data.info);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
showTransInfo(data) {
|
||
|
if (this.uiLogic)
|
||
|
this.uiLogic.showTransformationInfo(data);
|
||
|
}
|
||
|
});
|