本文整理汇总了C#中Assistant.PacketHandlerEventArgs类的典型用法代码示例。如果您正苦于以下问题:C# PacketHandlerEventArgs类的具体用法?C# PacketHandlerEventArgs怎么用?C# PacketHandlerEventArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PacketHandlerEventArgs类属于Assistant命名空间,在下文中一共展示了PacketHandlerEventArgs类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: OnCompressedGump
private static void OnCompressedGump(PacketReader p, PacketHandlerEventArgs e)
{
p.MoveToData();
uint sender = p.ReadUInt32();
uint id = p.ReadUInt32();
if (id == responseID)
_responseSender = sender;
if (id != compressedID)
return;
p.Seek(19, SeekOrigin.Begin);
p.Seek(p.ReadInt32(), SeekOrigin.Current);
int lines = p.ReadInt32(), cLen = p.ReadInt32(), dLen = p.ReadInt32();
if (cLen < 5)
return;
byte[] buffer = new byte[dLen];
ZLib.uncompress(buffer, ref dLen, p.CopyBytes(p.Position, cLen - 4), cLen - 4);
string afk = string.Empty;
for (int i = 0, pos = 0; i < lines; i++)
{
int strLen = (buffer[pos++] << 8) | buffer[pos++];
string str = Encoding.BigEndianUnicode.GetString(buffer, pos, strLen * 2);
int index = str.IndexOf('>');
if (index != -1 && index < str.Length - 1)
afk += str[index + 1].ToString().ToUpper().Normalize(NormalizationForm.FormD)[0];
pos += strLen * 2;
}
afk = afk.Trim();
if (afk.Length == 5 && _responseSender != 0)
{
/*ClientCommunication.SendToClient(new CloseGump(responseID));
WorldEx.SendToServer(new GumpResponse(responseSender, responseID, 0x310, new int[0], new[] { new GumpTextEntry(0x310, afk) }));
responseSender = 0;*/
WorldEx.OverHeadMessage(afk);
}
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:35,代码来源:AFK.cs
示例2: AsciiSpeech
public static void AsciiSpeech( Packet p, PacketHandlerEventArgs args )
{
// 0, 1, 2
Serial serial = p.ReadUInt32(); // 3, 4, 5, 6
ushort body = p.ReadUInt16(); // 7, 8
MessageType type = (MessageType)p.ReadByte(); // 9
ushort hue = p.ReadUInt16(); // 10, 11
ushort font = p.ReadUInt16();
string name = p.ReadStringSafe( 30 );
string text = p.ReadStringSafe();
if ( World.Player != null && serial == Serial.Zero && body == 0 && type == MessageType.Regular && hue == 0xFFFF && font == 0xFFFF && name == "SYSTEM" )
{
args.Block = true;
p.Seek( 3, SeekOrigin.Begin );
p.WriteAsciiFixed( "", (int)p.Length-3 );
ClientCommunication.DoFeatures( World.Player.Features ) ;
}
else
{
HandleSpeech( p, args, serial, body, type, hue, font, "A", name, text );
if ( !serial.IsValid )
BandageTimer.OnAsciiMessage( text );
}
}
开发者ID:herculesjr,项目名称:razor,代码行数:28,代码来源:Handlers.cs
示例3: OnFilter
public override void OnFilter( PacketReader p, PacketHandlerEventArgs args )
{
if ( args.Block )
return;
// 0, 1, 2
Serial serial = p.ReadUInt32(); // 3, 4, 5, 6
ushort body = p.ReadUInt16(); // 7, 8
MessageType type = (MessageType)p.ReadByte(); // 9
if ( type != m_Type )
return;
ushort hue = p.ReadUInt16(); // 10, 11
ushort font = p.ReadUInt16();
string name = p.ReadStringSafe( 30 );
string text = p.ReadStringSafe();
for(int i=0;i<m_Strings.Length;i++)
{
if ( text.IndexOf( m_Strings[i] ) != -1 )
{
args.Block = true;
return;
}
}
}
开发者ID:herculesjr,项目名称:razor,代码行数:27,代码来源:MessageFilter.cs
示例4: OnFilter
public override void OnFilter( PacketReader p, PacketHandlerEventArgs args )
{
uint serial = p.ReadUInt32();
ushort itemID = p.ReadUInt16();
if ( (serial & 0x80000000) != 0 )
p.ReadUInt16(); // amount
if ( (itemID & 0x8000) != 0 )
itemID = (ushort)((itemID&0x7FFF) + p.ReadSByte()); // itemID offset
ushort x = p.ReadUInt16();
ushort y = p.ReadUInt16();
if ( (x & 0x8000) != 0 )
p.ReadByte(); // direction
short z = p.ReadSByte();
if ( ( y & 0x8000 ) != 0 )
p.ReadUInt16(); // hue
bool visable = true;
if ( ( y & 0x4000 ) != 0 )
{
int flags = p.ReadByte();
visable = ( (flags&0x80) == 0 );
}
if ( IsStaffItem( itemID ) || !visable )
args.Block = true;
}
开发者ID:herculesjr,项目名称:razor,代码行数:33,代码来源:StaffItems.cs
示例5: Handle
private static void Handle(Delegate del, PacketHandlerEventArgs args, params object[] parameters)
{
if (del != null)
foreach (Delegate d in del.GetInvocationList())
{
bool? result = (bool?)d.Method.Invoke(d.Target, parameters);
if (result.HasValue)
args.Block = result.Value;
}
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:10,代码来源:Event.Messages.cs
示例6: OnASCIIMessage
private static void OnASCIIMessage(PacketReader p, PacketHandlerEventArgs args)
{
Serial serial = p.ReadUInt32();
ItemID graphic = p.ReadUInt16();
byte type = p.ReadByte();
ushort hue = p.ReadUInt16();
ushort font = p.ReadUInt16();
string name = p.ReadStringSafe(30);
string msg = p.ReadStringSafe().Trim();
Handle(asciiMessage, args, serial, graphic, type, hue, font, string.Empty, name, msg);
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:11,代码来源:Event.Messages.cs
示例7: OnMessageLocalizedAffix
private static void OnMessageLocalizedAffix(PacketReader p, PacketHandlerEventArgs args)
{
Serial serial = p.ReadUInt32();
ItemID graphic = p.ReadUInt16();
byte type = p.ReadByte();
ushort hue = p.ReadUInt16();
ushort font = p.ReadUInt16();
int num = p.ReadInt32();
string name = p.ReadStringSafe(30);
Handle(localizedMessage, args, serial, graphic, type, hue, font, num, name, string.Empty);
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:11,代码来源:Event.Messages.cs
示例8: OnCompressedGump
private static void OnCompressedGump(PacketReader p, PacketHandlerEventArgs e)
{
p.MoveToData();
uint sender = p.ReadUInt32();
uint id = p.ReadUInt32();
if (id == gumpID)
{
responseID = sender;
e.Block = enabled;
}
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:11,代码来源:SpectralScimitar.cs
示例9: ClientDoubleClick
private static void ClientDoubleClick(PacketReader p, PacketHandlerEventArgs args)
{
Serial serial = p.ReadUInt32();
if (items.ContainsKey(serial))
{
args.Block = true;
WorldEx.SendToServer(new DoubleClick(items[serial].List.Last()));
}
else
args.Block = PacketHandler.ProcessViewers(clientDoubleClick, p);
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:11,代码来源:PotionStack.cs
示例10: OnCompressedGump
private static void OnCompressedGump(PacketReader p, PacketHandlerEventArgs e)
{
p.Seek(7, SeekOrigin.Begin);
if (p.ReadUInt32() != 0x1105B263)
return;
p.Seek(19, SeekOrigin.Begin);
p.Seek(p.ReadInt32() + 4, SeekOrigin.Current);
int cLen = p.ReadInt32(), dLen = p.ReadInt32();
byte[] buffer = new byte[dLen];
ZLib.uncompress(buffer, ref dLen, p.CopyBytes(p.Position, cLen - 4), cLen - 4);
int strLen = (buffer[0] << 8) | buffer[1];
string[] str = Encoding.BigEndianUnicode.GetString(buffer, 2, strLen * 2).Split(',');
string[] lat = str[0].Split('°');
int yLat = int.Parse(lat[0]);
int yMins = int.Parse(lat[1].Split('\'')[0]);
bool ySouth = lat[1][lat[1].Length - 1] == 'S';
string[] lon = str[1].Split('°');
int xLong = int.Parse(lon[0]);
int xMins = int.Parse(lon[1].Split('\'')[0]);
bool xEast = lon[1][lon[1].Length - 1] == 'E';
const int xWidth = 5120;
const int yHeight = 4096;
const int xCenter = 1323;
const int yCenter = 1624;
double absLong = xLong + ((double)xMins / 60);
double absLat = yLat + ((double)yMins / 60);
if (!xEast)
absLong = 360.0 - absLong;
if (!ySouth)
absLat = 360.0 - absLat;
int x = xCenter + (int)((absLong * xWidth) / 360);
int y = yCenter + (int)((absLat * yHeight) / 360);
if (x < 0)
x += xWidth;
else if (x >= xWidth)
x -= xWidth;
if (y < 0)
y += yHeight;
else if (y >= yHeight)
y -= yHeight;
onGump(x, y);
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:53,代码来源:SOS.cs
示例11: OnGumpResponse
private static void OnGumpResponse(Packet p, PacketHandlerEventArgs args)
{
p.ReadUInt32();
if (p.ReadUInt32() != gumpID)
return;
uint buttonID = p.ReadUInt32();
if ((buttonID - 2) % 6 == 0)
{
p.Seek(-4, SeekOrigin.Current);
p.Write(buttonID + (uint)ConfigEx.GetElement(TeleportType.Default, "RuneBook"));
}
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:12,代码来源:RuneBook.cs
示例12: ContainerContentUpdate2
private static void ContainerContentUpdate2(Packet p, PacketHandlerEventArgs args)
{
Serial serial = p.ReadUInt32();
Item item = World.FindItem(serial);
if (item != null && item.Container == World.Player.Backpack && item.IsContainer)
{
if (containers.ContainsKey(serial))
containers[serial] = item;
else
containers.Add(serial, item);
}
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:12,代码来源:ContainerClosingFix.cs
示例13: OnLocalizedMessage
private static void OnLocalizedMessage(PacketReader p, PacketHandlerEventArgs args)
{
Serial serial = p.ReadUInt32();
ItemID graphic = p.ReadUInt16();
byte type = p.ReadByte();
ushort hue = p.ReadUInt16();
ushort font = p.ReadUInt16();
int num = p.ReadInt32();
string name = p.ReadStringSafe(30);
string arguments = p.ReadUnicodeStringBE(((p.Length - 1) - p.Position) / 2);
Handle(localizedMessage, args, serial, graphic, type, hue, font, num, name, arguments);
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:12,代码来源:Event.Messages.cs
示例14: OnFilter
public override void OnFilter( PacketReader p, PacketHandlerEventArgs args )
{
if ( ClientCommunication.AllowBit( FeatureBit.LightFilter ) )
{
args.Block = true;
if ( World.Player != null )
{
World.Player.LocalLightLevel = 0;
World.Player.GlobalLightLevel = 0;
}
}
}
开发者ID:WildGenie,项目名称:Razor,代码行数:12,代码来源:Light.cs
示例15: OnHuedEffect
private static void OnHuedEffect(PacketReader p, PacketHandlerEventArgs args)
{
byte type = p.ReadByte();
Serial src = p.ReadUInt32();
Serial dest = p.ReadUInt32();
ItemID itemID = p.ReadUInt16();
p.Seek(10, SeekOrigin.Current);
byte speed = p.ReadByte();
byte count = p.ReadByte();
p.ReadUInt32();
uint hue = p.ReadUInt32();
uint mode = p.ReadUInt32();
Handle(huedEffect, args, type, src, dest, itemID, speed, count, hue, mode);
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:14,代码来源:Event.Others.cs
示例16: OnFilter
public override void OnFilter( PacketReader p, PacketHandlerEventArgs args )
{
p.ReadByte(); // flags
ushort sound = p.ReadUInt16();
for (int i=0;i<m_Sounds.Length;i++)
{
if ( m_Sounds[i] == sound )
{
args.Block = true;
return;
}
}
}
开发者ID:herculesjr,项目名称:razor,代码行数:14,代码来源:SoundFilters.cs
示例17: ContainerContent
private static void ContainerContent(Packet p, PacketHandlerEventArgs args)
{
int count = p.ReadUInt16();
for (int i = 0; i < count; i++)
{
Item item = World.FindItem(p.ReadUInt32());
Item container = item.Container as Item;
if (container != null && container.ItemID == 0x2006)
foreach (LootItem loot in items)
if (item.ItemID == loot.Graphic && (item.Hue == loot.Color || loot.Color == 0xFFFF))
{
if (Fixes.LootBag.Bag != 0)
DragDrop.Move(item, Fixes.LootBag.Bag);
WorldEx.OverHeadMessage(loot.Name, container);
}
p.Seek(15, System.IO.SeekOrigin.Current);
}
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:18,代码来源:Looting.cs
示例18: ContainerContentUpdate1
private static void ContainerContentUpdate1(PacketReader p, PacketHandlerEventArgs args)
{
Serial serial = p.ReadUInt32();
if (containers.ContainsKey(serial))
{
Item item = World.FindItem(serial);
if (item == null || item.Deleted || item != containers[serial])
args.Block = true;
else
{
ushort itemID = (ushort)(p.ReadUInt16() + p.ReadSByte());
ushort amount = p.ReadUInt16();
if (amount == 0)
amount = 1;
Point3D position = new Point3D(p.ReadUInt16(), p.ReadUInt16(), 0);
p.ReadUInt32();
ushort hue = p.ReadUInt16();
args.Block = item.ItemID == itemID && item.Amount == amount && item.Position == position && item.Hue == hue;
}
}
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:21,代码来源:ContainerClosingFix.cs
示例19: ContainerContent
private static void ContainerContent(Packet p, PacketHandlerEventArgs args)
{
List<Serial> toRemove = new List<Serial>();
for (ushort count = p.ReadUInt16(); count > 0; count--)
{
Item item = World.FindItem(p.ReadUInt32());
if (item != null && item.Container == World.Player.Backpack)
foreach (FakeItem fake in items.Values)
if (item.ItemID == fake.OrigID && item.Hue == fake.OrigHue)
{
if (!fake.List.Contains(item.Serial))
fake.List.Add(item.Serial);
toRemove.Add(item.Serial);
}
p.Seek(15, SeekOrigin.Current);
}
if (toRemove.Count > 0)
Resend();
toRemove.ForEach(s => WorldEx.SendToClient(new RemoveObject(s)));
}
开发者ID:jaryn-kubik,项目名称:RazorEx,代码行数:21,代码来源:PotionStack.cs
示例20: OnFilter
public override void OnFilter( PacketReader p, PacketHandlerEventArgs args )
{
// completely skip this filter if we've been connected for more thn 1 minute
if ( ClientCommunication.ConnectionStart + TimeSpan.FromMinutes( 1.0 ) < DateTime.Now )
return;
try
{
p.Seek( 0, System.IO.SeekOrigin.Begin );
byte packetID = p.ReadByte();
p.MoveToData();
uint ser = p.ReadUInt32();
uint tid = p.ReadUInt32();
int x = p.ReadInt32();
int y = p.ReadInt32();
string layout = null;
if ( packetID == 0xDD )
{
layout = p.GetCompressedReader().ReadString();
}
else
{
ushort layoutLength = p.ReadUInt16();
layout = p.ReadString( layoutLength );
}
if ( layout != null && layout.IndexOf( m_VetRewardStr ) != -1 )
args.Block = true;
}
catch
{
}
}
开发者ID:WildGenie,项目名称:Razor,代码行数:36,代码来源:VetRewardGump.cs
注:本文中的Assistant.PacketHandlerEventArgs类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论