Index: src/map/pc.c =================================================================== --- src/map/pc.c (revision 17332) +++ src/map/pc.c (working copy) @@ -584,8 +584,7 @@ return 0; } -int pc_equippoint(struct map_session_data *sd,int n) -{ +int pc_equippoint(struct map_session_data *sd,int n){ int ep = 0; nullpo_ret(sd); Index: src/map/clif.c =================================================================== --- src/map/clif.c (revision 17333) +++ src/map/clif.c (working copy) @@ -16403,8 +16403,57 @@ if(sd) clif_ackworldinfo(sd); } +/// unknow usage (CZ_BLOCKING_PLAY_CANCEL) +/// 0447 +void clif_parse_blocking_playcancel(int fd,struct map_session_data *sd){ + //if(sd) + ; +} +/// req world info (CZ_CLIENT_VERSION) +/// 044A .L +void clif_parse_client_version(int fd,struct map_session_data *sd){ + //if(sd) + ; +} +#ifdef DUMP_UNKNOWN_PACKET +void DumpUnknow(int fd,TBL_PC *sd,int cmd,int packet_len){ + const char* packet_txt = "save/packet.txt"; + FILE* fp; + time_t time_server; + struct tm *datetime; + char datestr[512]; + + time(&time_server); // get time in seconds since 1/1/1970 + datetime = localtime(&time_server); // convert seconds in structure + // like sprintf, but only for date/time (Sunday, November 02 2003 15:12:52) + strftime(datestr, sizeof(datestr)-1, "%A, %B %d %Y %X.", datetime); // Server time (normal time): %A, %B %d %Y %X. + + + if( ( fp = fopen( packet_txt , "a" ) ) != NULL ) { + if( sd ) { + fprintf(fp, "Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID) at %s \n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id,datestr); + } else { + fprintf(fp, "Unknown packet 0x%04X (length %d), session #%d at %s\n", cmd, packet_len, fd,datestr); + } + WriteDump(fp, RFIFOP(fd,0), packet_len); + fprintf(fp, "\n"); + fclose(fp); + } else { + ShowError("Failed to write '%s'.\n", packet_txt); + // Dump on console instead + if( sd ) { + ShowDebug("Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID) at %s\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id,datestr); + } else { + ShowDebug("Unknown packet 0x%04X (length %d), session #%d at %s\n", cmd, packet_len, fd,datestr); + } + + ShowDump(RFIFOP(fd,0), packet_len); + } +} +#endif + /*========================================== * Main client packet processing function *------------------------------------------*/ @@ -16523,37 +16572,9 @@ packet_db[packet_ver][cmd].func(fd, sd); } #ifdef DUMP_UNKNOWN_PACKET - else { - const char* packet_txt = "save/packet.txt"; - FILE* fp; - - if( ( fp = fopen( packet_txt , "a" ) ) != NULL ) { - if( sd ) { - fprintf(fp, "Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id); - } else { - fprintf(fp, "Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd); - } - - WriteDump(fp, RFIFOP(fd,0), packet_len); - fprintf(fp, "\n"); - fclose(fp); - } else { - ShowError("Failed to write '%s'.\n", packet_txt); - - // Dump on console instead - if( sd ) { - ShowDebug("Unknown packet 0x%04X (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id); - } else { - ShowDebug("Unknown packet 0x%04X (length %d), session #%d\n", cmd, packet_len, fd); - } - - ShowDump(RFIFOP(fd,0), packet_len); - } - } + else DumpUnknow(fd,sd,cmd,packet_len); #endif - RFIFOSKIP(fd, packet_len); - }; // main loop end return 0; @@ -17021,6 +17042,8 @@ { clif_parse_MoveItem , "moveitem" }, { clif_parse_GuildInvite2 , "guildinvite2" }, { clif_parse_reqworldinfo, "reqworldinfo"}, + { clif_parse_client_version, "clientversion"}, + { clif_parse_blocking_playcancel, "booking_playcancel"}, {NULL,NULL} }; Index: src/map/searchstore.c =================================================================== --- src/map/searchstore.c (revision 17333) +++ src/map/searchstore.c (working copy) @@ -114,6 +114,7 @@ struct s_search_store_search s; searchstore_searchall_t store_searchall; time_t querytime; + DBMap *vending_db = vending_getdb(); if( !battle_config.feature_search_stores ) { return; @@ -178,7 +179,6 @@ s.card_count = card_count; s.min_price = min_price; s.max_price = max_price; - DBMap *vending_db = vending_getdb(); iter = db_iterator(vending_db); for( pl_sd = dbi_first(iter); dbi_exists(iter); pl_sd = dbi_next(iter) ) { Index: src/map/map.c =================================================================== --- src/map/map.c (revision 17333) +++ src/map/map.c (working copy) @@ -1287,7 +1287,7 @@ } /* - * clears a single bl item out of the bazooonga. + * clears a single bl item out of the map. */ void map_clearflooritem(struct block_list *bl) { struct flooritem_data* fitem = (struct flooritem_data*)bl; Index: db/packet_db.txt =================================================================== --- db/packet_db.txt (revision 17331) +++ db/packet_db.txt (working copy) @@ -1802,13 +1802,15 @@ //2013-03-20Ragexe (Judas) packet_ver: 34 +0x014f,6,guildrequestinfo,2 0x01fd,15,repairitem,2 //0x0281,-1,itemlistwindowselected,2:4:8 0x035f,6,reqclickbuyingstore,2 0x0363,6,ticksend,2 0x0365,12,searchstoreinfolistitemclick,2:6:10 0x0438,6,dropitem,2:4 -0x0447,2 +0x0447,2,booking_playcancel,0 +0x044A,6,clientversion,2 0x0844,2,cashshopopen,0 0x0848,-1,cashshopbuy,0 0x084a,2,cashshopclose,0