* Added a message to let know the client if the mail inbox is full.

* On LoadEndAck added a flag to know if the client is allready changing map or just doing teleport/fly wing.
- This will reduce a little bit some info send to the client that only need to be updated on map change.



git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12349 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
zephyrus 2008-03-12 17:30:31 +00:00
parent 3b801b284a
commit 8d65f03635
3 changed files with 15 additions and 7 deletions

View File

@ -7958,7 +7958,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
//Login Event
npc_script_event(sd, NPCE_LOGIN);
} else {
} else if( sd->state.changemap ) {
//For some reason the client "loses" these on map-change.
clif_updatestatus(sd,SP_STR);
clif_updatestatus(sd,SP_AGI);
@ -7967,8 +7967,6 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
clif_updatestatus(sd,SP_DEX);
clif_updatestatus(sd,SP_LUK);
sd->state.using_fake_npc = 0;
//New 'night' effect by dynamix [Skotlex]
if (night_flag && map[sd->bl.m].flag.nightenabled)
{ //Display night.
@ -7980,14 +7978,16 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
sd->state.night = 0;
clif_status_load(&sd->bl, SI_NIGHT, 0);
}
}
sd->state.using_fake_npc = 0;
if(sd->npc_id)
npc_event_dequeue(sd);
if(sd->npc_id)
npc_event_dequeue(sd);
#ifndef TXT_ONLY
mail_clear(sd);
#endif
}
if(map[sd->bl.m].flag.loadevent) // Lance
npc_script_event(sd, NPCE_LOADMAP);
@ -11433,6 +11433,13 @@ void clif_Mail_refreshinbox(struct map_session_data *sd)
j++;
}
WFIFOSET(fd,len);
if( md->full )
{
char output[100];
sprintf(output, "Inbox is full (Max %d). Delete some mails.", MAIL_MAX_INBOX);
clif_disp_onlyself(sd, output, strlen(output));
}
}
/*------------------------------------------

View File

@ -549,6 +549,7 @@ struct map_session_data {
unsigned short autoloot;
unsigned short autolootid; // [Zephyrus]
unsigned noks : 3; // [Zeph Kill Steal Protection]
bool changemap;
struct guild *gmaster_flag;
} state;
struct {

View File

@ -3434,7 +3434,7 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y
m=map_mapindex2mapid(mapindex);
if (sd->mapindex != mapindex)
if( (sd->state.changemap = (sd->mapindex != mapindex)) )
{ //Misc map-changing settings
if (sd->sc.count)
{ //Cancel some map related stuff.