From 9b5ec24b69d4ae517f07ffa7a9b2730adbe998d4 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Wed, 27 Mar 2013 15:55:51 -0300 Subject: @accinfo update Added pincode support Changed group_id to group_level as to respect the level hierarchy on whether to display passwords or not. Updated GeoIP Database to March 2013 Signed-off-by: shennetsind --- src/char/inter.c | 13 +++++++++---- src/map/atcommand.c | 2 +- src/map/intif.c | 4 ++-- src/map/intif.h | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/char/inter.c b/src/char/inter.c index 8ff10e290..da790e200 100644 --- a/src/char/inter.c +++ b/src/char/inter.c @@ -490,10 +490,10 @@ void mapif_parse_accinfo(int fd) { /* it will only get here if we have a single match */ if( account_id ) { - char userid[NAME_LENGTH], user_pass[NAME_LENGTH], email[40], last_ip[20], lastlogin[30]; + char userid[NAME_LENGTH], user_pass[NAME_LENGTH], email[40], last_ip[20], lastlogin[30], pincode[5]; short level = -1; int logincount = 0,state = 0; - if ( SQL_ERROR == Sql_Query(sql_handle, "SELECT `userid`, `user_pass`, `email`, `last_ip`, `group_id`, `lastlogin`, `logincount`, `state` FROM `login` WHERE `account_id` = '%d' LIMIT 1", account_id) + if ( SQL_ERROR == Sql_Query(sql_handle, "SELECT `userid`, `user_pass`, `email`, `last_ip`, `group_id`, `lastlogin`, `logincount`, `state`,`pincode` FROM `login` WHERE `account_id` = '%d' LIMIT 1", account_id) || Sql_NumRows(sql_handle) == 0 ) { if( Sql_NumRows(sql_handle) == 0 ) { inter_to_fd(fd, u_fd, aid, "No account with ID '%d' was found.", account_id ); @@ -511,6 +511,7 @@ void mapif_parse_accinfo(int fd) { Sql_GetData(sql_handle, 5, &data, NULL); safestrncpy(lastlogin, data, sizeof(lastlogin)); Sql_GetData(sql_handle, 6, &data, NULL); logincount = atoi(data); Sql_GetData(sql_handle, 7, &data, NULL); state = atoi(data); + Sql_GetData(sql_handle, 8, &data, NULL); safestrncpy(pincode, data, sizeof(pincode)); } Sql_FreeResult(sql_handle); @@ -521,8 +522,12 @@ void mapif_parse_accinfo(int fd) { inter_to_fd(fd, u_fd, aid, "-- Account %d --", account_id ); inter_to_fd(fd, u_fd, aid, "User: %s | GM Group: %d | State: %d", userid, level, state ); - if (level < castergroup) /* only show pass if your gm level is greater than the one you're searching for */ - inter_to_fd(fd, u_fd, aid, "Password: %s", user_pass ); + if (level < castergroup) { /* only show pass if your gm level is greater than the one you're searching for */ + if( strlen(pincode) ) + inter_to_fd(fd, u_fd, aid, "Password: %s (PIN:%s)", user_pass, pincode ); + else + inter_to_fd(fd, u_fd, aid, "Password: %s", user_pass ); + } inter_to_fd(fd, u_fd, aid, "Account e-mail: %s", email); inter_to_fd(fd, u_fd, aid, "Last IP: %s (%s)", last_ip, geoip_getcountry(str2ip(last_ip)) ); diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 2e7c74b94..096d7a4b9 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -8598,7 +8598,7 @@ ACMD_FUNC(accinfo) { //remove const type safestrncpy(query, message, NAME_LENGTH); - intif_request_accinfo( sd->fd, sd->bl.id, sd->group_id, query ); + intif_request_accinfo( sd->fd, sd->bl.id, pc_get_group_level(sd), query ); return 0; } diff --git a/src/map/intif.c b/src/map/intif.c index 9391e0275..613a71e66 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -2121,7 +2121,7 @@ int intif_parse_elemental_saved(int fd) return 0; } -void intif_request_accinfo( int u_fd, int aid, int group_id, char* query ) { +void intif_request_accinfo( int u_fd, int aid, int group_lv, char* query ) { WFIFOHEAD(inter_fd,2 + 4 + 4 + 4 + NAME_LENGTH); @@ -2129,7 +2129,7 @@ void intif_request_accinfo( int u_fd, int aid, int group_id, char* query ) { WFIFOW(inter_fd,0) = 0x3007; WFIFOL(inter_fd,2) = u_fd; WFIFOL(inter_fd,6) = aid; - WFIFOL(inter_fd,10) = group_id; + WFIFOL(inter_fd,10) = group_lv; safestrncpy((char *)WFIFOP(inter_fd,14), query, NAME_LENGTH); WFIFOSET(inter_fd,2 + 4 + 4 + 4 + NAME_LENGTH); diff --git a/src/map/intif.h b/src/map/intif.h index 65cc19830..75b48d625 100644 --- a/src/map/intif.h +++ b/src/map/intif.h @@ -105,7 +105,7 @@ int intif_elemental_delete(int ele_id); int intif_elemental_save(struct s_elemental *ele); /* @accinfo */ -void intif_request_accinfo( int u_fd, int aid, int group_id, char* query ); +void intif_request_accinfo( int u_fd, int aid, int group_lv, char* query ); int CheckForCharServer(void); -- cgit v1.2.3-60-g2f50