summaryrefslogtreecommitdiff
path: root/src/map/clif.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/clif.c')
-rw-r--r--src/map/clif.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 9c740d607..3dba530f4 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -9316,6 +9316,8 @@ void clif_hercules_chsys_mjoin(struct map_session_data *sd) {
/// Notification from the client, that it has finished map loading and is about to display player's character (CZ_NOTIFY_ACTORINIT).
/// 007d
void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
+ int i;
+
if(sd->bl.prev != NULL)
return;
@@ -9624,10 +9626,33 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd) {
skill->usave_trigger(sd);
}
-// Trigger skill effects if you appear standing on them
+ // Trigger skill effects if you appear standing on them
if(!battle_config.pc_invincible_time)
skill->unit_move(&sd->bl,timer->gettick(),1);
+ // NPC Quest / Event Icon Check [Kisuka]
+ #if PACKETVER >= 20090218
+ for(i = 0; i < map->list[sd->bl.m].npc_num; i++) {
+ TBL_NPC *nd = map->list[sd->bl.m].npc[i];
+
+ // Make sure NPC exists and is not a warp
+ if(nd != NULL)
+ {
+ // Check if NPC has quest attached to it
+ if(nd->quest.quest_id > 0)
+ if(quest->check(sd, nd->quest.quest_id, HAVEQUEST) == -1) // Check if quest is not started
+ // Check if quest is job-specific, check is user is said job class.
+ if(nd->quest.hasJob == true)
+ {
+ if(sd->class_ == nd->quest.job)
+ clif->quest_show_event(sd, &nd->bl, nd->quest.icon, 0);
+ }
+ else {
+ clif->quest_show_event(sd, &nd->bl, nd->quest.icon, 0);
+ }
+ }
+ }
+ #endif
}