*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/
This commit is contained in:
icxbb-xx 2015-11-21 21:17:08 +07:00
parent ad3a74bb8f
commit d2d1fd21d3
10 changed files with 516 additions and 211 deletions

View File

@ -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

View File

@ -1895,6 +1895,7 @@ packet_keys: 0x3F094C49,0x55F86C1E,0x58AA359A // [Shakto]
0x099b,8 //maptypeproperty2
// New Packets
0x08C8,34 // ZC_NOTIFY_ACT3
0x08ff,24 // ZC_EFST_SET_ENTER
0x0984,28 // ZC_EFST_SET_ENTER2
0x099f,22 // ZC_SKILL_ENTRY4
@ -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

View File

@ -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_charlist_notify(fd,sd);
chclif_block_character(fd,sd);
}
//@FIXME dump from kro doesn't show 6b transmission
chclif_mmo_send006b(fd,sd);
chclif_charlist_notify(fd,sd);
} else
chclif_mmo_send006b(fd,sd);
//@FIXME dump from kro doesn't show 6b transmission
if(sd->version >= date2version(20060819) )
chclif_block_character(fd,sd);
}
/*

View File

@ -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
}

View File

@ -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

View File

@ -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);

File diff suppressed because it is too large Load Diff

View File

@ -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_ */

View File

@ -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,

View File

@ -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 ) {