summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/char/char.c7
-rw-r--r--src/login/account_txt.c2
-rw-r--r--src/map/skill.c1
-rw-r--r--src/plugins/dbghelpplug.c4
4 files changed, 8 insertions, 6 deletions
diff --git a/src/char/char.c b/src/char/char.c
index 25c5391ef..d7eb63a77 100644
--- a/src/char/char.c
+++ b/src/char/char.c
@@ -197,7 +197,7 @@ void set_char_online(int map_id, int char_id, int account_id)
struct online_char_data* character;
character = (struct online_char_data*)idb_ensure(online_char_db, account_id, create_online_char_data);
- if( character->char_id != -1 && character->server > -1 && character->server != map_id && map_id != -3 )
+ if( character->char_id != -1 && character->server > -1 && character->server != map_id )
{
//char == 99 <- Character logging in, so someone has logged in while one
//char is still on map-server, so kick him out, but don't print "error"
@@ -253,7 +253,8 @@ void set_char_offline(int char_id, int account_id)
//FIXME? Why Kevin free'd the online information when the char was effectively in the map-server?
}
-
+
+ //Remove char if 1- Set all offline, or 2- character is no longer connected to char-server.
if (login_fd > 0 && !session[login_fd]->flag.eof && (char_id == -1 || character == NULL || character->fd == -1))
{
WFIFOHEAD(login_fd,6);
@@ -1748,10 +1749,12 @@ int char_divorce(struct mmo_charstatus *cs)
cs->partner_id = 0;
char_dat[i].status.partner_id = 0;
for(j = 0; j < MAX_INVENTORY; j++)
+ {
if (char_dat[i].status.inventory[j].nameid == WEDDING_RING_M || char_dat[i].status.inventory[j].nameid == WEDDING_RING_F)
memset(&char_dat[i].status.inventory[j], 0, sizeof(char_dat[i].status.inventory[0]));
if (cs->inventory[j].nameid == WEDDING_RING_M || cs->inventory[j].nameid == WEDDING_RING_F)
memset(&cs->inventory[j], 0, sizeof(cs->inventory[0]));
+ }
return 0;
}
}
diff --git a/src/login/account_txt.c b/src/login/account_txt.c
index 6777c2062..ba3388c57 100644
--- a/src/login/account_txt.c
+++ b/src/login/account_txt.c
@@ -174,7 +174,7 @@ static bool account_db_txt_init(AccountDB* self)
memcpy(tmp, &acc, sizeof(struct mmo_account));
idb_put(accounts, acc.account_id, tmp);
- if( db->next_account_id < acc.account_id)
+ if( acc.account_id >= db->next_account_id )
db->next_account_id = acc.account_id + 1;
}
diff --git a/src/map/skill.c b/src/map/skill.c
index eee0236a6..7d82e032c 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -7189,7 +7189,6 @@ static int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, un
}
break;
case UNT_SAFETYWALL:
- //TODO: Find a more reliable way to handle the link to sg, this could cause dangling pointers. [Skotlex]
if (!sce)
sc_start4(bl,type,100,sg->skill_lv,sg->group_id,sg->group_id,0,sg->limit);
break;
diff --git a/src/plugins/dbghelpplug.c b/src/plugins/dbghelpplug.c
index ad5f6b584..ef9c08534 100644
--- a/src/plugins/dbghelpplug.c
+++ b/src/plugins/dbghelpplug.c
@@ -108,7 +108,7 @@ typedef enum _UdtKind
UdtClass,
UdtUnion
} UdtKind;
-
+/*
typedef enum _SymTag {
SymTagNull = 0,
SymTagExe = 1,
@@ -142,7 +142,7 @@ typedef enum _SymTag {
SymTagManagedType = 29,
SymTagDimension = 30
} SymTag;
-
+*/
#endif /* _NO_CVCONST_H */