mirror of
https://github.com/SoDOff-Project/sodoff-mmo.git
synced 2025-10-11 08:18:49 -07:00
add AddWithType, Param, VlElement to NetworkArray
also: * replace StringParam, IntParam and DoubleParam by generic Param<T>() method * use VlElement<T>() to build vl packets for World Event
This commit is contained in:
parent
18ff27f8e7
commit
5c6f39c800
@ -67,17 +67,17 @@ class SetUserVariablesHandler : ICommandHandler {
|
||||
if (FP != null) {
|
||||
client.PlayerData.Fp = FP;
|
||||
data2.Add("FP", client.PlayerData.Fp);
|
||||
vl.Add(NetworkArray.StringParam("FP", client.PlayerData.Fp));
|
||||
vl.Add(NetworkArray.Param("FP", client.PlayerData.Fp));
|
||||
}
|
||||
if (PU != null) {
|
||||
client.PlayerData.Pu = PU;
|
||||
data2.Add("PU", client.PlayerData.Pu);
|
||||
vl.Add(NetworkArray.StringParam("PU", client.PlayerData.Pu));
|
||||
vl.Add(NetworkArray.Param("PU", client.PlayerData.Pu));
|
||||
}
|
||||
if (L != null) {
|
||||
client.PlayerData.L = L;
|
||||
data2.Add("L", client.PlayerData.L);
|
||||
vl.Add(NetworkArray.StringParam("L", client.PlayerData.L));
|
||||
vl.Add(NetworkArray.Param("L", client.PlayerData.L));
|
||||
}
|
||||
|
||||
data.Add("vl", vl);
|
||||
@ -116,29 +116,29 @@ class SetUserVariablesHandler : ICommandHandler {
|
||||
user.Add((short)client.ClientID);
|
||||
|
||||
NetworkArray playerData = new();
|
||||
playerData.Add(NetworkArray.DoubleParam("R1", client.PlayerData.R1));
|
||||
playerData.Add(NetworkArray.StringParam("FP", client.PlayerData.Fp));
|
||||
playerData.Add(NetworkArray.DoubleParam("MX", client.PlayerData.Mx));
|
||||
playerData.Add(NetworkArray.StringParam("UDT", client.PlayerData.Udt));
|
||||
playerData.Add(NetworkArray.DoubleParam("P2", client.PlayerData.P2));
|
||||
playerData.Add(NetworkArray.DoubleParam("NT", Runtime.CurrentRuntime));
|
||||
playerData.Add(NetworkArray.IntParam("t", (int)(Runtime.CurrentRuntime / 1000)));
|
||||
playerData.Add(NetworkArray.StringParam("J", client.PlayerData.J));
|
||||
playerData.Add(NetworkArray.IntParam("F", client.PlayerData.F));
|
||||
playerData.Add(NetworkArray.IntParam("MBF", client.PlayerData.Mbf));
|
||||
playerData.Add(NetworkArray.DoubleParam("R2", client.PlayerData.R2));
|
||||
playerData.Add(NetworkArray.DoubleParam("R", client.PlayerData.R));
|
||||
playerData.Add(NetworkArray.StringParam("BU", client.PlayerData.Bu));
|
||||
playerData.Add(NetworkArray.DoubleParam("P1", client.PlayerData.P1));
|
||||
playerData.Add(NetworkArray.StringParam("UID", client.PlayerData.Uid));
|
||||
playerData.Add(NetworkArray.DoubleParam("R3", client.PlayerData.R3));
|
||||
playerData.Add(NetworkArray.StringParam("PU", client.PlayerData.Pu));
|
||||
playerData.Add(NetworkArray.StringParam("A", client.PlayerData.A));
|
||||
playerData.Add(NetworkArray.StringParam("RA", client.PlayerData.Ra));
|
||||
playerData.Add(NetworkArray.DoubleParam("P3", client.PlayerData.P3));
|
||||
playerData.Add(NetworkArray.StringParam("CU", client.PlayerData.Cu));
|
||||
playerData.Add(NetworkArray.StringParam("M", client.PlayerData.M));
|
||||
playerData.Add(NetworkArray.StringParam("L", client.PlayerData.L));
|
||||
playerData.Add(NetworkArray.Param("R1", client.PlayerData.R1));
|
||||
playerData.Add(NetworkArray.Param("FP", client.PlayerData.Fp));
|
||||
playerData.Add(NetworkArray.Param("MX", client.PlayerData.Mx));
|
||||
playerData.Add(NetworkArray.Param("UDT", client.PlayerData.Udt));
|
||||
playerData.Add(NetworkArray.Param("P2", client.PlayerData.P2));
|
||||
playerData.Add(NetworkArray.Param("NT", (double)Runtime.CurrentRuntime));
|
||||
playerData.Add(NetworkArray.Param("t", (int)(Runtime.CurrentRuntime / 1000)));
|
||||
playerData.Add(NetworkArray.Param("J", client.PlayerData.J));
|
||||
playerData.Add(NetworkArray.Param("F", client.PlayerData.F));
|
||||
playerData.Add(NetworkArray.Param("MBF", client.PlayerData.Mbf));
|
||||
playerData.Add(NetworkArray.Param("R2", client.PlayerData.R2));
|
||||
playerData.Add(NetworkArray.Param("R", client.PlayerData.R));
|
||||
playerData.Add(NetworkArray.Param("BU", client.PlayerData.Bu));
|
||||
playerData.Add(NetworkArray.Param("P1", client.PlayerData.P1));
|
||||
playerData.Add(NetworkArray.Param("UID", client.PlayerData.Uid));
|
||||
playerData.Add(NetworkArray.Param("R3", client.PlayerData.R3));
|
||||
playerData.Add(NetworkArray.Param("PU", client.PlayerData.Pu));
|
||||
playerData.Add(NetworkArray.Param("A", client.PlayerData.A));
|
||||
playerData.Add(NetworkArray.Param("RA", client.PlayerData.Ra));
|
||||
playerData.Add(NetworkArray.Param("P3", client.PlayerData.P3));
|
||||
playerData.Add(NetworkArray.Param("CU", client.PlayerData.Cu));
|
||||
playerData.Add(NetworkArray.Param("M", client.PlayerData.M));
|
||||
playerData.Add(NetworkArray.Param("L", client.PlayerData.L));
|
||||
|
||||
user.Add(playerData);
|
||||
data.Add("u", user);
|
||||
|
@ -100,7 +100,6 @@ public class GauntletRoom : Room {
|
||||
List<string> info = new();
|
||||
info.Add("GC");
|
||||
info.Add(base.Id.ToString());
|
||||
int i = 0;
|
||||
foreach(var player in players) {
|
||||
if (player.Value.resultA is null)
|
||||
continue;
|
||||
|
@ -18,13 +18,7 @@ internal static class Utils {
|
||||
|
||||
public static NetworkPacket VlNetworkPacket(string a, string b, int roomID) {
|
||||
NetworkArray vl = new();
|
||||
NetworkArray vl2 = new();
|
||||
vl2.Add(a);
|
||||
vl2.Add((Byte)4);
|
||||
vl2.Add(b);
|
||||
vl2.Add(false);
|
||||
vl2.Add(false);
|
||||
vl.Add(vl2);
|
||||
vl.Add(NetworkArray.VlElement(a, b));
|
||||
return VlNetworkPacket(vl, roomID);
|
||||
}
|
||||
|
||||
|
@ -163,28 +163,10 @@ class WorldEvent {
|
||||
}
|
||||
|
||||
NetworkArray vl = new();
|
||||
NetworkArray vl1 = new();
|
||||
vl1.Add("WE__AI");
|
||||
vl1.Add((Byte)0);
|
||||
vl1.Add("");
|
||||
vl1.Add(false);
|
||||
vl1.Add(false);
|
||||
vl.Add(vl1);
|
||||
vl.Add(NetworkArray.VlElement("WE__AI", NetworkArray.NULL));
|
||||
foreach (var t in health) {
|
||||
NetworkArray vl2 = new();
|
||||
vl2.Add("WEH_" + t.Key);
|
||||
vl2.Add((Byte)0);
|
||||
vl2.Add("");
|
||||
vl2.Add(false);
|
||||
vl2.Add(false);
|
||||
vl.Add(vl2);
|
||||
NetworkArray vl3 = new();
|
||||
vl3.Add("WEF_" + t.Key);
|
||||
vl3.Add((Byte)0);
|
||||
vl3.Add("");
|
||||
vl3.Add(false);
|
||||
vl3.Add(false);
|
||||
vl.Add(vl3);
|
||||
vl.Add(NetworkArray.VlElement("WEH_" + t.Key, NetworkArray.NULL));
|
||||
vl.Add(NetworkArray.VlElement("WEF_" + t.Key, NetworkArray.NULL));
|
||||
}
|
||||
packet = Utils.VlNetworkPacket(vl, room.Id);
|
||||
foreach (var roomClient in room.Clients) {
|
||||
@ -235,24 +217,11 @@ class WorldEvent {
|
||||
public NetworkArray EventInfoArray(bool WE = true, bool WEN = true) {
|
||||
NetworkArray vl = new();
|
||||
if (WE) {
|
||||
NetworkArray vl1 = new();
|
||||
vl1.Add("WE_ScoutAttack");
|
||||
vl1.Add((Byte)4);
|
||||
vl1.Add(EventInfo());
|
||||
vl1.Add(false);
|
||||
vl1.Add(true);
|
||||
vl.Add(vl1);
|
||||
vl.Add(NetworkArray.VlElement("WE_ScoutAttack", EventInfo(), isPersistent:true));
|
||||
}
|
||||
if (WEN) {
|
||||
NetworkArray vl2 = new();
|
||||
vl2.Add("WEN_ScoutAttack");
|
||||
vl2.Add((Byte)4);
|
||||
vl2.Add(nextStartTimeString);
|
||||
vl2.Add(false);
|
||||
vl2.Add(true);
|
||||
vl.Add(vl2);
|
||||
vl.Add(NetworkArray.VlElement("WEN_ScoutAttack", nextStartTimeString, isPersistent:true));
|
||||
}
|
||||
|
||||
return vl;
|
||||
}
|
||||
|
||||
|
@ -102,27 +102,41 @@ public class NetworkArray {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static NetworkArray DoubleParam(string name, double value) {
|
||||
NetworkArray arr = new();
|
||||
arr.Add(name);
|
||||
arr.Add((byte)3);
|
||||
arr.Add(value);
|
||||
return arr;
|
||||
public class NullClass {};
|
||||
public static NullClass NULL;
|
||||
|
||||
public void AddWithType<T>(T value) {
|
||||
if (typeof(T) == typeof(NullClass))
|
||||
AddWithTypeObject(NetworkDataType.Null, 0, null);
|
||||
else if (typeof(T) == typeof(bool))
|
||||
AddWithTypeObject(NetworkDataType.Bool, 1, value);
|
||||
else if (typeof(T) == typeof(int))
|
||||
AddWithTypeObject(NetworkDataType.Int, 2, value);
|
||||
else if (typeof(T) == typeof(double))
|
||||
AddWithTypeObject(NetworkDataType.Double, 3, value);
|
||||
else if (typeof(T) == typeof(string))
|
||||
AddWithTypeObject(NetworkDataType.String, 4, value);
|
||||
else
|
||||
throw new Exception("Unsupported type");
|
||||
}
|
||||
|
||||
private void AddWithTypeObject(NetworkDataType dataType, byte typeId, object obj) {
|
||||
Add(new DataWrapper(NetworkDataType.Byte,typeId));
|
||||
Add(new DataWrapper(dataType, obj));
|
||||
}
|
||||
|
||||
public static NetworkArray StringParam(string name, string value) {
|
||||
public static NetworkArray Param<T>(string name, T value) {
|
||||
NetworkArray arr = new();
|
||||
arr.Add(name);
|
||||
arr.Add((byte)4);
|
||||
arr.Add(value);
|
||||
arr.AddWithType(value);
|
||||
return arr;
|
||||
}
|
||||
|
||||
public static NetworkArray IntParam(string name, int value) {
|
||||
public static NetworkArray VlElement<T>(string name, T value, bool isPrivate = false, bool isPersistent = false) {
|
||||
NetworkArray arr = new();
|
||||
arr.Add(name);
|
||||
arr.Add((byte)2);
|
||||
arr.Add(value);
|
||||
arr.AddWithType(value);
|
||||
arr.Add(isPrivate);
|
||||
arr.Add(isPersistent);
|
||||
return arr;
|
||||
}
|
||||
}
|
||||
|
@ -107,29 +107,29 @@ public class PlayerData {
|
||||
arr.Add((short)clientID);
|
||||
|
||||
NetworkArray paramArr = new();
|
||||
paramArr.Add(NetworkArray.DoubleParam("R1", R1));
|
||||
paramArr.Add(NetworkArray.StringParam("FP", Fp));
|
||||
paramArr.Add(NetworkArray.DoubleParam("MX", Mx));
|
||||
paramArr.Add(NetworkArray.StringParam("UDT", Udt));
|
||||
paramArr.Add(NetworkArray.DoubleParam("P2", P2));
|
||||
paramArr.Add(NetworkArray.StringParam("NT", Nt));
|
||||
paramArr.Add(NetworkArray.IntParam("t", T));
|
||||
paramArr.Add(NetworkArray.StringParam("J", J));
|
||||
paramArr.Add(NetworkArray.IntParam("F", F));
|
||||
paramArr.Add(NetworkArray.IntParam("MBF", Mbf));
|
||||
paramArr.Add(NetworkArray.DoubleParam("R2", R2));
|
||||
paramArr.Add(NetworkArray.DoubleParam("R", R));
|
||||
paramArr.Add(NetworkArray.StringParam("BU", Bu));
|
||||
paramArr.Add(NetworkArray.DoubleParam("P1", P1));
|
||||
paramArr.Add(NetworkArray.StringParam("UID", Uid));
|
||||
paramArr.Add(NetworkArray.DoubleParam("R3", R3));
|
||||
paramArr.Add(NetworkArray.StringParam("PU", Pu));
|
||||
paramArr.Add(NetworkArray.StringParam("A", A));
|
||||
paramArr.Add(NetworkArray.StringParam("RA", Ra));
|
||||
paramArr.Add(NetworkArray.DoubleParam("P3", P3));
|
||||
paramArr.Add(NetworkArray.StringParam("CU", Cu));
|
||||
paramArr.Add(NetworkArray.StringParam("M", M));
|
||||
paramArr.Add(NetworkArray.StringParam("L", L));
|
||||
paramArr.Add(NetworkArray.Param("R1", R1));
|
||||
paramArr.Add(NetworkArray.Param("FP", Fp));
|
||||
paramArr.Add(NetworkArray.Param("MX", Mx));
|
||||
paramArr.Add(NetworkArray.Param("UDT", Udt));
|
||||
paramArr.Add(NetworkArray.Param("P2", P2));
|
||||
paramArr.Add(NetworkArray.Param("NT", Nt));
|
||||
paramArr.Add(NetworkArray.Param("t", T));
|
||||
paramArr.Add(NetworkArray.Param("J", J));
|
||||
paramArr.Add(NetworkArray.Param("F", F));
|
||||
paramArr.Add(NetworkArray.Param("MBF", Mbf));
|
||||
paramArr.Add(NetworkArray.Param("R2", R2));
|
||||
paramArr.Add(NetworkArray.Param("R", R));
|
||||
paramArr.Add(NetworkArray.Param("BU", Bu));
|
||||
paramArr.Add(NetworkArray.Param("P1", P1));
|
||||
paramArr.Add(NetworkArray.Param("UID", Uid));
|
||||
paramArr.Add(NetworkArray.Param("R3", R3));
|
||||
paramArr.Add(NetworkArray.Param("PU", Pu));
|
||||
paramArr.Add(NetworkArray.Param("A", A));
|
||||
paramArr.Add(NetworkArray.Param("RA", Ra));
|
||||
paramArr.Add(NetworkArray.Param("P3", P3));
|
||||
paramArr.Add(NetworkArray.Param("CU", Cu));
|
||||
paramArr.Add(NetworkArray.Param("M", M));
|
||||
paramArr.Add(NetworkArray.Param("L", L));
|
||||
|
||||
arr.Add(paramArr);
|
||||
return arr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user