本文整理汇总了C#中Solar.FiestaLib.Networking.Packet.WriteString方法的典型用法代码示例。如果您正苦于以下问题:C# Packet.WriteString方法的具体用法?C# Packet.WriteString怎么用?C# Packet.WriteString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Solar.FiestaLib.Networking.Packet
的用法示例。
在下文中一共展示了Packet.WriteString方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SendZoneServerIP
public static void SendZoneServerIP(WorldClient client, ZoneConnection info)
{
using (var packet = new Packet(SH4Type.ServerIP))
{
packet.WriteString(client.Host == "127.0.0.1" ? "127.0.0.1" : info.IP, 16);
packet.WriteUShort(info.Port);
client.SendPacket(packet);
}
}
示例2: SendQuestion
public static void SendQuestion(ZoneCharacter character, Question question, ushort range)
{
using (var packet = new Packet(SH15Type.Question))
{
packet.WriteString(question.Text, 129);
packet.WriteUShort(character.MapObjectID); // Obj id
packet.WriteInt(character.Position.X);
packet.WriteInt(character.Position.Y);
packet.WriteUShort(range); // Distance how far your allowed to run when the question window is closed by Client
packet.WriteByte((byte)question.Answers.Count);
for (byte i = 0; i < question.Answers.Count; ++i)
{
packet.WriteByte(i);
packet.WriteString(question.Answers[i], 32);
}
character.Client.SendPacket(packet);
}
}
示例3: SendGuildNameResult
public static void SendGuildNameResult(WorldClient client, int pID, string pName)
{
using (var packet = new Packet(SH29Type.GuildNameResult))
{
packet.WriteInt(pID);
packet.WriteString(pName, 16);
client.SendPacket(packet);
}
}
示例4: WriteBasicCharInfo
public static void WriteBasicCharInfo(WorldCharacter wchar, Packet packet)
{
packet.WriteInt(wchar.Character.ID);
packet.WriteString(wchar.Character.Name, 20);
packet.WriteByte(wchar.Character.CharLevel);
packet.WriteByte(0);
packet.WriteByte(wchar.Character.Slot);
MapInfo mapinfo;
if (!DataProvider.Instance.Maps.TryGetValue(wchar.Character.Map, out mapinfo))
{
Log.WriteLine(LogLevel.Warn, "{0} has an invalid MapID ({1})", wchar.Character.Name, wchar.Character.Map);
wchar.Character.Map = 0;//we reset
packet.WriteString("Rou", 13);
}
else
{
packet.WriteString(mapinfo.ShortName, 13);
}
packet.WriteByte(36); // Idk right now
packet.WriteByte(193); // Idk right now
packet.WriteByte(18); // Idk right now
packet.WriteByte(11); // Idk right now
WriteLook(wchar, packet);
WriteEquipment(wchar, packet);
WriteRefinement(wchar, packet);
packet.WriteString(mapinfo == null ? "Rou" : mapinfo.ShortName, 12); //TODO: load from mapinfo.shn
packet.WriteInt(0); // X, doesn't matter
packet.WriteInt(0); // Y, neither
packet.WriteInt(0x63dd45ca);
packet.WriteByte(0);
packet.WriteInt(100); // Test later!
packet.WriteByte(0);
packet.WriteByte(2);
packet.WriteByte(0);
packet.WriteByte(0);
packet.WriteByte(0);
packet.WriteByte(0);
wchar.Detach();
}
示例5: SendChangeZone
public static void SendChangeZone(ZoneCharacter character, ushort mapid, int x, int y, string IP, ushort port, ushort randomid)
{
using (var packet = new Packet(SH6Type.ChangeZone))
{
packet.WriteUShort(mapid);
packet.WriteInt(x);
packet.WriteInt(y);
packet.WriteString(character.Client.Host == "127.0.0.1" ? "127.0.0.1" : IP, 16);
packet.WriteUShort(port);
packet.WriteUShort(randomid);
character.Client.SendPacket(packet);
}
}
示例6: WritePacket
public void WritePacket(Packet pPacket)
{
pPacket.WriteUShort(ItemID);
if (this.Type != HouseType.Resting)
{
pPacket.Fill(10, 0xFF); // Unknown
pPacket.WriteString(this.Name, 30);
}
else
{
pPacket.WriteHexAsBytes("BE 02 FA 01 F8 01");
pPacket.Fill(34, 0xFF); // No idea!?
}
pPacket.WriteByte(0xFF);
}
示例7: Write
public void Write(Packet packet)
{
packet.WriteUShort(this.MapObjectID);
packet.WriteByte(2); //always 2 (type i bet shown / transparent?)
packet.WriteUShort(ID);
packet.WriteInt(this.Position.X);
packet.WriteInt(this.Position.Y);
packet.WriteByte(this.Rotation); //TODO: rotation for NPC (from txt official files?)
if (Gate != null)
{
packet.WriteByte(1);
packet.WriteString(Gate.MapClient, 12);
packet.Fill(41, 0);
}
else
{
packet.Fill(54, 0); //find out later
}
}
示例8: WriteEquipStats
public void WriteEquipStats(Packet packet)
{
byte StatCount = 0;
if (Str > 0) StatCount++;
if (End > 0) StatCount++;
if (Dex > 0) StatCount++;
if (Spr > 0) StatCount++;
if (Int > 0) StatCount++;
packet.WriteUShort(ItemID);
switch (this.SlotType)
{
case ItemSlot.Helm:
case ItemSlot.Armor:
case ItemSlot.Pants:
case ItemSlot.Boots:
// case ItemSlot.Bow: // Shield = same
case ItemSlot.Weapon2:
case ItemSlot.Weapon:
packet.WriteByte(this.Upgrades); // Refinement
packet.WriteByte(0);
packet.WriteShort(0); // Or int?
packet.WriteShort(0);
if (this.SlotType == ItemSlot.Weapon || (this.SlotType == ItemSlot.Weapon2 && Info.TwoHand))
{
packet.WriteByte(0);
// Licence data
packet.WriteUShort(0xFFFF); // Nr.1 - Mob ID
packet.WriteUInt(0); // Nr.1 - Kill count
packet.WriteUShort(0xFFFF); // Nr.2 - Mob ID
packet.WriteUInt(0); // Nr.2 - Kill count
packet.WriteUShort(0xFFFF); // Nr.3 - Mob ID
packet.WriteUInt(0); // Nr.3 - Kill count
packet.WriteUShort(0xFFFF); // UNK
packet.WriteString("", 16); // First licence adder name
}
packet.WriteByte(0);
packet.WriteUInt(GetExpiringTime()); // Expiring time (1992027391 - never expires)
//packet.WriteShort(0);
break;
case ItemSlot.Pet:
packet.WriteByte(this.Upgrades); // Pet Refinement Lol
packet.Fill(2, 0); // UNK
packet.WriteUInt(GetExpiringTime()); // Expiring time (1992027391 - never expires)
packet.WriteUInt(0); // Time? (1992027391 - never expires)
break;
case ItemSlot.Earings:
case ItemSlot.Necklace:
case ItemSlot.Ring:
packet.WriteUInt(GetExpiringTime()); // Expiring time (1992027391 - never expires)
packet.WriteUInt(0); // Time? (1992027391 - never expires)
packet.WriteByte(this.Upgrades); // Refinement
// Stats added while refining
packet.WriteUShort(0); // it may be byte + byte too (some kind of counter when item downgrades)
packet.WriteUShort(0); // STR
packet.WriteUShort(0); // END
packet.WriteUShort(0); // DEX
packet.WriteUShort(0); // INT
packet.WriteUShort(0); // SPR
break;
case ItemSlot.CostumeWeapon:
case ItemSlot.CostumeShield:
packet.WriteUInt(25000); // Skin Durability
break;
default:
packet.WriteUInt(GetExpiringTime()); // Expiring time (1992027391 - never expires)
packet.WriteUInt(0); // Time? (1992027391 - never expires)
break;
}
// Random stats data (Not those what were added in refinement)
switch (this.SlotType)
{ // Stat count (StatCount << 1 | Visible(0 or 1 are stats shown or not))
case ItemSlot.Earings:
packet.WriteByte((byte)(StatCount << 1 | 1));
break;
case ItemSlot.Necklace:
case ItemSlot.Ring:
packet.WriteByte((byte)(StatCount << 1 | 1));
break;
case ItemSlot.Helm:
case ItemSlot.Armor:
case ItemSlot.Pants:
case ItemSlot.Boots:
case ItemSlot.Weapon2:
case ItemSlot.Weapon:
packet.WriteByte((byte)(StatCount << 1 | 1));
break;
case ItemSlot.Pet: // Yes!! Its possible to give stats to pet also (It overrides default one(s)).
packet.WriteByte((byte)(StatCount << 1 | 1));
break;
}
// foreach stat
//pPacket.WriteByte(type); // Stat type ( 0 = STR, 1 = END, 2 = DEX, 3 = INT, 4 = SPR )
//pPacket.WriteUShort(amount); // Amount
// end foreach
if (Str > 0) { packet.WriteByte(0); packet.WriteUShort(Str); }
if (End > 0) { packet.WriteByte(1); packet.WriteUShort(End); }
if (Dex > 0) { packet.WriteByte(2); packet.WriteUShort(Dex); }
if (Spr > 0) { packet.WriteByte(3); packet.WriteUShort(Spr); }
//.........这里部分代码省略.........
示例9: WorldList
private static void WorldList(LoginClient pClient, bool pPing)
{
using (var pack = new Packet(pPing ? SH3Type.WorldistResend : SH3Type.WorldlistNew))
{
pack.WriteByte((byte)WorldManager.Instance.WorldCount);
foreach (var world in WorldManager.Instance.Worlds.Values)
{
pack.WriteByte(world.ID);
pack.WriteString(world.Name, 16);
pack.WriteByte((byte)world.Status);
}
pClient.SendPacket(pack);
}
}
示例10: SendWorldServerIP
private static void SendWorldServerIP(LoginClient pClient, WorldConnection wc, string hash)
{
using (var pack = new Packet(SH3Type.WorldServerIP))
{
pack.WriteByte((byte)wc.Status);
string ip = pClient.Host == "127.0.0.1" ? "127.0.0.1" : wc.IP;
pack.WriteString(wc.IP, 16);
pack.WriteUShort(wc.Port);
pack.WriteString(hash, 64);
pClient.SendPacket(pack);
}
}
示例11: Shout
public static Packet Shout(string charname, string text)
{
Packet packet = new Packet(SH8Type.Shout);
packet.WriteString(charname, 16);
packet.WriteByte(0); //color
packet.WriteByte((byte)text.Length);
packet.WriteString(text, text.Length);
return packet;
}
示例12: SendNormalChat
public static void SendNormalChat(ZoneCharacter character, string chat, byte color = 0x2a)
{
using (var packet = new Packet(SH8Type.ChatNormal))
{
packet.WriteUShort(character.MapObjectID);
packet.WriteByte((byte)chat.Length);
packet.WriteByte(color);
packet.WriteString(chat, chat.Length);
character.Broadcast(packet, true);
}
}
示例13: SendAdminNotice
public static void SendAdminNotice(ZoneClient client, string text)
{
using (var packet = new Packet(SH8Type.GmNotice))
{
packet.WriteByte((byte)text.Length);
packet.WriteString(text, text.Length);
client.SendPacket(packet);
}
}
示例14: WriteDetailedInfo
public void WriteDetailedInfo(Packet pPacket)
{
pPacket.WriteInt(ID);
pPacket.WriteString(this.Name, 16);
pPacket.WriteByte(this.Slot);
pPacket.WriteByte(this.Level);
pPacket.WriteLong(this.Exp);
pPacket.WriteInt(12345678); // UNK
pPacket.WriteShort(this.StonesHP);
pPacket.WriteShort(this.StonesSP);
pPacket.WriteUInt(this.HP);
pPacket.WriteUInt(this.SP);
pPacket.WriteInt(this.Fame); // Fame
pPacket.WriteLong(this.Money); //TODO: inventory class
pPacket.WriteString(this.Map.MapInfo.ShortName, 12);
pPacket.WriteInt(this.Position.X);
pPacket.WriteInt(this.Position.Y);
pPacket.WriteByte(this.Rotation);
pPacket.WriteByte(this.Str); // Str bonus
pPacket.WriteByte(this.End); // End bonus
pPacket.WriteByte(this.Dex); // Dex bonus
pPacket.WriteByte(this.Int); // Int bonus
pPacket.WriteByte(this.Spr); // Spr bonus
pPacket.WriteShort(0); // UNK
pPacket.WriteUInt(0); // Killpoints
pPacket.Fill(7, 0); // UNK
}
示例15: WriteCharacterDisplay
public void WriteCharacterDisplay(Packet packet)
{
packet.WriteUShort(MapObjectID);
packet.WriteString(Name, 16);
packet.WriteInt(Position.X);
packet.WriteInt(Position.Y);
packet.WriteByte(Rotation); // Rotation
packet.WriteByte((byte)State); // Player State (1,2 - Player, 3 - Dead, 4 - Resting, 5 - Vendor, 6 - On Mount)
packet.WriteByte((byte)Job);
if (State != PlayerState.Resting && State != PlayerState.Vendor && this.House == null)
{
WriteLook(packet);
WriteEquipment(packet);
}
else
{
this.House.WritePacket(packet);
}
WriteRefinement(packet);
packet.WriteUShort(0xffff); // Mount Handle
packet.WriteUShort(0xffff);
packet.WriteByte(0xff); // Emote (0xff = nothing)
packet.WriteUShort(0xffff);
packet.WriteShort(0);
packet.WriteUShort(0); // Mob ID (title = 10)
packet.Fill(53, 0); // Buff Bits? Something like that
packet.WriteInt(character.GuildID.HasValue ? character.GuildID.Value : 0); // Guild ID
packet.WriteByte(0x02); // UNK (0x02)
packet.WriteBool(false); // In Guild Academy (0 - No, 1 - Yes)
packet.WriteBool(true); // Pet AutoPickup (0 - Off, 1 - On)
packet.WriteByte(this.Level);
}