Page 8 of 8

Re: Dev Rev 3 release

PostPosted: Tue Apr 09, 2013 2:17 pm
by Circa
Its not 3 different servers. Dev 4 is the most up to date one, dev 2 is pretty "old" and "outdated" same for dev 3. The only real difference is that each one supports only up to a certain client version

Re: Dev Rev 3 release

PostPosted: Tue Jun 11, 2013 3:11 pm
by 5oregon5
Has anyone fixed the inventory client crashing? If so, can you tell me how you managed it? I know its something with the packets that the server sends one but the client expected another, but how do you know which one is the correct packet? then again...I guess the client is always right o.o

Re: Dev Rev 3 release

PostPosted: Sat Jun 15, 2013 7:43 pm
by kismetbecomes
This is by far the most unstable rev ever released. You should consider rev2 or rev4 instead of working on this.

Re: Dev Rev 3 release

PostPosted: Sun Mar 02, 2014 9:27 am
by tonnie1391
Hi everyone,
It's lucky to make this. When you move, pickup or equip item the client wont crash anymore ^_^
Replace ADDBYTE to ADDWORD at CPlayer::UpdateInventory in playerfunctions.cpp

  1.  void CPlayer::UpdateInventory( unsigned int slot1, unsigned int slot2, bool save)
  2. {
  3.     if(slot1 == 0xffff && slot2==0xffff) return; 
  4.     BEGINPACKET(pak, 0x718); 
  5.     if(slot1 != 0xffff && slot2 != 0xffff) { ADDBYTE( pak, 0x02 );} else {ADDBYTE( pak, 0x01 );} 
  6.     if(slot1 != 0xffff)
  7.     {
  8.         ADDBYTE( pak, slot1);
  9.         ADDDWORD   ( pak, GServer->BuildItemHead( items[slot1] ) );
  10.         ADDDWORD   ( pak, GServer->BuildItemData( items[slot1] ) );
  11.         ADDDWORD( pak, 0x00000000 );
  12.         ADDWORD ( pak, 0x0000 );
  13.     } 
  14.     if(slot2 != 0xffff)
  15.     {
  16.         ADDBYTE   ( pak, slot2);
  17.         ADDDWORD   ( pak, GServer->BuildItemHead( items[slot2] ) );
  18.         ADDDWORD   ( pak, GServer->BuildItemData( items[slot2] ) );
  19.         ADDDWORD( pak, 0x00000000 );
  20.         ADDWORD ( pak, 0x0000 );
  21.     } 
  22.     client->SendPacket( &pak ); 
  23.     if(!save)
  24.         return; 
  25.     if(slot1!=0xffff)
  26.          SaveSlot41(slot1);
  27.     if(slot2!=0xffff)
  28.          SaveSlot41(slot2); 
  29.     return;
  30. }

Hope this helpful to anyone ^_^
Sorry if I'm wrong!!!

Re: Dev Rev 3 release

PostPosted: Mon Mar 24, 2014 6:48 am
by IamLegend
client: ver. 308
server files: dev rev 3

World server crashes if my character died :x

Re: Dev Rev 3 release

PostPosted: Mon Mar 24, 2014 2:16 pm
by PurpleYouko
tonnie1391 wrote:Hi everyone,
It's lucky to make this. When you move, pickup or equip item the client wont crash anymore ^_^
Replace ADDBYTE to ADDWORD at CPlayer::UpdateInventory in playerfunctions.cpp

  1.  void CPlayer::UpdateInventory( unsigned int slot1, unsigned int slot2, bool save)
  2. {
  3.     if(slot1 == 0xffff && slot2==0xffff) return; 
  4.     BEGINPACKET(pak, 0x718); 
  5.     if(slot1 != 0xffff && slot2 != 0xffff) { ADDBYTE( pak, 0x02 );} else {ADDBYTE( pak, 0x01 );} 
  6.     if(slot1 != 0xffff)
  7.     {
  8.         ADDBYTE( pak, slot1);
  9.         ADDDWORD   ( pak, GServer->BuildItemHead( items[slot1] ) );
  10.         ADDDWORD   ( pak, GServer->BuildItemData( items[slot1] ) );
  11.         ADDDWORD( pak, 0x00000000 );
  12.         ADDWORD ( pak, 0x0000 );
  13.     } 
  14.     if(slot2 != 0xffff)
  15.     {
  16.         ADDBYTE   ( pak, slot2);
  17.         ADDDWORD   ( pak, GServer->BuildItemHead( items[slot2] ) );
  18.         ADDDWORD   ( pak, GServer->BuildItemData( items[slot2] ) );
  19.         ADDDWORD( pak, 0x00000000 );
  20.         ADDWORD ( pak, 0x0000 );
  21.     } 
  22.     client->SendPacket( &pak ); 
  23.     if(!save)
  24.         return; 
  25.     if(slot1!=0xffff)
  26.          SaveSlot41(slot1);
  27.     if(slot2!=0xffff)
  28.          SaveSlot41(slot2); 
  29.     return;
  30. }

Hope this helpful to anyone ^_^
Sorry if I'm wrong!!!


This would entirely depend on the client version that you are using.
DR3 was optimized to work with client V335
If you use another client then the packet structures will very likely be different in some small cases like this.
This was around the time that NARose started to change packet structures with every patch.

I have to say though, the tests that are being done on the slot value (i.e. if(slot1 != 0xffff) would indicate that slot is a WORD rather than a byte so it's possible this could be a bug that was missed completely before
In DR4 it is certainly a WORD rather than a BYTE

Re: Dev Rev 3 release

PostPosted: Mon Apr 07, 2014 4:41 pm
by tonnie1391
i cant find any another client version. Only have v317 and v323.
Almost links are died. so i have to do that to improve it.

Re: Dev Rev 3 release

PostPosted: Mon Apr 07, 2014 5:57 pm
by PurpleYouko
If making that change doesn't make anything go wrong then by all means do it. ;)