本文整理汇总了C#中Server.Network.PacketReader.ReadUInt16方法的典型用法代码示例。如果您正苦于以下问题:C# PacketReader.ReadUInt16方法的具体用法?C# PacketReader.ReadUInt16怎么用?C# PacketReader.ReadUInt16使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Server.Network.PacketReader
的用法示例。
在下文中一共展示了PacketReader.ReadUInt16方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: HeritageTransform
public static void HeritageTransform(NetState state, PacketReader reader)
{
Mobile m = state.Mobile;
if (reader.Size == 5)
{
m.SendLocalizedMessage(1073645); // You may try this again later...
HeritageQuester.RemovePending(m);
}
else if (reader.Size == 15)
{
if (HeritageQuester.IsPending(m))
{
HeritageQuester quester = HeritageQuester.Pending(m);
m.Race = quester.Race;
m.Hue = reader.ReadUInt16();
m.HairItemID = reader.ReadUInt16();
m.HairHue = reader.ReadUInt16();
m.FacialHairItemID = reader.ReadUInt16();
m.FacialHairHue = reader.ReadUInt16();
HeritageQuester.RemovePending(m);
quester.CheckCompleted(m, true); // removes done quests
if (m.Race == Race.Elf)
m.SendLocalizedMessage(1073653); // You are now fully initiated into the Elven culture.
else if (m.Race == Race.Human)
m.SendLocalizedMessage(1073654); // You are now fully human.
}
}
}
示例2: ProfileReq
public static void ProfileReq( NetState state, PacketReader pvSrc )
{
int type = pvSrc.ReadByte();
Serial serial = pvSrc.ReadInt32();
Mobile beholder = state.Mobile;
Mobile beheld = World.FindMobile( serial );
if ( beheld == null )
return;
switch ( type )
{
case 0x00: // display request
{
EventSink.InvokeProfileRequest( new ProfileRequestEventArgs( beholder, beheld ) );
break;
}
case 0x01: // edit request
{
pvSrc.ReadInt16(); // Skip
int length = pvSrc.ReadUInt16();
if ( length > 511 )
return;
string text = pvSrc.ReadUnicodeString( length );
EventSink.InvokeChangeProfileRequest( new ChangeProfileRequestEventArgs( beholder, beheld, text ) );
break;
}
}
}
示例3: UpdateAccount
private static void UpdateAccount( NetState state, PacketReader pvSrc )
{
string username = pvSrc.ReadString();
string pass = pvSrc.ReadString();
Account a = Accounts.GetAccount( username );
if ( a == null )
a = Accounts.AddAccount( username, pass );
else if ( pass != "(hidden)" )
a.SetPassword( pass );
if ( a != state.Account )
{
a.AccessLevel = (AccessLevel)pvSrc.ReadByte();
a.Banned = pvSrc.ReadBoolean();
}
else
{
pvSrc.ReadInt16();//skip both
state.Send( new MessageBoxMessage( "Warning: When editing your own account, account status and accesslevel cannot be changed.", "Editing Own Account" ) );
}
ArrayList list = new ArrayList();
ushort length = pvSrc.ReadUInt16();
bool invalid = false;
for (int i=0;i<length;i++)
{
string add = pvSrc.ReadString();
if ( Utility.IsValidIP( add ) )
list.Add( add );
else
invalid = true;
}
if ( list.Count > 0 )
a.IPRestrictions = (string[])list.ToArray( typeof( string ) );
else
a.IPRestrictions = new string[0];
if ( invalid )
state.Send( new MessageBoxMessage( "Warning: one or more of the IP Restrictions you specified was not valid.", "Invalid IP Restriction" ) );
state.Send( new MessageBoxMessage( "Account updated successfully.", "Account Updated" ) );
}
示例4: SystemInfo
public static void SystemInfo( NetState state, PacketReader pvSrc )
{
int v1 = pvSrc.ReadByte();
int v2 = pvSrc.ReadUInt16();
int v3 = pvSrc.ReadByte();
string s1 = pvSrc.ReadString( 32 );
string s2 = pvSrc.ReadString( 32 );
string s3 = pvSrc.ReadString( 32 );
string s4 = pvSrc.ReadString( 32 );
int v4 = pvSrc.ReadUInt16();
int v5 = pvSrc.ReadUInt16();
int v6 = pvSrc.ReadInt32();
int v7 = pvSrc.ReadInt32();
int v8 = pvSrc.ReadInt32();
}
示例5: DeleteStatic
public static void DeleteStatic( NetState state, PacketReader pvSrc )
{
if ( VerifyGC( state ) )
{
int x = pvSrc.ReadInt16();
int y = pvSrc.ReadInt16();
int z = pvSrc.ReadInt16();
int id = pvSrc.ReadUInt16();
Console.WriteLine( "God Client: {0}: Delete Static ({1}, {2}, {3}) 0x{4:X}", state, x, y, z, id );
}
}
示例6: CreateCharacter70160
public static void CreateCharacter70160( NetState state, PacketReader pvSrc )
{
int unk1 = pvSrc.ReadInt32();
int unk2 = pvSrc.ReadInt32();
int unk3 = pvSrc.ReadByte();
string name = pvSrc.ReadString( 30 );
pvSrc.Seek( 2, SeekOrigin.Current );
int flags = pvSrc.ReadInt32();
pvSrc.Seek( 8, SeekOrigin.Current );
int prof = pvSrc.ReadByte();
pvSrc.Seek( 15, SeekOrigin.Current );
int genderRace = pvSrc.ReadByte();
int str = pvSrc.ReadByte();
int dex = pvSrc.ReadByte();
int intl= pvSrc.ReadByte();
int is1 = pvSrc.ReadByte();
int vs1 = pvSrc.ReadByte();
int is2 = pvSrc.ReadByte();
int vs2 = pvSrc.ReadByte();
int is3 = pvSrc.ReadByte();
int vs3 = pvSrc.ReadByte();
int is4 = pvSrc.ReadByte();
int vs4 = pvSrc.ReadByte();
int hue = pvSrc.ReadUInt16();
int hairVal = pvSrc.ReadInt16();
int hairHue = pvSrc.ReadInt16();
int hairValf= pvSrc.ReadInt16();
int hairHuef= pvSrc.ReadInt16();
pvSrc.ReadByte();
int cityIndex = pvSrc.ReadByte();
int charSlot = pvSrc.ReadInt32();
int clientIP = pvSrc.ReadInt32();
int shirtHue = pvSrc.ReadInt16();
int pantsHue = pvSrc.ReadInt16();
/*
0x00, 0x01
0x02, 0x03 -> Human Male, Human Female
0x04, 0x05 -> Elf Male, Elf Female
0x05, 0x06 -> Gargoyle Male, Gargoyle Female
*/
bool female = ((genderRace % 2) != 0);
Race race = null;
byte raceID = (byte)(genderRace < 4 ? 0 : ((genderRace / 2) - 1));
race = Race.Races[raceID];
if( race == null )
race = Race.DefaultRace;
CityInfo[] info = state.CityInfo;
IAccount a = state.Account;
if ( info == null || a == null || cityIndex < 0 || cityIndex >= info.Length )
{
state.Dispose();
}
else
{
// Check if anyone is using this account
for ( int i = 0; i < a.Length; ++i )
{
Mobile check = a[i];
if ( check != null && check.Map != Map.Internal )
{
Console.WriteLine( "Login: {0}: Account in use", state );
state.Send( new PopupMessage( PMMessage.CharInWorld ) );
return;
}
}
state.Flags = (ClientFlags)flags;
CharacterCreatedEventArgs args = new CharacterCreatedEventArgs(
state, a,
name, female, hue,
str, dex, intl,
info[cityIndex],
new SkillNameValue[4]
{
new SkillNameValue( (SkillName)is1, vs1 ),
new SkillNameValue( (SkillName)is2, vs2 ),
new SkillNameValue( (SkillName)is3, vs3 ),
new SkillNameValue( (SkillName)is4, vs4 ),
},
shirtHue, pantsHue,
hairVal, hairHue,
hairValf, hairHuef,
prof,
race
);
state.Send( new ClientVersionReq() );
//.........这里部分代码省略.........
示例7: VendorBuyReply
public static void VendorBuyReply( NetState state, PacketReader pvSrc )
{
pvSrc.Seek( 1, SeekOrigin.Begin );
int msgSize = pvSrc.ReadUInt16();
Mobile vendor = World.FindMobile( pvSrc.ReadInt32() );
byte flag = pvSrc.ReadByte();
if ( vendor == null )
{
return;
}
else if ( vendor.Deleted || !Utility.RangeCheck( vendor.Location, state.Mobile.Location, 10 ) )
{
state.Send( new EndVendorBuy( vendor ) );
return;
}
if ( flag == 0x02 )
{
msgSize -= 1+2+4+1;
if ( (msgSize / 7) > 100 )
return;
List<BuyItemResponse> buyList = new List<BuyItemResponse>( msgSize / 7 );
for ( ;msgSize>0;msgSize-=7)
{
byte layer = pvSrc.ReadByte();
Serial serial = pvSrc.ReadInt32();
int amount = pvSrc.ReadInt16();
buyList.Add( new BuyItemResponse( serial, amount ) );
}
if ( buyList.Count > 0 )
{
IVendor v = vendor as IVendor;
if ( v != null && v.OnBuyItems( state.Mobile, buyList ) )
state.Send( new EndVendorBuy( vendor ) );
}
}
else
{
state.Send( new EndVendorBuy( vendor ) );
}
}
示例8: StringQueryResponse
public static void StringQueryResponse( NetState state, PacketReader pvSrc )
{
int serial = pvSrc.ReadInt32();
pvSrc.ReadUInt16(); // unknown
bool ok = pvSrc.ReadBoolean();
int length = pvSrc.ReadUInt16();
string str = null;
if ( length > 0 )
str = pvSrc.ReadString(length - 1);
StringQueryCollection stringqueries = state.StringQueries;
for ( int i = 0; i < stringqueries.Count; ++i )
{
StringQuery stringquery = stringqueries[i];
if ( stringquery.Serial == serial )
{
stringquery.OnResponse( state, ok, str );
state.RemoveStringQuery( i );
return;
}
}
}
示例9: ContentChange
public static void ContentChange( NetState state, PacketReader pvSrc )
{
Mobile from = state.Mobile;
BaseBook book = World.FindItem( pvSrc.ReadInt32() ) as BaseBook;
string ParsedContents = "";
if ( book == null || !book.Writable || !from.InRange( book.GetWorldLocation(), 1 ) )
return;
int pageCount = pvSrc.ReadUInt16();
if ( pageCount > book.PagesCount )
return;
for ( int i = 0; i < pageCount; ++i )
{
int index = pvSrc.ReadUInt16();
if ( index >= 1 && index <= book.PagesCount )
{
--index;
int lineCount = pvSrc.ReadUInt16();
if ( lineCount <= 8 )
{
string[] lines = new string[lineCount];
for ( int j = 0; j < lineCount; ++j ) {
if ( (lines[j] = pvSrc.ReadUTF8StringSafe()).Length >= 80 )
return;
ParsedContents = ParsedContents + lines[j];
}
book.Pages[index].Lines = lines;
}
else
{
return;
}
}
else
{
return;
}
}
//erl: log the changed content (applied on page turn or book close, records page changed)
// ||--
// Log the changes
StreamWriter LogFile = new StreamWriter( "logs/bookchange.log", true );
LogFile.WriteLine("{0}: {1}: {2}: x:{3}, y:{4}, z:{5}: {6}: {7}", DateTime.Now, from.Account, from.Name, from.Location.X, from.Location.Y, from.Location.Z, book.Title, ParsedContents);
LogFile.Close();
// Update LastEdited property
book.LastEdited = from.Serial.ToString();
// ---||
}
示例10: Emulator
private static void Emulator( NetState state, PacketReader pvSrc )
{
int code = pvSrc.ReadUInt16();
switch (code) {
case 0x0001:
OnAddAuthID(state, pvSrc);
break;
}
}
示例11: SystemInfo
public static void SystemInfo( NetState state, PacketReader pvSrc )
{
/*int v1 = */pvSrc.ReadByte();
/*int v2 = */pvSrc.ReadUInt16();
/*int v3 = */pvSrc.ReadByte();
/*string s1 = */pvSrc.ReadString( 32 );
/*string s2 = */pvSrc.ReadString( 32 );
/*string s3 = */pvSrc.ReadString( 32 );
/*string s4 = */pvSrc.ReadString( 32 );
/*int v4 = */pvSrc.ReadUInt16();
/*int v5 = */pvSrc.ReadUInt16();
/*int v6 = */pvSrc.ReadInt32();
/*int v7 = */pvSrc.ReadInt32();
/*int v8 = */pvSrc.ReadInt32();
}
示例12: CreateCharacter
public static void CreateCharacter( NetState state, PacketReader pvSrc )
{
/*int unk1 = */pvSrc.ReadInt32();
/*int unk2 = */pvSrc.ReadInt32();
/*int unk3 = */pvSrc.ReadByte();
string name = pvSrc.ReadString( 30 );
pvSrc.Seek( 2, SeekOrigin.Current );
int flags = pvSrc.ReadInt32();
pvSrc.Seek( 8, SeekOrigin.Current );
int prof = pvSrc.ReadByte();
pvSrc.Seek( 15, SeekOrigin.Current );
bool female = pvSrc.ReadByte() > 0 ? true : false;
/*int genderRace = pvSrc.ReadByte();*/
int str = pvSrc.ReadByte();
int dex = pvSrc.ReadByte();
int intl= pvSrc.ReadByte();
int is1 = pvSrc.ReadByte();
int vs1 = pvSrc.ReadByte();
int is2 = pvSrc.ReadByte();
int vs2 = pvSrc.ReadByte();
int is3 = pvSrc.ReadByte();
int vs3 = pvSrc.ReadByte();
int hue = pvSrc.ReadUInt16();
int hairVal = pvSrc.ReadInt16();
int hairHue = pvSrc.ReadInt16();
int hairValf= pvSrc.ReadInt16();
int hairHuef= pvSrc.ReadInt16();
pvSrc.ReadByte();
int cityIndex = pvSrc.ReadByte();
/*int charSlot = */pvSrc.ReadInt32();
/*int clientIP = */pvSrc.ReadInt32();
int shirtHue = pvSrc.ReadInt16();
int pantsHue = pvSrc.ReadInt16();
CityInfo[] info = state.CityInfo;
IAccount a = state.Account;
if ( info == null || a == null || cityIndex < 0 || cityIndex >= info.Length )
{
state.Dispose();
}
else
{
// Check if anyone is using this account
for ( int i = 0; i < a.Length; ++i )
{
Mobile check = a[i];
if ( check != null && check.Map != Map.Internal )
{
log.InfoFormat("Login: {0}: Account in use", state);
state.Send( new PopupMessage( PMMessage.CharInWorld ) );
return;
}
}
state.Flags = flags;
CharacterCreatedEventArgs args = new CharacterCreatedEventArgs(
state, a,
name, female, hue,
str, dex, intl,
info[cityIndex],
new SkillNameValue[3]
{
new SkillNameValue( (SkillName)is1, vs1 ),
new SkillNameValue( (SkillName)is2, vs2 ),
new SkillNameValue( (SkillName)is3, vs3 ),
},
shirtHue, pantsHue,
hairVal, hairHue,
hairValf, hairHuef,
prof );
state.Send( new ClientVersionReq() );
state.BlockAllPackets = true;
try {
EventSink.InvokeCharacterCreated(args);
} catch (Exception ex) {
log.Fatal(String.Format("Exception disarmed in CharacterCreated {0}",
name), ex);
}
Mobile m = args.Mobile;
if ( m != null )
{
state.Mobile = m;
m.NetState = state;
new LoginTimer( state, m ).Start();
}
else
{
state.BlockAllPackets = false;
state.Dispose();
}
//.........这里部分代码省略.........
示例13: DisplayGumpResponse
public static void DisplayGumpResponse( NetState state, PacketReader pvSrc )
{
int serial = pvSrc.ReadInt32();
int typeID = pvSrc.ReadInt32();
int buttonID = pvSrc.ReadInt32();
foreach ( Gump gump in state.Gumps )
{
if ( gump.Serial == serial && gump.TypeID == typeID )
{
int switchCount = pvSrc.ReadInt32();
if ( switchCount < 0 || switchCount > gump.m_Switches )
{
log.InfoFormat("Client: {0}: Invalid gump response, disconnecting...", state);
state.Dispose();
return;
}
int[] switches = new int[switchCount];
for ( int j = 0; j < switches.Length; ++j )
switches[j] = pvSrc.ReadInt32();
int textCount = pvSrc.ReadInt32();
if ( textCount < 0 || textCount > gump.m_TextEntries )
{
log.InfoFormat("Client: {0}: Invalid gump response, disconnecting...", state );
state.Dispose();
return;
}
TextRelay[] textEntries = new TextRelay[textCount];
for ( int j = 0; j < textEntries.Length; ++j )
{
int entryID = pvSrc.ReadUInt16();
int textLength = pvSrc.ReadUInt16();
if ( textLength > 239 )
return;
string text = pvSrc.ReadUnicodeStringSafe( textLength );
textEntries[j] = new TextRelay( entryID, text );
}
state.RemoveGump( gump );
try {
gump.OnResponse( state, new RelayInfo( buttonID, switches, textEntries ) );
} catch (Exception e) {
log.Fatal(String.Format("Exception disarmed in gump response of {0}",
gump), e);
}
return;
}
}
if ( typeID == 461 ) // Virtue gump
{
int switchCount = pvSrc.ReadInt32();
if ( buttonID == 1 && switchCount > 0 )
{
Mobile beheld = World.FindMobile( pvSrc.ReadInt32() );
if ( beheld != null )
EventSink.InvokeVirtueGumpRequest( new VirtueGumpRequestEventArgs( state.Mobile, beheld ) );
}
else
{
Mobile beheld = World.FindMobile( serial );
if ( beheld != null )
EventSink.InvokeVirtueItemRequest( new VirtueItemRequestEventArgs( state.Mobile, beheld, buttonID ) );
}
}
}
示例14: LiftReq
public static void LiftReq( NetState state, PacketReader pvSrc )
{
Serial serial = pvSrc.ReadInt32();
int amount = pvSrc.ReadUInt16();
Item item = World.FindItem( serial );
bool rejected;
LRReason reject;
try {
state.Mobile.Lift( item, amount, out rejected, out reject );
} catch (Exception e) {
log.Fatal(String.Format("Exception disarmed in lift {0}, {1} x {2}",
state.Mobile, item, amount), e);
}
}
示例15: ClientType
public static void ClientType( NetState state, PacketReader pvSrc )
{
pvSrc.ReadUInt16();
int type = pvSrc.ReadUInt16();
CV version = state.Version = new CV( pvSrc.ReadString() );
//EventSink.InvokeClientVersionReceived( new ClientVersionReceivedArgs( state, version ) );//todo
}