-Add new packets links for 2013 client (Yommy)

-Patch bugreport:7673 Revert removing of 0x6b (tmp patch)
-Fix bugreport:7669 (hotkey amo broken since r17322)
-Fix bugreport:7524 (so that items don't show up as 0% drop rate in renewal drop) (Akinari)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17339 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
glighta 2013-05-29 00:12:52 +00:00
parent 105beac9d0
commit 98e5b868e1
12 changed files with 98 additions and 35 deletions

View File

@ -1813,7 +1813,8 @@ packet_ver: 34
0x044A,6,clientversion,2
0x0844,2,cashshopopen,0
0x0848,-1,cashshopbuy,0
0x084a,2,cashshopclose,00x084b,19 //fallitem4
0x084a,2,cashshopclose,0
0x084b,19 //fallitem4
0x085a,90,useskilltoposinfo,2:4:6:8:10
0x085d,18,bookingregreq,2:4
0x0868,-1,itemlistwindowselected,2:4:8
@ -1862,5 +1863,66 @@ packet_ver: 34
0x099a,9 // take_off_equipv5
0x099b,8 //maptypeproperty2
//Add new packets here
//packet_ver: 35
//2013-05-15a Ragexe (Yommy)
packet_ver: 35
0x0369,7,actionrequest,2:6
0x083C,10,useskilltoid,2:4:6
0x0437,5,walktoxy,2
0x035F,6,ticksend,2
0x0362,5,changedir,2:4
0x08A1,6,takeitem,2
0x0944,6,dropitem,2:4
0x0887,8,movetokafra,2:4
0x08AC,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
0x0817,2,reqclosebuyingstore,0
0x0815,-1,reqopenbuyingstore,2:4:8:9:89
0x092D,18,bookingregreq,2:4
//0x08AA,8 CZ_JOIN_BATTLE_FIELD
0x0963,-1,itemlistwindowselected,2:4:8
0x0943,19,wanttoconnection,2:6:10:14:18
0x0947,26,partyinvite2,2
//0x0862,4 CZ_GANGSI_RANK
0x0962,26,friendslistadd,2
0x0931,5,hommenu,2:4
0x093E,36,storagepassword,0
//2013-05-22 Ragexe (Yommy)
packet_ver: 36
0x08A2,7,actionrequest,2:6
0x095C,10,useskilltoid,2:4:6
0x0360,5,walktoxy,2
0x07EC,6,ticksend,2
0x0925,5,changedir,2:4
0x095E,6,takeitem,2
0x089C,6,dropitem,2:4
0x08A3,8,movetokafra,2:4
0x087E,8,movefromkafra,2:4
0x0811,10,useskilltopos,2:4:6:8
0x0964,90,useskilltoposinfo,2:4:6:8:10
0x08A6,6,getcharnamerequest,2
0x0369,6,solvecharname,2
0x093E,12,searchstoreinfolistitemclick,2:6:10
0x08AA,2,searchstoreinfonextpage,0
0x095B,-1,searchstoreinfo,2:4:5:9:13:14:15
0x0952,-1,reqtradebuyingstore,2:4:8:12
0x0368,6,reqclickbuyingstore,2
0x086E,2,reqclosebuyingstore,0
0x0874,-1,reqopenbuyingstore,2:4:8:9:89
0x089B,18,bookingregreq,2:4
//0x0965,8 CZ_JOIN_BATTLE_FIELD
0x086A,-1,itemlistwindowselected,2:4:8
0x08A9,19,wanttoconnection,2:6:10:14:18
0x0950,26,partyinvite2,2
//0x08AC,4 CZ_GANGSI_RANK
0x0362,26,friendslistadd,2
0x0926,5,hommenu,2:4
0x088E,36,storagepassword,0

View File

@ -252,7 +252,7 @@ static DBData create_online_char_data(DBKey key, va_list args)
CREATE(character, struct online_char_data, 1);
character->account_id = key.i;
character->char_id = -1;
character->server = -1;
character->server = -1;
character->fd = -1;
character->waiting_disconnect = INVALID_TIMER;
return db_ptr2data(character);
@ -1999,9 +1999,10 @@ void mmo_char_send(int fd, struct char_session_data* sd){
mmo_char_send082d(fd,sd);
char_charlist_notify(fd,sd);
char_block_character(fd,sd);
#else
mmo_char_send006b(fd,sd);
#endif
//@FIXME dump from kro doesn't show 6b transmission
mmo_char_send006b(fd,sd);
//#endif
}
int char_married(int pl1, int pl2)
@ -4387,6 +4388,7 @@ int parse_char(int fd)
break;
case 0x9a1:
ShowInfo("We are here in 9a1\n");
if( RFIFOREST(fd) < 2 )
return 0;
char_parse_req_charlist(fd,sd);

View File

@ -60,8 +60,7 @@ static int guild_save_timer(int tid, unsigned int tick, int id, intptr_t data)
{
if( state == 0 && g->guild_id == last_id )
state++; //Save next guild in the list.
else
if( state == 1 && g->save_flag&GS_MASK )
else if( state == 1 && g->save_flag&GS_MASK )
{
inter_guild_tosql(g, g->save_flag&GS_MASK);
g->save_flag &= ~GS_MASK;
@ -615,8 +614,8 @@ static bool exp_guild_parse_row(char* split[], int column, int current)
int inter_guild_CharOnline(int char_id, int guild_id)
{
struct guild *g;
int i;
struct guild *g;
int i;
if (guild_id == -1) {
//Get guild_id from the database

View File

@ -47,8 +47,8 @@
// 20120307 - 2012-03-07aRagexeRE+ - 0x970
#ifndef PACKETVER
#define PACKETVER 20120410
//#define PACKETVER 20130320
//#define PACKETVER 20120410
#define PACKETVER 20130320
//#define PACKETVER 20111116
#endif

View File

@ -29,7 +29,7 @@
/// Uncomment to disable rAthena's anonymous stat report
/// We kindly ask you to consider keeping it enabled, it helps us improve rAthena.
//#define STATS_OPT_OUT
//define STATS_OPT_OUT
/// uncomment to enable query_sql script command and mysql logs to function on it's own thread
/// be aware this feature is under tests and you should use at your own risk, we however

View File

@ -3574,9 +3574,7 @@ ACMD_FUNC(partyrecall)
*
*------------------------------------------*/
void atcommand_doload();
ACMD_FUNC(reload)
{
ACMD_FUNC(reload) {
nullpo_retr(-1, sd);
if ((strlen(command) < 8 ) && (!message || !*message)) {
@ -3662,7 +3660,7 @@ ACMD_FUNC(reload)
|| prev_config.base_exp_rate != battle_config.base_exp_rate
|| prev_config.job_exp_rate != battle_config.job_exp_rate
)
{ // Exp or Drop rates changed.
{ // Exp or Drop rates changed.
mob_reload(); //Needed as well so rate changes take effect.
chrif_ragsrvinfo(battle_config.base_exp_rate, battle_config.job_exp_rate, battle_config.item_rate_common);
}
@ -6726,8 +6724,11 @@ ACMD_FUNC(mobinfo)
droprate = mob->dropitem[i].p;
#ifdef RENEWAL_DROP
if( battle_config.atcommand_mobinfo_type )
if( battle_config.atcommand_mobinfo_type ) {
droprate = droprate * pc_level_penalty_mod(sd, mob->lv, mob->status.race, mob->status.mode, 2) / 100;
if (droprate <= 0 && !battle_config.drop_rate0item)
droprate = 1;
}
#endif
if (item_data->slot)
sprintf(atcmd_output2, " - %s[%d] %02.02f%%", item_data->jname, item_data->slot, (float)droprate / 100);
@ -8446,8 +8447,7 @@ static void atcommand_commands_sub(struct map_session_data* sd, const int fd, At
slen = strlen(cmd->command);
// flush the text buffer if this command won't fit into it
if ( slen + cur - line_buff >= CHATBOX_SIZE )
{
if (slen + cur - line_buff >= CHATBOX_SIZE) {
clif_displaymessage(fd,line_buff);
cur = line_buff;
memset(line_buff,' ',CHATBOX_SIZE);

View File

@ -5761,7 +5761,7 @@ static const struct _battle_data {
{ "cell_stack_limit", &battle_config.cell_stack_limit, 1, 1, 255, },
{ "dancing_weaponswitch_fix", &battle_config.dancing_weaponswitch_fix, 1, 0, 1, },
// eAthena additions
// eAthena additions
{ "item_logarithmic_drops", &battle_config.logarithmic_drops, 0, 0, 1, },
{ "item_drop_common_min", &battle_config.item_drop_common_min, 1, 1, 10000, },
{ "item_drop_common_max", &battle_config.item_drop_common_max, 10000, 1, 10000, },

View File

@ -2272,7 +2272,7 @@ void clif_item_sub_v5(unsigned char *buf, int n, int idx, struct item *i, struct
}
else { //normal 24B
WBUFW(buf,n+5)=i->amount;
WBUFL(buf,n+7)= i->equip; //wear state
WBUFL(buf,n+7)= id->equip; //wear state
clif_addcards(WBUFP(buf, n+11), i); //EQUIPSLOTINFO 8B
WBUFL(buf,n+19) = i->expire_time;
//V5_ITEM_flag
@ -2298,20 +2298,20 @@ void clif_item_sub(unsigned char *buf, int n, int idx, struct item *i, struct it
WBUFB(buf,n+10)=i->attribute;
WBUFB(buf,n+11)=i->refine;
clif_addcards(WBUFP(buf, n+12), i); //8B
#if PACKETVER >= 20071002
#if PACKETVER >= 20071002
WBUFL(buf,n+20)=i->expire_time;
WBUFW(buf,n+24)=0; //Unknown
#endif
#if PACKETVER >= 20100629
#endif
#if PACKETVER >= 20100629
WBUFW(buf,n+26)= (id->equip&EQP_VISIBLE)?id->look:0;
#endif
#endif
} else { //Stackable item. 22.B
WBUFW(buf,n+6)=i->amount;
WBUFW(buf,n+8)=(equip == -2 && id->equip == EQP_AMMO)?i->equip:0;
WBUFW(buf,n+8)=(equip == -2 && id->equip == EQP_AMMO)?id->equip:0;
clif_addcards(WBUFP(buf, n+10), i); //8B
#if PACKETVER >= 20071002
#if PACKETVER >= 20071002
WBUFL(buf,n+18)=i->expire_time;
#endif
#endif
}
#endif
}

View File

@ -35,7 +35,7 @@ struct party_booking_ad_info;
enum
{// packet DB
MAX_PACKET_DB = 0xf00,
MAX_PACKET_VER = 34,
MAX_PACKET_VER = 36,
MAX_PACKET_POS = 20,
};

View File

@ -2160,12 +2160,12 @@ int intif_parse(int fd)
{
int packet_len, cmd;
cmd = RFIFOW(fd,0);
// Verify ID of the packet
// Verify ID of the packet
if(cmd<0x3800 || cmd>=0x3800+(sizeof(packet_len_table)/sizeof(packet_len_table[0])) ||
packet_len_table[cmd-0x3800]==0){
return 0;
}
// Check the length of the packet
// Check the length of the packet
packet_len = packet_len_table[cmd-0x3800];
if(packet_len==-1){
if(RFIFOREST(fd)<4)
@ -2175,7 +2175,7 @@ int intif_parse(int fd)
if((int)RFIFOREST(fd)<packet_len){
return 2;
}
// Processing branch
// Processing branch
switch(cmd){
case 0x3800:
if (RFIFOL(fd,4) == 0xFF000000) //Normal announce.

View File

@ -368,7 +368,7 @@ typedef enum sc_type {
SC_ABUNDANCE,
/**
* Arch Bishop
**/
**/
SC_ADORAMUS,
SC_EPICLESIS,//325
SC_ORATIO,

View File

@ -224,7 +224,7 @@ int storage_storageadd(struct map_session_data* sd, int index, int amount)
return 0; // No item on that spot
if( amount < 1 || amount > sd->status.inventory[index].amount )
return 0;
return 0;
if( storage_additem(sd,&sd->status.inventory[index],amount) == 0 )
pc_delitem(sd,index,amount,0,4,LOG_TYPE_STORAGE);