Jump to content

Recommended Posts

I can not start the server with COEP  extender 66\61 ver.
I'm using 746 protocol for interlude. 

When connecting to a game server, server crashes with error

A:I:S:E:PE:DI:DE:BO=1.000000:1.000000:1.000000:1.000000:1.000000:0:0:1
L:Y:X:H=0:0:0:0:0
Crashed Thread[6].
Server Up Time : Mon Jun 30 04:26:21 2014
Current Time : Mon Jun 30 04:27:16 2014
Elapsed Time : 0 days 0 hours 0 minutes 55 seconds
IOBufferPool - 49994 / 50000,  PendingWrite 7 bytes [0] 
=============== object report
user[0/0], npc[0/0], item[0/0], usersocket[1]
=============== npc server connection log 
no connect

[(2596) 2014/06/30 04:27:16]: =======================
an Access Violation in module ntdll.dll at 0033:770c08c5.
start at 2014/6/30 04:26:20
Read from location ffffffff caused an access violation.

Registers:
EAX=a56aefa8 CS=0033 EIP=770c08c5 EFLGS=00010202
EBX=00000002 SS=002b ESP=a56aef98 EBP=ed96dc40
ECX=a56af078 DS=002b ESI=00000020 FS=0053
EDX=a56aefe8 ES=002b EDI=00000000 GS=002b
Bytes at CS:EIP:
0f ae 81 00 01 00 00 0f 29 81 a0 01 00 00 0f 29 
Stack dump:
a56aef98: 00000202 00000000 7707b219 00000000 fffa4000 000007ff 00000001 00000000
a56aefb8: 770c7000 00000001 000002ed 00000000 00000000 00000000 a56a007f 00000000
a56aefd8: a96bb0b0 00000000 a96bb0c0 00000000 a56b0000 00000000 a56ad000 00000000
a56aeff8: 7707a968 00000000 01f15409 00000000 a56af0e0 00000000 00000015 00000000
a56af018: d17c0fba 00000000 00000003 00000000 1afe0158 00000000 a56af430 00000000
a56af038: ffffffff ffffffff a96bb0b0 00000000 00000008 00000000 1afe0158 00000000
a56af058: 770c6486 00000000 00000050 00000000 a56afa50 00000000 000002ed 00000000
a56af078: 0000067c 00000000 a56af091 00000000 00000204 00000000 a56a0001 00000000
a56af098: 00440042 00000000 a56afa50 00000000 000003ff 00000020 002b0033 0053002b
a56af0b8: 002b002b 00000000 000a0008 00000000 77187540 00000000 003a0045 0053005c


ver = Dec 16 2005_22:03:13


GuardInfo : 

IOThread [0][0] (good):  void IOThread_common(void *arglist)
    Lock Stack  : 

IOThread [1][15] (good):  void IOThread_common(void *arglist)
    Lock Stack  : 

IOThread [2][0] (good):  void IOThread_common(void *arglist)
    Lock Stack  : 

IOThread [3][15] (good):  void IOThread_common(void *arglist)
    Lock Stack  : 

IOThread [4][0] (good):  void IOThread_common(void *arglist)
    Lock Stack  : 

IOThread [5][15] (good):  void IOThread_common(void *arglist)
    Lock Stack  : 

IOThread [6][47] (ahehe):  void IOThread_common(void *arglist) -> static bool LoadCharacterPacket(CDBSocket *socket, const unsigned char *packet) -> void CSocket::Send(const char* format, ...) -> CPacketSent::SendData
    Lock Stack  : 

IOThread [7][16] (good):  void IOThread_common(void *arglist)
    Lock Stack  : 

ListenThread [13][31] (good):  void ListenThread_common() -> unsigned __stdcall WaitThread(void *)
    Lock Stack  : 

MainThread [12][858] (good):      Lock Stack  : 

GuardInfo end 



[(2596) 2014/06/30 04:27:16]: *.\ioc.cpp:648(Tue Dec 13 02:52:40 2005) exception

Link to comment
Share on other sites


#include "CSentPackets.h"

#include "L2ServerFunctions.h"

 

extern "C" int nRevision;

 

// C4 per player : SdSddddddddddffdddddddddd dddddddddd dddddddddd dddddddddd dddddddd ff

 

INT32 nLoadCharacters = 0;

void CSentPackets::LoadCharacters(CSocket *pSocket, const char *format, va_list va)

{

L2SERVER_SHARED_GUARD(nLoadCharacters);

TLS_TRACE_BEGIN;

char *charSelectFormat = (char*)0x9D9270;

 

// Character Selection Info (Character Screen)

va_list vl = va;

 

UINT8 packetid = va_arg(vl, UINT8);

UINT32 chars = va_arg(vl, UINT32);

UINT32 buffersize = va_arg(vl, UINT32);

 

CSPacket InPacket(va_arg(vl, CHAR *), buffersize, buffersize);

 

CSPacket OutPacket;

OutPacket.set(8192);

 

OutPacket << packetid;

OutPacket << chars;

 

if(nRevision > 746)

{

OutPacket << (INT32)0x07;

OutPacket << (BYTE)0x00;

 

int pos = 0;

for ( UINT32 a = 0 ; a < chars ; a++ )

{

UINT32 lastpos = pos;

 

UINT32 cnsize = (InPacket.GetWString(pos).size()+1)*2; // Character Name Size 32 Bytes

UINT32 ansize = (InPacket.GetWString(pos+cnsize+4).size()+1)*2; // Account Size 28 Bytes

 

UINT32 psize = 285 + cnsize + ansize;

UINT32 exppos = 64 + cnsize + ansize;

 

OutPacket.Write(InPacket.GetBytes(pos),exppos); pos += exppos;

OutPacket.Write((INT64)InPacket.GetQWord(pos)); pos += 8;

OutPacket.Write(InPacket.GetBytes(pos), 44); pos += 44 + 64;

OutPacket.Write(InPacket.GetBytes(pos), 64); pos += 64;

OutPacket.Write(InPacket.GetDWord(lastpos+exppos+168));

OutPacket.Write((INT32)0x00);

OutPacket.Write((INT32)0x00);

OutPacket.Write((INT32)0x00);

OutPacket.Write((INT32)0x00);

OutPacket.Write((INT32)0x00);

OutPacket.Write((INT32)0x00);

OutPacket.Write((INT32)0x00);

OutPacket.Write((INT32)0x00);

OutPacket.Write(InPacket.GetBytes(pos),(psize-(pos-lastpos))); pos += (psize-(pos-lastpos));

OutPacket.Write((INT16)0x00);

OutPacket.Write((INT16)0x00);

OutPacket.Write((INT32)0x00);

}

}

else

{

// IL Packet SdSddddddddddffdQddddddddddddddddddddddddddddddddddddddddddddddddffdddchh

 

int pos = 0;

for ( UINT32 a = 0 ; a < chars ; a++ )

{

UINT32 cnsize = (InPacket.GetWString(pos).size()+1)*2; // Character Name Size 32 Bytes

UINT32 ansize = (InPacket.GetWString(pos+cnsize+4).size()+1)*2; // Account Size 28 Bytes

 

UINT32 exppos = 64 + cnsize + ansize;

 

OutPacket.Write(InPacket.GetBytes(pos),exppos); pos += exppos;

OutPacket.Write((INT64)InPacket.GetQWord(pos)); pos += 8;

OutPacket.Write(InPacket.GetBytes(pos), 108); pos += 108;

OutPacket.Write((INT32)0x00);

OutPacket.Write(InPacket.GetBytes(pos), 64); pos += 64;

OutPacket.Write((INT32)0x00);

OutPacket.Write(InPacket.GetBytes(pos), 12); pos += 12;

OutPacket.Write(InPacket.GetBytes(pos), 16); pos += 16;

OutPacket.Write(InPacket.GetBytes(pos), 13); pos += 13;

OutPacket.Write((INT32)0x00);

}

}

 

pSocket->Send(&OutPacket);

TLS_TRACE_END;

}

 

INT32 nLoadSelectedCharacter = 0;

void CSentPackets::LoadSelectedCharacter(CSocket *pSocket, char *pFormat, ...)

{

L2SERVER_SHARED_GUARD(nLoadSelectedCharacter);

TLS_TRACE_BEGIN;

va_list tag;

va_start(tag, pFormat);

 

CSPacket Packet;

Packet.set(350);

 

BYTE nPacketID = va_arg(tag, BYTE); // PACKET ID

 

Packet << (wstring)va_arg(tag, WCHAR *); // Character Name

Packet << va_arg(tag, DWORD); // Character Object ID

Packet << (wstring)va_arg(tag, WCHAR *); // Character Title

Packet << va_arg(tag, DWORD); // Session ID

Packet << va_arg(tag, DWORD); // Pledge ID

Packet << va_arg(tag, DWORD); // Builder

Packet << va_arg(tag, DWORD); // Sex

Packet << va_arg(tag, DWORD); // Race

INT32 nClassID = va_arg(tag, DWORD); // Class ID

Packet << nClassID; // Class

Packet << va_arg(tag, DWORD); // WorldId

Packet << va_arg(tag, DWORD); // X

Packet << va_arg(tag, DWORD); // Y

Packet << va_arg(tag, DWORD); // Z

Packet << va_arg(tag, DOUBLE); // Current HP

Packet << va_arg(tag, DOUBLE); // Current MP

Packet << va_arg(tag, DWORD); // SP

va_arg(tag, DWORD);

Packet << pSocket->user->SD->nExp64; // EXP

Packet << va_arg(tag, DWORD); // Level

Packet << va_arg(tag, DWORD); // Align

Packet << va_arg(tag, DWORD); // Karma

Packet << va_arg(tag, DWORD); // INT

Packet << va_arg(tag, DWORD); // STR

Packet << va_arg(tag, DWORD); // MEN

Packet << va_arg(tag, DWORD); // DEX

Packet << va_arg(tag, DWORD); // WIT

 

Packet << (INT32)0x00;

Packet << (INT32)0x00;

Packet << nClassID;

for (int i=0; i<20; i++) { Packet << (INT32)0x00; }

 

va_end(tag);

 

// Sending UserInfo

pSocket->Send("cb", nPacketID, Packet.size(), Packet.buffer(false));

TLS_TRACE_END;

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...