Pārlūkot izejas kodu

*Add full Support 2015 client
- New EquipPackets Support v6
- add missing some old packets

Thank you to @Rytech and 3Ceam http://sourceforge.net/projects/v1-3ceam/

icxbb-xx 9 gadi atpakaļ
vecāks
revīzija
d2d1fd21d3
10 mainītis faili ar 506 papildinājumiem un 201 dzēšanām
  1. 5 0
      conf/battle/monster.conf
  2. 117 22
      db/packet_db.txt
  3. 5 3
      src/char/char_clif.c
  4. 2 1
      src/common/utils.c
  5. 1 0
      src/map/battle.c
  6. 1 0
      src/map/battle.h
  7. 365 172
      src/map/clif.c
  8. 3 1
      src/map/clif.h
  9. 5 0
      src/map/homunculus.c
  10. 2 2
      src/map/mob.c

+ 5 - 0
conf/battle/monster.conf

@@ -237,3 +237,8 @@ mob_size_influence: no
 // Default (most official): mob - 220, boss - 1
 mob_icewall_walk_block: 75
 boss_icewall_walk_block: 0
+
+// Should HP bars be shown for monsters?
+// 2012-04-04aRagexeRE or higher client required.
+monster_hp_bars_info: yes
+

+ 117 - 22
db/packet_db.txt

@@ -1895,9 +1895,10 @@ packet_keys: 0x3F094C49,0x55F86C1E,0x58AA359A // [Shakto]
 0x099b,8 //maptypeproperty2
 
 // New Packets
-0x08ff,24 // ZC_EFST_SET_ENTER
-0x0984,28 // ZC_EFST_SET_ENTER2
-0x099f,22 // ZC_SKILL_ENTRY4
+0x08C8,34	// ZC_NOTIFY_ACT3
+0x08ff,24 	// ZC_EFST_SET_ENTER
+0x0984,28 	// ZC_EFST_SET_ENTER2
+0x099f,22 	// ZC_SKILL_ENTRY4
 
 //2013-05-15aRagexe (Yommy)
 packet_ver: 35
@@ -2326,7 +2327,14 @@ packet_keys: 0x631C511C,0x111C111C,0x111C111C // [Shakto]
 0x09D6,-1,npcmarketpurchase,2:4:6
 0x09D7,-1
 0x09D8,2,npcmarketclosed,0
-0x09DF,7
+
+// New Packet
+0x097A,-1		// ZC_ALL_QUEST_LIST2
+0x09F7,75	// ZC_PROPERTY_HOMUN_2
+0x09DB,-1		// ZC_NOTIFY_MOVEENTRY10
+0x09DC,-1		// ZC_NOTIFY_NEWENTRY10
+0x09DD,-1	// ZC_NOTIFY_STANDENTRY10
+0x09DF,7		// ZC_ACK_WHISPER02
 
 //2014-10-16Ragexe
 packet_ver: 50
@@ -2361,20 +2369,23 @@ packet_keys: 0x2DFF467C,0x444B37EE,0x2C1B634F // [YomRawr]
 0x0364,5,hommenu,2:4
 0x0936,36,storagepassword,0
 0x09DF,7
+
+// New packet
 0x0A00,269
 0x0A01,3,hotkeyrowshift,2
+0x0A02,4			// ZC_DRESSROOM_OPEN
 
 // Roulette System [Yommy]
-0x0A19,2,rouletteopen,0 // HEADER_CZ_REQ_OPEN_ROULETTE
-0x0A1A,23 // HEADER_ZC_ACK_OPEN_ROULETTE
-0x0A1B,2,rouletteinfo,0 // HEADER_CZ_REQ_ROULETTE_INFO
-0x0A1C,-1 // HEADER_ZC_ACK_ROULETTE_INFO
-0x0A1D,2,rouletteclose,0 // HEADER_CZ_REQ_CLOSE_ROULETTE
-0x0A1E,3 // HEADER_ZC_ACK_CLOSE_ROULETTE
-0x0A1F,2,roulettegenerate,0 // HEADER_CZ_REQ_GENERATE_ROULETTE
-0x0A20,21 // HEADER_ZC_ACK_GENERATE_ROULETTE
-0x0A21,3,rouletterecvitem,2 // HEADER_CZ_RECV_ROULETTE_ITEM
-0x0A22,5 // HEADER_ZC_RECV_ROULETTE_ITEM
+0x0A19,2,rouletteopen,0	// CZ_REQ_OPEN_ROULETTE
+0x0A1A,23 		// ZC_ACK_OPEN_ROULETTE
+0x0A1B,2,rouletteinfo,0 	// CZ_REQ_ROULETTE_INFO
+0x0A1C,-1 		// ZC_ACK_ROULETTE_INFO
+0x0A1D,2,rouletteclose,0 	// CZ_REQ_CLOSE_ROULETTE
+0x0A1E,3 			// ZC_ACK_CLOSE_ROULETTE
+0x0A1F,2,roulettegenerate,0 	// CZ_REQ_GENERATE_ROULETTE
+0x0A20,21 		// ZC_ACK_GENERATE_ROULETTE
+0x0A21,3,rouletterecvitem,2 	// CZ_RECV_ROULETTE_ITEM
+0x0A22,5 			// ZC_RECV_ROULETTE_ITEM
 
 //2014-10-22bRagexe
 packet_ver: 51
@@ -2426,14 +2437,98 @@ packet_keys: 0x290551EA,0x2B952C75,0x2D67669B // [YomRawr]
 0x0a06,6
 0x0a07,9
 0x0a08,26
-0x0a09,45
-0x0a0a,47
-0x0a0b,47
-0x0a0c,56
-0x0a0d,-1
 0x0a13,26
-0x0A18,14			// HEADER_ZC_ACCEPT_ENTER3
-0x0a24,66
+
+// New Packet
+0x0A18,14		// ZC_ACCEPT_ENTER3
+0x0A24,66
+0x0A28,3		// ZC_ACK_OPENSTORE2
+0x09FD,-1		// ZC_NOTIFY_MOVEENTRY11
+0x09FE,-1		// ZC_NOTIFY_NEWENTRY11
+0x09FF,-1		// ZC_NOTIFY_STANDENTRY11
+//0x09F8,-1		// ZC_ALL_QUEST_LIST3
+
+//2015-05-13aRagexe
+packet_ver: 52
+packet_keys: 0x62C86D09,0x75944F17,0x112C133D // [YomRawr]
+0x0369,7,actionrequest,2:6
+0x083C,10,useskilltoid,2:4:6
+0x0437,5,walktoxy,2
+0x035F,6,ticksend,2
+0x0924,5,changedir,2:4
+0x0958,6,takeitem,2
+0x0885,6,dropitem,2:4
+0x0879,8,movetokafra,2:4
+0x0864,8,movefromkafra,2:4
+0x0438,10,useskilltopos,2:4:6:8
+0x0366,90,useskilltoposinfo,2:4:6:8:10
+0x096A,6,getcharnamerequest,2
+0x0368,6,solvecharname,2
+0x0838,12,searchstoreinfolistitemclick,2:6:10
+0x0835,2,searchstoreinfonextpage,0
+0x0819,-1,searchstoreinfo,2:4:5:9:13:14:15
+0x0811,-1,reqtradebuyingstore,2:4:8:12
+0x0360,6,reqclickbuyingstore,2
+0x022D,2,reqclosebuyingstore,0
+0x0815,-1,reqopenbuyingstore,2:4:8:9:89
+0x0883,18,bookingregreq,2:4:6
+// 0x02C4,8 CZ_JOIN_BATTLE_FIELD
+0x0960,-1, itemlistwindowselected,2:4:8:12
+0x0363,19,wanttoconnection,2:6:10:14:18
+0x094A,26,partyinvite2,2
+// 0x0927,4 CZ_GANGSI_RANK
+0x08A8,26,friendslistadd,2
+0x0817,5,hommenu,2:4
+0x0923,36,storagepassword,2:4:20
+
+// RODEX Mail system
+0x09E7,3		// ZC_NOTIFY_UNREADMAIL
+0x09E8,11,dull,0	// CZ_OPEN_MAILBOX
+0x09E9,2,dull,0 	// CZ_CLOSE_MAILBOX
+0x09EA,11,dull,0	// CZ_REQ_READ_MAIL
+0x09EB,-1		// ZC_ACK_READ_MAIL
+0x09EC,-1,dull,0	// CZ_REQ_WRITE_MAIL
+0x0A2E,6,dull,0 	// CZ_REQ_CHANGE_TITLE
+0x09ED,3		// ZC_ACK_WRITE_MAIL
+0x09EE,11,dull,0	// CZ_REQ_NEXT_MAIL_LIST
+0x09EF,11,dull,0 	// CZ_REQ_REFRESH_MAIL_LIST
+0x09F0,-1		// ZC_ACK_MAIL_LIST
+0x09F1,11,dull,0	// CZ_REQ_ZENY_FROM_MAIL
+0x09F2,12	// ZC_ACK_ZENY_FROM_MAIL
+0x09F3,11,dull,0	// CZ_REQ_ITEM_FROM_MAIL
+0x09F4,12	// ZC_ACK_ITEM_FROM_MAIL
+0x09F5,11,dull,0	// CZ_REQ_DELETE_MAIL
+0x09F6,11		// ZC_ACK_DELETE_MAIL
+0x0A03,2,dull,0	// CZ_REQ_CANCEL_WRITE_MAIL
+0x0A04,6,dull,0	// CZ_REQ_ADD_ITEM_TO_MAIL
+0x0A05,53	// ZC_ACK_ADD_ITEM_TO_MAIL
+0x0A06,6,dull,0	// CZ_REQ_REMOVE_ITEM_MAIL
+0x0A07,9		// ZC_ACK_REMOVE_ITEM_MAIL
+0x0A08,26,dull,0	// CZ_REQ_OPEN_WRITE_MAIL
+0x0A12,27	// ZC_ACK_OPEN_WRITE_MAIL
+0x0A32,2		// ZC_OPEN_RODEX_THROUGH_NPC_ONLY
+
+0x0A13,26,dull,0	// CZ_CHECK_RECEIVE_CHARACTER_NAME
+0x0A14,10		// ZC_CHECK_RECEIVE_CHARACTER_NAME
+
+// New EquipPackets Support
+0x0A09,45	// ZC_ADD_EXCHANGE_ITEM3
+0x0A0A,47	// ZC_ADD_ITEM_TO_STORE3
+0x0A0B,47	// ZC_ADD_ITEM_TO_CART3
+0x0A0C,56	// ZC_ITEM_PICKUP_ACK_V6
+0x0A0D,-1	// ZC_INVENTORY_ITEMLIST_EQUIP_V6
+0x0A0F,-1		// ZC_CART_ITEMLIST_EQUIP_V6
+0x0A10,-1		// ZC_STORE_ITEMLIST_EQUIP_V6
+0x0A2D,-1	// ZC_EQUIPWIN_MICROSCOPE_V6
+
+// Title System
+0x0A2E,6,dull,0	// CZ_REQ_CHANGE_TITLE
+0x0A2F,7		// ZC_ACK_CHANGE_TITLE
+0x0A30,106	// ZC_ACK_REQNAMEALL2
+
+// Pet Evolution System
+0x09FB,-1,dull,0	// CZ_PET_EVOLUTION
+0x09FC,6		// ZC_PET_EVOLUTION_RESULT
 
 //Add new packets here
-//packet_ver: 52
+//packet_ver: 53

+ 5 - 3
src/char/char_clif.c

@@ -369,11 +369,13 @@ void chclif_mmo_char_send(int fd, struct char_session_data* sd){
 	ShowInfo("sd->version = %d\n",sd->version);
 	if(sd->version >= date2version(20130000) ){
 		chclif_mmo_send082d(fd,sd);
+		chclif_mmo_send006b(fd,sd);
 		chclif_charlist_notify(fd,sd);
-		chclif_block_character(fd,sd);
-	}
+	} else
+		chclif_mmo_send006b(fd,sd);
 	//@FIXME dump from kro doesn't show 6b transmission
-	chclif_mmo_send006b(fd,sd);
+	if(sd->version >= date2version(20060819) )
+ 		chclif_block_character(fd,sd);
 }
 
 /*

+ 2 - 1
src/common/utils.c

@@ -382,7 +382,8 @@ uint32 date2version(int date) {
 	//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 if(date < 20150513) return 51;
+	else if(date >= 20150513) return 52;
 
 	else return 30; //default
 }

+ 1 - 0
src/map/battle.c

@@ -8175,6 +8175,7 @@ static const struct _battle_data {
 	{ "homunculus_evo_intimacy_reset",      &battle_config.homunculus_evo_intimacy_reset,   1000,   0,      INT_MAX,        },
 	{ "monster_loot_search_type",           &battle_config.monster_loot_search_type,        1,      0,      1,              },
 	{ "feature.roulette",                   &battle_config.feature_roulette,                1,      0,      1,              },
+	{ "monster_hp_bars_info",                &battle_config.monster_hp_bars_info,             1,      0,      1,              },
 };
 
 #ifndef STATS_OPT_OUT

+ 1 - 0
src/map/battle.h

@@ -591,6 +591,7 @@ extern struct Battle_Config
 	int homunculus_evo_intimacy_reset;
 	int monster_loot_search_type;
 	int feature_roulette;
+	int monster_hp_bars_info;
 } battle_config;
 
 void do_init_battle(void);

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 365 - 172
src/map/clif.c


+ 3 - 1
src/map/clif.h

@@ -35,7 +35,7 @@ struct party_booking_ad_info;
 enum { // packet DB
 	MIN_PACKET_DB  = 0x064,
 	MAX_PACKET_DB  = 0xAFF,
-	MAX_PACKET_VER = 51,
+	MAX_PACKET_VER = 52,
 	MAX_PACKET_POS = 20,
 };
 
@@ -968,4 +968,6 @@ void clif_merge_item_open(struct map_session_data *sd);
 
 void clif_broadcast_obtain_special_item(const char *char_name, unsigned short nameid, unsigned short container, enum BROADCASTING_SPECIAL_ITEM_OBTAIN type, const char *srcname);
 
+void clif_dressing_room(struct map_session_data *sd, int view);
+
 #endif /* _CLIF_H_ */

+ 5 - 0
src/map/homunculus.c

@@ -514,6 +514,11 @@ int hom_levelup(struct homun_data *hd)
 
 	APPLY_HOMUN_LEVEL_STATWEIGHT();
 
+	// Needed to update skill list for mutated homunculus so unlocked skills will appear when the needed level is reached.
+	status_calc_homunculus(hd,0);
+	clif_hominfo(hd->master,hd,0);
+	clif_homskillinfoblock(hd->master);
+
 	if ( hd->master && battle_config.homunculus_show_growth ) {
 		char output[256] ;
 		sprintf(output,

+ 2 - 2
src/map/mob.c

@@ -2176,7 +2176,7 @@ void mob_damage(struct mob_data *md, struct block_list *src, int damage)
 		return;
 
 #if PACKETVER >= 20120404
-	if( !(md->status.mode&MD_BOSS) ){
+	if( !(md->status.mode&MD_BOSS) && battle_config.monster_hp_bars_info){
 		int i;
 		for(i = 0; i < DAMAGELOG_SIZE; i++){ // must show hp bar to all char who already hit the mob.
 			struct map_session_data *sd = map_charid2sd(md->dmglog[i].id);
@@ -2957,7 +2957,7 @@ void mob_heal(struct mob_data *md,unsigned int heal)
 	if (battle_config.show_mob_info&3)
 		clif_charnameack (0, &md->bl);
 #if PACKETVER >= 20120404
-	if( !(md->status.mode&MD_BOSS) ){
+	if( !(md->status.mode&MD_BOSS) && battle_config.monster_hp_bars_info){
 		int i;
 		for(i = 0; i < DAMAGELOG_SIZE; i++)// must show hp bar to all char who already hit the mob.
 			if( md->dmglog[i].id ) {

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels