diff options
author | amber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-04-04 19:32:34 +0000 |
---|---|---|
committer | amber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-04-04 19:32:34 +0000 |
commit | 6acbd82fb5b77315853f42a9a31b7439a7e58bb9 (patch) | |
tree | 343173d795a6a7acfe990a8c0fe91b9fa3492296 | |
parent | 26bf6b6dacd8029a1ed48255518a78dfb11b4ce4 (diff) | |
download | hercules-6acbd82fb5b77315853f42a9a31b7439a7e58bb9.tar.gz hercules-6acbd82fb5b77315853f42a9a31b7439a7e58bb9.tar.bz2 hercules-6acbd82fb5b77315853f42a9a31b7439a7e58bb9.tar.xz hercules-6acbd82fb5b77315853f42a9a31b7439a7e58bb9.zip |
Fixes for logging trades [MouseJstr]
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1407 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | Changelog-SVN.txt | 1 | ||||
-rw-r--r-- | README.win32 | 32 | ||||
-rw-r--r-- | src/common/showmsg.h | 14 | ||||
-rw-r--r-- | src/map/log.c | 204 | ||||
-rw-r--r-- | src/map/log.h | 7 | ||||
-rw-r--r-- | src/map/storage.c | 14 | ||||
-rw-r--r-- | src/map/trade.c | 10 |
7 files changed, 210 insertions, 72 deletions
diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt index 34cbde33b..5af79523c 100644 --- a/Changelog-SVN.txt +++ b/Changelog-SVN.txt @@ -2,6 +2,7 @@ Date Added 04/04 + * Some work on re-enabling trade and storage logging [MouseJstr] * Updated showmsg with Shinomori's improvements [celest] * Fix showmsg for Visual Studio [MouseJstr] * Update base code for the UPNP plugin loading [celest] diff --git a/README.win32 b/README.win32 new file mode 100644 index 000000000..16a8c9524 --- /dev/null +++ b/README.win32 @@ -0,0 +1,32 @@ + Building eAthena under win32
+
+There are currently two ways to build eAthena. The first and oldest way is by using cygwin (www.cygwin.org). This was the only way until the svn 1370 timeframe. The second way is by using Visual Studio .NET 2003.
+
+Building using cygwin:
+
+ 1) delete every copy of cygwin1.dll on your system
+ 2) Go to www.cygwin.com and run the setup.exe.
+ 3) install gcc, make, bash, g++, and gdb. Basically install
+ all developer tools if possible. If later you find you are
+ missing something, re-run the setup and install that
+ 4) make sure the ../bin of wherever you installed cygwin to is in your
+ path. ie, if you put cygwin in C:/cygwin then add c:/cygwin/bin
+ to your path
+ 5) return to this directory and type "make txt"
+
+Building using Visual Studio .NET 2003
+
+ 1) Make sure you have the platform SDK installed when you install
+ this. If you don't have it, you can go to microsoft and download a
+ copy.
+ 2) open the eAthena.sln file
+ 3) Build the components you wish..
+
+ if you wish mysql support (http://dev.mysql.com/), grab a windows
+ install of mysql
+
+ http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.10a-win32.zip/from/pick#mirrors
+
+ and install it into the default location on the C drive. This will
+ best match how I set up the solutions/project files
+
diff --git a/src/common/showmsg.h b/src/common/showmsg.h index 5b169dc82..3461369c3 100644 --- a/src/common/showmsg.h +++ b/src/common/showmsg.h @@ -4,6 +4,19 @@ //davidsiaw, 'lookee' here! #define SHOW_DEBUG_MSG 1 +#ifdef _WIN32 +#define CL_RESET "" +#define CL_NORMAL CL_RESET +#define CL_NONE CL_RESET +#define CL_WHITE "" +#define CL_GRAY "" +#define CL_RED "" +#define CL_GREEN "" +#define CL_YELLOW "" +#define CL_BLUE "" +#define CL_MAGENTA "" +#define CL_CYAN "" +#else #define CL_RESET "\033[0;0m" #define CL_NORMAL CL_RESET #define CL_NONE CL_RESET @@ -15,6 +28,7 @@ #define CL_BLUE "\033[1;34m" #define CL_MAGENTA "\033[1;35m" #define CL_CYAN "\033[1;36m" +#endif extern char tmp_output[1024]; diff --git a/src/map/log.c b/src/map/log.c index 417d2dcbc..833fb8b16 100644 --- a/src/map/log.c +++ b/src/map/log.c @@ -56,15 +56,15 @@ int should_log_item(int nameid) { int log_branch(struct map_session_data *sd) { - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100]; - #endif +#endif FILE *logfp; if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`branch_date`, `account_id`, `char_id`, `char_name`, `map`) VALUES (NOW(), '%d', '%d', '%s', '%s')", @@ -72,16 +72,16 @@ int log_branch(struct map_session_data *sd) if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_branch,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%s%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, sd->mapname, RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } @@ -98,14 +98,14 @@ int log_drop(struct map_session_data *sd, int monster_id, int *log_drop) } if (flag==0) return 0; //we skip logging this items set - they doesn't met our logging conditions [Lupus] - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`drop_date`, `kill_char_id`, `monster_id`, `item1`, `item2`, `item3`, `item4`, `item5`, `item6`, `item7`, `item8`, `item9`, `itemCard`, `map`) VALUES (NOW(), '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s') ", log_config.log_drop_db, sd->status.char_id, monster_id, log_drop[0], log_drop[1], log_drop[2], log_drop[3], log_drop[4], log_drop[5], log_drop[6], log_drop[7], log_drop[8], log_drop[9], sd->mapname); if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_drop,"a+")) != NULL) { @@ -115,9 +115,9 @@ int log_drop(struct map_session_data *sd, int monster_id, int *log_drop) fprintf(logfp,"%s - %s[%d:%d]\t%d\t%d,%d,%d,%d,%d,%d,%d,%d,%d,%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, monster_id, log_drop[0], log_drop[1], log_drop[2], log_drop[3], log_drop[4], log_drop[5], log_drop[6], log_drop[7], log_drop[8], log_drop[9], RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 1; //Logged } @@ -128,37 +128,37 @@ int log_mvpdrop(struct map_session_data *sd, int monster_id, int *log_mvp) if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`mvp_date`, `kill_char_id`, `monster_id`, `prize`, `mvpexp`, `map`) VALUES (NOW(), '%d', '%d', '%d', '%d', '%s') ", log_config.log_mvpdrop_db, sd->status.char_id, monster_id, log_mvp[0], log_mvp[1], sd->mapname); if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_mvpdrop,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d\t%d,%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, monster_id, log_mvp[0], log_mvp[1], RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } int log_present(struct map_session_data *sd, int source_type, int nameid) { FILE *logfp; - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100]; - #endif +#endif if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`present_date`, `src_id`, `account_id`, `char_id`, `char_name`, `nameid`, `map`) VALUES (NOW(), '%d', '%d', '%d', '%s', '%d', '%s') ", @@ -166,30 +166,30 @@ int log_present(struct map_session_data *sd, int source_type, int nameid) if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_present,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d\t%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, source_type, nameid, RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } int log_produce(struct map_session_data *sd, int nameid, int slot1, int slot2, int slot3, int success) { FILE *logfp; - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100]; - #endif +#endif if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`produce_date`, `account_id`, `char_id`, `char_name`, `nameid`, `slot1`, `slot2`, `slot3`, `map`, `success`) VALUES (NOW(), '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%s', '%d') ", @@ -197,16 +197,16 @@ int log_produce(struct map_session_data *sd, int nameid, int slot1, int slot2, i if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_produce,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d\t%d,%d,%d\t%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, nameid, slot1, slot2, slot3, success, RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } @@ -216,9 +216,9 @@ int log_refine(struct map_session_data *sd, int n, int success) int log_card[4]; int item_level; int i; - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100]; - #endif +#endif if(log_config.enable_logs <= 0) return 0; @@ -233,7 +233,7 @@ int log_refine(struct map_session_data *sd, int n, int success) for(i=0;i<4;i++) log_card[i] = sd->status.inventory[n].card[i]; - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`refine_date`, `account_id`, `char_id`, `char_name`, `nameid`, `refine`, `card0`, `card1`, `card2`, `card3`, `map`, `success`, `item_level`) VALUES (NOW(), '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%s', '%d', '%d')", @@ -241,27 +241,89 @@ int log_refine(struct map_session_data *sd, int n, int success) if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_refine,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d,%d\t%d%d%d%d\t%d,%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, sd->status.inventory[n].nameid, sd->status.inventory[n].refine, log_card[0], log_card[1], log_card[2], log_card[3], success, item_level, RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } +int log_tostorage(struct map_session_data *sd,int n, int guild) +{ + FILE *logfp; + + if(log_config.enable_logs <= 0 || log_config.storage == 0 || log_config.log_storage[0] == '\0') + return 0; + + nullpo_retr(0, sd); + + if(sd->status.inventory[n].nameid==0 || sd->inventory_data[n] == NULL) + return 1; + + if(sd->status.inventory[n].amount < 0) + return 1; + + if((logfp=fopen(log_config.log_trade,"a+")) != NULL) { + time(&curtime); + strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); + fprintf(logfp,"%s - to %s: %s[%d:%d]\t%d\t%d\t%d\t%d,%d,%d,%d%s", timestring, guild ? "guild_storage": "storage", sd->status.name, sd->status.account_id, sd->status.char_id, + sd->status.inventory[n].nameid, + sd->status.inventory[n].amount, + sd->status.inventory[n].refine, + sd->status.inventory[n].card[0], + sd->status.inventory[n].card[1], + sd->status.inventory[n].card[2], + sd->status.inventory[n].card[3], RETCODE); + fclose(logfp); + } + return 0; +} + +int log_fromstorage(struct map_session_data *sd,int n, int guild) +{ + FILE *logfp; + + if(log_config.enable_logs <= 0 || log_config.storage == 0 || log_config.log_storage[0] == '\0') + return 0; + + nullpo_retr(0, sd); + + if(sd->status.inventory[n].nameid==0 || sd->inventory_data[n] == NULL) + return 1; + + if(sd->status.inventory[n].amount < 0) + return 1; + + if((logfp=fopen(log_config.log_trade,"a+")) != NULL) { + time(&curtime); + strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); + fprintf(logfp,"%s - from %s: %s[%d:%d]\t%d\t%d\t%d\t%d,%d,%d,%d%s", timestring, guild ? "guild_storage": "storage", sd->status.name, sd->status.account_id, sd->status.char_id, + sd->status.inventory[n].nameid, + sd->status.inventory[n].amount, + sd->status.inventory[n].refine, + sd->status.inventory[n].card[0], + sd->status.inventory[n].card[1], + sd->status.inventory[n].card[2], + sd->status.inventory[n].card[3], RETCODE); + fclose(logfp); + } + return 0; +} + int log_trade(struct map_session_data *sd, struct map_session_data *target_sd, int n,int amount) { FILE *logfp; int log_nameid, log_amount, log_refine, log_card[4]; int i; - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100],t_name2[100]; - #endif +#endif if(log_config.enable_logs <= 0) return 0; @@ -281,7 +343,7 @@ int log_trade(struct map_session_data *sd, struct map_session_data *target_sd, i for(i=0;i<4;i++) log_card[i] = sd->status.inventory[n].card[i]; - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`trade_date`, `src_account_id`, `src_char_id`, `src_char_name`, `des_account_id`, `des_char_id`, `des_char_name`, `nameid`, `amount`, `refine`, `card0`, `card1`, `card2`, `card3`, `map`) VALUES (NOW(), '%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s')", @@ -289,16 +351,16 @@ int log_trade(struct map_session_data *sd, struct map_session_data *target_sd, i if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_trade,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%s[%d:%d]\t%d\t%d\t%d\t%d,%d,%d,%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, target_sd->status.name, target_sd->status.account_id, target_sd->status.char_id, log_nameid, log_amount, log_refine, log_card[0], log_card[1], log_card[2], log_card[3], RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } @@ -307,9 +369,9 @@ int log_vend(struct map_session_data *sd,struct map_session_data *vsd,int n,int FILE *logfp; int log_nameid, log_amount, log_refine, log_card[4]; int i; - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100],t_name2[100]; - #endif +#endif if(log_config.enable_logs <= 0) return 0; @@ -326,7 +388,7 @@ int log_vend(struct map_session_data *sd,struct map_session_data *vsd,int n,int for(i=0;i<4;i++) log_card[i] = sd->status.inventory[n].card[i]; - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`vend_date`, `vend_account_id`, `vend_char_id`, `vend_char_name`, `buy_account_id`, `buy_char_id`, `buy_char_name`, `nameid`, `amount`, `refine`, `card0`, `card1`, `card2`, `card3`, `map`, `zeny`) VALUES (NOW(), '%d', '%d', '%s', '%d', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%s', '%d')", @@ -334,30 +396,30 @@ int log_vend(struct map_session_data *sd,struct map_session_data *vsd,int n,int if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_vend,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%s[%d:%d]\t%d\t%d\t%d\t%d,%d,%d,%d\t%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, vsd->status.name, vsd->status.account_id, vsd->status.char_id, log_nameid, log_amount, log_refine, log_card[0], log_card[1], log_card[2], log_card[3], zeny, RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } int log_zeny(struct map_session_data *sd, struct map_session_data *target_sd,int amount) { FILE *logfp; - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100],t_name2[100]; - #endif +#endif if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql,"INSERT DELAYED INTO `%s` (`trade_date`, `src_account_id`, `src_char_id`, `src_char_name`, `des_account_id`, `des_char_id`, `des_char_name`, `map`, `zeny`) VALUES (NOW(), '%d', '%d', '%s', '%d', '%d', '%s', '%s', '%d')", @@ -365,30 +427,30 @@ int log_zeny(struct map_session_data *sd, struct map_session_data *target_sd,int if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_trade,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d]\t%s[%d]\t%d\t%s", timestring, sd->status.name, sd->status.account_id, target_sd->status.name, target_sd->status.account_id, sd->deal_zeny, RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } int log_atcommand(struct map_session_data *sd, const char *message) { FILE *logfp; - #ifndef TXT_ONLY +#ifndef TXT_ONLY char t_name[100]; - #endif +#endif if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`atcommand_date`, `account_id`, `char_id`, `char_name`, `map`, `command`) VALUES(NOW(), '%d', '%d', '%s', '%s', '%s') ", @@ -396,16 +458,16 @@ int log_atcommand(struct map_session_data *sd, const char *message) if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_gm,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d]: %s%s",timestring,sd->status.name,sd->status.account_id,message,RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } @@ -419,7 +481,7 @@ int log_npc(struct map_session_data *sd, const char *message) if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); - #ifndef TXT_ONLY +#ifndef TXT_ONLY if(log_config.sql_logs > 0) { sprintf(tmp_sql, "INSERT DELAYED INTO `%s` (`npc_date`, `account_id`, `char_id`, `char_name`, `map`, `mes`) VALUES(NOW(), '%d', '%d', '%s', '%s', '%s') ", @@ -427,16 +489,16 @@ int log_npc(struct map_session_data *sd, const char *message) if(mysql_query(&mmysql_handle, tmp_sql)) printf("DB server Error - %s\n",mysql_error(&mmysql_handle)); } else { - #endif +#endif if((logfp=fopen(log_config.log_npc,"a+")) != NULL) { time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d]: %s%s",timestring,sd->status.name,sd->status.account_id,message,RETCODE); fclose(logfp); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY } - #endif +#endif return 0; } @@ -445,6 +507,8 @@ int log_config_read(char *cfgName) char line[1024], w1[1024], w2[1024]; FILE *fp; + memset(&log_config, 0, sizeof(log_config)); + if((fp = fopen(cfgName, "r")) == NULL) { printf("Log configuration file not found at: %s\n", cfgName); @@ -510,6 +574,8 @@ int log_config_read(char *cfgName) log_config.refine = (atoi(w2)); } else if(strcmpi(w1,"log_trade") == 0) { log_config.trade = (atoi(w2)); + } else if(strcmpi(w1,"log_storage") == 0) { + log_config.storage = (atoi(w2)); } else if(strcmpi(w1,"log_vend") == 0) { log_config.vend = (atoi(w2)); } else if(strcmpi(w1,"log_zeny") == 0) { @@ -523,7 +589,7 @@ int log_config_read(char *cfgName) log_config.npc = (atoi(w2)); } - #ifndef TXT_ONLY +#ifndef TXT_ONLY else if(strcmpi(w1, "log_branch_db") == 0) { strcpy(log_config.log_branch_db, w2); if(log_config.branch == 1) @@ -557,6 +623,13 @@ int log_config_read(char *cfgName) printf("and Zeny Trades"); printf(" to table `%s`\n", w2); } +// } else if(strcmpi(w1, "log_storage_db") == 0) { +// strcpy(log_config.log_storage_db, w2); +// if(log_config.storage == 1) +// { +// printf("Logging Item Storages"); +// printf(" to table `%s`\n", w2); +// } } else if(strcmpi(w1, "log_vend_db") == 0) { strcpy(log_config.log_vend_db, w2); if(log_config.vend == 1) @@ -570,7 +643,7 @@ int log_config_read(char *cfgName) if(log_config.npc > 0) printf("Logging NPC 'logmes' to table `%s`\n", w2); } - #endif +#endif else if(strcmpi(w1, "log_branch_file") == 0) { strcpy(log_config.log_branch, w2); @@ -605,6 +678,13 @@ int log_config_read(char *cfgName) printf("and Zeny Trades"); printf(" to file `%s`.txt\n", w2); } + } else if(strcmpi(w1, "log_storage_file") == 0) { + strcpy(log_config.log_storage, w2); + if(log_config.storage > 0 && log_config.sql_logs < 1) + { + printf("Logging Item Storages"); + printf(" to file `%s`.txt\n", w2); + } } else if(strcmpi(w1, "log_vend_file") == 0) { strcpy(log_config.log_vend, w2); if(log_config.vend > 0 && log_config.sql_logs < 1) diff --git a/src/map/log.h b/src/map/log.h index 1c72d3f96..f0635b826 100644 --- a/src/map/log.h +++ b/src/map/log.h @@ -16,6 +16,9 @@ int log_present(struct map_session_data *sd, int source_type, int nameid); int log_produce(struct map_session_data *sd, int nameid, int slot1, int slot2, int slot3, int success); int log_refine(struct map_session_data *sd, int n, int success); int log_trade(struct map_session_data *sd,struct map_session_data *target_sd,int n,int amount); +int log_tostorage(struct map_session_data *sd,int n, int guild); +int log_fromstorage(struct map_session_data *sd,int n, int guild); + int log_vend(struct map_session_data *sd,struct map_session_data *vsd,int n,int amount,int zeny); int log_zeny(struct map_session_data *sd, struct map_session_data *target_sd,int amount); int log_atcommand(struct map_session_data *sd, const char *message); @@ -27,8 +30,8 @@ extern struct Log_Config { int enable_logs; int sql_logs; int what_items_log,price_items_log,amount_items_log; - int branch, drop, mvpdrop, present, produce, refine, trade, vend, zeny, gm, npc; - char log_branch[32], log_drop[32], log_mvpdrop[32], log_present[32], log_produce[32], log_refine[32], log_trade[32], log_vend[32], log_gm[32], log_npc[32]; + int branch, drop, mvpdrop, present, produce, refine, trade, vend, zeny, gm, npc, storage; + char log_branch[32], log_drop[32], log_mvpdrop[32], log_present[32], log_produce[32], log_refine[32], log_trade[32], log_vend[32], log_gm[32], log_npc[32], log_storage[32]; char log_branch_db[32], log_drop_db[32], log_mvpdrop_db[32], log_present_db[32], log_produce_db[32], log_refine_db[32], log_trade_db[32], log_vend_db[32], log_gm_db[32], log_npc_db[32]; int uptime; char log_uptime[32]; diff --git a/src/map/storage.c b/src/map/storage.c index 6c4d6bea7..82ecd9321 100644 --- a/src/map/storage.c +++ b/src/map/storage.c @@ -233,11 +233,12 @@ int storage_storageadd(struct map_session_data *sd,int index,int amount) if( (stor->storage_amount <= MAX_STORAGE) && (stor->storage_status == 1) ) { // storage not full & storage open if(index>=0 && index<MAX_INVENTORY) { // valid index - if( (amount <= sd->status.inventory[index].amount) && (amount > 0) ) { //valid amount - if(storage_additem(sd,stor,&sd->status.inventory[index],amount)==0) - // remove item from inventory - pc_delitem(sd,index,amount,0); - } // valid amount + if( (amount <= sd->status.inventory[index].amount) && (amount > 0) ) { //valid amount +// log_tostorage(sd, index, 0); + if(storage_additem(sd,stor,&sd->status.inventory[index],amount)==0) + // remove item from inventory + pc_delitem(sd,index,amount,0); + } // valid amount }// valid index }// storage not full & storage open @@ -263,6 +264,7 @@ int storage_storageget(struct map_session_data *sd,int index,int amount) storage_delitem(sd,stor,index,amount); else clif_additem(sd,0,0,flag); +// log_fromstorage(sd, index, 0); } // valid amount }// valid index }// storage open @@ -510,6 +512,7 @@ int storage_guild_storageadd(struct map_session_data *sd,int index,int amount) if( (stor->storage_amount <= MAX_GUILD_STORAGE) && (stor->storage_status == 1) ) { // storage not full & storage open if(index>=0 && index<MAX_INVENTORY) { // valid index if( (amount <= sd->status.inventory[index].amount) && (amount > 0) ) { //valid amount +// log_tostorage(sd, index, 1); if(guild_storage_additem(sd,stor,&sd->status.inventory[index],amount)==0) // remove item from inventory pc_delitem(sd,index,amount,0); @@ -536,6 +539,7 @@ int storage_guild_storageget(struct map_session_data *sd,int index,int amount) guild_storage_delitem(sd,stor,index,amount); else clif_additem(sd,0,0,flag); +// log_fromstorage(sd, index, 1); } // valid amount }// valid index }// storage open diff --git a/src/map/trade.c b/src/map/trade.c index d98eed2a0..eb1d45ba2 100644 --- a/src/map/trade.c +++ b/src/map/trade.c @@ -16,6 +16,7 @@ #include "storage.h" #include "intif.h" #include "atcommand.h" +#include "log.h" /*========================================== * 取引要請を相手に送る @@ -33,15 +34,15 @@ void trade_traderequest(struct map_session_data *sd, int target_id) { return; } } - if(pc_isGM(sd) && pc_isGM(sd) < battle_config.gm_can_drop_lv) { + if(pc_isGM(sd) && pc_isGM(target_sd) < battle_config.gm_can_drop_lv) { clif_displaymessage(sd->fd, msg_txt(246)); trade_tradecancel(sd); // GM is not allowed to trade } else if ((target_sd->trade_partner != 0) || (sd->trade_partner != 0)) { trade_tradecancel(sd); // person is in another trade } else { - if (sd->bl.m != target_sd->bl.m || + if (!pc_isGM(sd) && (sd->bl.m != target_sd->bl.m || (sd->bl.x - target_sd->bl.x <= -5 || sd->bl.x - target_sd->bl.x >= 5) || - (sd->bl.y - target_sd->bl.y <= -5 || sd->bl.y - target_sd->bl.y >= 5)) { + (sd->bl.y - target_sd->bl.y <= -5 || sd->bl.y - target_sd->bl.y >= 5))) { clif_tradestart(sd, 0); // too far } else if (sd != target_sd) { target_sd->trade_partner = sd->status.account_id; @@ -328,6 +329,7 @@ void trade_tradecommit(struct map_session_data *sd) { if (sd->status.inventory[n].amount < sd->deal_item_amount[trade_i]) sd->deal_item_amount[trade_i] = sd->status.inventory[n].amount; + log_trade(sd, target_sd, n, sd->deal_item_amount[trade_i]); flag = pc_additem(target_sd, &sd->status.inventory[n], sd->deal_item_amount[trade_i]); if (flag == 0) @@ -336,6 +338,7 @@ void trade_tradecommit(struct map_session_data *sd) { clif_additem(sd, n, sd->deal_item_amount[trade_i], 0); sd->deal_item_index[trade_i] = 0; sd->deal_item_amount[trade_i] = 0; + } if (target_sd->deal_item_amount[trade_i] != 0) { int n = target_sd->deal_item_index[trade_i] - 2; @@ -343,6 +346,7 @@ void trade_tradecommit(struct map_session_data *sd) { if (target_sd->status.inventory[n].amount < target_sd->deal_item_amount[trade_i]) target_sd->deal_item_amount[trade_i] = target_sd->status.inventory[n].amount; + log_trade(target_sd, sd, n, target_sd->deal_item_amount[trade_i]); flag = pc_additem(sd, &target_sd->status.inventory[n], target_sd->deal_item_amount[trade_i]); if (flag == 0) pc_delitem(target_sd, n, target_sd->deal_item_amount[trade_i], 1); |