mirror of
https://github.com/SoDOff-Project/sodoff-mmo.git
synced 2025-10-11 08:18:49 -07:00
138 lines
4.7 KiB
C#
138 lines
4.7 KiB
C#
using sodoffmmo.Core;
|
|
|
|
namespace sodoffmmo.Data;
|
|
public class PlayerData {
|
|
// rotation (eulerAngles.y)
|
|
public double R { get; set; }
|
|
// velocity x
|
|
public double R1 { get; set; }
|
|
// velocity y
|
|
public double R2 { get; set; }
|
|
// velocity z
|
|
public double R3 { get; set; }
|
|
// max speed
|
|
public double Mx { get; set; } = 6;
|
|
// UDT points
|
|
public string Udt { get; set; } = "";
|
|
// position x
|
|
public double P1 { get; set; }
|
|
// position y
|
|
public double P2 { get; set; }
|
|
// position z
|
|
public double P3 { get; set; }
|
|
|
|
// network time
|
|
public string Nt { get; set; } = "1.0";
|
|
// timestamp
|
|
public int T { get; set; } = 0;
|
|
// join (?)
|
|
public string J { get; set; } = "2";
|
|
// flags (?)
|
|
public int F { get; set; }
|
|
// animation bitfield (animations used by avatar, e.g. mounted, swim, ...)
|
|
public int Mbf { get; set; }
|
|
// busy (?)
|
|
public string Bu { get; set; } = "False";
|
|
// viking uid
|
|
public string Uid { get; set; } = "";
|
|
// (not raised) pet data
|
|
public string Pu { get; set; } = "";
|
|
// avatar data
|
|
public string A { get; set; } = "";
|
|
// XP rank (points and level)
|
|
public string Ra { get; set; } = "";
|
|
// country info (for flag?)
|
|
public string Cu { get; set; } = "-1";
|
|
// membership status
|
|
public string M { get; set; } = "False";
|
|
// location (level)
|
|
public string L { get; set; } = "";
|
|
// client token
|
|
public string UNToken { get; set; } = "";
|
|
// raised pet geometry - set from Fp
|
|
public PetGeometryType GeometryType { get; set; } = PetGeometryType.Default;
|
|
// raised pet age - set from Fp
|
|
public PetAge PetAge { get; set; } = PetAge.Adult;
|
|
// raised pet data
|
|
public string Fp {
|
|
get {
|
|
return fp;
|
|
}
|
|
set {
|
|
fp = value;
|
|
string[] array = fp.Split('*');
|
|
Dictionary<string, string> keyValPairs = new();
|
|
foreach (string str in array) {
|
|
string[] keyValPair = str.Split('$');
|
|
if (keyValPair.Length == 2)
|
|
keyValPairs[keyValPair[0]] = keyValPair[1];
|
|
}
|
|
GeometryType = PetGeometryType.Default;
|
|
PetAge = PetAge.Adult;
|
|
if (keyValPairs.TryGetValue("G", out string geometry))
|
|
if (geometry.ToLower().Contains("terribleterror"))
|
|
GeometryType = PetGeometryType.Terror;
|
|
if (keyValPairs.TryGetValue("A", out string age)) {
|
|
switch (age) {
|
|
case "E": PetAge = PetAge.EggInHand; break;
|
|
case "B": PetAge = PetAge.Baby; break;
|
|
case "C": PetAge = PetAge.Child; break;
|
|
case "T": PetAge = PetAge.Teen; break;
|
|
case "A": PetAge = PetAge.Adult; break;
|
|
case "Ti": PetAge = PetAge.Titan; break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private string fp = "";
|
|
|
|
public NetworkArray GetNetworkData(int clientID) {
|
|
NetworkArray arr = new();
|
|
arr.Add(clientID);
|
|
arr.Add(Uid);
|
|
arr.Add((short)1);
|
|
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));
|
|
|
|
arr.Add(paramArr);
|
|
return arr;
|
|
}
|
|
}
|
|
|
|
public enum PetGeometryType {
|
|
Default,
|
|
Terror
|
|
}
|
|
public enum PetAge {
|
|
EggInHand = 0,
|
|
Baby = 1,
|
|
Child = 2,
|
|
Teen = 3,
|
|
Adult = 4,
|
|
Titan = 5
|
|
}
|