181 lines
3.7 KiB
C#
181 lines
3.7 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Runtime.InteropServices;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace PSO2SERVER.Models
|
||
{
|
||
public class CharacterAdditionalStruct
|
||
{
|
||
|
||
}
|
||
|
||
public enum ShortLanguage : byte
|
||
{
|
||
Japanese,
|
||
English,
|
||
Unknown,
|
||
}
|
||
|
||
[StructLayout(LayoutKind.Sequential)]
|
||
public unsafe struct CharParam
|
||
{
|
||
public int CharacterID;
|
||
public int player_id;
|
||
public uint unk1;
|
||
public uint voice_type;
|
||
public ushort unk2;
|
||
public short voice_pitch;
|
||
}
|
||
|
||
public enum ClassType : byte
|
||
{
|
||
Unknown = 0xFF,
|
||
Hunter = 0,
|
||
Ranger,
|
||
Force,
|
||
Fighter,
|
||
Gunner,
|
||
Techer,
|
||
Braver,
|
||
Bouncer,
|
||
Challenger,
|
||
Summoner,
|
||
BattleWarrior,
|
||
Hero,
|
||
Phantom,
|
||
Etole,
|
||
Luster,
|
||
}
|
||
|
||
// 每个枚举成员的值是通过位移操作计算的:
|
||
|
||
//Hunter:1 << 0,即 1(0x0001)
|
||
//Ranger:1 << 1,即 2(0x0002)
|
||
//Force:1 << 2,即 4(0x0004)
|
||
//Fighter:1 << 3,即 8(0x0008)
|
||
//Gunner:1 << 4,即 16(0x0010)
|
||
//Techer:1 << 5,即 32(0x0020)
|
||
//Braver:1 << 6,即 64(0x0040)
|
||
//Bouncer:1 << 7,即 128(0x0080)
|
||
//Challenger:1 << 8,即 256(0x0100)
|
||
//Summoner:1 << 9,即 512(0x0200)
|
||
//BattleWarrior:1 << 10,即 1024(0x0400)
|
||
//Hero:1 << 11,即 2048(0x0800)
|
||
//Phantom:1 << 12,即 4096(0x1000)
|
||
//Etole:1 << 13,即 8192(0x2000)
|
||
//Luster:1 << 14,即 16384(0x4000)
|
||
|
||
[Flags]
|
||
public enum ClassFlags : ushort
|
||
{
|
||
Hunter = 1 << 0,
|
||
Ranger = 1 << 1,
|
||
Force = 1 << 2,
|
||
Fighter = 1 << 3,
|
||
Gunner = 1 << 4,
|
||
Techer = 1 << 5,
|
||
Braver = 1 << 6,
|
||
Bouncer = 1 << 7,
|
||
Challenger = 1 << 8,
|
||
Summoner = 1 << 9,
|
||
BattleWarrior = 1 << 10,
|
||
Hero = 1 << 11,
|
||
Phantom = 1 << 12,
|
||
Etole = 1 << 13,
|
||
Luster = 1 << 14
|
||
}
|
||
|
||
[StructLayout(LayoutKind.Sequential)]
|
||
public struct JobEntry
|
||
{
|
||
/// Main level.
|
||
public ushort level;
|
||
public ushort level2; // SubClass level
|
||
/// Current EXP.
|
||
public uint exp;
|
||
}
|
||
|
||
[StructLayout(LayoutKind.Sequential)]
|
||
public struct Entries
|
||
{
|
||
public JobEntry
|
||
hunter
|
||
, ranger
|
||
, force
|
||
, fighter
|
||
, gunner
|
||
, techer
|
||
, braver
|
||
, bouncer
|
||
, Challenger
|
||
, Summoner
|
||
, BattleWarrior
|
||
, Hero
|
||
, Phantom
|
||
, Etole
|
||
, Luster
|
||
, unk16
|
||
, unk17
|
||
, unk18
|
||
, unk19
|
||
, unk20
|
||
, unk21
|
||
, unk22
|
||
, unk23
|
||
, unk24
|
||
;
|
||
}
|
||
|
||
public enum RunAnimation : ushort
|
||
{
|
||
Walking = 9,
|
||
Hovering = 11
|
||
}
|
||
|
||
public enum RaceFlags : ushort
|
||
{
|
||
Unknown = 0xFFFF,
|
||
Human = 0,
|
||
Newman,
|
||
Cast,
|
||
Dewman,
|
||
}
|
||
|
||
public enum Gender : ushort
|
||
{
|
||
Unknown = 0xFFFF,
|
||
Male = 0,
|
||
Female,
|
||
}
|
||
|
||
[StructLayout(LayoutKind.Sequential)]
|
||
public struct Figure
|
||
{
|
||
public ushort x, y, z; // Great naming, SEGA
|
||
}
|
||
|
||
public struct AccessoryData
|
||
{
|
||
public sbyte Value1;
|
||
public sbyte Value2;
|
||
public sbyte Value3;
|
||
}
|
||
|
||
public enum SkinColor : byte
|
||
{
|
||
RaceDefined,
|
||
Human,
|
||
Deuman,
|
||
Cast
|
||
}
|
||
|
||
[StructLayout(LayoutKind.Sequential)]
|
||
public struct HSVColor
|
||
{
|
||
public ushort hue, saturation, value;
|
||
}
|
||
}
|