- The last bug in Adoption system.
- Fixed a bug on trade, if you received a trade without accept it do logout... the other player cannot trade anymore 'til restart. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12396 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
e47466df40
commit
2c8b8a0715
@ -12043,7 +12043,7 @@ void clif_Adopt_request(struct map_session_data *sd, struct map_session_data *sr
|
|||||||
{
|
{
|
||||||
int fd = sd->fd;
|
int fd = sd->fd;
|
||||||
|
|
||||||
WFIFOSET(fd,34);
|
WFIFOHEAD(fd,34);
|
||||||
WFIFOW(fd,0) = 0x01f6;
|
WFIFOW(fd,0) = 0x01f6;
|
||||||
WFIFOL(fd,2) = src->status.account_id;
|
WFIFOL(fd,2) = src->status.account_id;
|
||||||
WFIFOL(fd,6) = p_id;
|
WFIFOL(fd,6) = p_id;
|
||||||
@ -12055,7 +12055,7 @@ void clif_parse_Adopt_request(int fd, struct map_session_data *sd)
|
|||||||
{
|
{
|
||||||
struct map_session_data *tsd = map_id2sd(RFIFOL(fd,2)), *p_sd = map_charid2sd(sd->status.partner_id);
|
struct map_session_data *tsd = map_id2sd(RFIFOL(fd,2)), *p_sd = map_charid2sd(sd->status.partner_id);
|
||||||
|
|
||||||
if( pc_can_Adopt(sd, tsd, p_sd) )
|
if( pc_can_Adopt(sd, p_sd, tsd) )
|
||||||
{
|
{
|
||||||
tsd->adopt_invite = sd->status.account_id;
|
tsd->adopt_invite = sd->status.account_id;
|
||||||
clif_Adopt_request(tsd, sd, p_sd->status.account_id);
|
clif_Adopt_request(tsd, sd, p_sd->status.account_id);
|
||||||
|
@ -645,7 +645,7 @@ bool pc_adoption(struct map_session_data *p1_sd, struct map_session_data *p2_sd,
|
|||||||
|
|
||||||
// Parents Skills
|
// Parents Skills
|
||||||
pc_skill(p1_sd, WE_CALLBABY, 1, 0);
|
pc_skill(p1_sd, WE_CALLBABY, 1, 0);
|
||||||
pc_skill(p1_sd, WE_CALLBABY, 1, 0);
|
pc_skill(p2_sd, WE_CALLBABY, 1, 0);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -443,8 +443,14 @@ void trade_tradecancel(struct map_session_data *sd)
|
|||||||
struct map_session_data *target_sd;
|
struct map_session_data *target_sd;
|
||||||
int trade_i;
|
int trade_i;
|
||||||
|
|
||||||
|
target_sd = map_id2sd(sd->trade_partner);
|
||||||
|
|
||||||
if(!sd->state.trading)
|
if(!sd->state.trading)
|
||||||
|
{ // Not trade acepted
|
||||||
|
if( target_sd ) target_sd->trade_partner = 0;
|
||||||
|
sd->trade_partner = 0;
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
for(trade_i = 0; trade_i < 10; trade_i++) { // give items back (only virtual)
|
for(trade_i = 0; trade_i < 10; trade_i++) { // give items back (only virtual)
|
||||||
if (!sd->deal.item[trade_i].amount)
|
if (!sd->deal.item[trade_i].amount)
|
||||||
@ -458,7 +464,6 @@ void trade_tradecancel(struct map_session_data *sd)
|
|||||||
sd->deal.zeny = 0;
|
sd->deal.zeny = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
target_sd = map_id2sd(sd->trade_partner);
|
|
||||||
sd->state.deal_locked = 0;
|
sd->state.deal_locked = 0;
|
||||||
sd->state.trading = 0;
|
sd->state.trading = 0;
|
||||||
sd->trade_partner = 0;
|
sd->trade_partner = 0;
|
||||||
|
@ -1672,6 +1672,7 @@ int unit_remove_map(struct block_list *bl, int clrtype)
|
|||||||
sd->menuskill_id = sd->menuskill_val = 0;
|
sd->menuskill_id = sd->menuskill_val = 0;
|
||||||
|
|
||||||
sd->npc_shopid = 0;
|
sd->npc_shopid = 0;
|
||||||
|
sd->adopt_invite = 0;
|
||||||
|
|
||||||
if(sd->pvp_timer!=-1) {
|
if(sd->pvp_timer!=-1) {
|
||||||
delete_timer(sd->pvp_timer,pc_calc_pvprank_timer);
|
delete_timer(sd->pvp_timer,pc_calc_pvprank_timer);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user