Some Packets ( mostly GM )

08/26/2019 18:43 wurstbrot123#1
Maybe useful for someone

Code:
typedef void (__cdecl* SendPacketType )( char * sendpacket, int packetsize );
SendPacketType sendp = (SendPacketType)address;

void xcall( BYTE fraktion )
{
	// 0 = light 1 = dark
	char packet[3] = {0};
	strcpy_s( packet, "\x18\xFa" );
	memcpy_s( packet, 1, &fraktion, 1 );
	sendp( packet, 3 );
}

void WriteNotice( char* message )
{
	char packet[150] = {0};
	strcpy_s( packet, "\x0B\xF9\x00\x00" );
	char msglen = static_cast<char>( strlen( message ) );
	int psize = strlen( message );
	psize += 6;
	strcpy_s(packet+4, 146, &msglen );
	strcpy_s( packet+5, 145, message );
	sendp( packet, psize );
}

void bMove( float x, float y, short mapid )
{
	char packet[13] = {0};
	strcpy_s( packet, "\x0A\xFA" );
	memcpy_s( packet+2, 11, &x, 4 );
	memcpy_s( packet+6, 7, &y, 4 );
	memcpy_s( packet+10, 3, &mapid, 2 );
	sendp( packet, 0x0C );
}

void CreateNpc( BYTE Type, WORD npcid )
{
	BYTE a = 0x01;
	char packet[6] = {0};
	strcpy_s( packet, "\x0C\xF7" );
	memcpy_s( packet+2, 5, &Type, 1 );
	memcpy_s( packet+3, 4, &npcid, 2 );
	memcpy_s( packet+5, 1, &a, 1 );
	sendp( packet, 6 );
}

void DeleteNpc( BYTE Type, WORD npcid )
{
	BYTE a = 0x01;
	char packet[6] = {0};
	strcpy_s( packet, "\x0D\xF7" );
	memcpy_s( packet+2, 5, &Type, 1 );
	memcpy_s( packet+3, 4, &npcid, 2 );
	memcpy_s( packet+5, 1, &a, 1 );
	sendp( packet, 6 );
}

void CreateMonster( short mobid, BYTE numberofmobs )
{
	char packet[5] = {0};
	strcpy_s( packet, "\x04\xF7" );
	memcpy_s( packet+2, 4, &mobid, 2 );
	memcpy_s( packet+4, 1, &numberofmobs, 1 );
	sendp( packet, 5 );
}

void SendPrivateMessage( char* Message, char* Player )
{
	char Packet[256] = {0};
	// Copy OP Code
	strcpy_s( Packet, 256, "\x02\xF1" );
	// Copy Playername
	strcat_s( Packet, 256, Player );

	// Copy Message Size 

	char msglen = static_cast<char>( strlen( Message ) );
	strcpy_s( Packet+23, 256, &msglen );
	// Copy Message
	strcpy_s( Packet+24, 256, Message );

	// Send Packet

	int packetsize = strlen( Message );
	packetsize += 24;

	sendp( Packet, packetsize );
}
08/27/2019 05:25 anon112#2
Quote:
Originally Posted by wurstbrot123 View Post
Maybe useful for someone

Code:
typedef void (__cdecl* SendPacketType )( char * sendpacket, int packetsize );
SendPacketType sendp = (SendPacketType)address;

void xcall( BYTE fraktion )
{
	// 0 = light 1 = dark
	char packet[3] = {0};
	strcpy_s( packet, "\x18\xFa" );
	memcpy_s( packet, 1, &fraktion, 1 );
	sendp( packet, 3 );
}

void WriteNotice( char* message )
{
	char packet[150] = {0};
	strcpy_s( packet, "\x0B\xF9\x00\x00" );
	char msglen = static_cast<char>( strlen( message ) );
	int psize = strlen( message );
	psize += 6;
	strcpy_s(packet+4, 146, &msglen );
	strcpy_s( packet+5, 145, message );
	sendp( packet, psize );
}

void bMove( float x, float y, short mapid )
{
	char packet[13] = {0};
	strcpy_s( packet, "\x0A\xFA" );
	memcpy_s( packet+2, 11, &x, 4 );
	memcpy_s( packet+6, 7, &y, 4 );
	memcpy_s( packet+10, 3, &mapid, 2 );
	sendp( packet, 0x0C );
}

void CreateNpc( BYTE Type, WORD npcid )
{
	BYTE a = 0x01;
	char packet[6] = {0};
	strcpy_s( packet, "\x0C\xF7" );
	memcpy_s( packet+2, 5, &Type, 1 );
	memcpy_s( packet+3, 4, &npcid, 2 );
	memcpy_s( packet+5, 1, &a, 1 );
	sendp( packet, 6 );
}

void DeleteNpc( BYTE Type, WORD npcid )
{
	BYTE a = 0x01;
	char packet[6] = {0};
	strcpy_s( packet, "\x0D\xF7" );
	memcpy_s( packet+2, 5, &Type, 1 );
	memcpy_s( packet+3, 4, &npcid, 2 );
	memcpy_s( packet+5, 1, &a, 1 );
	sendp( packet, 6 );
}

void CreateMonster( short mobid, BYTE numberofmobs )
{
	char packet[5] = {0};
	strcpy_s( packet, "\x04\xF7" );
	memcpy_s( packet+2, 4, &mobid, 2 );
	memcpy_s( packet+4, 1, &numberofmobs, 1 );
	sendp( packet, 5 );
}

void SendPrivateMessage( char* Message, char* Player )
{
	char Packet[256] = {0};
	// Copy OP Code
	strcpy_s( Packet, 256, "\x02\xF1" );
	// Copy Playername
	strcat_s( Packet, 256, Player );

	// Copy Message Size 

	char msglen = static_cast<char>( strlen( Message ) );
	strcpy_s( Packet+23, 256, &msglen );
	// Copy Message
	strcpy_s( Packet+24, 256, Message );

	// Send Packet

	int packetsize = strlen( Message );
	packetsize += 24;

	sendp( Packet, packetsize );
}

Sorry for asking but what is this?
09/01/2019 00:57 wurstbrot123#3
Its for Network Communications in Shaiya