diff options
author | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-07-26 06:01:10 +0000 |
---|---|---|
committer | Inkfish <Inkfish@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2009-07-26 06:01:10 +0000 |
commit | e9a090774cb956ebb122698374be2a5360dd8b00 (patch) | |
tree | 62ed879dcb9e50038240a5ef8897808abf26c510 | |
parent | f9c3a2a80b9981a3102661928f5c2469e47d360c (diff) | |
download | hercules-e9a090774cb956ebb122698374be2a5360dd8b00.tar.gz hercules-e9a090774cb956ebb122698374be2a5360dd8b00.tar.bz2 hercules-e9a090774cb956ebb122698374be2a5360dd8b00.tar.xz hercules-e9a090774cb956ebb122698374be2a5360dd8b00.zip |
* Some updates of Quest Log system
- renamed table 'questlog' to 'quest' to avoid misunderstanding
- updated main.sql
- fixed the server can't load more than 16 quests
- removed the MAX_QUEST limit. tests show the client can handle more than 100 quests.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13963 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | conf/inter_athena.conf | 2 | ||||
-rw-r--r-- | sql-files/main.sql | 24 | ||||
-rw-r--r-- | sql-files/upgrade_svn_13963.sql | 1 | ||||
-rw-r--r-- | src/char_sql/char.c | 2 | ||||
-rw-r--r-- | src/map/intif.c | 2 | ||||
-rw-r--r-- | src/map/quest.c | 13 | ||||
-rw-r--r-- | src/map/quest.h | 9 |
7 files changed, 23 insertions, 30 deletions
diff --git a/conf/inter_athena.conf b/conf/inter_athena.conf index bd2176a56..bcb53bdf8 100644 --- a/conf/inter_athena.conf +++ b/conf/inter_athena.conf @@ -120,7 +120,7 @@ pet_db: pet friend_db: friends mail_db: mail auction_db: auction -quest_db: questlog +quest_db: quest // Map Database Tables item_db_db: item_db diff --git a/sql-files/main.sql b/sql-files/main.sql index 3f7fcdbd2..595743d5f 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -556,21 +556,15 @@ CREATE TABLE IF NOT EXISTS `pet` ( CREATE TABLE IF NOT EXISTS `quest` ( `char_id` int(11) unsigned NOT NULL default '0', `quest_id` int(10) unsigned NOT NULL, - `state` enum('1','0') NOT NULL default '0', - PRIMARY KEY USING BTREE (`char_id`,`quest_id`) -) ENGINE=MyISAM; - --- --- Table structure for table `quest_mob` --- - -CREATE TABLE IF NOT EXISTS `quest_objective` ( - `quest_id` int(11) unsigned NOT NULL, - `count` mediumint(8) unsigned NOT NULL default '0', - `name` varchar(255) NOT NULL default '', - `num` tinyint(3) unsigned NOT NULL, - `char_id` int(10) unsigned NOT NULL, - PRIMARY KEY USING BTREE (`quest_id`,`num`,`char_id`) + `state` enum('0','1','2') NOT NULL default '0', + `time` int(11) unsigned NOT NULL default '0', + `mob1` mediumint(9) unsigned NOT NULL default '0', + `count1` mediumint(8) unsigned NOT NULL default '0', + `mob2` mediumint(9) unsigned NOT NULL default '0', + `count2` mediumint(8) unsigned NOT NULL default '0', + `mob3` mediumint(9) unsigned NOT NULL default '0', + `count3` mediumint(8) unsigned NOT NULL default '0', + PRIMARY KEY (`char_id`,`quest_id`) ) ENGINE=MyISAM; -- diff --git a/sql-files/upgrade_svn_13963.sql b/sql-files/upgrade_svn_13963.sql new file mode 100644 index 000000000..97211ba44 --- /dev/null +++ b/sql-files/upgrade_svn_13963.sql @@ -0,0 +1 @@ +RENAME TABLE `questlog` TO `quest`;
\ No newline at end of file diff --git a/src/char_sql/char.c b/src/char_sql/char.c index fe9025935..9d699cbb5 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -58,7 +58,7 @@ char mail_db[256] = "mail"; // MAIL SYSTEM char auction_db[256] = "auction"; // Auctions System char friend_db[256] = "friends"; char hotkey_db[256] = "hotkey"; -char quest_db[256] = "questlog"; +char quest_db[256] = "quest"; //If your code editor is having problems syntax highlighting this file, uncomment this and RECOMMENT IT BEFORE COMPILING //#undef TXT_SQL_CONVERT diff --git a/src/map/intif.c b/src/map/intif.c index d077aa881..06f93f52e 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -1348,7 +1348,7 @@ int intif_parse_questlog(int fd) if(!sd) return -1; - sd->avail_quests = sd->num_quests = (RFIFOB(fd, 2)-8)/sizeof(struct quest); + sd->avail_quests = sd->num_quests = (RFIFOW(fd, 2)-8)/sizeof(struct quest); memset(&sd->quest_log, 0, sizeof(sd->quest_log)); diff --git a/src/map/quest.c b/src/map/quest.c index ccde85a07..f146ca325 100644 --- a/src/map/quest.c +++ b/src/map/quest.c @@ -33,7 +33,14 @@ #include <stdarg.h> #include <time.h> -#define MAX_QUEST 25 +struct s_quest_db { + int id; + unsigned int time; + int mob[MAX_QUEST_OBJECTIVES]; + int count[MAX_QUEST_OBJECTIVES]; + //char name[NAME_LENGTH]; +}; +struct s_quest_db quest_db[MAX_QUEST_DB]; //Send quest info on login int quest_pc_login(TBL_PC * sd) @@ -64,9 +71,9 @@ int quest_add(TBL_PC * sd, int quest_id) return -1; } - if( sd->num_quests >= MAX_QUEST_DB || sd->avail_quests >= MAX_QUEST ) + if( sd->num_quests >= MAX_QUEST_DB ) { - ShowError("quest_add: your quest log is full.(max quests: %d, max incompleted quests: %d)\n", MAX_QUEST_DB, MAX_QUEST); + ShowError("quest_add: your quest log is full.(max quests: %d)\n", MAX_QUEST_DB); return 1; } diff --git a/src/map/quest.h b/src/map/quest.h index 16870d381..ff351796c 100644 --- a/src/map/quest.h +++ b/src/map/quest.h @@ -6,15 +6,6 @@ typedef enum quest_check_type { HAVEQUEST, PLAYTIME, HUNTING } quest_check_type; -struct s_quest_db { - int id; - unsigned int time; - int mob[MAX_QUEST_OBJECTIVES]; - int count[MAX_QUEST_OBJECTIVES]; - //char name[NAME_LENGTH]; -}; -struct s_quest_db quest_db[MAX_QUEST_DB]; - int quest_pc_login(TBL_PC * sd); int quest_add(TBL_PC * sd, int quest_id); |