Compare commits
4 commits
Author | SHA1 | Date | |
---|---|---|---|
44b9bf8580 | |||
|
a8bdaa63a5 | ||
|
ec84048099 | ||
|
205cc9e120 |
25 changed files with 6580 additions and 32802 deletions
|
@ -5,6 +5,7 @@
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
<RollForward>Major</RollForward>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
context.Response.StatusCode = HttpStatusCode.OK;
|
context.Response.StatusCode = HttpStatusCode.OK;
|
||||||
context.Response.ContentType = "application/json";
|
context.Response.ContentType = "application/json";
|
||||||
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
||||||
.Retcode((int)RetcodeStatus.RetSucc)
|
.Retcode(0)
|
||||||
.Message("OK")
|
.Message("OK")
|
||||||
.Object("data", dataObject)
|
.Object("data", dataObject)
|
||||||
.Build());
|
.Build());
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
context.Response.StatusCode = HttpStatusCode.OK;
|
context.Response.StatusCode = HttpStatusCode.OK;
|
||||||
context.Response.ContentType = "application/json";
|
context.Response.ContentType = "application/json";
|
||||||
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
||||||
.Retcode((int)RetcodeStatus.RetSucc)
|
.Retcode(0)
|
||||||
.Message("OK")
|
.Message("OK")
|
||||||
.Object("data", Data)
|
.Object("data", Data)
|
||||||
.Build());
|
.Build());
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
context.Response.StatusCode = HttpStatusCode.OK;
|
context.Response.StatusCode = HttpStatusCode.OK;
|
||||||
context.Response.ContentType = "application/json";
|
context.Response.ContentType = "application/json";
|
||||||
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
||||||
.Retcode((int)RetcodeStatus.RetSucc)
|
.Retcode(0)
|
||||||
.Boolean("success", true)
|
.Boolean("success", true)
|
||||||
.String("message", "")
|
.String("message", "")
|
||||||
.Build());
|
.Build());
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
var accountData = DispatchHelper.ToLoginResponseData();
|
var accountData = DispatchHelper.ToLoginResponseData();
|
||||||
|
|
||||||
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
||||||
.Retcode((int)RetcodeStatus.RetSucc)
|
.Retcode(0)
|
||||||
.Message("OK")
|
.Message("OK")
|
||||||
.Object("data", new JObject
|
.Object("data", new JObject
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
context.Response.ContentType = "text/plain";
|
context.Response.ContentType = "text/plain";
|
||||||
await context.Response.WriteAllAsync(Convert.ToBase64String(ProtobufUtil.Serialize(new RegionList
|
await context.Response.WriteAllAsync(Convert.ToBase64String(ProtobufUtil.Serialize(new RegionList
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
TopServerRegionName = RegionManager.GetTopServerRegionName(),
|
TopServerRegionName = RegionManager.GetTopServerRegionName(),
|
||||||
RegionInfoLists = { RegionManager.GetRegionList() }
|
RegionInfoLists = { RegionManager.GetRegionList() }
|
||||||
})));
|
})));
|
||||||
|
|
|
@ -25,10 +25,13 @@
|
||||||
B5 = true,
|
B5 = true,
|
||||||
B6 = true,
|
B6 = true,
|
||||||
B7 = true,
|
B7 = true,
|
||||||
Gfemaboifee = true,
|
B8 = true,
|
||||||
|
useTcp = true,
|
||||||
//MdkResVersion = "5335706",
|
//MdkResVersion = "5335706",
|
||||||
AssetBundleUrl = "https://autopatchcn.bhsr.com/asb/BetaLive/output_6355877_591cdefefe9b",
|
AssetBundleUrl = "https://autopatchos.starrails.com/asb/BetaLive/output_6510636_cb4da670a18a",
|
||||||
ExResourceUrl = "https://autopatchcn.bhsr.com/design_data/BetaLive/output_6367879_26191d7cc23b",
|
ExResourceUrl = "https://autopatchos.starrails.com/design_data/BetaLive/output_6519585_2be8ac313835",
|
||||||
|
IfixVersion = "https://autopatchos.starrails.com/ifix/BetaLive/output_6523427_28cc5c21c689",
|
||||||
|
LuaUrl = "https://autopatchos.starrails.com/lua/BetaLive/output_6516960_dede96733b5b",
|
||||||
})));
|
})));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
context.Response.StatusCode = HttpStatusCode.OK;
|
context.Response.StatusCode = HttpStatusCode.OK;
|
||||||
context.Response.ContentType = "application/json";
|
context.Response.ContentType = "application/json";
|
||||||
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
||||||
.Retcode((int)RetcodeStatus.RetSucc)
|
.Retcode(0)
|
||||||
.Message("OK")
|
.Message("OK")
|
||||||
.Object("data", CaptchaData)
|
.Object("data", CaptchaData)
|
||||||
.Build());
|
.Build());
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
var accountData = DispatchHelper.ToLoginResponseData();
|
var accountData = DispatchHelper.ToLoginResponseData();
|
||||||
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
await context.Response.WriteAllJsonAsync(DispatchResponseBuilder.Create()
|
||||||
.Retcode((int)RetcodeStatus.RetSucc)
|
.Retcode(0)
|
||||||
.Message("OK")
|
.Message("OK")
|
||||||
.Object("data", new JObject
|
.Object("data", new JObject
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
<RollForward>Major</RollForward>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
var response = new GetAvatarDataScRsp
|
var response = new GetAvatarDataScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
IsAll = request.IsGetAll
|
IsAll = request.IsGetAll
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
1001,1002,1003,1004,1005,1006,1008,1009,1013,
|
1001,1002,1003,1004,1005,1006,1008,1009,1013,
|
||||||
1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,
|
1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,
|
||||||
1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1217,
|
1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1217,
|
||||||
1302,1303,1305,1306,1307,1312};
|
1301,1302,1303,1304,1305,1306,1307,1308,1312};
|
||||||
|
|
||||||
foreach (uint id in characters)
|
foreach (uint id in characters)
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,10 +50,10 @@ namespace FreeSR.Gateserver.Manager.Handlers
|
||||||
GroupId = 19,
|
GroupId = 19,
|
||||||
InstId = 300001,
|
InstId = 300001,
|
||||||
EntityId = 4194583,
|
EntityId = 4194583,
|
||||||
Prop = new Mpdmfpohnnc
|
Prop = new ScenePropInfo
|
||||||
{
|
{
|
||||||
Hdmeecedleh = 1,
|
PropState = 1,
|
||||||
Kkjiblpgfpa = 808
|
PropId = 808
|
||||||
},
|
},
|
||||||
Motion = new MotionInfo
|
Motion = new MotionInfo
|
||||||
{
|
{
|
||||||
|
@ -100,7 +100,7 @@ namespace FreeSR.Gateserver.Manager.Handlers
|
||||||
|
|
||||||
session.Send(CmdType.CmdSetLineupNameScRsp, new SetLineupNameScRsp
|
session.Send(CmdType.CmdSetLineupNameScRsp, new SetLineupNameScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
Name = request.Name,
|
Name = request.Name,
|
||||||
Index = request.Index
|
Index = request.Index
|
||||||
});
|
});
|
||||||
|
@ -114,18 +114,14 @@ namespace FreeSR.Gateserver.Manager.Handlers
|
||||||
|
|
||||||
Dictionary<uint, List<uint>> monsterIds = new Dictionary<uint, List<uint>>
|
Dictionary<uint, List<uint>> monsterIds = new Dictionary<uint, List<uint>>
|
||||||
{
|
{
|
||||||
{ 1, new List<uint> { 3001010, 3001020, 3001020, 3001010 } },
|
{ 1, new List<uint> { 3013010, 3012010, 3013010, 3001010 } },
|
||||||
{ 2, new List<uint> { 3002030, 3002010, 3002010, 3002030 } },
|
{ 2, new List<uint> { 8034010 } },
|
||||||
{ 3, new List<uint> { 3011010, 3012020, 3011010 } },
|
{ 3, new List<uint> { 3014022 } },
|
||||||
{ 4, new List<uint> { 3003010, 3003020 } },
|
|
||||||
{ 5, new List<uint> { 3024020 } },
|
|
||||||
{ 6, new List<uint> { 3014020 } },
|
|
||||||
{ 7, new List<uint> { 3002050 } }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Dictionary<uint, uint> monsterLevels = new Dictionary<uint, uint>
|
Dictionary<uint, uint> monsterLevels = new Dictionary<uint, uint>
|
||||||
{
|
{
|
||||||
{1,70},{2,70},{3,60},{4,65},{5,55},{6,60},{7,75}
|
{1,70},{2,70},{3,60}
|
||||||
};
|
};
|
||||||
|
|
||||||
//basic
|
//basic
|
||||||
|
@ -190,11 +186,11 @@ namespace FreeSR.Gateserver.Manager.Handlers
|
||||||
}
|
}
|
||||||
|
|
||||||
//monster
|
//monster
|
||||||
for (uint i = 1; i <= 7; i++)
|
for (uint i = 1; i <= monsterIds.Count; i++)
|
||||||
{
|
{
|
||||||
SceneMonsterWave monsterInfo = new SceneMonsterWave
|
SceneMonsterWave monsterInfo = new SceneMonsterWave
|
||||||
{
|
{
|
||||||
Knkmjldpekj = i,
|
Pkgenfbhofi = i,
|
||||||
MonsterParam = new SceneMonsterParam
|
MonsterParam = new SceneMonsterParam
|
||||||
{
|
{
|
||||||
Level = monsterLevels[i],
|
Level = monsterLevels[i],
|
||||||
|
@ -219,7 +215,7 @@ namespace FreeSR.Gateserver.Manager.Handlers
|
||||||
|
|
||||||
var response = new StartCocoonStageScRsp
|
var response = new StartCocoonStageScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
CocoonId = request.CocoonId,
|
CocoonId = request.CocoonId,
|
||||||
Wave = request.Wave,
|
Wave = request.Wave,
|
||||||
PropEntityId = request.PropEntityId,
|
PropEntityId = request.PropEntityId,
|
||||||
|
@ -235,7 +231,7 @@ namespace FreeSR.Gateserver.Manager.Handlers
|
||||||
var request = data as PVEBattleResultCsReq;
|
var request = data as PVEBattleResultCsReq;
|
||||||
session.Send(CmdType.CmdPVEBattleResultScRsp, new PVEBattleResultScRsp
|
session.Send(CmdType.CmdPVEBattleResultScRsp, new PVEBattleResultScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
EndStatus = request.EndStatus
|
EndStatus = request.EndStatus
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,15 +7,15 @@
|
||||||
internal static class LineupReqGroup
|
internal static class LineupReqGroup
|
||||||
{
|
{
|
||||||
public static uint Avatar1 = 8001;
|
public static uint Avatar1 = 8001;
|
||||||
public static uint Avatar2 = 1307;
|
public static uint Avatar2 = 1308;
|
||||||
public static uint Avatar3 = 1306;
|
public static uint Avatar3 = 1304;
|
||||||
public static uint Avatar4 = 1312;
|
public static uint Avatar4 = 1301;
|
||||||
[Handler(CmdType.CmdGetCurLineupDataCsReq)]
|
[Handler(CmdType.CmdGetCurLineupDataCsReq)]
|
||||||
public static void OnGetCurLineupDataCsReq(NetSession session, int cmdId, object _)
|
public static void OnGetCurLineupDataCsReq(NetSession session, int cmdId, object _)
|
||||||
{
|
{
|
||||||
var response = new GetCurLineupDataScRsp
|
var response = new GetCurLineupDataScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
response.Lineup = new LineupInfo
|
response.Lineup = new LineupInfo
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
{
|
{
|
||||||
var response = new GetAllLineupDataScRsp
|
var response = new GetAllLineupDataScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
CurIndex = 0,
|
CurIndex = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
session.Send(CmdType.CmdChangeLineupLeaderScRsp, new ChangeLineupLeaderScRsp
|
session.Send(CmdType.CmdChangeLineupLeaderScRsp, new ChangeLineupLeaderScRsp
|
||||||
{
|
{
|
||||||
Slot = request.Slot,
|
Slot = request.Slot,
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
|
|
||||||
session.Send(CmdType.CmdJoinLineupScRsp, new JoinLineupScRsp
|
session.Send(CmdType.CmdJoinLineupScRsp, new JoinLineupScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +116,6 @@
|
||||||
Avatar1 = 0; Avatar2 = 0; Avatar3 = 0; Avatar4 = 0;
|
Avatar1 = 0; Avatar2 = 0; Avatar3 = 0; Avatar4 = 0;
|
||||||
foreach (LineupSlotData slotData in request.LineupSlotLists)
|
foreach (LineupSlotData slotData in request.LineupSlotLists)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Replace Slot:{slotData.Slot} Id:{slotData.Id}");
|
|
||||||
if (slotData.Slot == 0) Avatar1 = slotData.Id;
|
if (slotData.Slot == 0) Avatar1 = slotData.Id;
|
||||||
if (slotData.Slot == 1) Avatar2 = slotData.Id;
|
if (slotData.Slot == 1) Avatar2 = slotData.Id;
|
||||||
if (slotData.Slot == 2) Avatar3 = slotData.Id;
|
if (slotData.Slot == 2) Avatar3 = slotData.Id;
|
||||||
|
@ -126,7 +125,7 @@
|
||||||
RefreshLineup(session);
|
RefreshLineup(session);
|
||||||
session.Send(CmdType.CmdReplaceLineupScRsp, new ReplaceLineupScRsp
|
session.Send(CmdType.CmdReplaceLineupScRsp, new ReplaceLineupScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +133,6 @@
|
||||||
public static void OnQuitLineupCsReq(NetSession session, int cmdId, object data)
|
public static void OnQuitLineupCsReq(NetSession session, int cmdId, object data)
|
||||||
{
|
{
|
||||||
var request = data as QuitLineupCsReq;
|
var request = data as QuitLineupCsReq;
|
||||||
Console.WriteLine($"CmdQuitLineupCsReq BaseAvatarId:{request.BaseAvatarId} Index:{request.Index} PlaneId:{request.PlaneId}");
|
|
||||||
if (request.BaseAvatarId == Avatar1) Avatar1 = 0;
|
if (request.BaseAvatarId == Avatar1) Avatar1 = 0;
|
||||||
if (request.BaseAvatarId == Avatar2) Avatar2 = 0;
|
if (request.BaseAvatarId == Avatar2) Avatar2 = 0;
|
||||||
if (request.BaseAvatarId == Avatar3) Avatar3 = 0;
|
if (request.BaseAvatarId == Avatar3) Avatar3 = 0;
|
||||||
|
@ -143,13 +141,12 @@
|
||||||
RefreshLineup(session);
|
RefreshLineup(session);
|
||||||
session.Send(CmdType.CmdQuitLineupScRsp, new QuitLineupScRsp
|
session.Send(CmdType.CmdQuitLineupScRsp, new QuitLineupScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
BaseAvatarId = request.BaseAvatarId,
|
BaseAvatarId = request.BaseAvatarId,
|
||||||
IsVirtual = request.IsVirtual
|
IsVirtual = request.IsVirtual
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
public static void RefreshLineup(NetSession session) {
|
public static void RefreshLineup(NetSession session) {
|
||||||
Console.WriteLine($"Team refreshed!{Avatar1} {Avatar2} {Avatar3} {Avatar4}");
|
|
||||||
var characters = new uint[] { Avatar1, Avatar2, Avatar3, Avatar4 };
|
var characters = new uint[] { Avatar1, Avatar2, Avatar3, Avatar4 };
|
||||||
var response = new SyncLineupNotify
|
var response = new SyncLineupNotify
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
var request = data as GetMissionStatusCsReq;
|
var request = data as GetMissionStatusCsReq;
|
||||||
GetMissionStatusScRsp response = new GetMissionStatusScRsp
|
GetMissionStatusScRsp response = new GetMissionStatusScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
response.FinishedMainMissionIdLists = new uint[] {
|
response.FinishedMainMissionIdLists = new uint[] {
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
{
|
{
|
||||||
foreach (uint id in request.SubMissionIdLists)
|
foreach (uint id in request.SubMissionIdLists)
|
||||||
{
|
{
|
||||||
response.MissionEventStatusLists.Add(new Mission()
|
response.SubMissionStatusLists.Add(new Mission()
|
||||||
{
|
{
|
||||||
Id = id,
|
Id = id,
|
||||||
Progress = 0,
|
Progress = 0,
|
||||||
|
@ -126,7 +126,7 @@
|
||||||
{
|
{
|
||||||
foreach (uint id in request.MainMissionIdLists)
|
foreach (uint id in request.MainMissionIdLists)
|
||||||
{
|
{
|
||||||
response.SubMissionStatusLists.Add(new Mission()
|
response.MissionEventStatusLists.Add(new Mission()
|
||||||
{
|
{
|
||||||
Id = id,
|
Id = id,
|
||||||
Progress = 0,
|
Progress = 0,
|
||||||
|
|
|
@ -12,31 +12,31 @@
|
||||||
public static void OnGetNpcTakenRewardCsReq(NetSession session, int cmdId, object data)
|
public static void OnGetNpcTakenRewardCsReq(NetSession session, int cmdId, object data)
|
||||||
{
|
{
|
||||||
|
|
||||||
var npcRewardReq = data as Eddbhmdjadb;
|
var npcRewardReq = data as GetNpcTakenRewardCsReq;
|
||||||
|
|
||||||
session.Send(CmdType.CmdGetNpcTakenRewardScRsp, new Nikhfbniagb
|
session.Send(CmdType.CmdGetNpcTakenRewardScRsp, new GetNpcTakenRewardScRsp
|
||||||
{
|
{
|
||||||
NpcId = npcRewardReq.Okonlennkfb,
|
NpcId = npcRewardReq.NpcId,
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
[Handler(CmdType.CmdGetFirstTalkByPerformanceNpcCsReq)]
|
[Handler(CmdType.CmdGetFirstTalkByPerformanceNpcCsReq)]
|
||||||
public static void OnGetFirstTalkByPerformanceNpcCsReq(NetSession session, int cmdId, object data)
|
public static void OnGetFirstTalkByPerformanceNpcCsReq(NetSession session, int cmdId, object data)
|
||||||
{
|
{
|
||||||
var npcPerformanceReq = data as Jknjlicadhe;
|
var npcPerformanceReq = data as GetFirstTalkByPerformanceNpcCsReq;
|
||||||
|
|
||||||
var response = new Kpbeklbbihd
|
var response = new GetFirstTalkByPerformanceNpcScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach(uint id in npcPerformanceReq.Ffgeablhjmms)
|
foreach(uint id in npcPerformanceReq.FirstTalkIdLists)
|
||||||
{
|
{
|
||||||
response.Hhldcbegobcs.Add(new NpcMeetStatusInfo
|
response.NpcMeetStatusLists.Add(new NpcMeetStatusInfo
|
||||||
{
|
{
|
||||||
Jgndlkbohij = true,
|
IsMeet = true,
|
||||||
Okonlennkfb = id
|
MeetId = id
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,9 +22,14 @@
|
||||||
|
|
||||||
session.Send(CmdType.CmdPlayerHeartBeatScRsp, new PlayerHeartBeatScRsp
|
session.Send(CmdType.CmdPlayerHeartBeatScRsp, new PlayerHeartBeatScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
|
|
||||||
DownloadData = new ClientDownloadData(),
|
DownloadData = new ClientDownloadData
|
||||||
|
{
|
||||||
|
Version = 51,
|
||||||
|
Time = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
|
||||||
|
Data = Convert.FromBase64String("G0x1YVMBGZMNChoKBAQICHhWAAAAAAAAAAAAAAAod0ABD0BGcmVlU1JMdWEudHh0AAAAAAAAAAAAAQccAAAAJABAAClAQAApgEAAKcBAAFYAAQAsgAABXUBBAOSAQQAkAUAAKcFBAikBQgIpQUIC7AAAAWyAAACWgAIA6cDCAMEAwwEWAQMAqoABgKlBgQCpQUMDqYFDAxLAQwMRQACAqUGBAJ9BRIiewP1/GQCAABIAAAAEA0NTBAxVbml0eUVuZ2luZQQLR2FtZU9iamVjdAQFRmluZAQpVUlSb290L0Fib3ZlRGlhbG9nL0JldGFIaW50RGlhbG9nKENsb25lKQQYR2V0Q29tcG9uZW50c0luQ2hpbGRyZW4EB3R5cGVvZgQEUlBHBAdDbGllbnQEDkxvY2FsaXplZFRleHQTAAAAAAAAAAAEB0xlbmd0aBMBAAAAAAAAAAQLZ2FtZU9iamVjdAQFbmFtZQQJSGludFRleHQEBXRleHQUYTxiPkZyZWVTUiBpcyBhIGZyZWUgc29mdHdhcmUuRnJlZVNS5piv5LiA5Liq5YWN6LS56L2v5Lu244CCIGh0dHBzOi8vZGlzY29yZC5nZy9yZXZlcnNlZHJvb21zPC9iPgEAAAABAAAAAAAcAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAAAAFAAAABgAAAAYAAAAEAAAACQAAAAYAAAAEb2JqBgAAABwAAAAHY29tcHRzDgAAABwAAAAMKGZvciBpbmRleCkSAAAAGwAAAAwoZm9yIGxpbWl0KRIAAAAbAAAACyhmb3Igc3RlcCkSAAAAGwAAAAJpEwAAABoAAAABAAAABV9FTlY=")
|
||||||
|
},
|
||||||
ClientTimeMs = heartbeatReq.ClientTimeMs,
|
ClientTimeMs = heartbeatReq.ClientTimeMs,
|
||||||
ServerTimeMs = (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds()
|
ServerTimeMs = (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds()
|
||||||
});
|
});
|
||||||
|
@ -35,19 +40,17 @@
|
||||||
{
|
{
|
||||||
session.Send(CmdType.CmdGetHeroBasicTypeInfoScRsp, new GetHeroBasicTypeInfoScRsp
|
session.Send(CmdType.CmdGetHeroBasicTypeInfoScRsp, new GetHeroBasicTypeInfoScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
Gender = Gender.GenderMan,
|
Gender = Gender.GenderMan,
|
||||||
Cdkjkpnjjjas ={
|
BasicTypeInfoLists ={
|
||||||
new Hlbbodklpbo
|
new PlayerHeroBasicTypeInfo
|
||||||
{
|
{
|
||||||
Peihhlcchfj = HeroBasicType.BoyWarrior,
|
BasicType = HeroBasicType.BoyWarrior,
|
||||||
Rank = 1,
|
Rank = 1,
|
||||||
Chmeifanmags = {}
|
Knhaecbafbas = {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
CurBasicType = HeroBasicType.BoyWarrior,
|
CurBasicType = HeroBasicType.BoyWarrior,
|
||||||
Bhepmbpaojp = false,
|
|
||||||
Cnlbajkmnbn = false
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,10 +74,10 @@
|
||||||
|
|
||||||
session.Send(CmdType.CmdPlayerLoginScRsp, new PlayerLoginScRsp
|
session.Send(CmdType.CmdPlayerLoginScRsp, new PlayerLoginScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
//IsNewPlayer = false,
|
//IsNewPlayer = false,
|
||||||
LoginRandom = request.LoginRandom,
|
LoginRandom = request.LoginRandom,
|
||||||
Stamina = 100,
|
Stamina = 240,
|
||||||
ServerTimestampMs = (ulong)DateTimeOffset.Now.ToUnixTimeSeconds() * 1000,
|
ServerTimestampMs = (ulong)DateTimeOffset.Now.ToUnixTimeSeconds() * 1000,
|
||||||
BasicInfo = new PlayerBasicInfo
|
BasicInfo = new PlayerBasicInfo
|
||||||
{
|
{
|
||||||
|
@ -95,24 +98,12 @@
|
||||||
{
|
{
|
||||||
session.Send(CmdType.CmdPlayerGetTokenScRsp, new PlayerGetTokenScRsp
|
session.Send(CmdType.CmdPlayerGetTokenScRsp, new PlayerGetTokenScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
Uid = 1337,
|
Uid = 1337,
|
||||||
//BlackInfo = null,
|
//BlackInfo = null,
|
||||||
Msg = "OK",
|
Msg = "OK",
|
||||||
SecretKeySeed = 0
|
SecretKeySeed = 0
|
||||||
});
|
});
|
||||||
|
|
||||||
var annData = new AnnounceData
|
|
||||||
{
|
|
||||||
BeginTime = 0,
|
|
||||||
EndTime = DateTimeOffset.Now.ToUnixTimeSeconds() + 10,
|
|
||||||
Jhjbgmmpccj = Encoding.UTF8.GetString(Convert.FromBase64String("RnJlZVNSIGlzIGEgZnJlZSBhbmQgb3Blbi1zb3VyY2Ugc29mdHdhcmUsIGlmIHlvdSBwYWlkIGZvciB0aGlzLCB5b3UgaGF2ZSBiZWVuIHNjYW1tZWQhIEZyZWVTUuaYr+S4gOS4quWFjei0ueS4lOW8gOa6kOeahOi9r+S7tu+8jOWmguaenOS9oOaYr+iKsemSseS5sOadpeeahO+8jOivtOaYjuS9oOiiq+mql+S6hu+8gXJlcG9zaXRvcnkgbGluayDku5PlupPlnLDlnYA6aHR0cHM6Ly9naXQueGVvbmRldi5jb20vTW91eDIzMzMzL0ZyZWVTUg=="))
|
|
||||||
};
|
|
||||||
|
|
||||||
session.Send(CmdType.CmdServerAnnounceNotify, new ServerAnnounceNotify
|
|
||||||
{
|
|
||||||
Opgimnkoknjs = {annData},
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
using FreeSR.Gateserver.Manager.Handlers.Core;
|
using FreeSR.Gateserver.Manager.Handlers.Core;
|
||||||
using FreeSR.Gateserver.Network;
|
using FreeSR.Gateserver.Network;
|
||||||
using FreeSR.Proto;
|
using FreeSR.Proto;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
|
|
||||||
internal static class SceneReqGroup
|
internal static class SceneReqGroup
|
||||||
|
@ -15,9 +16,9 @@
|
||||||
GameModeType = 1,
|
GameModeType = 1,
|
||||||
//Bkmbkahohif = 1,
|
//Bkmbkahohif = 1,
|
||||||
//Admbbnbnibk = 1,
|
//Admbbnbnibk = 1,
|
||||||
EntryId = 1030101,
|
EntryId = 2032101,
|
||||||
PlaneId = 10301,
|
PlaneId = 20321,
|
||||||
FloorId = 10301001,
|
FloorId = 20321001,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*scene.EntityLists.Add(new SceneEntityInfo
|
/*scene.EntityLists.Add(new SceneEntityInfo
|
||||||
|
@ -35,8 +36,47 @@
|
||||||
session.Send(CmdType.CmdGetCurSceneInfoScRsp, new GetCurSceneInfoScRsp
|
session.Send(CmdType.CmdGetCurSceneInfoScRsp, new GetCurSceneInfoScRsp
|
||||||
{
|
{
|
||||||
Scene = scene,
|
Scene = scene,
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Handler(CmdType.CmdGetSceneMapInfoCsReq)]
|
||||||
|
public static void OnGetSceneMapInfoCsReq(NetSession session, int cmdId, object data)
|
||||||
|
{
|
||||||
|
var request = data as GetSceneMapInfoCsReq;
|
||||||
|
|
||||||
|
uint[] back = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 0 };
|
||||||
|
|
||||||
|
var mapinfo = new SceneMapInfo
|
||||||
|
{
|
||||||
|
Retcode = 0,
|
||||||
|
LightenSectionLists = back,
|
||||||
|
ChestLists = {
|
||||||
|
new ChestInfo
|
||||||
|
{
|
||||||
|
ChestType = ChestType.MapInfoChestTypeNormal
|
||||||
|
},
|
||||||
|
new ChestInfo
|
||||||
|
{
|
||||||
|
ChestType = ChestType.MapInfoChestTypePuzzle
|
||||||
|
},
|
||||||
|
new ChestInfo
|
||||||
|
{
|
||||||
|
ChestType = ChestType.MapInfoChestTypeChallenge
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
var response = new GetSceneMapInfoScRsp
|
||||||
|
{
|
||||||
|
Retcode = 0,
|
||||||
|
EntryId = request.EntryIdLists[0],
|
||||||
|
CurMapEntryId = request.EntryId,
|
||||||
|
SceneMapInfoes = { mapinfo },
|
||||||
|
LightenSectionLists = back,
|
||||||
|
};
|
||||||
|
|
||||||
|
session.Send(CmdType.CmdGetSceneMapInfoScRsp, response);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
{
|
{
|
||||||
var response = new GetTutorialGuideScRsp
|
var response = new GetTutorialGuideScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc
|
Retcode = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
uint[] guides = new uint[]
|
uint[] guides = new uint[]
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
|
|
||||||
var response = new GetTutorialScRsp
|
var response = new GetTutorialScRsp
|
||||||
{
|
{
|
||||||
Retcode = (uint)RetcodeStatus.RetSucc,
|
Retcode = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
foreach (uint id in completedTutorials)
|
foreach (uint id in completedTutorials)
|
||||||
|
|
|
@ -25,16 +25,17 @@
|
||||||
//{CmdType.CmdGetQuestDataCsReq, typeof(GetQuestDataCsReq)},
|
//{CmdType.CmdGetQuestDataCsReq, typeof(GetQuestDataCsReq)},
|
||||||
//{CmdType.CmdGetChallengeCsReq, typeof(GetChallengeCsReq)},
|
//{CmdType.CmdGetChallengeCsReq, typeof(GetChallengeCsReq)},
|
||||||
{CmdType.CmdGetCurSceneInfoCsReq, typeof(GetCurSceneInfoCsReq)},
|
{CmdType.CmdGetCurSceneInfoCsReq, typeof(GetCurSceneInfoCsReq)},
|
||||||
|
{CmdType.CmdGetSceneMapInfoCsReq, typeof(GetSceneMapInfoCsReq)},
|
||||||
|
|
||||||
{CmdType.CmdGetBasicInfoCsReq, typeof(GetBasicInfoCsReq)},
|
{CmdType.CmdGetBasicInfoCsReq, typeof(GetBasicInfoCsReq)},
|
||||||
{CmdType.CmdGetHeroBasicTypeInfoCsReq, typeof(Hlbbodklpbo)},
|
{CmdType.CmdGetHeroBasicTypeInfoCsReq, typeof(GetHeroBasicTypeInfoCsReq)},
|
||||||
{CmdType.CmdPlayerHeartBeatCsReq, typeof(PlayerHeartBeatCsReq)},
|
{CmdType.CmdPlayerHeartBeatCsReq, typeof(PlayerHeartBeatCsReq)},
|
||||||
|
|
||||||
//{CmdType.CmdGetGachaInfoCsReq, typeof(GetGachaInfoCsReq)},
|
//{CmdType.CmdGetGachaInfoCsReq, typeof(GetGachaInfoCsReq)},
|
||||||
//{CmdType.CmdDoGachaCsReq, typeof(DoGachaCsReq)},
|
//{CmdType.CmdDoGachaCsReq, typeof(DoGachaCsReq)},
|
||||||
|
|
||||||
{CmdType.CmdGetNpcTakenRewardCsReq, typeof(Eddbhmdjadb)},
|
{CmdType.CmdGetNpcTakenRewardCsReq, typeof(GetNpcTakenRewardCsReq)},
|
||||||
{CmdType.CmdGetFirstTalkByPerformanceNpcCsReq, typeof(Jknjlicadhe)},
|
{CmdType.CmdGetFirstTalkByPerformanceNpcCsReq, typeof(GetFirstTalkByPerformanceNpcCsReq)},
|
||||||
|
|
||||||
{CmdType.CmdSceneEntityMoveCsReq, typeof(SceneEntityMoveCsReq)},
|
{CmdType.CmdSceneEntityMoveCsReq, typeof(SceneEntityMoveCsReq)},
|
||||||
{CmdType.CmdReplaceLineupCsReq, typeof(ReplaceLineupCsReq)},
|
{CmdType.CmdReplaceLineupCsReq, typeof(ReplaceLineupCsReq)},
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -4,6 +4,7 @@
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
<RollForward>Major</RollForward>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
31504
FreeSR.Proto/StarRail.cs
31504
FreeSR.Proto/StarRail.cs
File diff suppressed because it is too large
Load diff
|
@ -4,6 +4,7 @@
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
<RollForward>Major</RollForward>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
<RollForward>Major</RollForward>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
# FreeSR - Server Software Reimplementation for a Certain Turn-Based Anime Game
|
# FreeSR - Server Software Reimplementation for a Certain Turn-Based Anime Game
|
||||||
|
|
||||||
**FreeSR** is an open-source server software reimplementation for a certain turn-based anime game, specifically version 1.6.5 developed by xeondev. This project aims to provide a platform for running private servers, enabling players to enjoy the game in a controlled environment with modified or additional features. The open-source version of FreeSR missing some and has empty classes, inviting contributors to actively participate by raising issues or submitting pull requests.
|
**FreeSR** is an open-source server software reimplementation for a certain turn-based anime game, specifically version 2.0.5 developed by xeondev. This project aims to provide a platform for running private servers, enabling players to enjoy the game in a controlled environment with modified or additional features. The open-source version of FreeSR missing some and has empty classes, inviting contributors to actively participate by raising issues or submitting pull requests.
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
The "FreeSR" project is an initiative to recreate the server-side functionality of a certain turn-based anime game, version 1.6.5, which was originally developed by xeondev.
|
The "FreeSR" project is an initiative to recreate the server-side functionality of a certain turn-based anime game, version 2.0.5, which was originally developed by xeondev.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Server software reimplementation for a certain turn-based anime game (version 1.6.5)
|
- Server software reimplementation for a certain turn-based anime game (version 2.0.5)
|
||||||
- Open-source with permissive licensing
|
- Open-source with permissive licensing
|
||||||
- Extensible architecture allowing for custom modifications and additional features
|
- Extensible architecture allowing for custom modifications and additional features
|
||||||
- Regular updates and maintenance to address issues and improve functionality
|
- Regular updates and maintenance to address issues and improve functionality
|
||||||
|
|
Reference in a new issue