Go Back   EQEmulator Home > EQEmulator Forums > General > General::General Discussion

General::General Discussion General discussion about EverQuest(tm), EQEMu, and related topics.
Do not post support topics here.

Reply
 
Thread Tools Display Modes
  #1  
Old 06-11-2015, 06:15 AM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

Check out my poorly written Animator script.

http://pastebin.com/iaaWFRZp

New Build live tho. Did a bunch of optimizations, loads a million times faster.
__________________
Browser based EQ project
Reply With Quote
  #2  
Old 06-22-2015, 04:19 PM
deaderella
Fire Beetle
 
Join Date: May 2014
Posts: 2
Default

Hey guys, is there any place I can download the character model files & textures, so that I can do custom animations?

thanks!
Reply With Quote
  #3  
Old 07-27-2015, 07:14 AM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

http://wiki.eqemulator.org/p?unity3d
__________________
Browser based EQ project
Reply With Quote
  #4  
Old 07-27-2015, 11:51 AM
rhyotte
Hill Giant
 
Join Date: Jul 2012
Location: Oklahoma
Posts: 222
Default

Cool! I am using wine under Fedora 22 and Chrome browser, I was unable to walk around. Really liked the new sky!
Reply With Quote
  #5  
Old 10-21-2015, 05:55 AM
planesofpower
Fire Beetle
 
Join Date: Apr 2015
Posts: 7
Default

hey tyen05, i'm having some real trouble exporting the player models animations

everything else works fine in unity but i am stuck at the SPH files it generates for animations

did you write a convert for these or find some other way?
Reply With Quote
  #6  
Old 04-16-2016, 05:44 PM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

http://unityeq.com/play

Quick register, login, char select, char create, char delete, quit.

View javascript console for server/client packet logs.

Stop @ OP_ZoneServerInfo, currently doesn't transition into zone yet, still have to implement OP_ZoneEntry.



This is where the magic happens: https://github.com/UnityEQ/UnityEQCl...essages.cs#L66

I believe the next step is below via this struct: https://github.com/UnityEQ/UnityEQSe...structs.h#L357

Code:
		public void DoZoneEntry()
		{
			byte[] ZoneEntryRequest = new byte[68];
			Int32 pos = 0;
		
			curZoneId = 54;
			WriteInt32 (0, ref ZoneEntryRequest, ref pos);
			WriteFixedLengthString(ourPlayerName, ref ZoneEntryRequest, ref pos, 64);
			GenerateAndSendWorldPacket (ZoneEntryRequest.Length, 541, curZoneId, curInstanceId, ZoneEntryRequest);
		
		}

Anyway, still fiddling with this and that's where I'm at.

Steaming server desktop @ http://twitch.tv/eqbrowser
__________________
Browser based EQ project
Reply With Quote
  #7  
Old 04-18-2016, 03:17 AM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

figured it out, client now active in zone.

__________________
Browser based EQ project
Reply With Quote
  #8  
Old 04-18-2016, 12:44 PM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,449
Default

Quote:
Originally Posted by Tyen05 View Post
figured it out, client now active in zone.

You'll have to send a packet upon receiving OP_PlayerProfile, so you can get to the CompleteConnect step. I think we use the first OP_ClientUpdate. Can't remember it's been a bit.
Reply With Quote
  #9  
Old 04-18-2016, 02:52 PM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

Quote:
Originally Posted by Secrets View Post
You'll have to send a packet upon receiving OP_PlayerProfile, so you can get to the CompleteConnect step. I think we use the first OP_ClientUpdate. Can't remember it's been a bit.
My code has the process as

Server: OP_Weather
-> Client: OP_ReqNewZone (no data)
Server: OP_NewZone
-> Client: OP_ReqClientSpawn (no data)
Server: OP_SendExpZonein with a length of zero (?!)
-> Client: OP_ClientReady (no data)

At that point you're in the zone as far as the server is concerned.

I can't remember if that covers all the expansions, since there is some variation in how things go... pretty sure I've used that to masquerade as Titanium to Underfoot, at least.
Reply With Quote
  #10  
Old 04-19-2016, 04:20 AM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

OP_ZoneUnavailable woes

World Log:


Zoneserver Logs: http://pastebin.com/WZiKCrx0

Quote:
[04-19-2016 :: 10:20:20] [Zone Server] Time Broadcast Packet: EQTime [10:26 am]
[04-19-2016 :: 10:20:21] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:20:21] [Packet :: Client -> Server] [OP_ZoneEntry - 0x021d] [Size: 70]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_PlayerProfile - 0x016d] [Size: 19588]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_ZoneEntry - 0x021d] [Size: 746]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_ZoneSpawns - 0x0223] [Size: 74402]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_ZoneSpawns - 0x0223] [Size: 74402]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_ZoneSpawns - 0x0223] [Size: 74402]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_ZoneSpawns - 0x0223] [Size: 36458]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_TimeOfDay - 0x01e9] [Size: 10]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_TributeUpdate - 0x0201] [Size: 50]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_TributeTimer - 0x01ff] [Size: 6]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_CharInventory - 0x0048] [Size: 66]
[04-19-2016 :: 10:20:21] [Packet :: Server -> Client] [OP_Weather - 0x020c] [Size: 14]
[04-19-2016 :: 10:21:00] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:00] [Packet :: Client -> Server] [OP_ReqNewZone - 0x0193] [Size: 2]
[04-19-2016 :: 10:21:00] [Packet :: Server -> Client] [OP_NewZone - 0x0152] [Size: 710]
[04-19-2016 :: 10:21:02] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:02] [Packet :: Client -> Server] [OP_ReqClientSpawn - 0x0192] [Size: 2]
[04-19-2016 :: 10:21:02] [Packet :: Server -> Client] [OP_SpawnDoor - 0x01d2] [Size: 8162]
[04-19-2016 :: 10:21:02] [Packet :: Server -> Client] [OP_GroundSpawn - 0x00c4] [Size: 94]
[04-19-2016 :: 10:21:02] [Packet :: Server -> Client] [OP_SendZonepoints - 0x01b2] [Size: 174]
[04-19-2016 :: 10:21:02] [Packet :: Server -> Client] [OP_SendAAStats - 0x01a5] [Size: 2]
[04-19-2016 :: 10:21:02] [Packet :: Server -> Client] [OP_ZoneServerReady - 0x0222] [Size: 2]
[04-19-2016 :: 10:21:02] [Packet :: Server -> Client] [OP_SendExpZonein - 0x01a8] [Size: 2]
[04-19-2016 :: 10:21:02] [Packet :: Server -> Client] [OP_WorldObjectsSent - 0x0215] [Size: 2]
[04-19-2016 :: 10:21:12] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:12] [Packet :: Client -> Server] [OP_ClientReady - 0x0055] [Size: 2]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_WearChange - 0x020b] [Size: 21]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_SpawnAppearance - 0x01d1] [Size: 10]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_Weather - 0x020c] [Size: 10]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_HPUpdate - 0x00f2] [Size: 12]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_ManaChange - 0x012d] [Size: 18]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_EmuKeepAlive - 0x0226] [Size: 2]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_HPUpdate - 0x00f2] [Size: 12]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_Stamina - 0x01d7] [Size: 10]
[04-19-2016 :: 10:21:12] [Zone Server] Got 0x0155 from world:
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:12] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:13] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:13] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:13] [Packet :: Server -> Client] [OP_BeginCast - 0x0037] [Size: 10]
[04-19-2016 :: 10:21:13] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:13] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:13] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:13] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Server -> Client] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Server -> Client] [OP_HPUpdate - 0x00f2] [Size: 12]
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Zone Server] Got 0x5007 from world:
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
__________________
Browser based EQ project
Reply With Quote
  #11  
Old 04-19-2016, 07:16 PM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

Comparing with Titanium logs to get a better feel of the flow, and see if I'm missing anything that could be causing OP_ZoneUnavailable in web_interface server


UnityEQ Packets: http://pastebin.com/WZiKCrx0

Code:
[04-19-2016 :: 10:20:21] [Packet :: Client -> Server] [OP_ZoneEntry - 0x021d] [Size: 70]
[04-19-2016 :: 10:21:00] [Packet :: Client -> Server] [OP_ReqNewZone - 0x0193] [Size: 2]
[04-19-2016 :: 10:21:02] [Packet :: Client -> Server] [OP_ReqClientSpawn - 0x0192] [Size: 2]
[04-19-2016 :: 10:21:12] [Packet :: Client -> Server] [OP_ClientReady - 0x0055] [Size: 2]
[04-19-2016 :: 10:21:14] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 40]
Titanium packets: http://pastebin.com/feQij6bz

Code:
[04-20-2016 :: 01:20:55] [Packet :: Client -> Server] [OP_AckPacket - 0x0007] [Size: 6]
[04-20-2016 :: 01:20:55] [Packet :: Client -> Server] [OP_ZoneEntry - 0x0221] [Size: 70]
[04-20-2016 :: 01:20:57] [Packet :: Client -> Server] [OP_AckPacket - 0x0007] [Size: 6]
[04-20-2016 :: 01:21:03] [Packet :: Client -> Server] [OP_ReqNewZone - 0x0195] [Size: 2]
[04-20-2016 :: 01:21:03] [Packet :: Client -> Server] [OP_SendAATable - 0x01a8] [Size: 2]
[04-20-2016 :: 01:21:03] [Packet :: Client -> Server] [OP_UpdateAA - 0x0205] [Size: 2]
[04-20-2016 :: 01:21:07] [Packet :: Client -> Server] [OP_SendTributes - 0x01b3] [Size: 6]
 [04-20-2016 :: 01:21:07] [Packet :: Client -> Server] [OP_SendGuildTributes - 0x01ac] [Size: 6]
[04-20-2016 :: 01:21:07] [Packet :: Client -> Server] [OP_SpawnAppearance - 0x01d3] [Size: 10]
[04-20-2016 :: 01:21:07] [Packet :: Client -> Server] [OP_SpawnAppearance - 0x01d3] [Size: 10]
[04-20-2016 :: 01:21:07] [Packet :: Client -> Server] [OP_AckPacket - 0x0007] [Size: 6]
[04-20-2016 :: 01:21:07] [Packet :: Client -> Server] [OP_ReqClientSpawn - 0x0194] [Size: 2]
[04-20-2016 :: 01:21:08] [Packet :: Client -> Server] [OP_SendExpZonein - 0x01aa] [Size: 2]
[04-20-2016 :: 01:21:09] [Packet :: Client -> Server] [OP_SetServerFilter - 0x01c0] [Size: 118]
[04-20-2016 :: 01:21:09] [Packet :: Client -> Server] [OP_ClientReady - 0x0055] [Size: 2]
[04-20-2016 :: 01:21:09] [Packet :: Client -> Server] [OP_PlayerStateAdd - 0x0170] [Size: 10]
[04-20-2016 :: 01:21:09] [Packet :: Client -> Server] [OP_WeaponEquip1 - 0x020c] [Size: 14]
[04-20-2016 :: 01:21:09] [Packet :: Client -> Server Unhandled] [OpCode OP_WeaponEquip1 (0x6c5e) Size=12] 
[04-20-2016 :: 01:21:09] [Packet :: Client -> Server] [OP_WearChange - 0x020d] [Size: 29]
[04-20-2016 :: 01:21:09] [Packet :: Client -> Server] [OP_ClientUpdate - 0x0057] [Size: 39]
[04-20-2016 :: 01:21:10] [Packet :: Client -> Server] [OP_FloatListThing - 0x00a6] [Size: 105]
__________________
Browser based EQ project
Reply With Quote
  #12  
Old 04-20-2016, 02:09 PM
Zaela_S
Hill Giant
 
Join Date: Jun 2012
Posts: 216
Default

If you're talking to the zone at all, it's clearly available...

Are you just not disconnecting from world? I send world a session disconnect before starting a session with the zone. I think world keeps its zone bootup timeout timer for the client running until they destroy themselves by disconnecting.
Reply With Quote
  #13  
Old 04-20-2016, 05:54 PM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

Yep, you were dead on.

OP_WorldComplete made it all better, thanks~

Zone doesn't shut down on me anymore.
__________________
Browser based EQ project
Reply With Quote
  #14  
Old 04-22-2016, 05:56 PM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

OP_ChannelMessage (Client->Server), work in progress.

Main Bottleneck is at the very bottom.
//TODO: Reading ChannelMessage string is suppose to be variable sized and not a 64 FixedLengthString.


Client->Server Packet logs
Quote:
[04-22-2016 :: 15:07:44] [Packet :: Client -> Server] [OP_ChannelMessage - 0x0045] [Size: 286]
[04-22-2016 :: 15:07:44] [Packet :: Client -> Server (Dump)] [OP_ChannelMessage - 0x0045] [Size: 286]
0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
16: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
32: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
48: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
64: 4A 6F 6E 64 73 00 00 00 - 00 00 00 00 00 00 00 00 | Jonds...........
80: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
96: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
112: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
128: 00 00 00 00 05 00 00 00 - 00 00 00 00 46 46 46 46 | ............FFFF
144: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
160: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
176: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
192: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
208: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
224: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
240: 46 46 46 46 78 00 00 00 - 00 00 00 00 00 00 00 00 | FFFFx...........
256: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
272: 00 00 00 00 00 00 00 00 - 00 00 00 00 | ............

[04-22-2016 :: 15:07:44] [Zone Server] Client::ChannelMessageReceived() Channel:5 message:'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFx'
Server->Client Packet logs
Quote:
[04-22-2016 :: 15:07:44] [Packet :: Server -> Client] [OP_ChannelMessage - 0x0045] [Size: 248]
[04-22-2016 :: 15:07:44] [Packet :: Server -> Client (Dump)] [OP_ChannelMessage - 0x0045] [Size: 248]
0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
16: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
32: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
48: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
64: 4A 6F 6E 64 73 00 00 00 - 00 00 00 00 00 00 00 00 | Jonds...........
80: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
96: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
112: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 | ................
128: 00 00 00 00 05 00 00 00 - 64 00 00 00 46 46 46 46 | ........d...FFFF
144: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
160: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
176: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
192: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
208: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
224: 46 46 46 46 46 46 46 46 - 46 46 46 46 46 46 46 46 | FFFFFFFFFFFFFFFF
240: 46 46 46 46 78 00 | FFFFx.
Client Send Chat message
Code:
		public void DoChannelMessage()
		{
			
//			/*000*/	char	targetname[64];		// Tell recipient
//			/*064*/	char	sender[64];			// The senders name (len might be wrong)
//			/*128*/	uint32	language;			// Language
//			/*132*/	uint32	chan_num;			// Channel
//			/*144*/	uint32	skill_in_language;	// The players skill in this language? might be wrong
//			/*148*/	char	message[0];			// Variable length message
		
		string TestMessage = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFx";
		int TestMessageLength = TestMessage.Length * 2;
		int RequestSize = 74 + TestMessageLength;
		byte[] ChannelMessageRequest = new byte[RequestSize];
		int position = 0;
		
				
		WriteFixedLengthString("", ref ChannelMessageRequest, ref position, 64);
		WriteFixedLengthString("Jonds", ref ChannelMessageRequest, ref position, 64);
		WriteInt32(0, ref ChannelMessageRequest, ref position);
		WriteInt32(5, ref ChannelMessageRequest, ref position);
		WriteInt32(0, ref ChannelMessageRequest, ref position);
		WriteFixedLengthString(TestMessage, ref ChannelMessageRequest, ref position, TestMessageLength);
		GenerateAndSendWorldPacket (ChannelMessageRequest.Length, 69 /* OP_ChannelMessage */, curZoneId, curInstanceId, ChannelMessageRequest);				
		}



Client Read Chat message
Code:
		public void HandleWorldMessage_ChannelMessage(byte[] data, int datasize)
		{
			
//			/*000*/	char	targetname[64];		// Tell recipient
//			/*064*/	char	sender[64];			// The senders name (len might be wrong)
//			/*128*/	uint32	language;			// Language
//			/*132*/	uint32	chan_num;			// Channel
//			/*144*/	uint32	skill_in_language;	// The players skill in this language? might be wrong
//			/*148*/	char	message[0];			// Variable length message
	
		int position = 0;
		
		string ChannelTargetName = ReadFixedLengthString(data, ref position, 64);
		string ChannelSender = ReadFixedLengthString(data, ref position, 64);
		Int32 ChannelLanguage = ReadInt32(data, ref position);
		Int32 ChannelNumber = ReadInt32(data, ref position);
		Int32 ChannelSkill = ReadInt32(data, ref position);

		//TODO: ChannelMessage is suppose to be variable sized and not a 64 FixedLengthString
		string ChannelMessage = ReadFixedLengthString(data, ref position, 64);

		}

Fixed Length String reference
Code:
		public string ReadFixedLengthString(byte[] data, ref Int32 position, Int32 count)
		{
			string retval = System.Text.Encoding.Default.GetString(data, position, count);
			position += count;
			return retval;
		}
__________________
Browser based EQ project
Reply With Quote
  #15  
Old 04-30-2016, 05:10 AM
Tyen05
Discordant
 
Join Date: Mar 2009
Location: eqbrowser.com
Posts: 309
Default

Easy fix, this advice solved it.

Quote:
[05:37] <image> I would just subtract the rest of the packet
lines in green

Code:
		public void HandleWorldMessage_ChannelMessage(byte[] data, int datasize)
		{
		int position = 0;
		string ChannelTargetName = ReadFixedLengthString(data, ref position, 64);
		string ChannelSender = ReadFixedLengthString(data, ref position, 64);
		Int32 ChannelLanguage = ReadInt32(data, ref position);
		Int32 ChannelNumber = ReadInt32(data, ref position);
		Int32 ChannelSkill = ReadInt32(data, ref position);
		Int32 ChannelVarLength = datasize - position;
		string ChannelMessage = ReadFixedLengthString(data, ref position, ChannelVarLength);
		}
__________________
Browser based EQ project
Reply With Quote
Reply

Tags
pras eqbrowser.com, unity3d


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 06:54 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3