From 092b7e47263555de36ac7c34bfc681e680b71bbf Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 20 Nov 2014 00:25:58 +0300 Subject: Extend setq/getq to using objectives to storing quest value. --- src/map/clif.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/map/clif.c (limited to 'src/map/clif.c') diff --git a/src/map/clif.c b/src/map/clif.c new file mode 100644 index 0000000..ed83b52 --- /dev/null +++ b/src/map/clif.c @@ -0,0 +1,60 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#include +#include +#include + +#include "../../../common/HPMi.h" +#include "../../../common/malloc.h" +#include "../../../common/mmo.h" +#include "../../../common/socket.h" +#include "../../../common/strlib.h" +#include "../../../map/pc.h" +#include "../../../map/quest.h" + +#include "map/clif.h" + +void eclif_quest_send_list(struct map_session_data *sd) +{ + hookStop(); + int fd = sd->fd; + int i; + int info_len = 15; + int len = sd->avail_quests * info_len + 8; + WFIFOHEAD(fd,len); + WFIFOW(fd, 0) = 0x97a; + WFIFOW(fd, 2) = len; + WFIFOL(fd, 4) = sd->avail_quests; + + for (i = 0; i < sd->avail_quests; i++ ) + { + struct quest_db *qi = quest->db(sd->quest_log[i].quest_id); + WFIFOL(fd, i * info_len + 8) = sd->quest_log[i].quest_id; + WFIFOB(fd, i * info_len + 12) = sd->quest_log[i].count[0]; // was state + WFIFOL(fd, i * info_len + 13) = sd->quest_log[i].time - qi->time; + WFIFOL(fd, i * info_len + 17) = sd->quest_log[i].time; + WFIFOW(fd, i * info_len + 21) = 0; + } + + WFIFOSET(fd, len); +} + +void eclif_quest_add(struct map_session_data *sd, struct quest *qd) +{ + hookStop(); + int fd = sd->fd; + int i; + struct mob_db *monster; + struct quest_db *qi = quest->db(qd->quest_id); + + WFIFOHEAD(fd, packet_len(0x2b3)); + WFIFOW(fd, 0) = 0x2b3; + WFIFOL(fd, 2) = qd->quest_id; + WFIFOB(fd, 6) = qd->count[0]; // was state; + WFIFOB(fd, 7) = qd->time - qi->time; + WFIFOL(fd, 11) = qd->time; + WFIFOW(fd, 15) = 0; + + WFIFOSET(fd, 107); +} -- cgit v1.2.3-70-g09d2