Explorar o código

Follow up 3d9c6e7763c3d257593ba159a18dffc435b5ff06
* Added 'missing' packets for 2015-10-22 (51).
* Packet keys for packet_ver 50 and 51.
* Fixed memleak from Roulette items.
* Corrected date2version cases.
* Doc update, packet_interserv.txt.

Fixed wrong constant value for bSubSkill and bSubDefEle

Signed-off-by: Cydh Ramdh <cydh@pservero.com>

Cydh Ramdh %!s(int64=10) %!d(string=hai) anos
pai
achega
e6d5b09b06
Modificáronse 7 ficheiros con 92 adicións e 35 borrados
  1. 6 0
      conf/battle/client.conf
  2. 2 2
      db/const.txt
  3. 56 27
      db/packet_db.txt
  4. 1 1
      doc/packet_interserv.txt
  5. 4 4
      src/common/utils.c
  6. 22 0
      src/map/itemdb.c
  7. 1 1
      src/map/itemdb.h

+ 6 - 0
conf/battle/client.conf

@@ -52,6 +52,12 @@ packet_ver_flag: 0x7FFFFFFF
 // 0x00000008: 2013-07-10	Ragexe		(version 43)
 // 0x00000010: 2013-07-17	Ragexe		(version 44)
 // 0x00000020: 2013-08-07	Ragexe		(version 45)
+// 0x00000040: 2013-12-23	Ragexe		(version 46)
+// 0x00000080: ????
+// 0x00000100: ????
+// 0x00000200: ????
+// 0x00000400: 2014-10-16	Ragexe		(version 50)
+// 0x00000800: 2014-10-22	Ragexe		(version 51)
 // default value: 0x7FFFFFFF			(all clients/versions [41;72])
 packet_ver_flag2: 0x7FFFFFFF
 

+ 2 - 2
db/const.txt

@@ -632,8 +632,8 @@ bAddItemGroupHealRate	2073
 bHPVanishRaceRate	2074
 bSPVanishRaceRate	2075
 bAbsorbDmgMaxHP	2076
-bSubSkill	2078
-bSubDefEle	2079
+bSubSkill	2077
+bSubDefEle	2078
 
 EQI_HEAD_TOP	1
 EQI_ARMOR	2

+ 56 - 27
db/packet_db.txt

@@ -2320,6 +2320,7 @@ packet_keys: 0x631C511C,0x111C111C,0x111C111C // [Shakto]
 
 //2014-10-16Ragexe
 packet_ver: 50
+packet_keys: 0x2DFF467C,0x444B37EE,0x2C1B634F // [YomRawr]
 0x0369,7,actionrequest,2,6
 0x083C,10,useskilltoid,2,4,6
 0x0437,5,walktoxy,2
@@ -2365,35 +2366,63 @@ packet_ver: 50
 
 //2014-10-22bRagexe
 packet_ver: 51
-0x0369,7,actionrequest,2,6
-0x083C,10,useskilltoid,2,4,6
-0x0437,5,walktoxy,2
-0x035F,6,ticksend,2
-0x08AD,5,changedir,2,4
-0x094E,6,takeitem,2
-0x087D,6,dropitem,2,4
-0x0878,8,movetokafra,2,4
-0x08AA,8,movefromkafra,2,4
-0x023B,10,useskilltopos,2,4,6,8
-0x0366,90,useskilltoposinfo,2,4,6,8,10
-0x096A,6,getcharnamerequest,2
-0x0368,6,solvecharname,2
-0x0835,12,searchstoreinfolistitemclick,2,6,10
-0x0940,2,searchstoreinfonextpage,0
-0x0819,-1,searchstoreinfo,2,4,5,9,13,14,15
-0x0811,-1,reqtradebuyingstore,2,4,8,12
+packet_keys: 0x290551EA,0x2B952C75,0x2D67669B // [YomRawr]
+0x006d,149
+0x023b,10,useskilltopos,2:4:6:8
+0x0281,-1,itemlistwindowselected,2:4:8:12
+0x035f,6,ticksend,2
 0x0360,6,reqclickbuyingstore,2
+0x0366,90,useskilltoposinfo,2:4:6:8:10
+0x0368,6,solvecharname,2
+0x0369,7,actionrequest,2:6
+0x0437,5,walktoxy,2
+0x0438,36,storagepassword,2:4:20
+0x0811,-1,reqtradebuyingstore,2:4:8:12
+0x0815,-1,reqopenbuyingstore,2:4:8:9:89
 0x0817,2,reqclosebuyingstore,0
-0x0815,-1,reqopenbuyingstore,2,4,8,9,89
-0x0955,18,bookingregreq,2,4
-// 0x092B,8 // CZ_JOIN_BATTLE_FIELD
-0x0281,-1,itemlistwindowselected,2,4,8
-0x093B,19,wanttoconnection,2,6,10,14,18
-0x0896,26,partyinvite,2
-// 0x08AB,4 // CZ_GANGSI_RANK
-0x091A,26,friendslistadd,2
-0x0899,5,hommenu,2,4
-0x0438,36,storagepassword,0
+0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
+0x0835,12,searchstoreinfolistitemclick,2:6:10
+0x083c,10,useskilltoid,2:4:6
+0x0878,8,movetokafra,2:4
+0x087d,6,dropitem,2:4
+0x0896,26,partyinvite2,2
+0x0899,5,hommenu,2:4
+0x08aa,8,movefromkafra,2:4
+//0x08ab,4	// CZ_GANGSI_RANK
+0x08ad,5,changedir,2:4
+0x08e3,149
+0x091a,26,friendslistadd,2
+//0x092b,8	// CZ_JOIN_BATTLE_FIELD
+0x093b,19,wanttoconnection,2:6:10:14:18
+0x0940,2,searchstoreinfonextpage,0
+0x094e,6,takeitem,2
+0x0955,18,bookingregreq,2:4:6
+0x096a,6,getcharnamerequest,2
+0x09e7,3
+0x09e8,11
+0x09ea,11
+0x09eb,-1
+0x09ed,3
+0x09ee,11
+0x09f1,11
+0x09f2,12
+0x09f3,11
+0x09f9,143
+0x0a03,2
+0x0a04,6
+0x0a05,49
+0x0a06,6
+0x0a07,9
+0x0a08,26
+0x0a09,45
+0x0a0a,47
+0x0a0b,47
+0x0a0c,56
+0x0a0d,-1
+0x0a13,26
+0x0a21,3
+0x0a22,5
+0x0a24,66
 
 //Add new packets here
 //packet_ver: 52

+ 1 - 1
doc/packet_interserv.txt

@@ -2632,7 +2632,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket.
 		- cmd : packet identification (0x2b0e)
 		- aid
 		- name
-		- operation_type
+		- operation_type: 1:block account, 2:ban account, 3:unblock account, 4:unban account, 5:changesex, 6:VIP, 7:changecharsex
 		- timediff
 		- val1
 		- val2

+ 4 - 4
src/common/utils.c

@@ -379,10 +379,10 @@ uint32 date2version(int date) {
 	else if(date < 20130807) return 44;
 	else if(date < 20131223) return 45;
 	else if(date < 20140212) return 46;
-	else if(date < 20140613) return 47;
-	else if(date < 20141016) return 48;
-	else if(date < 20141022) return 49;
-	else if(date >= 20141022) return 50;
+	//else if(date < 20140613) return 47;
+	//else if(date < 20141016) return 48;
+	else if(date < 20141022) return 50;
+	else if(date >= 20141022) return 51;
 
 	else return 30; //default
 }

+ 22 - 0
src/map/itemdb.c

@@ -1151,6 +1151,26 @@ bool itemdb_parse_roulette_db(void)
 	return true;
 }
 
+/**
+ * Free Roulette items
+ */
+static void itemdb_roulette_free(void) {
+	int i, j;
+
+	for (i = 0; i < MAX_ROULETTE_LEVEL; i++) {
+		if (rd.nameid[i])
+			aFree(rd.nameid[i]);
+		if (rd.qty[i])
+			aFree(rd.qty[i]);
+		if (rd.flag[i])
+			aFree(rd.flag[i]);
+		rd.nameid[i] = NULL;
+		rd.qty[i] = NULL;
+		rd.flag[i] = NULL;
+		rd.items[i] = 0;
+	}
+}
+
 /*======================================
  * Applies gender restrictions according to settings. [Skotlex]
  *======================================*/
@@ -1668,6 +1688,7 @@ void itemdb_reload(void) {
 	itemdb_group->clear(itemdb_group, itemdb_group_free);
 	itemdb->clear(itemdb, itemdb_final_sub);
 	db_clear(itemdb_combo);
+	itemdb_roulette_free();
 
 	// read new data
 	itemdb_read();
@@ -1735,6 +1756,7 @@ void do_final_itemdb(void) {
 	itemdb_group->destroy(itemdb_group, itemdb_group_free);
 	itemdb->destroy(itemdb, itemdb_final_sub);
 	destroy_item_data(dummy_item);
+	itemdb_roulette_free();
 }
 
 /**

+ 1 - 1
src/map/itemdb.h

@@ -376,7 +376,7 @@ struct s_item_group_db
 };
 
 /// Struct of Roulette db
-struct {
+struct s_roulette_db {
 	unsigned short *nameid[MAX_ROULETTE_LEVEL], /// Item ID
 		           *qty[MAX_ROULETTE_LEVEL]; /// Amount of Item ID
 	int *flag[MAX_ROULETTE_LEVEL]; /// Whether the item is for loss or win