diff options
-rw-r--r-- | Changelog-Trunk.txt | 10 | ||||
-rw-r--r-- | src/char_sql/char.c | 7 | ||||
-rw-r--r-- | src/map/clif.c | 34 | ||||
-rw-r--r-- | src/map/pc.c | 6 | ||||
-rw-r--r-- | src/map/status.c | 5 |
5 files changed, 31 insertions, 31 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 050fdb3d6..d195ee407 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,16 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2006/12/04 + * Fixed the txt->sql converter not escaping character names before saving + them. [Skotlex] + * Fixed a pet's level not resetting to their db level when you enable pet + leveling and later on decide to turn it off. [Skotlex] + * Fixed restricted equipment not updating your view info after they are + unequipped. [Skotlex] + * Removed a bunch of extra text/checks when ignoring characters (/ex) when + Aegis does none of these checks. /inall now wipes your ignore list (it does + this on Aegis, too). [Skotlex] 2006/12/03 * If somehow a player logs out and it's saved with 0 hp, on login his state will be set to dead as well so he can respawn (otherwise that leads to a diff --git a/src/char_sql/char.c b/src/char_sql/char.c index 36fb788de..136453e3b 100644 --- a/src/char_sql/char.c +++ b/src/char_sql/char.c @@ -492,15 +492,18 @@ int mmo_char_tosql(int char_id, struct mmo_charstatus *p){ if (!memitemdata_to_sql(mapitem, count, p->char_id,TABLE_CART))
strcat(save_status, " cart");
#ifdef TXT_SQL_CONVERT
- //Insert the barebones to then update the rest.
+{ //Insert the barebones to then update the rest.
+ char t_name[NAME_LENGTH*2];
+ jstrescapecpy(t_name, p->name);
sprintf(tmp_sql, "REPLACE INTO `%s` (`account_id`, `char_num`, `name`) VALUES ('%d', '%d', '%s')",
- char_db, p->account_id, p->char_num, p->name);
+ char_db, p->account_id, p->char_num, t_name);
if(mysql_query(&mysql_handle, tmp_sql))
{
ShowSQL("DB error - %s\n",mysql_error(&mysql_handle));
ShowDebug("at %s:%d - %s\n", __FILE__,__LINE__,tmp_sql);
} else
strcat(save_status, " creation");
+}
#endif
if (
diff --git a/src/map/clif.c b/src/map/clif.c index 69b7d1af8..31fdd80f7 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -11098,16 +11098,6 @@ void clif_parse_PMIgnore(int fd, struct map_session_data *sd) { // Rewritten by WFIFOW(fd,0) = 0x0d1; // R 00d1 <type>.B <fail>.B: type: 0: deny, 1: allow, fail: 0: success, 1: fail WFIFOB(fd,2) = RFIFOB(fd,26); - // do nothing only if nick can not exist - if (strlen(nick) < 4) { - WFIFOB(fd,3) = 1; // fail - WFIFOSET(fd, packet_len_table[0x0d1]); - clif_wis_message(fd, wisp_server_name, - "This player name is not valid.", - strlen("This player name is not valid.")+1); - return; - } - // name can exist // deny action (we add nick only if it's not already exist if (RFIFOB(fd,26) == 0) { // Add block for(i = 0; i < MAX_IGNORE_LIST && @@ -11118,9 +11108,6 @@ void clif_parse_PMIgnore(int fd, struct map_session_data *sd) { // Rewritten by if (i == MAX_IGNORE_LIST) { //Full List WFIFOB(fd,3) = 1; // fail WFIFOSET(fd, packet_len_table[0x0d1]); - clif_wis_message(fd, wisp_server_name, - "You can not block more people.", - strlen("You can not block more people.") + 1); if (strcmp(wisp_server_name, nick) == 0) { // to found possible bot users who automaticaly ignore people. sprintf(output, "Character '%s' (account: %d) has tried to block wisps from '%s' (wisp name of the server). Bot user?", sd->status.name, sd->status.account_id, wisp_server_name); @@ -11130,11 +11117,8 @@ void clif_parse_PMIgnore(int fd, struct map_session_data *sd) { // Rewritten by } if(sd->ignore[i].name[0] != '\0') { //Name already exists. - WFIFOB(fd,3) = 1; // fail + WFIFOB(fd,3) = 0; // Aegis reports success. WFIFOSET(fd, packet_len_table[0x0d1]); - clif_wis_message(fd, wisp_server_name, - "This player is already blocked.", - strlen("This player is already blocked.") + 1); if (strcmp(wisp_server_name, nick) == 0) { // to found possible bot users who automaticaly ignore people. sprintf(output, "Character '%s' (account: %d) has tried AGAIN to block wisps from '%s' (wisp name of the server). Bot user?", sd->status.name, sd->status.account_id, wisp_server_name); intif_wis_message_to_gm(wisp_server_name, battle_config.hack_info_GM_level, output); @@ -11168,9 +11152,6 @@ void clif_parse_PMIgnore(int fd, struct map_session_data *sd) { // Rewritten by { //Not found WFIFOB(fd,3) = 1; // fail WFIFOSET(fd, packet_len_table[0x0d1]); - clif_wis_message(fd, wisp_server_name, - "This player is not blocked by you.", - strlen("This player is not blocked by you.") + 1); return; } //Move everything one place down to overwrite removed entry. @@ -11199,9 +11180,6 @@ void clif_parse_PMIgnoreAll(int fd, struct map_session_data *sd) { // Rewritten if (sd->state.ignoreAll) { WFIFOB(fd,3) = 1; // fail WFIFOSET(fd, packet_len_table[0x0d2]); - clif_wis_message(fd, wisp_server_name, - "You already block everyone.", - strlen("You already block everyone.") + 1); return; } sd->state.ignoreAll = 1; @@ -11211,11 +11189,15 @@ void clif_parse_PMIgnoreAll(int fd, struct map_session_data *sd) { // Rewritten } //Unblock everyone if (!sd->state.ignoreAll) { + if (sd->ignore[0].name[0] != '\0') + { //Wipe the ignore list. + memset(sd->ignore, 0, sizeof(sd->ignore)); + WFIFOB(fd,3) = 0; + WFIFOSET(fd, packet_len_table[0x0d2]); + return; + } WFIFOB(fd,3) = 1; // fail WFIFOSET(fd, packet_len_table[0x0d2]); - clif_wis_message(fd, wisp_server_name, - "You already allow everyone.", - strlen("You already allow everyone.") + 1); return; } sd->state.ignoreAll = 0; diff --git a/src/map/pc.c b/src/map/pc.c index 86b8d5cdb..6630a38c5 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -358,7 +358,7 @@ int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int lo nullpo_retr(0, sd); sd->bl.id = account_id; - sd->status.char_id = account_id; + sd->status.account_id = account_id; sd->status.char_id = char_id; sd->status.sex = sex; sd->login_id1 = login_id1; @@ -6599,8 +6599,10 @@ int pc_checkitem(struct map_session_data *sd) pc_setequipindex(sd); if(calc_flag && sd->state.auth) + { status_calc_pc(sd,0); - + pc_equiplookall(sd); + } return 0; } diff --git a/src/map/status.c b/src/map/status.c index 1af25239a..1cd81a180 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1474,8 +1474,11 @@ int status_calc_pet(struct pet_data *pd, int first) if (!first) //Not done the first time because the pet is not visible yet clif_send_petstatus(sd); } - } else if (first) + } else if (first) { status_calc_misc(&pd->bl, &pd->status, pd->db->lv); + if (!battle_config.pet_lv_rate && pd->pet.level != pd->db->lv) + pd->pet.level = pd->db->lv; + } //Support rate modifier (1000 = 100%) pd->rate_fix = 1000*(pd->pet.intimate - battle_config.pet_support_min_friendly)/(1000- battle_config.pet_support_min_friendly) +500; |