First push: build.zig.zon First push: config.json First push: dispatch/build.zig First push: dispatch/build.zig.zon First push: dispatch/src/authentication.zig First push: dispatch/src/dispatch.zig First push: dispatch/src/hotfix.zig First push: dispatch/src/main.zig First push: gameserver/build.zig First push: gameserver/build.zig.zon First push: gameserver/src/Packet.zig First push: gameserver/src/Session.zig First push: gameserver/src/command.zig First push: gameserver/src/commands/help.zig First push: gameserver/src/commands/refill.zig First push: gameserver/src/commands/sync.zig First push: gameserver/src/commands/tp.zig First push: gameserver/src/commands/unstuck.zig First push: gameserver/src/commands/value.zig First push: gameserver/src/data.zig First push: gameserver/src/handlers.zig First push: gameserver/src/main.zig First push: gameserver/src/manager/battle_mgr.zig First push: gameserver/src/manager/lineup_mgr.zig First push: gameserver/src/manager/multipath_mgr.zig First push: gameserver/src/manager/scene_mgr.zig First push: gameserver/src/network.zig First push: gameserver/src/services/avatar.zig First push: gameserver/src/services/battle.zig First push: gameserver/src/services/challenge.zig First push: gameserver/src/services/chat.zig First push: gameserver/src/services/config.zig First push: gameserver/src/services/events.zig First push: gameserver/src/services/gacha.zig First push: gameserver/src/services/item.zig First push: gameserver/src/services/lineup.zig First push: gameserver/src/services/login.zig First push: gameserver/src/services/mail.zig First push: gameserver/src/services/misc copy.zig First push: gameserver/src/services/misc.zig First push: gameserver/src/services/mission.zig First push: gameserver/src/services/multipath.zig First push: gameserver/src/services/pet.zig First push: gameserver/src/services/profile.zig First push: gameserver/src/services/res_config.zig First push: gameserver/src/services/scene.zig First push: hotfix.json First push: protocol/build.zig First push: protocol/build.zig.zon First push: protocol/src/protocol.pb.zig First push: protocol/src/root.zig First push: resources/ChallengeMazeConfig.json First push: resources/MapEntrance.json First push: resources/MazePlane.json First push: resources/res.json
59 lines
2.2 KiB
Zig
59 lines
2.2 KiB
Zig
const std = @import("std");
|
|
const protocol = @import("protocol");
|
|
const Session = @import("../Session.zig");
|
|
const Packet = @import("../Packet.zig");
|
|
const Config = @import("config.zig");
|
|
const LineupManager = @import("../manager/lineup_mgr.zig").LineupManager;
|
|
|
|
const Allocator = std.mem.Allocator;
|
|
const CmdID = protocol.CmdID;
|
|
|
|
pub fn onGetCurLineupData(session: *Session, _: *const Packet, allocator: Allocator) !void {
|
|
var lineup_mgr = LineupManager.init(allocator);
|
|
const lineup = try lineup_mgr.createLineup();
|
|
try session.send(CmdID.CmdGetCurLineupDataScRsp, protocol.GetCurLineupDataScRsp{
|
|
.retcode = 0,
|
|
.lineup = lineup,
|
|
});
|
|
}
|
|
|
|
pub fn onChangeLineupLeader(session: *Session, packet: *const Packet, allocator: Allocator) !void {
|
|
const req = try packet.getProto(protocol.ChangeLineupLeaderCsReq, allocator);
|
|
try session.send(CmdID.CmdChangeLineupLeaderScRsp, protocol.ChangeLineupLeaderScRsp{
|
|
.slot = req.slot,
|
|
.retcode = 0,
|
|
});
|
|
}
|
|
|
|
pub fn onReplaceLineup(session: *Session, packet: *const Packet, allocator: Allocator) !void {
|
|
const req = try packet.getProto(protocol.ReplaceLineupCsReq, allocator);
|
|
var lineup = protocol.LineupInfo.init(allocator);
|
|
lineup.mp = 5;
|
|
lineup.max_mp = 5;
|
|
lineup.name = .{ .Const = "CastoriceSR" };
|
|
for (req.lineup_slot_list.items) |ok| {
|
|
const avatar = protocol.LineupAvatar{
|
|
.id = ok.id,
|
|
.slot = ok.slot,
|
|
.satiety = 0,
|
|
.hp = 10000,
|
|
.avatar_type = protocol.AvatarType.AVATAR_FORMAL_TYPE,
|
|
.sp_bar = .{ .sp_cur = 10000, .sp_max = 10000 },
|
|
};
|
|
try lineup.avatar_list.append(avatar);
|
|
}
|
|
var rsp = protocol.SyncLineupNotify.init(allocator);
|
|
rsp.Lineup = lineup;
|
|
try session.send(CmdID.CmdSyncLineupNotify, rsp);
|
|
try session.send(CmdID.CmdReplaceLineupScRsp, protocol.ReplaceLineupScRsp{
|
|
.retcode = 0,
|
|
});
|
|
}
|
|
pub fn onSetLineupName(session: *Session, packet: *const Packet, allocator: Allocator) !void {
|
|
const req = try packet.getProto(protocol.SetLineupNameCsReq, allocator);
|
|
try session.send(CmdID.CmdSetLineupNameScRsp, protocol.SetLineupNameScRsp{
|
|
.index = req.index,
|
|
.name = req.name,
|
|
.retcode = 0,
|
|
});
|
|
}
|