diff options
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 54fd7d9a9..716eb28ac 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -7728,6 +7728,28 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data *sd) { // S 008c < WFIFOW(fd,0) = 0x8e; WFIFOSET(fd, WFIFOW(fd,2)); + // Celest + if (pc_calc_base_job2 (sd->status.class) == 23 && (sd->status.base_exp*100/pc_nextbaseexp(sd))%10 == 0) { + estr_lower(RFIFOP(fd,4)); + if (sd->state.snovice_flag == 0 && strstr(RFIFOP(fd,4), "guardian angel, can you hear my voice? ^^;")) + sd->state.snovice_flag = 1; + else if (sd->state.snovice_flag == 1) { + sprintf(message, "my name is %s, and i'm a super novice~", sd->status.name); + estr_lower(message); + if (strstr(RFIFOP(fd,4), message)) + sd->state.snovice_flag = 2; + } + else if (sd->state.snovice_flag == 2 && strstr(RFIFOP(fd,4), "please help me~ t.t")) + sd->state.snovice_flag = 3; + else if (sd->state.snovice_flag == 3) { + int i; + skill_status_change_start(&sd->bl,SkillStatusChangeTable[MO_EXPLOSIONSPIRITS],1,0,0,0,skill_get_time(MO_EXPLOSIONSPIRITS,1),0 ); + for(i=0;i<5;i++) + pc_addspiritball(sd,skill_get_time(MO_CALLSPIRITS,1),5); + sd->state.snovice_flag = 0; + } + } + if(message) free(message); if(buf) free(buf); |