V15 Source Frage

12/25/2010 20:25 Incestus#1
Also erst mal hallo :D
Habe ja Probleme mit dem Packet Header, kann ihn aus welchem Grund auch immer nicht ändern ohne das ich mich am ende nicht mehr einloggen kann (Nach Charauswahl is schluss)

Nun habe ich aber versucht die crashs z.B einzeln zu fixxen.

"CDPSrvr::OnMoveItemOnPocket+10A"
Wäre ein Error
Also such ich mal in der DpSrvr nach dem Error, dann stoße ich auf:
Code:
void	CDPSrvr::OnMoveItemOnPocket( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
	CUser* pUser	= g_UserMng.GetUser( dpidCache, dpidUser );
	if( IsValidObj( pUser ) )
	{
		int nPocket1, nItem, nPocket2;
		short nNum;
		ar >> nPocket1 >> nItem >> nNum >> nPocket2;

		if( nPocket1 == nPocket2 )
			return;

		// mirchang 091214 - Âø¿ëÁßÀÎ ¾ÆÀÌÅÛÀÎÁö üũ
		if( nPocket1 == -1 )	// ¿øº»ÀÌ Àκ¥Å丮ÀÎÁö °Ë»ç!
		{
			if( pUser->m_Inventory.IsEquip( nItem ) )
				return;
		}

		CItemElem* pItem	= pUser->GetItemId2( nPocket1, nItem );	// ¿©±â¼* ÈÞ´ë°¡¹æ ¸¸·á°Ë»ç °°ÀÌÇÔ.
		if( IsUsableItem( pItem ) )
		{
			if( nPocket1 < 0 && pUser->IsUsing( pItem ) )
				return;
			if( nNum > pItem->m_nItemNum )
				return;

			CItemElem item;
			item	= *pItem;
			item.m_nItemNum		= nNum;
			if( pUser->CreateItem2( &item, nPocket2 ) )
			{
				pUser->RemoveItem2( nItem, nNum, nPocket1 );
				// log
				LogItemInfo	log;
				log.Action	= "m";
				log.SendName	= pUser->GetName();
				log.RecvName	= "OnMoveItemOnPocket";
				log.WorldId		= pUser->GetWorld()->GetID();
				log.Gold	= nPocket1;
				log.Gold2	= nPocket2;
				OnLogItem( log, &item, nNum );
			}
		}
	}
}
Was müsste ich jetzt daran ändern damit man der World nicht mehr crasht?
Packet ist 07000070FFFFFFF (Inventory Crash)

Wenn ich dann in msghdr.h gehe seh ich
#define PACKETTYPE_MOVE_ITEM_POCKET (DWORD)0x70000007
Wenn ich das ändere, könnte er nicht mehr crashen :o?
12/25/2010 21:13 fNL#2
Wenn einer das Packet snifft kann er wieder crashen ;)
12/25/2010 21:43 Incestus#3
Quote:
Originally Posted by fNL View Post
Wenn einer das Packet snifft kann er wieder crashen ;)
Nur wenn er auch weiß wie er es dann verändern muss ;)
Will ja wissen wie man es Komplett fixxt..
12/27/2010 09:01 Deda94#4
Quote:
#define PACKETTYPE_MOVE_ITEM_POCKET (DWORD)0x70000007
Da wird das Packet definiert. Du musst nach der Funktion suchen. in der PACKETTYPE_MOVE_ITEM_POCKET vorkommt.