cipher-sr/gameserver/src/services/lineup.zig
HuLiNap 78e23046f7 First push: build.zig
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
2025-04-17 16:16:03 +07:00

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,
});
}