本文整理汇总了C#中FrameWork.PacketOut.WriteByte方法的典型用法代码示例。如果您正苦于以下问题:C# PacketOut.WriteByte方法的具体用法?C# PacketOut.WriteByte怎么用?C# PacketOut.WriteByte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FrameWork.PacketOut
的用法示例。
在下文中一共展示了PacketOut.WriteByte方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SendAbilities
public void SendAbilities()
{
if (!HasPlayer())
return;
Log.Info("AbilityInterface", "Sending " + Abilities.Count + " Abilities");
PacketOut Out = new PacketOut((byte)Opcodes.F_CHARACTER_INFO);
Out.WriteByte(1); // Action
Out.WriteByte((byte)Abilities.Count);
Out.WriteUInt16(0x300);
foreach (Ability_Info Info in Abilities)
{
Out.WriteUInt16(Info.Entry);
Out.WriteByte(Info.Level);
}
GetPlayer().SendPacket(Out);
PacketOut AutoAttack = new PacketOut((byte)Opcodes.F_CHARACTER_INFO);
AutoAttack.WriteByte(1); // Action
AutoAttack.WriteByte(1); // Count
AutoAttack.WriteUInt16(0x300);
AutoAttack.WriteUInt16(245);
AutoAttack.WriteByte(1);
GetPlayer().SendPacket(AutoAttack);
}
示例2: CL_CHECK
static public void CL_CHECK(BaseClient client, PacketIn packet)
{
Client cclient = client as Client;
uint Version = packet.GetUint32();
Log.Debug("CL_CHECK", "Launcher Version : " + Version);
PacketOut Out = new PacketOut((byte)Opcodes.LCR_CHECK);
if (Version != Program.Version)
{
Out.WriteByte((byte)CheckResult.LAUNCHER_VERSION); // Version incorrect + message
Out.WriteString(Program.Message);
client.SendPacket(Out);
cclient.Disconnect();
return;
}
byte File = packet.GetUint8();
UInt64 Len = 0;
if (File >= 1)
Len = packet.GetUint64();
if ((long)Len != Program.Info.Length)
{
Out.WriteByte((byte)CheckResult.LAUNCHER_FILE);
Out.WriteString(Program.StrInfo);
}
else
Out.WriteByte((byte)CheckResult.LAUNCHER_OK);
cclient.SendPacket(Out);
}
示例3: SendInteract
public void SendInteract(Player Plr, InteractMenu Menu)
{
if (Money > 0)
{
if (Plr.GetGroup() == null)
{
Plr.AddMoney(Money);
}
else
{
Plr.GetGroup().AddMoney(Money / (uint)Plr.GetGroup().Size());
}
Money = 0;
}
switch (Menu.Menu)
{
case 15: // Fermeture du loot
return;
case 13: // Récupération de tous les items
if (Plr.ItmInterface.GetTotalFreeInventorySlot() < GetLootCount())
Plr.SendLocalizeString("", GameData.Localized_text.TEXT_OVERAGE_CANT_LOOT);
else
{
for (byte i = 0; i < Loots.Length; ++i)
{
if (Loots[i] == null)
continue;
TakeLoot(Plr, i);
}
}
break;
case 12: // Récupération d'un item
TakeLoot(Plr, Menu.Num);
break;
}
PacketOut Out = new PacketOut((byte)Opcodes.F_INTERACT_RESPONSE);
Out.WriteByte(4);
Out.WriteByte(GetLootCount());
for (byte i = 0; i < Loots.Length; ++i)
{
if (Loots[i] == null)
continue;
Out.WriteByte(i);
Item.BuildItem(ref Out, null, Loots[i].Item, 0, 1);
}
Plr.SendPacket(Out);
}
示例4: BuildStats
public void BuildStats(ref PacketOut Out)
{
Out.WriteByte(0);
for (byte i = 0; i < _BaseStats.Length; ++i)
{
Out.WriteByte(i);
Out.WriteUInt16(_BaseStats[i]);
}
}
示例5: BuildObjectives
public static void BuildObjectives(PacketOut Out, List<Quest_Objectives> Objs)
{
Out.WriteByte((byte)Objs.Count);
foreach (Quest_Objectives Objective in Objs)
{
Out.WriteByte((byte)Objective.ObjCount);
Out.WritePascalString(Objective.Description);
}
}
示例6: Send
public static void Send(LobbyClient client)
{
Log.Debug("LOGIN_SALT", "Send to " + client.Account.Email);
MakeSalt(client);
PacketOut Out = new PacketOut((UInt32)Opcodes.LOGIN_SALT);
Out.WriteInt32R(client.Account.Id);
Out.Write(client.B, 0, 64);
Out.WriteByte(0x40);
Out.WriteByte(0);
Out.Write(client.Salt, 0, 10);
client.SendTCP(Out);
}
示例7: Send
public static void Send(LobbyClient client)
{
PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_LOGIN_SUCCESS);
Out.WriteUnicodeString(client.Account.RealTag,48);
Out.WriteUInt32R(21); // Account Type
Out.WriteInt64R(TCPManager.GetTimeStamp());
// Temps avant expiration du compte
Out.WriteByte(0x13); // ms
Out.WriteByte(0x29); // sec
Out.WriteUInt16R(0x12); // Hour
// Date de création
Out.WriteByte(0x0E); // day
Out.WriteByte(0x07); // month
Out.WriteUInt16R(2010); // Year
Out.WriteInt32R(1450); // Temps de jeu (secondes)
Out.WriteInt32R(client.Account.Points); // Points APB
for(int i=1;i<6;++i)
Out.WriteInt32R(
Program.FileMgr.GetFileVersion(client.Account.Id, i, true, "", "")); // Config file, Server Version
Out.WriteInt32R(0);
Out.WriteUInt16(0x957D);
Out.WriteUInt16(0x0400);
Out.WriteUInt16(0x5052);
Out.WriteUInt16(0x4F45);
Out.WriteUInt16(0x552E);
Out.WriteUInt16(0x3232);
Out.WriteUInt16(0x3738);
Out.WriteUInt16(0x3031);
Out.WriteUInt16(0);
Out.WriteUInt16(0x0067);
Out.WriteUInt64(0x526C624331313256);
Out.WriteUInt64(0x486E314100000000);
Out.WriteUInt16(0);
Out.WriteStringBytes("");
Out.WriteByte(0);
client.SendTCP(Out);
ANS_CHARACTER_INFO.Send(client);
}
示例8: SendReinitTime
public void SendReinitTime(Player Plr, ushort Time)
{
PacketOut Out = new PacketOut((byte)Opcodes.F_OBJECTIVE_INFO);
Out.WriteUInt32(Info.Entry);
Out.WriteByte(1);
Out.WriteByte(2);
Out.WriteByte(1);
Out.WriteUInt16(0);
Out.WritePascalString(Info.Name);
Out.WriteUInt16(0);
Out.WriteUInt16(Time); // Time in seconds
Out.WriteUInt16(0);
Out.WriteUInt16(0);
Plr.SendPacket(Out);
}
示例9: F_CONNECT
static public void F_CONNECT(BaseClient client, PacketIn packet)
{
GameClient cclient = client as GameClient;
packet.Skip(8);
UInt32 Tag = packet.GetUint32();
string Token = packet.GetString(80);
packet.Skip(21);
string Username = packet.GetString(23);
// TODO
AuthResult Result = Program.AcctMgr.CheckToken(Username, Token);
if (Result != AuthResult.AUTH_SUCCESS)
{
Log.Error("F_CONNECT", "Invalid Token =" + Username);
cclient.Disconnect();
}
else
{
cclient._Account = Program.AcctMgr.GetAccount(Username);
if (cclient._Account == null)
{
Log.Error("F_CONNECT", "Invalid Account =" + Username);
cclient.Disconnect();
}
else
{
//Log.Success("F_CONNECT", "MeId=" + cclient.Id);
GameClient Other = (cclient.Server as TCPServer).GetClientByAccount(cclient, cclient._Account.AccountId);
if (Other != null)
Other.Disconnect();
{
PacketOut Out = new PacketOut((byte)Opcodes.S_CONNECTED);
Out.WriteUInt32(0);
Out.WriteUInt32(Tag);
Out.WriteByte(Program.Rm.RealmId);
Out.WriteUInt32(1);
Out.WritePascalString(Username);
Out.WritePascalString(Program.Rm.Name);
Out.WriteByte(0);
Out.WriteUInt16(0);
cclient.SendPacket(Out);
}
}
}
}
示例10: SendAbilityDone
public void SendAbilityDone(ushort TargetOID)
{
Log.Success("Ability", "Send Done :" + Info.Entry);
Player player = this.Caster.GetPlayer();
PacketOut Out1 = new PacketOut((byte)Opcodes.F_USE_ABILITY);
Out1.WriteUInt16(0);
Out1.WriteUInt16(Info.Entry);
Out1.WriteUInt16(Caster.Oid);
Out1.WriteHexStringBytes("061022730601000001E601000000");
player.DispatchPacket(Out1, true);
PacketOut Out2 = new PacketOut((byte)Opcodes.F_USE_ABILITY);
Out2.WriteUInt16(0);
Out2.WriteUInt16(Info.Entry);
Out2.WriteUInt16(Caster.Oid);
Out2.WriteHexStringBytes("0610227302010000000001000000");
player.DispatchPacket(Out2, true);
PacketOut Out3 = new PacketOut((byte)Opcodes.F_SWITCH_ATTACK_MODE);
Out3.WriteByte(1);
Out3.Fill(0, 3);
player.SendPacket(Out3);
PacketOut Out4 = new PacketOut((byte)Opcodes.F_SET_ABILITY_TIMER);
Out4.WriteUInt16(Info.Entry);
Out4.Fill(0, 10);
player.SendPacket(Out4);
}
示例11: SendTok
public void SendTok(ushort Entry, bool Print)
{
PacketOut Out = new PacketOut((byte)Opcodes.F_TOK_ENTRY_UPDATE);
Out.WriteUInt32(1);
Out.WriteUInt16((UInt16)Entry);
Out.WriteByte(1);
Out.WriteByte((byte)(Print ? 1 : 0));
Out.WriteByte(1);
GetPlayer().SendPacket(Out);
}
示例12: BuildPlayerInfo
public static void BuildPlayerInfo(ref PacketOut Out,uint CharId, string Name, bool Online, byte Level, UInt16 Career, UInt16 Zone)
{
Out.WriteUInt32(CharId);
Out.WriteByte(0);
Out.WritePascalString(Name);
Out.WriteByte(0);
Out.WriteByte((byte)(Online ? 1 : 0));
Out.WriteByte((byte)(Online ? 1 : 0));
if (!Online)
return;
Out.WriteByte(Level);
Out.WriteUInt16(0);
Out.WriteUInt16(Career);
Out.WriteUInt16(Zone);
Out.WriteUInt16(1); // Guild Size
Out.WriteByte(0);
}
示例13: CL_START
static public void CL_START(BaseClient client, PacketIn packet)
{
Client cclient = client as Client;
string Username = packet.GetString();
UInt32 Len = packet.GetUint32();
byte[] Password = packet.Read((int)Len);
bool result = Program.AcctMgr.CheckAccount(Username, Password);
Log.Debug("CL_START", "Lancement du client : " + Username + " " + result);
PacketOut Out = new PacketOut((byte)Opcodes.LCR_START);
if (result == true)
{
Out.WriteByte(0);
Out.WriteString(Program.AcctMgr.GenerateToken(Username));
}
else
Out.WriteByte(1);
cclient.SendPacket(Out);
}
示例14: Send
public static void Send(LobbyClient client)
{
List<WorldInfo> _Worlds = Program.CharMgr.GetWorlds();
PacketOut Out = new PacketOut((UInt32)Opcodes.WORLD_LIST);
Out.WriteInt32R(0); // Returned Code
Out.WriteUInt16R((UInt16)_Worlds.Count); // World Count
foreach (WorldInfo Info in _Worlds)
{
Out.WriteUInt32R((UInt32)Info._Info.Id); // WorldUid
Out.WriteUnicodeString(Info._Info.Name, 32); // WorldName
Out.WriteByte((byte)(Info.RpcID == 0 ? 0 : 1)); // Status
Out.WriteByte(Info._Info.Population); // Pop 0:Low 1:Medium 2:High
Out.WriteByte(Info._Info.Enf); // enf recommended , true or false
Out.WriteByte(Info._Info.Crim); // crim recommended , true or false
}
client.SendTCP(Out);
}
示例15: HandlePacket
public static void HandlePacket(BaseClient client, PacketIn packet)
{
WorldClient cclient = (WorldClient)client;
UInt32 AcctId = packet.GetUint32R();
Log.Debug("AskWorldEnter", "New client, Account = " + AcctId);
cclient.Account = Program.CharMgr.GetAccount((int)AcctId);
cclient.Character = Program.CharMgr.GetInfoForEnter((int)AcctId);
PacketOut Out = new PacketOut((UInt32)Opcodes.ANS_WORLD_ENTER);
if (cclient.Account == null || cclient.Character == null)
Out.WriteInt32R(1);
else
{
Out.WriteInt32R(0);
Out.WriteInt32R(cclient.Character.Character.Id);
Out.WriteInt32R(cclient.Account.Points); // Points
Out.WriteByte(1);
Out.WriteInt64R(TCPManager.GetTimeStamp());
Out.WriteFloat(5.00f); // fMarketPlaceMinimumBidPct
Out.WriteByte(0); // GroupPublic
Out.WriteByte(0); // GroupInvite
Out.WriteInt32R(Program.FileMgr.GetFileVersion(cclient.Account.Id, 1, false, Program.Config.WorldName, cclient.Character.Character.Name)); // ConfigFileVersion
Out.WriteInt32R(Program.FileMgr.GetFileVersion(cclient.Account.Id, 2, false, Program.Config.WorldName, cclient.Character.Character.Name));
Out.WriteInt32R(Program.FileMgr.GetFileVersion(cclient.Account.Id, 3, false, Program.Config.WorldName, cclient.Character.Character.Name));
Out.WriteInt32R(Program.FileMgr.GetFileVersion(cclient.Account.Id, 4, false, Program.Config.WorldName, cclient.Character.Character.Name));
Out.WriteInt32R(Program.FileMgr.GetFileVersion(cclient.Account.Id, 5, false, Program.Config.WorldName, cclient.Character.Character.Name));
Out.WriteByte(1); // Tutorial Complete
Out.WriteByte(0); // lookInForGroup
}
cclient.SendTCP(Out);
}