Fixed crash with supernovices with 100% base exp
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@511 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
7659b79f23
commit
71697f98c5
@ -1,6 +1,8 @@
|
|||||||
Date Added
|
Date Added
|
||||||
12/8
|
12/8
|
||||||
|
* Fixed crash with supernovices with 100% base exp [celest]
|
||||||
* Updated the readme a little. [Mass Zero]
|
* Updated the readme a little. [Mass Zero]
|
||||||
|
|
||||||
12/7
|
12/7
|
||||||
* Added GUILDCACHE #define to int_guild.c for testing performance
|
* Added GUILDCACHE #define to int_guild.c for testing performance
|
||||||
effects [MouseJstr]
|
effects [MouseJstr]
|
||||||
|
@ -7729,24 +7729,27 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data *sd) { // S 008c <
|
|||||||
WFIFOSET(fd, WFIFOW(fd,2));
|
WFIFOSET(fd, WFIFOW(fd,2));
|
||||||
|
|
||||||
// Celest
|
// Celest
|
||||||
if (pc_calc_base_job2 (sd->status.class) == 23 && (sd->status.base_exp*100/pc_nextbaseexp(sd))%10 == 0) {
|
if (pc_calc_base_job2 (sd->status.class) == 23 ) {
|
||||||
estr_lower(RFIFOP(fd,4));
|
int next = pc_nextbaseexp(sd)>0 ? pc_nextbaseexp(sd) : sd->status.base_exp;
|
||||||
if (sd->state.snovice_flag == 0 && strstr(RFIFOP(fd,4), "guardian angel, can you hear my voice? ^^;"))
|
if ((sd->status.base_exp*100/next)%10 == 0) {
|
||||||
sd->state.snovice_flag = 1;
|
estr_lower(RFIFOP(fd,4));
|
||||||
else if (sd->state.snovice_flag == 1) {
|
if (sd->state.snovice_flag == 0 && strstr(RFIFOP(fd,4), "guardian angel, can you hear my voice? ^^;"))
|
||||||
sprintf(message, "my name is %s, and i'm a super novice~", sd->status.name);
|
sd->state.snovice_flag = 1;
|
||||||
estr_lower(message);
|
else if (sd->state.snovice_flag == 1) {
|
||||||
if (strstr(RFIFOP(fd,4), message))
|
sprintf(message, "my name is %s, and i'm a super novice~", sd->status.name);
|
||||||
sd->state.snovice_flag = 2;
|
estr_lower(message);
|
||||||
}
|
if (strstr(RFIFOP(fd,4), message))
|
||||||
else if (sd->state.snovice_flag == 2 && strstr(RFIFOP(fd,4), "please help me~ t.t"))
|
sd->state.snovice_flag = 2;
|
||||||
sd->state.snovice_flag = 3;
|
}
|
||||||
else if (sd->state.snovice_flag == 3) {
|
else if (sd->state.snovice_flag == 2 && strstr(RFIFOP(fd,4), "please help me~ t.t"))
|
||||||
int i;
|
sd->state.snovice_flag = 3;
|
||||||
skill_status_change_start(&sd->bl,SkillStatusChangeTable[MO_EXPLOSIONSPIRITS],1,0,0,0,skill_get_time(MO_EXPLOSIONSPIRITS,1),0 );
|
else if (sd->state.snovice_flag == 3) {
|
||||||
for(i=0;i<5;i++)
|
int i;
|
||||||
pc_addspiritball(sd,skill_get_time(MO_CALLSPIRITS,1),5);
|
skill_status_change_start(&sd->bl,SkillStatusChangeTable[MO_EXPLOSIONSPIRITS],1,0,0,0,skill_get_time(MO_EXPLOSIONSPIRITS,1),0 );
|
||||||
sd->state.snovice_flag = 0;
|
for(i=0;i<5;i++)
|
||||||
|
pc_addspiritball(sd,skill_get_time(MO_CALLSPIRITS,1),5);
|
||||||
|
sd->state.snovice_flag = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5433,8 +5433,12 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
|
|||||||
pc_calcstatus(sd,0);
|
pc_calcstatus(sd,0);
|
||||||
|
|
||||||
// activate Steel body if a super novice dies at 99+% exp [celest]
|
// activate Steel body if a super novice dies at 99+% exp [celest]
|
||||||
if (s_class.job == 23 && (i=sd->status.base_exp*1000/pc_nextbaseexp(sd))>=990 && i<=1000)
|
if (s_class.job == 23) {
|
||||||
sd->state.snovice_flag = 4;
|
if ((i=pc_nextbaseexp(sd))<=0)
|
||||||
|
i=sd->status.base_exp;
|
||||||
|
if ((j=sd->status.base_exp*1000/i)>=990 && j<=1000)
|
||||||
|
sd->state.snovice_flag = 4;
|
||||||
|
}
|
||||||
|
|
||||||
for(i=0;i<5;i++)
|
for(i=0;i<5;i++)
|
||||||
if(sd->dev.val1[i]){
|
if(sd->dev.val1[i]){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user