2025-04-23 09:34:08 +08:00

4485 lines
148 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { EEventType, Channel, Operate } from './../role/EEnum';
/**
* agent 类,客户端网络连接代理,用于接收发送与客户端相关的协议包。
*/
import AgentBase from "./AgentBase";
import AgentMgr from "./AgentMgr";
import GMMgr from "../core/GMMgr";
import Signal from "../core/Signal";
import GameUtil from "../core/GameUtil";
import Player from "../object/Player";
import MapMgr from "../core/MapMgr";
import PlayerMgr from "../object/PlayerMgr";
import ChargeSum from "../core/ChargeSum";
import BangMgr from "../bang/BangMgr";
import World from "../object/World";
import PaiHangMgr from "../core/PaiHangMgr";
import Shop from "../object/Shop";
import GoodsMgr from "../item/GoodsMgr";
import ShopItem from "../object/ShopItem";
import MallMgr from "../core/MallMgr";
import ZhenbukuiMgr from "../activity/ZhenbukuiMgr";
import DB from "../utils/DB";
import BattleMgr from "../battle/BattleMgr";
import ActivityMgr from "../activity/ActivityMgr";
import ActivityDefine from "../activity/ActivityDefine";
import RelationMgr from "../object/RelationMgr";
import TeamMgr from "../core/TeamMgr";
import NpcMgr from "../core/NpcMgr";
import TaskConfigMgr from "../task/TaskConfigMgr";
import NpcConfigMgr from "../core/NpcConfigMgr";
import LotteryMgr from "../core/LotteryMgr";
import EquipMgr from "../object/EquipMgr";
import WorldRewardMgr from "../activity/WorldRewardMgr"
import PalaceFight from "../activity/PalaceFight";
import SKDataUtil from "../gear/SKDataUtil";
import SKLogger from "../gear/SKLogger";
import ItemUtil from "../core/ItemUtil";
import BoxMgr from "../core/BoxMgr";
import { MsgCode } from "../role/EEnum";
import EventBase from '../event/EventBase';
import GiveNpcItem from '../event/GiveNpcItem';
import KillDynamicNpcState from '../event/KillDynamicNpcState';
import EventStateBase from '../event/EventStateBase';
import TalkEventState from '../event/TalkEventState';
import Npc from '../core/Npc';
import JingJiChang from "../activity/JingJiChang";
import GameConf from "../../conf/GameConf";
import SignInMgr from "../core/SignInMgr";
import GTimer from "../common/GTimer";
import RespondentsMgr from "../core/RespondentsMgr";
import DialMgr from "../core/DialMgr";
import ChangeCard from "../object/ChangeCard";
import SKCxfUtil from "../gear/SKCxfUtil";
import FivePhases from "../object/FivePhases";
import DWorld from "../object/DWorld";
import SatAssembly from '../activity/SatAssembly';
import SpecialEffect from "../object/SpecialEffect";
import PetSupport from "../object/PetSupport";
import Ofuda from "../object/Ofuda";
import FactionWar from '../activity/FactionWar';
import RoleTaskMgr from "../core/RoleTaskMgr";
import DebrisMall from '../core/DebrisMall';
import Interface from '../core/Interface';
import Currency from "../activity/Currency";
import Marry from "../object/Marry";
import TianTi from '../activity/TianTi';
import JIngChanSongFuMgr from '../JingChanSongFu/JIngChanSongFuMgr';
export default class Agent extends AgentBase {
accountid: number;
roleId: number;
roleName: string;
token: string;
loginstep: number;
player: Player;
constructor(socket: any) {
super(socket);
this.accountid = -1; // agent 绑定的玩家id
this.roleId = -1;
this.roleName = "未知";
this.token = ""; // agent 登录token
this.loginstep = 0;
}
close() {
super.close();
AgentMgr.shared.delAgent(this.id);
if (this.player != null) {
this.player.playerOffline();
this.player = null;
}
SKLogger.debug(`玩家[${this.roleId}:${this.roleName}]SOCKET断开连接:AgentID[${this.id}]`);
}
gm_command(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
GMMgr.shared.exec(player, data.commands);
}
// 请求登录
c2s_login(data: any) {
let accountid = data.accountid;
let roleid = data.roleid;
let token = Signal.shared.getLoginToken(accountid);
// 登录失败,需重新登录
if (data.token != token || roleid == undefined) {
SKLogger.warn(`玩家[agentId=${this.id},角色:${roleid}]登录异常:TOKEN[${data.token}:${token}]无效!`);
this.close();
return;
}
this.accountid = accountid;
this.roleId = roleid;
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player != null) {
this.player = player;
this.player.setAgent(this);
this.player.playerLogined();
this.roleName = this.player.name;
SKLogger.debug(`玩家[${this.roleId}:${this.roleName}][agentId=${this.id}]重新连接`);
return;
}
this.readDB();
}
readDB() {
SKLogger.info(`玩家[agentId=${this.id},角色:${this.roleId}]读表中...`);
let self = this;
if (this.roleId != undefined) {
DB.loginByRoleid(this.roleId, (code: any, data: any) => {
if (code == MsgCode.SUCCESS) {
self.doLogin(data);
} else {
self.close();
}
});
}
}
doLogin(data: any) {
this.player = new Player();
this.player.setAgent(this);
this.player.setDB(data);
if (this.player.x == -1 || this.player.y == -1) {
this.player.x = MapMgr.shared.getMap(this.player).map_data.startPos.x;
this.player.y = MapMgr.shared.getMap(this.player).map_data.startPos.y;
}
SKLogger.info(`玩家[${this.player.roleid}:${this.player.name}][agentId:${this.id}]登录成功!`);
this.player.playerLogined();
this.roleName = this.player.name;
};
// 其他设备登录
otherLogin() {
if (this.player) {
this.player.send("s2c_otherlogin");
}
this.player = null;
}
c2s_relogin(data: any) {
let roleid = data.roleid;
let otheragent = AgentMgr.shared.getAgentByAccountid(roleid);
if (otheragent) {
otheragent.close();
}
// 处理掉线玩家
let player = PlayerMgr.shared.getPlayerByRoleId(roleid);
if (player) {
if (player.offline == true) {
player.setAgent(this);
player.playerRelogin();
return;
}
player.agent.close();
player.setAgent(this);
player.playerRelogin();
return;
}
}
c2s_enter_game(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.onEnterGame();
player.activateScheme();
}
}
c2s_change_map(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.changeMap(data);
}
}
c2s_create_team(data: any) {
const player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
TeamMgr.shared.creatTeam(player, data);
}
}
c2s_match_team(data: any) {
const player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
TeamMgr.shared.matchTeam(player);
}
}
//申请队伍
c2s_requst_team(data: any) {
const player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
if (player.inPrison) {
player.send('s2c_notice', {
strRichText: '老实点,天王老子都不会收留你。'
});
}
let playerlist = TeamMgr.shared.getTeamPlayer(data.teamid);
for (let player1 of playerlist) {
if (player1.isleader) {
if (player.mapid == 3001 && player.bangid != player1.bangid) {
player.send_notice("你们不是一个帮派!");
return;
}
if (player1.mapid == 3001 && player.mapid != 3001) {
player.send_notice("队长正在参加帮战先去找npc报名吧");
return;
}
if (player1.mapid == 1213 && player.mapid != 1213) {
player.send_notice("队长正在参加水陆大会先去找npc报名吧");
return;
}
if (player1.mapid == 4004 && player.mapid != 4004) {
player.send_notice("队长正在参加水陆大会先去找npc报名吧");
return;
}
}
}
TeamMgr.shared.requestTeam(player, data.teamid);
}
}
//离开队伍
c2s_leave_team(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
TeamMgr.shared.leaveTeam(player);
}
}
//移交队长
c2s_transfer_team(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
let toPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player && toPlayer) {
TeamMgr.shared.changeTeamLeader(player, toPlayer, player.teamid, data.type);
}
}
//接收客户端发来的 切磋
c2s_exchange_views(data: any) {
let player = PlayerMgr.shared.getLikePlayer(this.accountid);
let t = Date.now();
if (t - player.lastExchangeViewsTime < 15 * 1000) {
player.send('s2c_notice', {
strRichText: '不可频繁请求,请15秒后再次发起切磋'
});
return;
}
let toplayer = PlayerMgr.shared.getPlayerByRoleId(data.troleid);
if (toplayer) {
toplayer.send('s2c_exchange_views', {
roleid: player.roleid,
});
}
player.send('s2c_notice', {
strRichText: '切磋请求发送成功,请等待对方同意!'
});
player.lastExchangeViewsTime = t;
}
c2s_transfer_team_requst(data: any) {
let toplayer = PlayerMgr.shared.getPlayerByRoleId(data.toid);
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!toplayer) {
console.warn(`$警告:组队邀请玩家[${data.toid}]找不到`);
return;
}
if (!player) {
console.warn(`$警告:组队请求玩家[${this.roleId}]找不到`);
return;
}
if (toplayer.teamid != player.teamid) {
return;
}
toplayer.send('s2c_transfer_team_requst', {
roleid: player.roleid,
});
}
c2s_team_list(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
TeamMgr.shared.getTeamList(player, data.type);
}
}
//发布招募
c2s_issue_recruit(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
TeamMgr.shared.issueRecruit(player, data);
}
}
//组队大厅
c2s_hall_list(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
TeamMgr.shared.getTeamList(player, data.type);
}
}
c2s_team_requeslist(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player && player.isleader) {
TeamMgr.shared.getRequestList(player, player.teamid);
}
}
c2s_operteam(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
let dealp = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player && dealp && player.teamid == data.teamid && player.isleader) {
TeamMgr.shared.dealRequest(dealp, data);
TeamMgr.shared.getRequestList(player, data.teamid);
}
}
c2s_aoi_move(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.playerMove(data);
}
}
c2s_aoi_stop(data: any) {
let player: Player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.playerStop(data);
}
}
c2s_player_upskill(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.updateSkill(data);
}
}
c2s_player_addpoint(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.addCustomPoint(data);
}
}
c2s_xiulian_point(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.addXiulianPoint(data);
}
}
c2s_xiulian_upgrade(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.xiulianUpgrade(data);
}
}
// scale 0 世界 1 队伍 2 帮派
c2s_game_chat(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
//判断是否开通发言
if (GameConf.speak) {
let msg = data.msg;
let chargeTotal = ChargeSum.shared.getPlayerChargeSum(player.roleid);
if (player.gmlevel <= 0) {
if (player.GetFlag(GameUtil.EPlayerFlag.EBanSpeak) == 1) {
player.send('s2c_notice', {
strRichText: '你处于禁言状态'
});
return;
}
}
for (let i = 0; i < GameUtil.limitWordList.length; i++) {
const fword = GameUtil.limitWordList[i];
if (msg.indexOf(fword) != -1) {
msg = msg.replace(new RegExp(fword, 'g'), '*');
}
}
let canBroadcast = GameUtil.checkLimitWord(msg);
if (player.gmlevel == 100 && msg == "逐鹿") {
SatAssembly.shared.satReadyOpen();
return;
} else if (player.gmlevel == 100 && msg == "结束逐鹿") {
SatAssembly.shared.close();
}
if (player.gmlevel == 100 && msg == "帮战") {
FactionWar.shared.satReadyOpen();
return;
} else if (player.gmlevel == 100 && msg == "结束帮战") {
FactionWar.shared.close();
}
data.msg = msg;
data.teamid = player.teamid;
data.name = player.name;
data.resid = player.resid;
data.roleid = player.roleid;
data.onlyid = player.onlyid;
data.voice = new Uint8Array(data.voice);
data.relive = player.relive;
data.chargesum = ChargeSum.shared.getPlayerChargeSum(player.roleid);
data.portrait = SpecialEffect.shared.getPortraitByRoleid(player.roleid);
data.level = player.level;
data.bangname = player.bangname;
// 检测清理背包
player.clear_bag(msg);
// 两条信息相同 不广播
if (player.lastWorldChatStr == msg) {
canBroadcast = false;
}
if (!canBroadcast) {
player.send('s2c_game_chat', data);
return;
}
if (data.scale == Channel.FACTION) {
if (player.bangid != null && player.bangid != 0) {
let bang = BangMgr.shared.getBang(player.bangid);
if (bang) {
if (!GameConf.isBeta) {
if (player.level < GameUtil.limitWorldChatLevel || chargeTotal < GameUtil.limitBangChatCharge) {
let msg = `帮派聊天需要等级达到${GameUtil.limitWorldChatLevel}级并且累计充值${GameUtil.limitWorldChatCharge}`;
player.send('s2c_notice', {
strRichText: msg
});
return;
}
}
// CXF 通讯记录
SKCxfUtil.getCxfRecordMsg({
roleId: this.roleId,
roleName: this.roleName,
msg: msg,
type: Channel.FACTION,
zoneSerial: GameUtil.serverId
})
bang.broadcast('s2c_game_chat', data);
} else {
player.send('s2c_notice', {
strRichText: '请先加入帮派'
});
}
}
} else if (data.scale == Channel.TEAM) {
if (player.teamid == 0) {
player.send('s2c_notice', {
strRichText: '请先加入队伍'
});
return;
}
if (chargeTotal < GameUtil.limitBangChatCharge) {
if (!GameConf.isBeta) {
let msg = `队天聊天需要累计充值${GameUtil.limitWorldChatCharge}`;
player.send('s2c_notice', {
strRichText: msg
});
return;
}
}
let roleList = TeamMgr.shared.getTeamPlayer(player.teamid);
// CXF 通讯记录
SKCxfUtil.getCxfRecordMsg({
roleId: this.roleId,
roleName: this.roleName,
msg: msg,
type: Channel.TEAM,
zoneSerial: GameUtil.serverId
})
for (let p of roleList) {
p.send('s2c_game_chat', data);
}
} else {
let t = Date.now();
if (t - player.lastWorldChatTime < 10 * 1000) {
player.send('s2c_notice', {
strRichText: '聊天间隔不足10秒'
});
return;
}
if (!GameConf.isBeta) {
if (player.level < GameUtil.limitWorldChatLevel || chargeTotal < GameUtil.limitWorldChatCharge) {
let msg = `世界聊天需要等级达到${GameUtil.limitWorldChatLevel}级并且累计充值${GameUtil.limitWorldChatCharge}`;
player.send('s2c_notice', {
strRichText: msg
});
return;
}
}
player.lastWorldChatTime = t;
let rcost = player.CostFee(0, 3000, '世界聊天');
if (rcost != '') {
player.send('s2c_notice', {
strRichText: rcost + ',发送失败'
});
return;
}
// CXF 通讯记录
SKCxfUtil.getCxfRecordMsg({
roleId: this.roleId,
roleName: this.roleName,
msg: msg,
type: Channel.WORLD,
zoneSerial: GameUtil.serverId
})
// 检测礼包码
// player.checkExchange(msg);
data.msg = SKDataUtil.filter(data.msg);
player.lastWorldChatStr = data.msg;
PlayerMgr.shared.broadcast('s2c_game_chat', data);
}
} else {
player.send_notice("全服禁言中!");
}
}
c2s_get_friends(data?: any) {
let friendlist = [];
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let list = player.friendList;
for (const key in list) {
if (list.hasOwnProperty(key)) {
const pitem = list[key];
let friend: any = {
roleid: key, // info.roleid,
name: pitem.name, // info.name,
resid: pitem.resid, // info.resid,
relive: 0, // info.relive,
level: -1, // info.level,
race: 0, // info.race,
sex: 0, // info.sex,
state: 1,
online: 0,
portrait: 0,
teamid: 0
};
let roleId = SKDataUtil.numberBy(key);
let target = PlayerMgr.shared.getPlayerByRoleId(roleId);
if (target) {
friend.name = target.name;
friend.level = target.level;
friend.relive = target.relive;
friend.race = target.race;
friend.sex = target.sex;
friend.online = (target.offline ? 0 : 1);
friend.portrait = SpecialEffect.shared.getPortraitByRoleid(target.roleid)
friend.teamid = target.teamid
player.updateFriend(friend);
}
friendlist.push(friend);
}
}
let alist = player.applyFriendList;
for (let pid in alist) {
if (alist.hasOwnProperty(pid)) {
let pitem = alist[pid];
pitem.state = 0;
friendlist.push(pitem)
}
}
}
this.send('s2c_friends_info', {
list: friendlist,
});
}
c2s_update_friends(data: any) {
//operation 0删除 1同意 2拒绝 3全部同意 4全部拒绝
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
if (data.operation == 0) {
delete player.applyFriendList[data.roleid];
delete player.friendList[data.roleid];
let target = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (target) {
delete target.applyFriendList[player.roleid];
delete target.friendList[player.roleid];
}
}
if (data.operation == 1 || data.operation == 2) {
if (data.operation == 1) {
if (player.getFriendNum() > 50) {
this.send('s2c_notice', {
strRichText: '好友数已达上线,无法添加'
});
return;
}
let info = player.applyFriendList[data.roleid];
let target = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (target && info) {
player.friendList[info.roleid] = {
roleid: info.roleid, // info.roleid,
name: info.name, // info.name,
resid: info.resid, // info.resid,
portrait: SpecialEffect.shared.getPortraitByRoleid(target.roleid)
};
target.friendList[player.roleid] = {
roleid: player.roleid, // info.roleid,
name: player.name, // info.name,
resid: player.resid, // info.resid,
portrait: SpecialEffect.shared.getPortraitByRoleid(player.roleid)
};
}
}
delete player.applyFriendList[data.roleid];
}
if (data.operation == 3) {
let applynum = 0;
for (const pid in player.applyFriendList) {
if (player.applyFriendList.hasOwnProperty(pid)) {
// const element = player.applyFriendList[pid];
applynum++;
}
}
if (player.getFriendNum() + applynum >= 50) {
this.send('s2c_notice', {
strRichText: '申请人数超过上限,无法全部通过'
});
return;
}
for (const key in player.applyFriendList) {
if (player.applyFriendList.hasOwnProperty(key)) {
let roleId = SKDataUtil.numberBy(key);
let target = PlayerMgr.shared.getPlayerByRoleId(roleId);
if (target) {
player.friendList[target.roleid] = {
roleid: target.roleid, // info.roleid,
name: target.name, // info.name,
resid: target.resid, // info.resid,
portrait: SpecialEffect.shared.getPortraitByRoleid(target.roleid)
};
target.friendList[player.roleid] = {
roleid: player.roleid, // info.roleid,
name: player.name, // info.name,
resid: player.resid, // info.resid,
portrait: SpecialEffect.shared.getPortraitByRoleid(player.roleid)
};
}
}
}
player.applyFriendList = {};
}
if (data.operation == 4) {
player.applyFriendList = {};
}
this.c2s_get_friends();
}
c2s_search_friends(data: any) {
if (data.data == null || data.data == '') {
return;
}
let list = PlayerMgr.shared.getLikePlayer(data.data);
let rlist = [];
while (list.length > 6) {
let r = GameUtil.random(0, list.length - 1);
list.splice(r, 1);
}
for (const player of list) {
rlist.push({
roleid: player.roleid,
name: player.name,
resid: player.resid,
level: player.level,
relive: player.relive,
race: player.race,
sex: player.sex,
});
}
this.send('s2c_search_friends', {
list: rlist,
})
}
c2s_add_friend(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (player.getFriendNum() >= 50) {
this.send('s2c_notice', {
strRichText: '好友数已达上限,无法添加好友'
});
return;
}
}
if (data.roleid == this.roleId) {
this.send('s2c_notice', {
strRichText: '不能添加自己为好友'
});
return;
}
let target = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (target) {
if (target.getFriendNum() >= 50) {
this.send('s2c_notice', {
strRichText: '申请失败,对方好友数已达上限'
});
return;
}
if (target.friendList[data.roleid] != null) {
this.send('s2c_notice', {
strRichText: '申请失败,已经是好友或已申请'
});
return;
}
if (target.applyFriendList[data.roleid] != null) {
this.send('s2c_notice', {
strRichText: '申请失败,已经是好友或已申请'
});
return;
}
}
if (player && target) {
target.applyFriendList[player.roleid] = {
roleid: player.roleid,
name: player.name,
resid: player.resid,
level: player.level,
relive: player.relive,
race: player.race,
sex: player.race,
online: !player.offline
}
this.send('s2c_notice', {
strRichText: '已申请,等待对方同意'
});
target.send('s2c_friend_apply');
} else {
this.send('s2c_notice', {
strRichText: '对方不在线'
});
}
}
c2s_friend_chat(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
if (player.GetFlag(GameUtil.EPlayerFlag.EBanSpeak) == 1) {
player.send('s2c_notice', {
strRichText: '你处于禁言状态'
});
return;
}
let msg = data.msg;
for (let i = 0; i < GameUtil.limitWordList.length; i++) {
const fword = GameUtil.limitWordList[i];
if (msg.indexOf(fword) != -1) {
msg = msg.replace(new RegExp(fword, 'g'), '*');
}
}
let canBroadcast = true;
let numcount = 0;
for (let k = 0; k < msg.length; k++) {
const msgchar = msg[k];
if (GameUtil.numchar.indexOf(msgchar) != -1) {
numcount++
if (numcount >= 7) {
canBroadcast = false;
break;
}
}
}
for (let i = 0; i < GameUtil.limitBroadcastList.length; i++) {
const fword = GameUtil.limitBroadcastList[i];
if (msg.indexOf(fword) != -1) {
canBroadcast = false;
break;
}
}
if (canBroadcast) {
let friend = PlayerMgr.shared.getPlayerByRoleId(data.toid);
if (friend) {
friend.send('s2c_friend_chat', data);
}
}
}
// 邮件
c2s_mail_list(data: any) {
let player: Player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
player.mailList.check();
player.mailList.getMailList();
}
c2s_mail_action(data: any) {
let player: Player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
player.mailList.runAction(data);
}
QueryPartner(nRoleID: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
let mapPartner = player.partnerMgr.mapPartner;
let vecJson = [];
for (var it in mapPartner) {
let strJson = GameUtil.getPartnerJson(mapPartner[it]);
vecJson.push({
strJson: strJson
});
}
this.send('s2c_partner_list', {
vecPartner: vecJson,
strJsonPos: SKDataUtil.toJson(player.partnerMgr.vecChuZhan, "{}")
});
}
// 伙伴转生
partnerRelive(data: any) {
if (data == null || data.nPartnerID == null)
return;
let nPartnerID = data.nPartnerID;
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
let partner = player.partnerMgr.GetPartner(nPartnerID);
if (partner == null) {
return;
}
let info = partner.doRelive();
player.send('s2c_npc_notice', {
nNpcConfigID: 10094,
strRichText: info == '' ? '伙伴转生成功' : info
});
player.partnerMgr.SendPartnerInfoToClient(nPartnerID);
}
ChangePartnerState(data: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
pPlayer.partnerMgr.ChangeChuZhanPos(data.nPos, data.nPartnerID);
if (pPlayer.teamid > 0 && pPlayer.isleader) {
TeamMgr.shared.changePartner(pPlayer.teamid, pPlayer);
}
pPlayer.syncSchemePartner();
}
getTeamInfo(data: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
if (pPlayer.teamid > 0) {
TeamMgr.shared.changePartner(pPlayer.teamid, pPlayer);
}
}
PartnerExchangeExp(data: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(data.nRoleID);
if (null == pPlayer)
return;
if (data.nCostWhat == 0) {
return;
}
if (data.nCostWhat == 1) {
let strErr = pPlayer.CostFee(0, 3000000, '传功');
if (strErr != '') {
pPlayer.send('s2c_notice', {
strRichText: strErr
});
return;
}
}
let pPartnerA: any = pPlayer.partnerMgr.GetPartner(data.nPartnerA);
let pPartnerB: any = pPlayer.partnerMgr.GetPartner(data.nPartnerB);
if (null == pPartnerA || null == pPartnerB)
return;
for (let key of ['relive', 'level', 'exp']) {
let nTmp = pPartnerA[key];
pPartnerA[key] = pPartnerB[key];
pPartnerB[key] = nTmp;
}
this.QueryPartner(data.nRoleID);
this.send('s2c_partner_exchange_exp_ok', {
nPartnerA: data.nPartnerA,
nAExp: pPartnerA.exp,
nPartnerB: data.nPartnerB,
nBExp: pPartnerB.exp
});
}
QueryOther(nRoleID: any) {
let sql = `select roleid,resid,level,relive,name from qy_role where roleid = ${nRoleID}`;
DB.query(sql, (ret: any, rows: any) => {
let stData = null;
for (let i = 0; i < rows.length; i++) {
stData = {
nRoleID: rows[i].roleid,
nResID: rows[i].resid,
nLevel: rows[i].level,
nRelive: rows[i].relive,
strName: rows[i].name,
strBangName: '',
};
break;
}
this.send('c2s_other_info', stData);
});
}
QueryRoleTask() {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
pPlayer.getTaskMgr().updateTaskStateToClient();
}
PlayerChallengeNpc(nOnlyID: any, nConfigID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
let pNpc = NpcMgr.shared.findNpc(nOnlyID);
if (null == pNpc)
return;
if (World.shared.starMgr.IsStar(nOnlyID)) {
let strErr = World.shared.starMgr.ApplyChallenge(nOnlyID, pPlayer.roleid, pPlayer.getWorldStar());
if (strErr == 0) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: '报名成功,请等待'
});
pPlayer.send('s2c_star_waiting', {});
} else {
let str = '你来晚了,下次早点来哦';
if (strErr == 3) {
str = '请先击杀低级地煞星!';
}
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: str
});
World.shared.starMgr;
}
}// 天元盛典
else if (DWorld.shared.starMgr.IsStar(nOnlyID)) {
let strErr = DWorld.shared.starMgr.ApplyChallenge(nOnlyID, pPlayer.roleid, pPlayer.getWorldStar());
if (strErr == 0) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: '报名成功,请等待'
});
pPlayer.send('s2c_star_waiting', {});
} else {
let str = '你来晚了,下次早点来哦';
if (strErr == 3) {
str = '请先击杀任务怪!';
}
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: str
});
DWorld.shared.starMgr;
}
}
// 逐鹿恶鬼
else if (World.shared.magicWorldMgr.IsMagic(nOnlyID)) {
let team = TeamMgr.shared.getTeamInfo(pPlayer.teamid);
if (team == null || team.playerlist.length < 3) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: "必须3人以上组队才可挑战"
});
return;
}
let strErr = World.shared.magicWorldMgr.ApplyChallenge(nOnlyID, pPlayer.roleid);
if (strErr == 0) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: '报名成功,请等待'
});
pPlayer.send('s2c_star_waiting', {});
} else {
let str = '你来晚了,下次早点来哦';
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: str
});
World.shared.magicWorldMgr;
}
}
else if (World.shared.pirateMgr.IsPirate(nOnlyID)) {
let team = TeamMgr.shared.getTeamInfo(pPlayer.teamid);
if (team == null || team.playerlist.length < 3) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: "你还是凑齐3个人再来孝敬大爷我吧"
});
return;
}
for (let i = 0; i < team.playerlist.length; i++) {
const mem = team.playerlist[i];
if (mem.level < 40) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: `队伍中玩家${mem.name}等级不符合条件!`
});
return;
}
}
let strErr = World.shared.pirateMgr.ApplyChallenge(nOnlyID, pPlayer.roleid);
if (strErr == 0) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: '报名成功,请等待'
});
pPlayer.send('s2c_star_waiting', {});
} else {
let str = '你来晚了,下次早点来哦';
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: str
});
World.shared.pirateMgr;
}
}//金蟾送福
else if (JIngChanSongFuMgr.shared.IsJInchan(nOnlyID)) {
let strErr = JIngChanSongFuMgr.shared.ApplyChallenge(nOnlyID, pPlayer.roleid);
if (strErr == 0) {
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: '报名成功,请等待'
});
pPlayer.send('s2c_star_waiting', {});
} else {
let str = '你来晚了,下次早点来哦';
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: str
});
}
} else {
this.TrigleNpcBomb(nConfigID, nOnlyID);
}
}
PlayerEnterBattle(nGroupID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
let battle = pPlayer.monsterBattle(nGroupID);
}
TrigleNpcBomb(nNpcConfigID: any, nNpcOnlyID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
if (pPlayer.teamid > 0 && pPlayer.isleader == false)
return;
let stConfig = NpcConfigMgr.shared.getConfig(nNpcConfigID);
let battle = pPlayer.monsterBattle(stConfig.monster_group);
if (battle != null)
battle.source = nNpcOnlyID;
}
// 开始组任务
startGroupTask(npcOnlyId: number, taskGroup: number) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
SKLogger.debug(`开始组任务:玩家[${this.roleId}:${this.roleName}]找不到!`);
return;
}
let npc: Npc = NpcMgr.shared.findNpc(npcOnlyId);
if (npc == null) {
SKLogger.debug(`开始组任务:玩家[${this.roleId}:${this.roleName}]找不到NPC[${npcOnlyId}]!`);
return;
}
let info: string = player.getTaskMgr().startGroupTask(taskGroup);
if (info.length > 0) {
SKLogger.debug(`开始组任务:玩家[${this.roleId}:${this.roleName}]信息[${info}]!`);
player.send('s2c_npc_notice', {
nNpcConfigID: npc.configid,
strRichText: info
});
}
}
c2s_player_shutup(nTargetRoleID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
GMMgr.shared.LetPlayerShutUp(pPlayer, nTargetRoleID);
}
c2s_player_speak(nTargetRoleID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
GMMgr.shared.letPlayerSpeak(pPlayer, nTargetRoleID);
}
KickOffPlayer(nTargetRoleID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
GMMgr.shared.FreezePlayer(pPlayer, nTargetRoleID);
}
FreezePlayerIP(nTargetRoleID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
GMMgr.shared.FreezePlayerIP(pPlayer, nTargetRoleID);
}
FreezePlayerMAC(nTargetRoleID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
GMMgr.shared.FreezePlayerMAC(pPlayer, nTargetRoleID);
}
TaskReset() {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
if (0) {
pPlayer.initTaskMgr('{}');
pPlayer.getTaskMgr().updateTaskStateToClient();
}
}
AbortTask(data: any) {
if (null == data || data.nTaskID == null)
return;
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (pPlayer == null)
return;
let pTaskInfo = TaskConfigMgr.shared.getTaskConf(data.nTaskID);
if (null == pTaskInfo)
return;
if (TaskConfigMgr.shared.isTeamTask(data.nTaskID)) {
if (pPlayer.isleader == false)
return;
let vecMember = TeamMgr.shared.getTeamPlayer(pPlayer.teamid);
for (var it in vecMember) {
let pMember = vecMember[it];
if (null == pMember)
continue;
pMember.getTaskMgr().abortTask(data.nTaskID);
}
} else {
pPlayer.getTaskMgr().abortTask(data.nTaskID);
}
}
InceptFuBenTask(nNpcOnlyID: any, nTaskID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!pPlayer)
return;
let strErr = pPlayer.getTaskMgr().CheckAndInceptFuBenTask(nTaskID);
if (strErr != '' && strErr != 'syserr') {
if (nNpcOnlyID > 0) {
let pNpc = NpcMgr.shared.findNpc(nNpcOnlyID);
if (null == pNpc) {
return;
}
pPlayer.send('s2c_npc_notice', {
nNpcConfigID: pNpc.configid,
strRichText: strErr
});
} else {
pPlayer.send('s2c_notice', {
strRichText: strErr
});
}
}
}
// NPC对话事件
onTaskTalkNpc(taskId: number, step: number, npcConfId: number, npcOnlyId: number) {
let player: Player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
let task = TaskConfigMgr.shared.getTaskConf(taskId);
if (player == null) {
SKLogger.debug(`NPC对话:找不到玩家!`);
return;
}
if (player.taskMgr == null) {
SKLogger.debug(`NPC对话:玩家[${player.roleid}:${player.name}]无任务管理器`);
return;
}
if (player.teamid > 0 && player.isleader == false) {
SKLogger.debug(`NPC对话:玩家[${player.roleid}:${player.name}]是队员跳过!`);
return;
}
let stepConf: EventBase = TaskConfigMgr.shared.getTaskStepInfo(taskId, step);
if (stepConf == null) {
SKLogger.debug(`NPC对话:玩家[${player.roleid}:${player.name}]找不到任务[${taskId}:${step}]步骤配置!`);
return;
}
let stepState: EventStateBase = player.getTaskMgr().getTaskStepState(taskId, step);
if (stepState == null) {
SKLogger.debug(`NPC对话:玩家[${player.roleid}:${player.name}]找不到任务[${taskId}:${step}]状态信息!`);
return;
}
if (stepConf.nEventType == EEventType.PLAYER_TALK_NPC) {
let temp: TalkEventState = <TalkEventState>stepState;
player.getTaskMgr().onGameEvent(EEventType.PLAYER_TALK_NPC, {
nTaskID: taskId,
nStep: step
});
NpcMgr.shared.CheckAndDeleteNpc(npcOnlyId, player);
return;
}
if (stepConf.nEventType == EEventType.PLAYER_KILL_NPC) {
let temp: KillDynamicNpcState = <KillDynamicNpcState>stepState;
let nGroupID = 0;
for (let item of temp.vecRemainNpc) {
if (item.nOnlyID != npcOnlyId) {
continue;
}
let npcConf: any = NpcConfigMgr.shared.getConfig(npcConfId);
if (npcConf == null) {
continue;
}
nGroupID = npcConf.monster_group;
let battle = player.monsterBattle(nGroupID, task.nTaskGrop);
if (battle != null) {
battle.source = npcOnlyId;
}
return;
}
let npcConf: any = NpcConfigMgr.shared.getConfig(npcConfId);
SKLogger.debug(`NPC对话事件:[玩家${player.roleid}:${player.name}]找不到任务[${taskId}]NPC[${npcConfId}${npcConf.name}]杀死!`);
return;
}
if (stepConf.nEventType == EEventType.PLAYER_GIVE_NPC_ITEM) {
let temp = <GiveNpcItem>stepConf;
if (player.getBagItemNum(temp.nItemID) < temp.nNum) {
SKLogger.debug(`[玩家:${this.roleId}:${this.roleName}交付道具数量少于${temp.nNum}个]`);
return;
}
player.addItem(temp.nItemID, -temp.nNum, true, '任务上交');
player.getTaskMgr().onGameEvent(EEventType.PLAYER_GIVE_NPC_ITEM, 0);
return;
}
}
OnRoleActNpc(nOnlyID: any, nNpcConfigID: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
pPlayer.getTaskMgr().onGameEvent(EEventType.PLAYER_GATHER_NPC, nOnlyID);
NpcMgr.shared.CheckAndDeleteNpc(nOnlyID, pPlayer);
}
OnRoleAction(stData: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
pPlayer.getTaskMgr().onGameEvent(EEventType.PLAYER_DO_ACITION, stData);
}
// 获得排行榜数据
getRanking(data: any) {
let vecData = null;
switch (data.nByWhat) {
case 0: {
vecData = PaiHangMgr.shared.getLevelRank();
}
break;
case 1: {
vecData = PaiHangMgr.shared.getMoneyRank();
}
break;
case 2: {
vecData = PaiHangMgr.shared.getBangRank();
}
break;
case 3: {
vecData = PaiHangMgr.shared.getShuiluRank();
}
break;
case 4: {
vecData = PaiHangMgr.shared.getJingJiRank();
}
break;
case 5: {
vecData = PaiHangMgr.shared.getEquipRank(SKDataUtil.jsonBy(data.object));
}
break;
case 6: {
vecData = PaiHangMgr.shared.getMurderRank();
}
break;
case 7: {
vecData = PaiHangMgr.shared.getEquipRank2(SKDataUtil.jsonBy(data.object));
}
break;
}
if (vecData != null) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.nRoleid);
if (player) {
let greater: any = [];
let agreater: any = [];
let jplayer = PaiHangMgr.shared.getJingjiRank(player.roleid);
if (jplayer.ranking > 5) {
for (let i = 0; i < vecData.length; i++) {
let brole = vecData[i];
if (brole[7] < jplayer.ranking && brole[7] > 5) {
greater.push(vecData[i]);
}
if (jplayer.ranking < 21 && brole[7] <= jplayer.ranking && brole[7] > 5) {
agreater.push(vecData[i]);
}
}
let frist = vecData.slice(0, 5);
if (jplayer.ranking < 21) {
vecData = PaiHangMgr.shared.topList(agreater, 5);
} else {
vecData = PaiHangMgr.shared.topList(greater, 5);
}
vecData.splice(0, 5);
vecData = frist.concat(vecData);
} else {
vecData = PaiHangMgr.shared.topList(vecData, 5);
}
this.send('s2c_paihang', {
rankKind: data.nByWhat,
vecRow: SKDataUtil.toJson(vecData, "{}"),//排行榜集合
brole: SKDataUtil.toJson(player.toObj(), "{}"),//个人信息
});
} else {
this.send('s2c_paihang', {
rankKind: data.nByWhat,
vecRow: SKDataUtil.toJson(vecData, "{}")
});
}
}
}
QueryItemGoods(data: any) {
let vecGoods = [];
for (let it in Shop.shared.mapItem) {
let stItem = Shop.shared.mapItem[it];
if (stItem.nKind != data.nKind)
continue;
if (data.nConfigID > 0 && stItem.nConfigID != data.nConfigID)
continue;
if (stItem.nCnt <= 0)
continue;
let stGoods = {
nID: stItem.nID,
nConfigID: stItem.nConfigID,
nPrice: stItem.nPrice,
nCnt: stItem.nCnt,
nTime: stItem.nAddTime
};
vecGoods.push(stGoods);
}
this.send('s2c_goods', {
vecGoods: vecGoods
})
}
QueryEquipGoods(data: any) {
let vecGoods = [];
for (let it in Shop.shared.mapItem) {
let stItem = Shop.shared.mapItem[it];
if (stItem.nKind != 1)
continue;
if (data.nPart > 0 && stItem.nSubKind != data.nPart)
continue;
if (stItem.nCnt <= 0)
continue;
let stGoods = {
nID: stItem.nID,
nConfigID: stItem.nConfigID,
nPrice: stItem.nPrice,
nCnt: stItem.nCnt,
nTime: stItem.nAddTime
};
vecGoods.push(stGoods);
}
this.send('s2c_goods', {
vecGoods: vecGoods
})
}
QueryAndSendRolsGoods(nRoleID: any) {
let vecGoods = [];
for (let it in Shop.shared.mapItem) {
let stItem = Shop.shared.mapItem[it];
if (stItem.nSeller != this.accountid)
continue;
let stGoods = {
nID: stItem.nID,
nConfigID: stItem.nConfigID,
nPrice: stItem.nPrice,
nCnt: stItem.nCnt,
nTime: stItem.nAddTime
};
vecGoods.push(stGoods);
}
this.send('s2c_roles_goods', {
vecGoods: vecGoods
})
}
AskDailyInfo() {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!pPlayer) {
return;
}
pPlayer.getTaskMgr().SendDailyActive();
}
TakeActivePrize(nIndex: number) {
let pPlayer: Player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
if (nIndex < 0 || nIndex > 5)
return;
if (pPlayer.getTaskMgr().szBeenTake[nIndex] == 1)
return;
let strPrize = pPlayer.getTaskMgr().szActivePrize[nIndex];
if (nIndex == 5) {
pPlayer.doublecnt += 60;
DB.updateDoublePoint({ doublecnt: pPlayer.doublecnt, unget_doublecnt: pPlayer.unget_doublecnt, roleid: pPlayer.roleid })
pPlayer.send_notice("满活跃度赠60点双倍点数")
}
let vecTmp = strPrize.split(",");
pPlayer.addItem(parseInt(vecTmp[0]), parseInt(vecTmp[1]), true, '活跃度奖励');
pPlayer.getTaskMgr().szBeenTake[nIndex] = 1;
this.AskDailyInfo();
}
AddGoods(data: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
pPlayer.send('s2c_notice', {
strRichText: '物品暂时无法出售'
});
return;
if (pPlayer.bag_list.hasOwnProperty(data.nConfigID) == false)
return;
if (Shop.shared.IsIteamCanSell(data.nConfigID) == false) {
pPlayer.send('s2c_notice', {
strRichText: '此物品不可出售'
});
return;
}
if (pPlayer.bag_list[data.nConfigID] < data.nCnt)
return;
let stItemInfo = ItemUtil.getItemData(data.nConfigID);
if (null == stItemInfo)
return;
let nRet = pPlayer.addItem(data.nConfigID, -data.nCnt, false, '出售物品');
if (!nRet)
return;
let nID = Shop.shared.GetMaxID() + 1;
let stShopItem = new ShopItem(nID, data.nConfigID, stItemInfo.type, 0, '', this.accountid, GameUtil.getTime(), data.nPrice, data.nCnt, 0);
Shop.shared.mapItem[nID] = stShopItem;
this.QueryAndSendRolsGoods(this.accountid);
}
TakeBackGoods(stMsg: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
let pShopItem = Shop.shared.FindShopItem(stMsg.nID);
if (null == pShopItem)
return;
if (pShopItem.nSeller != this.accountid)
return;
let nMoney = pShopItem.nSellCnt * pShopItem.nPrice * 0.9;
if (pShopItem.nCnt > 0)
pPlayer.addItem(pShopItem.nConfigID, pShopItem.nCnt, false, '取回出售物品');
if (pShopItem.nSellCnt > 0)
pPlayer.addMoney(0, nMoney);
delete Shop.shared.mapItem[stMsg.nID];
this.QueryAndSendRolsGoods(this.accountid);
let strMsg = pShopItem.nSellCnt > 0 ? `取回剩余物品${pShopItem.nCnt},已售部分所得银两${nMoney}` : `取回剩余物品${pShopItem.nCnt}`;
pPlayer.send('s2c_notice', {
strRichText: strMsg
});
}
BuyGoods(data: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
let pShopItem = Shop.shared.FindShopItem(data.nID);
if (null == pShopItem)
return;
if (pShopItem.nCnt < data.nCnt) {
pPlayer.send('s2c_notice', {
strRichText: '数量不足'
});
return;
}
if (pPlayer.money < data.nCnt * pShopItem.nPrice) {
pPlayer.send('s2c_notice', {
strRichText: '银两不足'
});
return;
}
if (pPlayer.getBagItemAllKindNum() >= pPlayer.bagKindNum) {
pPlayer.send('s2c_notice', {
strRichText: '背包已满,无法购买'
});
return;
}
pPlayer.addItem(pShopItem.nConfigID, data.nCnt, false, '摆摊处购买');
pPlayer.addMoney(0, -data.nCnt * pShopItem.nPrice);
pShopItem.nCnt -= data.nCnt;
pShopItem.nSellCnt += data.nCnt;
pShopItem.nKind == 0 ? this.QueryItemGoods({
nKind: pShopItem.nKind,
nItem: 0
}) : this.QueryEquipGoods({
nKind: pShopItem.nKind,
nItem: 0
});
pPlayer.send('s2c_notice', {
strRichText: '购买成功'
});
}
buyFromNpc(npcConfId: any, nItemID: any, nCnt: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer) {
return;
}
if (pPlayer.getBagItemAllKindNum() >= pPlayer.bagKindNum) {
pPlayer.send('s2c_notice', {
strRichText: '背包已满,无法购买'
});
return;
}
let pNpcShop;
if (npcConfId != 60002) {
pNpcShop = MallMgr.shared.getNpcShopData(npcConfId);
} else {
pNpcShop = ZhenbukuiMgr.shared.getNpcShopData();
}
if (pNpcShop == null) {
return;
}
let vecGoods = pNpcShop.goods;
if (null == vecGoods) {
return;
}
let pGoods = null;
for (var it in vecGoods) {
if (vecGoods[it].itemid != nItemID)
continue;
pGoods = vecGoods[it];
break;
}
if (pGoods == null) {
return;
}
if (pGoods.quantity != null && pGoods.quantity <= 0) {
pPlayer.send('s2c_notice', {
strRichText: '商品已售罄'
});
this.updateShopItemQuantity(nItemID, nCnt);
return;
}
if (nCnt <= 0) {
return;
}
if (GameUtil.getDefault(pGoods.type) == 'weapon') {
this.c2s_creat_equip({
type: 0,
roleid: pPlayer.roleid,
index: 0,
resid: nItemID
});
} else {
let pItemInfo = ItemUtil.getItemData(nItemID);
if (pItemInfo == null) {
return;
}
let info = pPlayer.CostFee(pGoods.moneykind, nCnt * pGoods.price, `从Npc购买${nCnt}${pItemInfo.name}`);
if (info != '') {
pPlayer.send('s2c_notice', {
strRichText: info
});
return;
}
if (pGoods.moneykind == 5) {
let data = { nByWhat: 4, nRoleid: this.roleId };
this.getRanking(data);
}
pPlayer.addItem(nItemID, nCnt, true, '从NPC购买');
}
if (npcConfId == 60002) {
this.updateShopItemQuantity(nItemID, nCnt);
}
}
updateShopItemQuantity(itemId: any, nCnt: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
let netItemInfo = ZhenbukuiMgr.shared.updateShopItem(itemId, nCnt);
if (netItemInfo.length > 0) {
if (netItemInfo[0].itemid == itemId) {
pPlayer.send('s2c_update_shop_info', {
nItemID: itemId,
quantity: netItemInfo[0].quantity
});
}
}
}
BuyMall(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
MallMgr.shared.buyItem(player, data.type, data.mallid, data.mallnum);
}
TakeGoodsMoney() {
}
// 请求背包数据
c2s_get_bagitem(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let params = {
info: SKDataUtil.toJson(player.bag_list, "{}")
};
player.send("s2c_bagitem", params);
}
}
// 获得多宝阁商店列表
c2s_get_mall(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
MallMgr.shared.sendList(player);
}
// 获得积分商店列表
c2s_integral_mall(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
MallMgr.shared.sendIntegralList(player);
}
c2s_ask_relive_list(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
player.sendReliveList();
}
c2s_change_relive_list(data: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
pPlayer.changeReliveList(data);
}
// 请求合成物品
c2s_compose(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
SKLogger.warn(`合成道具[${data.nFatherItem}]找不到玩家[${this.roleId}]`);
return;
}
let nFatherItem = data.nFatherItem;
if (!ItemUtil.canSynthesis(nFatherItem)) {
player.send('s2c_notice', {
strRichText: `玩家[${player.roleid}:${player.name}]物品[${ItemUtil.getItemName(nFatherItem)}]无法合成`
});
return;
}
if (data.nNum <= 0) {
SKLogger.debug(`玩家[${player.roleid}:${player.name}]物品[${data.nFatherItem}]合成数量不能为0个`);
return;
}
let mapNum: any = {};
let vecSon: any = ItemUtil.getSynthesisItem(nFatherItem);
for (let key in vecSon) {
let vecData = vecSon[key].split(':');
if (vecData.length != 2)
return;
let nItem = vecData[0];
let nNum = vecData[1];
mapNum[nItem] = GameUtil.getDefault(mapNum[nItem], 0) + nNum * data.nNum;
}
for (let key in mapNum) {
if (player.getBagItemNum(key) < mapNum[key]) {
player.send('s2c_notice', {
strRichText: `所需物品[${data.nFatherItem}]数量不足!`
});
return;
}
}
if (player.getBagItemAllKindNum() + 1 >= player.bagKindNum) {
player.send_notice("背包空间不足,请先扩充背包!")
player.send('s2c_lottery_info', {
strJson: ""
});
SKLogger.debug(`玩家[${player.roleid}:${player.name}]背包已满`);
return;
}
for (let key in mapNum) {
player.addItem(SKDataUtil.numberBy(key), SKDataUtil.numberBy(-mapNum[key]), true, `玩家[${player.roleid}:${player.name}]合成物品[${data.nFatherItem}]`);
}
player.addItem(nFatherItem, data.nNum, true, `物品[${data.nFatherItem}]合成成功`);
}
c2s_ask_lottery_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
if (data.itemId == 50004) {
if (player.getBagItemNum(50004) <= 0) {
player.send('s2c_notice', {
strRichText: '高级藏宝图不足'
});
return;
}
} else {
if (player.getBagItemNum(50023) <= 0) {
player.send('s2c_notice', {
strRichText: '山河社稷图不足'
});
return;
}
}
if (player.getBagItemAllKindNum() + 1 >= player.bagKindNum) {
player.send('s2c_notice', {
strRichText: '背包已满,无法抽奖!'
});
player.send('s2c_lottery_info', {
strJson: ""
});
SKLogger.debug(`玩家[${player.roleid}:${player.name}]背包已满,无法使用宝图`);
return;
}
player.addItem(data.itemId, -1, false, data.itemId == 50004 ? '使用宝图' : '山河社稷图');
let strJson = data.itemId == 50004 ? LotteryMgr.shared.CreateLotteryBox() : LotteryMgr.shared.CreateLotterySuperBox();
player.send('s2c_lottery_info', {
strJson: strJson
});
}
c2s_lottery_go(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == player)
return;
let pBox = LotteryMgr.shared.GetBox(data.nID);
if (null == pBox) {
player.send('s2c_notice', {
strRichText: '宝图已失效'
});
return;
}
let nSelect = pBox.RandSelect()
let nLen = GameUtil.random(1, 3) * 15 + nSelect;
player.send('s2c_lottery_result', {
nSelect: nSelect,
nLen: nLen
});
setTimeout(() => {
GameUtil.givePlayerPrize(player, pBox.vecItem[nSelect].strItem, parseInt(pBox.vecItem[nSelect].nNum));
LotteryMgr.shared.DeleteBox(pBox.nBoxID);
}, 300);
}
// 请求幸运转盘
c2s_ask_dial_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
// 风雨宝箱
if (data.type == 1) {
DialMgr.shared.CreateDialBox(player, data.type);
}
// 幸运转盘
else {
DialMgr.shared.CreateDial(player, data.type, data.genre);
}
}
// 幸运转盘获取到道具发送玩家
c2s_dial_go(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == player)
return;
DialMgr.shared.GetDial(player, data.id, data.type);
}
c2s_ask_npc_shop_item(data: any) {
let pPlayer = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (null == pPlayer)
return;
let itemList;
if (data.nNpcConfigID != 60002) {
if (!MallMgr.shared.checkNpcData(data.nNpcConfigID))
return;
let dl = MallMgr.shared.getNpcShopData(data.nNpcConfigID);
itemList = SKDataUtil.toJson(dl, "{}");
} else {
if (!ZhenbukuiMgr.shared.checkNpcData(data.nNpcConfigID))
return;
itemList = SKDataUtil.toJson(ZhenbukuiMgr.shared.getNpcShopData(data.nNpcConfigID), "{}");
}
if (itemList != null) {
pPlayer.send('s2c_npc_shop_item', {
info: itemList
});
}
}
// 前端使用背包道具
c2s_use_bagitem(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
SKLogger.warn(`$警告:使用道具,玩家[帐号:${this.accountid}]找不到!`);
return;
}
let itemData = ItemUtil.getItemData(data.itemid);
if (itemData == null) {
SKLogger.warn(`$警告:玩家[${player.roleid}:${player.name}}]使用道具[${data.itemid}]找不到`);
return;
}
// 玩家背包里无此道具
if (!player.bag_list.hasOwnProperty(data.itemid)) {
player.send_notice(`[color=#ff0000]警告:背包无此[/color][color=#60d566][${itemData.name}][/color][color=#ff0000]道具[/color]`)
SKLogger.debug(`$警告:玩家[${player.roleid}:${player.name}}]背包无此道具[${data.itemid}]`);
return;
}
// 玩家背包里此道具数量为0
if (player.bag_list[data.itemid] < 1) {
SKLogger.warn(`$警告:玩家[${player.roleid}:${player.name}}]道具[${data.itemid}]数量为0`);
return;
}
// 如果是宝箱
if (BoxMgr.shared.canUseItem(data)) {
return;
}
// 如果使用的是 高级藏宝图 则判断背包是否有足够的空间
if (data.itemid == 50004) {
if (player.getBagItemAllKindNum() + 1 >= player.bagKindNum) {
player.send('s2c_notice', {
strRichText: `背包没有足够的空间,无法使用[${itemData.name}]!`
});
return;
}
}
// 如果道具有使用效果
if (itemData.effect == 1) {
data.operation = 0;
if (GoodsMgr.shared.useItem(data)) {
this.c2s_update_bagitem(data);
}
} else {
SKLogger.warn(`$警告:玩家[${player.roleid}:${player.name}}]道具[${data.itemid}]非使用类型`);
}
}
c2s_stop_incense(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.stopIncense();
}
}
c2s_get_lockeritem(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let params = {
bag: SKDataUtil.toJson(player.bag_list, "{}"),
locker: SKDataUtil.toJson(player.locker_list, "{}"),
equip: SKDataUtil.toJson(player.getLockerEquipInfo(), "{}")
};
player.send('s2c_lockeritem', params);
}
}
// 通知前端背包道具更新
c2s_update_bagitem(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.update_bagitem(data);
}
}
c2s_update_lockeritem(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (p) {
p.update_lockeritem(data);
}
}
c2s_createbang(data: any): number {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null || player.bangid > 0) {
return 0;
}
let chargeCount = ChargeSum.shared.getPlayerChargeSum(player.roleid);
// 充值判断
// if (chargeCount < GameUtil.limitGreateBangChargeCount) {
// player.send('s2c_notice', {
// strRichText: `您已充值${chargeCount}元,创建帮会需要充值${GameUtil.limitGreateBangChargeCount}元以上`,
// });
// return 0;
// }
BangMgr.shared.createBang(player, data);
let bang = BangMgr.shared.getBang(player.bangid);
if (bang) {
SKCxfUtil.getCxfRecordOperate({
roleId: player.roleid,
roleName: player.name,
operateType: Operate.BANG,
operateDepict: "创建帮派",
operateResSerial: player.bangid,
operateResName: bang.name,
operateContent: SKDataUtil.toJson(bang.toObj(), "{}")
})
}
return 1;
}
c2s_joinbang(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player || player.bangid > 0) {
return;
}
if (BangMgr.shared.joinBang(player.roleid, data.bangid)) {
this.c2s_getbanginfo(data);
} else {
this.send('s2c_operation_result', {
code: MsgCode.FAILED,
});
}
}
c2s_requestbang(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
if (player.bangid > 0) {
player.send('s2c_notice', {
strRichText: '申请失败'
});
return;
}
BangMgr.shared.requestBang(player, data.bangid);
}
c2s_operbang(data: any) {
let master = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (master == null) {
return;
}
let bang = BangMgr.shared.getBang(data.bangid);
if (bang == null) {
return;
}
bang.operRequest(master, data.roleid, data.operation);
}
c2s_leavebang(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
let bang = BangMgr.shared.getBang(data.bangid);
if (bang == null) {
return;
}
if (player.roleid == data.roleid) {
if (bang.masterid == player.roleid) {
BangMgr.shared.disbandBang(data)
} else {
bang.leave(data.roleid, 0);
}
player.send('s2c_leavebang', {
ecode: MsgCode.SUCCESS
});
} else {
if (bang.masterid != player.roleid) {
return;
}
bang.leave(data.roleid, 1);
let tplayer = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (tplayer) {
tplayer.send('s2c_leavebang', {
ecode: MsgCode.SUCCESS
});
}
this.c2s_getbanginfo({
roleid: player.roleid,
bangid: data.bangid
});
}
}
c2s_getbanglist() {
this.send('s2c_getbanglist', {
list: BangMgr.shared.getBangList()
});
}
c2s_getbangrequest(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
let bang = BangMgr.shared.getBang(player.bangid);
if (bang) {
if (bang.masterid != data.roleid) {
return;
} else {
this.send('s2c_getbangrequest', {
requestlist: bang.getBangRequest()
});
}
}
}
c2s_getbanginfo(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (p) {
if (p.bangid != data.bangid) {
this.c2s_getbanglist();
return;
}
BangMgr.shared.playerGetBangInfo(p);
}
}
c2s_searchbang(data: any) {
if (data.data == null || data.data == 0 || data.data == '') {
return;
}
this.send('s2c_getbanglist', {
list: BangMgr.shared.searchBang(data)
});
}
c2s_bang_bid(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
let bang = BangMgr.shared.getBang(p.bangid);
if (bang) {
bang.addBidding(p, data.money);
}
}
}
//帮派任命
c2s_set_bangpost(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.masterid);
let member = PlayerMgr.shared.getPlayerByRoleId(data.memberid);
if (!member) {
player.send_notice("该成员未上线!");
return;
}
if (player) {
let bang = BangMgr.shared.getBang(player.bangid);
if (bang) {
if (bang.masterid != data.masterid) {
player.send_notice("只有帮主才有权操作哦!");
return;
}
if (data.postid == 2 || data.postid == 3 || data.postid == 4) {
for (const roleInfo of bang.rolelist) {
if (roleInfo.bangpost == data.postid) {
player.send_notice("该职位人数已达上限!");
return;
}
}
} else if (data.postid == 5 || data.postid == 6) {
let count = 0;
for (const roleInfo of bang.rolelist) {
if (roleInfo.bangpost == data.postid) {
count++;
}
}
if (data.postid == 5 && count >= 5) {
player.send_notice("该职位人数已达上限!");
return;
}
if (data.postid == 6 && count >= 2) {
player.send_notice("该职位人数已达上限!");
return;
}
}
let post = bang.setBangPost(data.memberid, data.postid);
if (post) {
if (player) {
SKCxfUtil.getCxfRecordOperate({
roleId: player.roleid,
roleName: player.name,
operateType: Operate.BANG,
operateDepict: "帮派任命",
operateResSerial: data.memberid,
operateResName: member.name,
operateContent: SKDataUtil.toJson(bang.rolelist, "{}")
})
}
player.send_notice("任命成功")
player.send('s2c_getbanginfo', bang.getBangInfo());
} else {
player.send_notice("任命失败,该成员还未上线!")
}
}
}
}
//帮派公告
c2s_issue_affiche(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let bang = BangMgr.shared.getBang(player.bangid);
if (bang && data.type == 2 && player.bangpost <= 4 && player.bangpost > 0) { //护法以上有权发公告
bang.issueAffiche(data);
} else if (bang && data.type == 1 && player.bangpost == 1) { //帮主有权更改帮派宗旨
bang.issueAffiche(data);
} else {
player.send_notice("你没有这个权限");
}
}
}
//帮派升级
c2s_bang_up(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let bang = BangMgr.shared.getBang(player.bangid);
if (bang) {
bang.bangUp(data.roleid);
}
}
}
// 召唤兽转生
c2s_relive_pet(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.relivePet(data);
}
}
c2s_wash_petproperty(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
p.washProperty(data);
}
}
c2s_save_petproperty(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
p.savePetProperty(data);
}
}
c2s_charge_reward(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.chargeReward(data);
}
}
c2s_special_reward(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.spChargeReward(data);
}
}
// 请求召唤兽合成
c2s_hecheng_pet(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.hechengPet(data);
}
}
c2s_create_pet(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
p.createPet(data);
}
}
c2s_get_petlist(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (p) {
p.getPetlist(data);
}
}
c2s_change_pet(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
p.changePet(data.petid);
}
}
c2s_update_pet(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.updatePetPoint(data);
}
}
c2s_pet_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
for (let pet of player.petList) {
if (pet.petid == data.petid) {
player.send('s2c_pet_info', {
info: pet.toObj()
});
}
}
}
}
c2s_level_reward(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (p) {
p.levelReward(data.level);
}
}
// 请求删除召唤兽
c2s_del_pet(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.delPet(data);
}
}
c2s_pet_forgetskill(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
p.petForgetSkill(data.petid, data.skillid)
}
}
c2s_pet_lockskill(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
p.petLockSkill(data.petid, data.skillid)
}
}
c2s_pet_changeSskill(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!p) {
return;
}
p.petShenShouSkill(data.petid, data.skillid);
}
c2s_creat_equip(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.createEquip(data);
}
}
// 请求装备列表
c2s_equip_list(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.sendEquipList();
}
}
c2s_equip_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.sendEquipInfo(data.equipid);
}
}
c2s_next_equip(data: any) {
let equipArr = EquipMgr.shared.getEquipData(data);
this.send('s2c_next_equip', {
equip: SKDataUtil.toJson(equipArr, "{}")
});
}
c2s_equip_update(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.updateEquip(data);
}
}
c2s_equip_upgrade(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (p) {
p.upgradeEquip(data);
}
}
// 装备镶嵌
c2s_equip_inlay(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.equipInlay(data);
}
}
c2s_equip_refine(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.equipRefine(data);
}
}
// 获取属性评分
c2s_attribute_score(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.attributeScore(data);
}
}
// 道具分解
c2s_item_resolve(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.itemResolve(data);
}
}
// 佩饰重铸
c2s_baldric_recast(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.baldricRecast(data);
}
}
// 佩饰分解
c2s_baldric_resolve(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.baldricResolve(data);
}
}
// 配饰鉴定
c2s_acc_authenticate(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.accAuthenticate(data);
}
}
// 装备重铸
c2s_equip_recast(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.equipRecast(data);
}
}
// 装备分解
c2s_equip_resolve(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.equipResolve(data);
}
}
c2s_xianqi_list(data: any) {
let equipArr = EquipMgr.shared.getXianQiList(data);
this.send('s2c_xianqi_list', {
list: SKDataUtil.toJson(equipArr, "[]")
});
}
c2s_shenbing_upgrade(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (p) {
p.shenbignUpgrade(data);
}
}
// 仙器升阶
c2s_xianqi_upgrade(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.xianqiUpGrade(data);
}
}
c2s_btl(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (player.battle_id == 0) {
player.monsterBattle();
}
}
}
c2s_btl_auto(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let battle: any = BattleMgr.shared.getBattle(player.battle_id);
if (battle) {
battle.playerAuto(player.onlyid);
}
}
}
// 请求战斗动作
c2s_btl_act(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let battle = BattleMgr.shared.getBattle(player.battle_id);
if (battle) {
battle.playerAction(data);
}
}
}
c2s_mall_buy(data: any) {
//data.id;
}
// c2s_Get_WX(){
// let str1 = `select * from qy_WX`;
// DB.query(str1, (ret, rows) => {
// let data = rows;
// this.send('s2c_Get_WX', {
// data: data,
// })
// });
// }
c2s_relive(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.playerRelive(data);
}
}
// 请求飞升
c2s_fly_up(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.playerFlyUp(data);
}
}
c2s_changerace(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.playerChangeRace(data);
}
}
// 修改角色名称
c2s_changename(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.playerChangeName(data);
}
}
// 修改宠物名称
c2s_update_pet_name(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (p) {
p.playerChangePetName(data);
}
}
c2s_pk(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let target = PlayerMgr.shared.getPlayerByRoleId(data.troleid);
if (target) {
player.playerBattle(target.onlyid, data.type);
}
}
}
//竞技场pk
c2s_arenaPK(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player && player.teamid == 0) {
JingJiChang.shared.battleStart(player.roleid, data.troleid);
} else {
player.send_notice("请先退出队伍");
}
}
//
c2s_report(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.troleid);
if (player) {
let senddata = SKDataUtil.toJson(JingJiChang.shared.getReportByRoleid(player.roleid), "{}");
player.send('s2c_report_info', {
report: senddata
});
}
}
c2s_hongbao_open(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let activity = ActivityMgr.shared.getActivity(ActivityDefine.activityKindID.HongBao);
if (activity) {
activity.playerOpenHongbao(player.roleid);
}
}
}
c2s_getgift_info() {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
let senddata: any = {}
senddata.hasgot = player.getgift;
senddata.list = [];
let gift = require('../gift/gift');
for (let itemid in gift.libao) {
const itemnum = gift.libao[itemid];
senddata.list.push({
itemid: itemid,
itemnum: itemnum,
});
}
this.send('s2c_getgift_info', senddata);
}
c2s_resetgift() {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
player.getgift = 1;
}
// 请求首冲礼包
c2s_remunerate(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
let errorcode = player.reGetGift();
this.send('s2c_aoi_pinfo', {
list: [player.toObj()]
});
this.send('s2c_remunerate', {
errorcode: errorcode,
})
}
c2s_shuilu_sign(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (player.isTeamLeader() == false) {
return;
}
let activity = ActivityMgr.shared.getActivity(ActivityDefine.activityKindID.ShuiLuDaHui);
if (activity && activity.activity_state == ActivityDefine.activityState.Opening) {
let errorcode = activity.playerSign(player);
// 成功通知全体成员,失败则通知队长一人
if (MsgCode.SUCCESS == errorcode) {
TeamMgr.shared.broadcast(player.getTeamId(), 's2c_shuilu_sign', {
errorcode: errorcode,
shuilustate: activity.sldh_state,
});
player.map_transfer(1213);
} else {
this.send('s2c_shuilu_sign', {
errorcode: errorcode,
shuilustate: activity.sldh_state,
});
}
} else {
this.send('s2c_shuilu_sign', {
errorcode: MsgCode.SLDH_NOT_OPEN
});
}
}
}
c2s_shuilu_unsign(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (player.isTeamLeader() == false) {
return;
}
let activity = ActivityMgr.shared.getActivity(ActivityDefine.activityKindID.ShuiLuDaHui);
if (activity && activity.activity_state == ActivityDefine.activityState.Opening) {
let errorcode = activity.playerUnsign(player);
if (MsgCode.SUCCESS == errorcode) {
TeamMgr.shared.broadcast(player.getTeamId(), 's2c_shuilu_unsign', {
errorcode: errorcode
});
} else {
this.send('s2c_shuilu_unsign', {
errorcode: errorcode
});
}
} else {
this.send('s2c_shuilu_unsign', {
errorcode: MsgCode.SLDH_NOT_OPEN
});
}
}
}
c2s_shuilu_info() {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let activity = ActivityMgr.shared.getActivity(ActivityDefine.activityKindID.ShuiLuDaHui);
if (activity && activity.activity_state == ActivityDefine.activityState.Opening) {
let senddata = activity.getShuiLuInfo(player);
this.send('s2c_shuilu_info', senddata);
} else {
this.send('s2c_shuilu_sign', {
errorcode: MsgCode.SLDH_NOT_OPEN
});
}
}
}
c2s_world_reward(data: any) {
WorldRewardMgr.shared.sendReward(data.roleid, data.yuNum, data.num);
}
c2s_world_reward_list() {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
WorldRewardMgr.shared.getRewardList(player);
}
c2s_world_reward_open(data: any) {
WorldRewardMgr.shared.toReceive(data.tagID, data.roleid);
}
c2s_title_change(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.changeTitle(data);
}
}
c2s_title_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.getTitles();
}
}
c2s_linghou_fight(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let activity = ActivityMgr.shared.getActivity(ActivityDefine.activityKindID.TianJiangLingHou);
if (activity && activity.activity_state == ActivityDefine.activityState.Opening) {
let ecode = activity.playerFightMonkey(player, data.mid);
if (ecode != MsgCode.SUCCESS) {
this.send('s2c_linghou_fight', {
ecode: ecode
});
}
} else {
this.send('s2c_linghou_fight', {
ecode: MsgCode.LINGHOU_FIGHT_TOO_MACH
});
}
}
}
c2s_palace_fight(data: any) {
let subJade = 2000;
let subMoney = 1500000;
if (data.sponsorid == data.recipientid) {
this.send('s2c_notice', {
strRichText: '不能跟自己决斗!'
});
return;
}
if (PalaceFight.shared.getPKInfo(data.sponsorid) || PalaceFight.shared.getPKInfo(data.recipientid)) {
this.send('s2c_notice', {
strRichText: '你或者此玩家正在被其他人邀请皇城pk中'
});
return;
}
let sponsor_role = PlayerMgr.shared.getPlayerByRoleId(data.sponsorid);
let recipient_role = PlayerMgr.shared.getPlayerByRoleId(data.recipientid);
if (!recipient_role || !sponsor_role) {
this.send('s2c_notice', {
strRichText: '未找到玩家!'
});
return;
}
if (!recipient_role.getIsOnline() || !sponsor_role.getIsOnline()) {
this.send('s2c_notice', {
strRichText: '玩家未在线!'
});
return;
}
if (recipient_role.level < 160 || sponsor_role.level < 160) {
this.send('s2c_notice', {
strRichText: '玩家等级未到160级'
});
return;
}
if (data.type == 0) {
if (sponsor_role.money < subMoney) {
this.send('s2c_notice', {
strRichText: '玩家银两不够!'
});
return;
}
sponsor_role.addMoney(0, -subMoney, `玩家${data.sponsorid}对玩家${data.recipientid}发起皇城决斗!`);
}
if (data.type == 1) {
if (sponsor_role.jade < subJade) {
this.send('s2c_notice', {
strRichText: '玩家仙玉不够!'
});
return;
}
sponsor_role.addMoney(1, -subJade, `玩家${data.sponsorid}对玩家${data.recipientid}发起皇城决斗!`);
}
let sponsor = {
roleid: sponsor_role.roleid,
name: sponsor_role.name,
level: sponsor_role.level,
race: sponsor_role.race,
resid: sponsor_role.resid,
state: 1,
};
let recipient = {
roleid: recipient_role.roleid,
name: recipient_role.name,
level: recipient_role.level,
race: recipient_role.race,
resid: recipient_role.resid,
state: 0,
};
let senddata = {
sponsor: sponsor,
recipient: recipient,
type: data.type,
tm: 120 * 1000,
msg: data.msg,
win: 0,
};
PalaceFight.shared.addToList(senddata);
if (data.type == 0) {
this.send('s2c_palace_fight', senddata);
recipient_role.send('s2c_palace_fight', senddata);
} else if (data.type == 1) {
PlayerMgr.shared.broadcast('s2c_palace_fight', senddata);
let str = `玩家[${senddata.sponsor.name}]向玩家[${senddata.recipient.name}]发起了皇城决斗邀请!并写下战书`;
if (data.msg.length == 0) {
str = `玩家[${senddata.sponsor.name}]向玩家[${senddata.recipient.name}]发起了皇城决斗邀请!`;
}
PlayerMgr.shared.broadcast('s2c_game_chat', {
roleid: sponsor_role.roleid,
onlyid: sponsor_role.onlyid,
scale: Channel.WORLD,
msg: str,
name: sponsor_role.name,
resid: sponsor_role.resid,
});
}
this.send('s2c_game_chat', {
scale: Channel.SYSTEM,
msg: `你向玩家[${senddata.recipient.name}]发起了皇城决斗邀请!`,
});
recipient_role.send('s2c_game_chat', {
scale: Channel.SYSTEM,
msg: `玩家[${senddata.sponsor.name}]向你发起了皇城决斗邀请!`,
});
}
c2s_palace_agree(data: any) {
let role = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (!role) {
return;
}
let info = PalaceFight.shared.getPKInfo(data.roleid);
if (!info) {
this.send('s2c_notice', {
strRichText: '决斗已被取消!'
});
return;
}
for (let item of [info.sponsor, info.recipient]) {
if (item.roleid == data.roleid) {
item.state = (data.battle == 1) ? 1 : 2;
}
}
let sponsor_role = PlayerMgr.shared.getPlayerByRoleId(info.sponsor.roleid);
let recipient_role = PlayerMgr.shared.getPlayerByRoleId(info.recipient.roleid);
if (!sponsor_role || !recipient_role) {
return;
}
if (info.sponsor.state == 1 && info.recipient.state == 1) { // 两人都同意决斗
if (!sponsor_role.canPalaceFight()) {
info.sponsor.state = 2;
PalaceFight.shared.delPKInfo(data.roleid, 'sponsor');
} else if (!recipient_role.canPalaceFight()) {
info.recipient.state = 2;
PalaceFight.shared.delPKInfo(data.roleid, 'recipient');
} else {
PalaceFight.shared.setCanPK(info);
}
}
sponsor_role.send('s2c_palace_fight', info);
recipient_role.send('s2c_palace_fight', info);
if (info.sponsor.state == 2) { // 发起人取消决斗
PalaceFight.shared.delPKInfo(data.roleid, 'sponsor');
}
if (info.recipient.state == 2) { // 接受人取消了决斗
PalaceFight.shared.delPKInfo(data.roleid, 'recipient');
}
}
c2s_palace_rolelist(data: any) {
PalaceFight.shared.sendPalaceRoleList(data.roleid);
}
c2s_relation_new(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!p) {
return;
}
RelationMgr.shared.applyRelation(p, data);
}
c2s_relation_agree(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!p) {
return;
}
RelationMgr.shared.confirmRelation(p, data);
}
c2s_relation_List(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!p) {
return;
}
RelationMgr.shared.getRelationListByRoleId(p, data);
}
c2s_relation_leave(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!p) {
return;
}
RelationMgr.shared.leaveRelation(p, data);
}
c2s_relation_add(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!p) {
return;
}
RelationMgr.shared.addRelationMember(p, data);
}
c2s_relation_reject(data: any) {
let p = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!p) {
return;
}
RelationMgr.shared.rejectRelation(p, data);
}
// 请求染色
c2s_change_role_color(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.setRoleColor(data.index1, data.index2);
}
}
c2s_scheme_create(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.addScheme(data.name);
}
c2s_scheme_List(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.getSchemeNameList();
}
c2s_scheme_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.getSchemeInfo(data.schemeId);
}
c2s_scheme_updateEquip(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.updateSchemeEquip(data);
}
c2s_scheme_addCustomPoint(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.addCustomPoint(data);
}
c2s_scheme_addXiulianPoint(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.addXiulianPoint(data);
}
c2s_scheme_resetXiulianPoint(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.resetXiulianPoint(data);
}
c2s_scheme_changePartner(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.changePartner(data);
}
c2s_scheme_activate(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.activateScheme(data);
}
c2s_scheme_changeName(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.changeScheneName(data);
}
c2s_scheme_use(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (!player) {
return;
}
player.schemeMgr.useSchene(data);
}
// 世界铃铛
c2s_bell_msg(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
let chargeTotal = ChargeSum.shared.getPlayerChargeSum(player.roleid);
if (chargeTotal < GameUtil.bellMsg) {
let msg = `世界铃铛必须累计充值${GameUtil.bellMsg}元,才可以使用哦!`;
player.send('s2c_notice', {
strRichText: msg
});
return;
}
player.costBell(data.msg);
}
c2s_safepass_msg(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
player.setSafePassword(data.pass, data.lock);
}
c2s_petfly_msg(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!player) {
return;
}
let pet = player.getPetByID(data.petid);
if (!pet) {
return;
}
pet.flyingUp(data.type);
}
// 骑乘
c2s_ride(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player != null) {
let horseIndex = data.horseIndex;
player.ride(horseIndex);
return;
}
}
// 下马
c2s_get_down(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player != null) {
player.get_down();
return;
}
}
// 坐骑升级
c2s_horse_upgrade(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.upgradeHorse(data);
return;
}
}
c2s_pet_control(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.petControl(data);
}
}
c2s_horse_skill(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.getHorseSkill();
}
}
c2s_upgrade_skill(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.upgradeHorseSkill(data);
}
}
// 坐骑洗炼
c2s_horse_refining(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (player.relive < 1) {
player.send_notice("未转生不能洗练坐骑!");
return;
}
player.horseRefining(data);
}
}
// 领取每日充值奖励
c2s_day_reward(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.dayReward(data);
}
}
// 领取VIP每日奖励
c2s_vip_reward(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.vipReward(data);
}
}
// 请求挖宝列表
c2s_dug_list(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.dugList(data);
}
}
// 开挖
c2s_dug(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.dug(data);
}
}
// 物品信息
c2c_goods_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
player.goodsInfo(data);
}
}
// 请求开启背包格子
c2c_open_backpack_grid(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.openBackpackGrid();
}
}
// 当前月签到数据
c2c_sign_in(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
let value = SignInMgr.shared.getSignInData(player);
// 角色IDroleId 签到数据signInData 当前日(1-31)day
this.send('s2c_sign_in', {
roleId: data.roleId,
signInData: SKDataUtil.toJson(value, "{}"),
day: GTimer.getCurDay()
});
}
}
// 玩家签到
c2c_check_in(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
SignInMgr.shared.signIn(data);
}
}
// 玩家答题
c2c_send_answer(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
RespondentsMgr.shared.getAnswer(data);
}
}
// 开启宠物技能格子
c2c_pet_skill_grid(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
player.openPetSkillGrid(data);
}
}
//兑换码
c2s_convert(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.checkExchange(data.code);
}
}
//绑定信息
c2s_bindinfo(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
let list = PaiHangMgr.shared.bind_player_list;
let playerinfo = {};
let infolist = [];
if (player) {
for (let key in list) {
let bplayer = list[key];
if (data.roleId == bplayer.roleid) {//当前绑定的哪个玩家
playerinfo = {
roleid: bplayer.bind_roleid,
name: bplayer.bind_name,
resid: bplayer.bind_resid,
relive: bplayer.bind_relive,
level: bplayer.bind_level
};
break;
}
}
for (let key in list) {
let bplayer = list[key];
if (data.roleId == bplayer.bind_roleid) {//被哪些玩家绑定了
infolist.push({
roleid: bplayer.roleid,
name: bplayer.name,
resid: bplayer.resid,
relive: bplayer.relive,
level: bplayer.level
})
}
}
player.send("s2c_bindinfo", {
playerinfo: SKDataUtil.toJson(playerinfo, "{}"),
bplayerinfo: SKDataUtil.toJson(infolist, "{}")
});
}
}
//新用户绑定
c2s_binding(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
let bplayer = PlayerMgr.shared.getPlayerByRoleId(data.broleId);
if (data.br == this.roleId) {
this.send('s2c_notice', {
strRichText: `不可以绑定自己!`
})
return;
}
if (player && bplayer) {
player.roleBinding(bplayer);
} else {
this.send('s2c_notice', {
strRichText: `玩家不存在,绑定失败!`
})
}
}
//重置今日充值存档
c2s_clear_day(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.clearDayMap();
//cxf重置今日充值存档
SKCxfUtil.getCxfRecordOperate({
roleId: player.roleid,
roleName: player.name,
operateType: Operate.ITEM,
operateDepict: "重置今日充值存档",
operateResSerial: "",
operateResName: "",
operateContent: ""
})
}
}
//变身卡详情
c2s_become_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let info = ChangeCard.shared.getCardInfoByCardId(data.cardid);
this.send('s2c_become_info', {
info: SKDataUtil.toJson(info, "{}")
});
}
}
//分解变身卡
c2s_card_resolve(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
ChangeCard.shared.cardResolve(player, data);
}
}
//批量分解配饰
c2s_batch_resolve(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.send_notice("正在维护该功能")
// for (let equip of player.listEquips) {
// if (equip.EquipType == 5){
// let delequip = null;
// for (let index = 0; index < player.listEquips.length; index++) {
// if (player.listEquips[index].EquipID == equip.EquipID) {
// delequip = player.listEquips[index];
// player.listEquips.splice(index, 1);
// break;
// }
// }
// let score = 10;
// if (equip.BaseAttr.length != 0 ){
// if (equip.Grade == 2) {
// score = 20;
// } else if (equip.Grade == 3) {
// score = 50;
// }
// }
// player.shuilu.gongji += score;
//
// player.sendEquipList();
// player.send('s2c_you_money', {
// nKind: GameUtil.goldKind.SLDH_Score,
// nNum: player.shuilu.gongji,
// nChange: score
// });
// let info = `消耗[color=${ItemUtil.getBaldricColor(equip.Grade)}][${equip.name}][/color]X1得到功绩${score}`;
// player.send('s2c_notice', {
// strRichText: info
// });
// if (delequip != null) {
// player.unInLay(delequip);
// delequip.pos = EEquipPos.UNKNOW;
// let equipfulldata = delequip.getFullData();
// SKLogger.debug(`玩家[${player.roleid}:${player.name}]删除装备[${delequip.EquipID}:${equipfulldata.EName}]:配饰分解]`);
// delequip.state = 0;
// delequip.save();
// delete player.equipObjs[delequip.EquipID];
// EquipMgr.shared.delEquip(delequip.EquipID);
// player.schemeMgr.deleteCurEquips(delequip.EquipID);
// }
// }
// }
// player.send('s2c_bagitem', {
// info: SKDataUtil.toJson(player.bag_list, "{}")
// });
}
}
//五行修炼
c2s_five_phases(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let vecData = FivePhases.shared.getFivePhasesByRoleid(data.roleid, data.type);
if (vecData != undefined && vecData != null) {
this.send('s2c_five_phases', {
vecRow: SKDataUtil.toJson(vecData, "{}"),
upexp: vecData.upexp,
count: vecData.count
});
}
}
}
//五行升级
c2s_fplevel(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
FivePhases.shared.fplevelup(data);
}
}
//变身卡详情页
c2s_detail_page(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let card = ChangeCard.shared.detailPage(player.roleid);
if (card) {
this.send('s2c_detail_page', {
card: SKDataUtil.toJson(card, "{}"),
});
} else {
this.send('s2c_notice', {
strRichText: '没使用过变身卡或变身卡已到期'
});
}
}
}
// 逐鹿大会报名
c2s_join_say(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
if (player.isTeamLeader() == false) {
return;
}
// 判断逐鹿大会是否开启
if (SatAssembly.shared.activity_state == ActivityDefine.activityState.ReadyOpen) {
let code = SatAssembly.shared.playerSign(player);
// 成功通知全体成员,失败则通知队长一人
if (MsgCode.SUCCESS == code) {
TeamMgr.shared.broadcast(player.getTeamId(), 's2c_join_say_sign', {
code: code,
sayState: SatAssembly.shared.activity_state,
});
} else {
this.send('s2c_join_say_sign', {
code: code,
sayState: SatAssembly.shared.activity_state,
});
}
} else {
this.send('s2c_join_say_sign', {
code: MsgCode.SAT_NOT_SIGN_TIME
});
}
}
}
// 返回当前逐鹿大会队员信息及分数信息
c2s_say_team_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (SatAssembly.shared.activity_state != ActivityDefine.activityState.Close) {
SatAssembly.shared.say_team_info(player, data.teamId);
} else {
this.send('s2c_join_say_sign', {
code: MsgCode.SAT_NOT_OPEN
});
}
}
}
// 请求逐鹿大会积分榜
c2s_say_integral_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (SatAssembly.shared.activity_state != ActivityDefine.activityState.Close) {
SatAssembly.shared.say_integral_info(player, data.type);
} else {
this.send('s2c_join_say_sign', {
code: MsgCode.SAT_NOT_OPEN
});
}
}
}
// 请求离开水路大会
c2s_leave_sldh(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
let activity = ActivityMgr.shared.getActivity(ActivityDefine.activityKindID.ShuiLuDaHui);
if (activity && activity.activity_state == ActivityDefine.activityState.Opening) {
let errorcode = activity.playerUnsign(player);
if (MsgCode.SUCCESS == errorcode) {
TeamMgr.shared.broadcast(player.getTeamId(), 's2c_shuilu_unsign', {
errorcode: errorcode
});
player.map_transfer(1011);
} else {
player.map_transfer(1011);
}
} else {
// 获得未开启直接离开
player.map_transfer(1011);
player.send('s2c_leave_sat', {
code: MsgCode.SUCCESS
});
}
}
}
// 请求离开逐鹿大会
c2s_leave_sat(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (SatAssembly.shared.activity_state != ActivityDefine.activityState.Close) {
SatAssembly.shared.leaveSat(player, data.teamId);
} else {
// 获得未开启直接离开
player.map_transfer(1011);
player.send('s2c_leave_sat', {
code: MsgCode.SUCCESS
});
}
}
}
// 逐鹿巅峰对决主动挑战其他队伍
c2s_sat_challenge(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
if (SatAssembly.shared.activity_state != ActivityDefine.activityState.Close) {
SatAssembly.shared.challenge(player, data.rivalTeamId);
}
}
}
// 特效
c2s_has_seffect(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let list = SpecialEffect.shared.getSeffectbyId(data.roleid);
if (list) {
player.send('s2c_has_seffect', {
seffectlist: SKDataUtil.toJson(list, '{}')
});
}
}
}
// 使用特效
c2s_use_seffect(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let list = SpecialEffect.shared.useSeffect(data);
player.send('s2c_has_seffect', {
seffectlist: SKDataUtil.toJson(list, '{}')
});
}
}
// 支援列表
c2s_support_list(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let list = PetSupport.shared.getPetlistById(data.roleid);
player.send('s2c_support_list', {
supportlist: SKDataUtil.toJson(list, '{}')
});
}
}
// 调整支援顺序
c2s_support_order(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let list = PetSupport.shared.supportOrder(data);
player.send('s2c_support_list', {
supportlist: SKDataUtil.toJson(list, '{}')
});
}
}
// 暂离队伍
c2s_pause_team(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.pause = 1;
TeamMgr.shared.sendInfoToMember(player.teamid);
}
}
// 召回
c2s_recall_team(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player && player.ischeck == 1) {
player.pause = 0;
TeamMgr.shared.sendInfoToMember(player.teamid);
let pTeamInfo = TeamMgr.shared.teamList[player.teamid];
TeamMgr.shared.teamMove(pTeamInfo);
} else {
player.send('s2c_recall_role', {
roleid: player.roleid,
});
}
}
c2s_recall_confirm(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.pause = 0;
TeamMgr.shared.sendInfoToMember(player.teamid);
let pTeamInfo = TeamMgr.shared.teamList[player.teamid];
TeamMgr.shared.teamMove(pTeamInfo);
}
}
// 自动归队
c2s_ischeck_on(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.ischeck = 1;
TeamMgr.shared.sendInfoToMember(player.teamid);
}
}
c2s_ischeck_off(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.ischeck = 0;
TeamMgr.shared.sendInfoToMember(player.teamid);
}
}
// 请求天牢犯人数据
c2s_days_prisoner(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
this.send('s2c_days_prisoner', {
prisoner: SKDataUtil.toJson(PaiHangMgr.shared.getDaysPrisoner(), "{}")
});
}
}
// 请求保释天牢犯人
c2s_days_bail(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
let bail_player = PlayerMgr.shared.getPlayerByRoleId(data.bailRoleid);
if (player) {
if (bail_player) {
if (bail_player.shane > 0) {
if (player.jade > 100000) {
player.addMoney(GameUtil.goldKind.Jade, -100000, "保释成功");
bail_player.shane = 0;
bail_player.send_notice(`您已经被玩家${player.name}进行保释!`)
// 更新监牢犯人数据
PaiHangMgr.shared.updateDaysPrisonerData(bail_player.roleid, bail_player.name, bail_player.race, bail_player.level, bail_player.relive, bail_player.shane);
// 更新监牢犯人数据给前端
player.send('s2c_days_prisoner', {
prisoner: SKDataUtil.toJson(PaiHangMgr.shared.getDaysPrisoner(), "{}")
});
bail_player.ShanEChange();
bail_player.send('s2c_aoi_pinfo', {
list: [bail_player.toObj()]
});
} else {
player.send_notice("您的保释金不足!");
}
} else {
player.send_notice("您的保释玩家不在牢房!");
}
} else {
player.send_notice("您的保释玩家信息查询失败!");
}
}
}
//设置离线时间
c2s_set_offlinetime(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
player.offlinetime = data.offtime;
player.send_notice('离线时间修改成功')
}
}
//天策符列表
c2s_own_ofuda(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
// player.send_notice("该功能正在维护!");
// return;
Ofuda.shared.getOfudaListByRoid(data.roleid)
}
}
//天演策列表
c2s_ofuda_list(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
// player.send_notice("该功能正在维护!");
// return;
let list = Ofuda.shared.getOfudaList();
let level = 0;
let bang = BangMgr.shared.getBang(player.bangid);
if (bang) {
let list = bang.rolelist;
for (let key in list) {
if (player.roleid == list[key].roleid) {
level = list[key].ofudalevel;
break;
}
}
} else {
player.send_notice("加入帮派才能使用哦")
return;
}
player.send("s2c_ofuda_list", {
list: SKDataUtil.toJson(list, "{}"),
level: level
})
this.c2s_own_ofuda({ roleid: player.roleid })
}
}
c2s_open_levelup(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let bang = BangMgr.shared.getBang(player.bangid);
if (bang) {
let list = bang.rolelist;
for (let key in list) {
let role = list[key];
if (role.roleid == data.roleid) {
let jade = 100000 + role.ofudalevel * 5888 + 1237
let bangscore = 1000 + role.ofudalevel * 1888 + 1237
player.send("s2c_open_levelup", {
jade: jade,
score: bangscore,
level: role.ofudalevel,
})
break;
}
}
}
}
}
//天演策升级
c2s_ofuda_levelup(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
// player.send_notice("该功能正在维护!");
// return;
let isUp = Ofuda.shared.levelUp(data)
if (isUp) {
this.c2s_open_levelup({ roleid: player.roleid })
}
}
}
//合成天策符
c2s_compound_ofuda(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
// player.send_notice("该功能正在维护!");
// return;
if (data.count > 10) {
player.send_notice("最多一次合成10个");
return;
}
Ofuda.shared.compoundOfuda(data)
}
}
//鉴定天策符
c2s_authenticate_ofuda(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
// player.send_notice("该功能正在维护!");
// return;
if (data.count > 10) {
player.send_notice("最多一次鉴定10个");
return;
}
Ofuda.shared.ahcOfuda(data);
}
}
//分解天策符
c2s_resolve_ofuda(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
// player.send_notice("该功能正在维护!");
// return;
Ofuda.shared.resolveOfuda(data);
}
}
//批量分解天策符
c2s_batchResolve_ofuda(data: any) {
let ms1 = new Date().getMilliseconds();
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
let ofudalist = Ofuda.shared.pofuda_map.get(data.roleid);
if (ofudalist == null || ofudalist == undefined) {
return;
}
if (player) {
// player.send_notice("该功能正在维护!");
// return;
player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
let list = SKDataUtil.jsonBy(data.ofudalist);
let num = 0;
if (list && list.length > 10) {
player.send_notice("最多一次分解10个")
return;
}
for (let id of list) {
for (let key in ofudalist) {
let ofuda = ofudalist[key];
if (ofuda == null || ofuda == undefined) {
continue;
}
if (id == ofuda.ofudaid && ofuda.roleid == data.roleid) {
if (ofuda.grade == 1) {
num += 1;
}
if (ofuda.grade == 2) {
num += 5;
}
if (ofuda.grade == 3) {
num += 10;
}
delete ofudalist[key];
break;
}
}
}
player.addBagItem(100320, num, true);
let ms2 = new Date().getMilliseconds();
let time = ms2 - ms1;
SKLogger.info(`批量分解 - 处理时间${time}ms`)
this.c2s_own_ofuda({ roleid: player.roleid });
}
}
//使用天策符
c2s_use_ofuda(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
// player.send_notice("该功能正在维护!");
// return;
Ofuda.shared.useOfuda(data);
this.c2s_ofuda_list({ roleid: player.roleid });
this.c2s_own_ofuda({ roleid: player.roleid });
}
}
//邀请入队
c2s_team_invite(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
let toplayer = PlayerMgr.shared.getPlayerByRoleId(data.toroleid);
if (player && toplayer) {
let team = TeamMgr.shared.getTeamInfo(player.teamid);
if (team == undefined || team == null) {
player.send_notice("你还没有队伍,去创建队伍吧!");
return;
}
if (!player.isleader) {
player.send_notice("你不是队长!")
return;
}
if (team.playerlist >= 5) {
player.send_notice("队伍已满!")
return;
}
if (toplayer.teamid > 0) {
player.send_notice("他已经有队伍了,拉拉别人吧!");
return;
}
if (player.mapid == 3001 && player.bangid != toplayer.bangid) {
player.send_notice("帮战时间不能邀请其他帮派的成员入队!");
return;
}
if (player.mapid == 3001 && toplayer.mapid != player.mapid) {
player.send_notice("该玩家还未参加本次帮战,快去通知他参加吧!");
return;
}
if (player.mapid == 1213 && toplayer.mapid != player.mapid) {
player.send_notice("该玩家还未参加本次活动,快去通知他参加吧!");
return;
}
if (player.mapid == 4004 && toplayer.mapid != player.mapid) {
player.send_notice("该玩家还未参加本次活动,快去通知他参加吧!");
return;
}
toplayer.send('s2c_team_invite', {
leaderid: team.leader.roleid,
toroleid: toplayer.roleid,
leadername: team.leader.name
})
}
}
c2s_oper_invite(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
let leader = PlayerMgr.shared.getPlayerByRoleId(data.leaderid);
if (player) {
if (data.operation == 0) {
leader.send_notice("玩家拒绝了你的邀请!")
}
if (data.operation == 1) {
TeamMgr.shared.joinTeam(player, leader.teamid);
}
}
}
c2s_paihang_playerinfo(data: any) {
let role = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
let player = PlayerMgr.shared.getPlayerByRoleId(data.playerid);
if (role) {
if (player) {
let info = player.getPlayerInfoById();
role.send('s2c_paihang_playerinfo', {
info: SKDataUtil.toJson(info, '{}')
})
} else {
role.send_notice("该玩家不在线,无法查看");
}
}
}
// 请求进入帮战
c2s_gang_wars(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
let code = FactionWar.shared.playerSign(player);
// 成功通知全体成员,失败则通知队长一人
if (MsgCode.SUCCESS == code) {
if (player.teamid > 0) {
TeamMgr.shared.broadcast(player.getTeamId(), 's2c_gang_wars', {
code: code,
state: FactionWar.shared.activity_state
});
} else {
player.send('s2c_gang_wars', {
code: code,
state: FactionWar.shared.activity_state
});
}
}
}
}
// 帮战信息统计
c2s_detail_statistics(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
FactionWar.shared.detail_statistics(player)
}
}
// 上阵迎敌
c2s_to_meet_them(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
if (FactionWar.shared.activity_state == ActivityDefine.activityState.Opening) {
FactionWar.shared.toMeetThem(player);
} else {
player.send_notice("帮战未开始");
}
}
}
// 帮战点击敌方战斗
c2s_faction_combat(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
let enemyRole = PlayerMgr.shared.getPlayerByRoleId(data.enemyRoleId);
if (player && enemyRole) {
if (FactionWar.shared.activity_state == ActivityDefine.activityState.Opening) {
FactionWar.shared.factionCombat(player, enemyRole);
} else {
player.send_notice("帮战未开始");
}
}
}
// 前往比武场
c2s_go_contest(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
if (FactionWar.shared.activity_state == ActivityDefine.activityState.Opening) {
FactionWar.shared.goContest(player);
} else {
player.send_notice("帮战未开始");
}
}
}
// 返回长安
c2s_to_map_chang_an(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
if (data.type == 1) {
FactionWar.shared.leave(player);
}
player.map_transfer(1011);
}
}
// 返回基地
c2s_go_home(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
FactionWar.shared.goHome(player, data.type);
}
}
// 帮战-比武
c2s_contest(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
if (FactionWar.shared.activity_state == ActivityDefine.activityState.Opening) {
FactionWar.shared.contest(player);
} else {
player.send_notice("帮战未开始");
}
}
}
// 帮战-请求塔的信息
c2s_gang_tower(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
if (FactionWar.shared.activity_state == ActivityDefine.activityState.Opening) {
FactionWar.shared.tower_info(player, data.towerId);
} else {
player.send_notice("帮战未开始,城防设备不可使用");
}
}
}
// 帮战-请求城防建筑
c2s_ask_fortifications(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleId);
if (player) {
if (FactionWar.shared.activity_state == ActivityDefine.activityState.Opening) {
if (data.type == 1) {
// 请求大炮
SKLogger.info(`${player.name}-帮派编号${player.bangid}操作大炮${data.is == 0 ? "蓄力" : "打断"}`)
FactionWar.shared.cannon_action(player, data.is);
} else {
// 请求烈火塔 玄冰塔
SKLogger.info(`${player.name}-帮派编号${player.bangid}操作${data.type == 2 ? "烈火塔" : "玄冰塔"}${data.is == 0 ? "蓄力" : "打断"}`)
FactionWar.shared.tower_action(player, data.is, data.serial);
}
} else {
player.send_notice("帮战未开始,城防设备不可使用");
}
}
}
// 请求碎片商城
c2s_debris_mall(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
DebrisMall.shared.getDebrisMallData(player);
}
}
// 请求碎片商城兑换
c2s_debris_mall_convert(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
DebrisMall.shared.getDebrisMallConvert(player, data.serial);
}
}
// 领取双倍点数
c2s_get_doublecnt(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
if (player.unget_doublecnt <= 0) {
player.send_notice("没有可领取的点数");
return;
}
if (player.unget_doublecnt < 60) {
player.doublecnt += player.unget_doublecnt;
player.send_notice(`领取${player.unget_doublecnt}点双倍点数`);
player.unget_doublecnt = 0;
player.getTaskMgr().SendDailyActive();
DB.updateDoublePoint({ doublecnt: player.doublecnt, unget_doublecnt: player.unget_doublecnt, roleid: player.roleid })
}
if (player.unget_doublecnt >= 60) {
player.doublecnt += 60;
player.unget_doublecnt -= 60;
player.send_notice(`领取60点双倍点数`);
DB.updateDoublePoint({ doublecnt: player.doublecnt, unget_doublecnt: player.unget_doublecnt, roleid: player.roleid })
player.getTaskMgr().SendDailyActive();
}
}
}
//回收物品
c2s_recycle_item(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
let count = ItemUtil.getBagItemCount(player, data.itemid);
if (count < data.count) {
player.send_notice("你背包里没有那么多");
return;
}
player.addItem(data.itemid, -data.count, false);
player.addMoney(GameUtil.goldKind.guo_Score, data.guoScore, "回收道具")
}
}
// 白名单
c2s_whitelist_interface(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
Interface.shared.getInterfaceData(player);
}
}
// 结婚
c2s_get_married(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
if (player.teamid <= 0) {
player.send_notice("和另一半组队才可以申请!");
return;
}
if (player.isleader == false) {
player.send_notice("只有队长可以操作!");
return;
}
let team = TeamMgr.shared.getTeamPlayer(player.teamid);
if (team) {
if (team.length != 2) {
player.send_notice("两个人才可以结婚!");
return;;
}
Marry.shared.getMarried(player, team);
}
}
}
c2s_operation_married(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
Marry.shared.operationMarry(player, data.oper);
}
}
//离婚
c2s_divorce(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
Marry.shared.divorceById(player);
}
}
// 请求提现界面信息
c2s_information(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
Currency.shared.information(player);
}
}
// 申请提现
c2s_withdraw(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
Currency.shared.withdraw(player, data);
}
}
// 请求当前现金点爆率
c2s_mondrop(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player) {
Currency.shared.mondrop(player);
}
}
c2s_getZhenFaInfo(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.getZhenFaInfo()
}
}
c2s_upLevelZhenFa(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
if (!!player.upLevelZhenFa(data.pos, data.level)) {
player.send('s2c_upLevelZhenFa')
}
}
}
c2s_equipXwItem(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.equipXwItem(data)
}
}
c2s_active_zhenfa_position(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
var code = (!!player.active_zhenfa_position(data) ? 0 : 1)
player.send("s2c_active_zhenfa_position", {
code: code
})
}
}
c2s_xw_normal_succinct(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.succinct(data)
}
}
c2s_getXwAttrInfo(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.getAttrInfo(data)
}
}
c2s_replaceAttribute(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.replaceAttribute(data)
}
}
c2s_getNewAttrInfo(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.getNewAttrInfo(data)
}
}
c2s_clearNewAttrInfo(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.clearNewAttrInfo()
}
}
c2s_getAttrInfo(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.getAllAttrInfo(data.itemID)
}
}
c2s_getBabySkillConfig(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.getBabySkillConfig(data)
}
}
c2s_adoptBaby(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.adoptBaby(data)
}
}
c2s_babyBattle(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.babyBattle(data)
}
}
c2s_babySkillBless(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.babySkillBless(data)
}
}
c2s_babySkillUpgrade(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.babySkillUpgrade(data)
}
}
c2s_babySkillBattle(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.babySkillBattle(data)
}
}
c2s_babyPracticeConfig(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.babyPracticeConfig(data)
}
}
c2s_babyPractice(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.babyPractice(data)
}
}
c2s_upgradeStar(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.upgradeStar(data)
}
}
c2s_getNewStarAttr(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.getNewStarAttr(data)
}
}
c2s_replaceStarAttr(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.replaceStarAttr(data)
}
}
c2s_equipStar(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (!!player) {
player.equipStar(data)
}
}
// 请求天梯玩家数据
c2s_ask_TianTi_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
// 请求排行榜
if (data.type == 1) {
TianTi.shared.getTianTidata(player, data.type);
}
}
// 请求天梯兑换
c2s_TianTi_buy(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
// 请求天梯兑换
if (player.tianti_integral >= data.price) {
player.tianti_integral -= data.price;
player.addItem(data.itemid, 1, true, `天梯奖励兑换`);
}
}
// 请求天梯奖励数据
c2s_ask_TianTijiangli_info(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(this.roleId);
if (player == null) {
return;
}
TianTi.shared.getJiangLidata(player);
}
c2s_tianfu_quxiao(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
TianTi.shared.leaveSat(player, player.getTeamId())
}
}
// 天梯报名
c2s_join_Tianti(data: any) {
let player = PlayerMgr.shared.getPlayerByRoleId(data.roleid);
if (player) {
if (player.isTeamLeader() == false) {
return;
}
// 判断天梯是否开启
if (TianTi.shared.activity_state == ActivityDefine.activityState.Opening) { //报名状态
// if (true) { //测试用
let code = TianTi.shared.playerSign(player);
// // 成功通知全体成员,失败则通知队长一人
if (MsgCode.SUCCESS == code) {
TeamMgr.shared.broadcast(player.getTeamId(), 's2c_join_tianti_sign', { //报名成功
// code: code,
code: 0,
//sayState: SatAssembly.shared.activity_state,
sayState: 1,
});
} else {
this.send('s2c_join_tianti_sign', {//报名失败
code: code,
sayState: TianTi.shared.activity_state,
});
}
} else {
this.send('s2c_join_tianti_sign', {//不在报名时间
code: MsgCode.TIANTI_NOT_SIGN_TIME
});
}
}
}
}