From e5242b4b3842fc94a60ad2f66284162948baefeb Mon Sep 17 00:00:00 2001 From: Kevin Date: Sun, 13 Apr 2008 22:19:02 +0000 Subject: Major updates to the quest system. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12581 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char_sql/int_quest.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 src/char_sql/int_quest.c (limited to 'src/char_sql/int_quest.c') diff --git a/src/char_sql/int_quest.c b/src/char_sql/int_quest.c new file mode 100644 index 000000000..49fb1533b --- /dev/null +++ b/src/char_sql/int_quest.c @@ -0,0 +1,112 @@ +// Copyright (c) Athena Dev Teams - Licensed under GNU GPL +// For more information, see LICENCE in the main folder + +#include "../common/mmo.h" +#include "../common/malloc.h" +#include "../common/showmsg.h" +#include "../common/socket.h" +#include "../common/strlib.h" +#include "../common/sql.h" +#include "../common/timer.h" + +#include "char.h" +#include "inter.h" +#include "int_quest.h" + +#include +#include +#include + + +int mapif_parse_quest_delete(int fd) +{ + + bool success = true; + int char_id = RFIFOL(fd,2); + int quest_id = RFIFOL(fd,6); + + if ( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `quest_id` = '%d' AND `char_id` = '%d'", quest_db, quest_id, char_id) ) + { + Sql_ShowDebug(sql_handle); + success = false; + } + + if ( success && SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `quest_id` = '%d' AND `char_id` = '%d'", quest_obj_db, quest_id, char_id) ) + { + Sql_ShowDebug(sql_handle); + success = false; + } + + WFIFOHEAD(fd,11); + WFIFOW(fd,0) = 0x3862; + WFIFOL(fd,2) = char_id; + WFIFOL(fd,6) = quest_id; + WFIFOB(fd,10) = success?1:0; + WFIFOSET(fd,11); + + return 0; + +} + + +int mapif_parse_quest_add(int fd) +{ + + StringBuf buf; + bool success = true; + int char_id = RFIFOL(fd,4); + struct quest qd; + int i; + + memcpy(&qd, RFIFOP(fd,8), RFIFOW(fd,2)-8); + + StringBuf_Init(&buf); + StringBuf_Printf(&buf, "INSERT INTO `%s`(`quest_id`, `char_id`, `state`) VALUES ('%d', '%d', '%d')", quest_db, qd.quest_id, char_id, qd.state); + + + if ( SQL_ERROR == Sql_QueryStr(sql_handle, StringBuf_Value(&buf)) ) + { + Sql_ShowDebug(sql_handle); + success = false; + } + + for(i=0; i