summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author(no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-02-11 15:58:58 +0000
committer(no author) <(no author)@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-02-11 15:58:58 +0000
commit94661807ec510d48ca6dd135f0e02a3a835bc614 (patch)
treefae3295a165e320a8d65fd6e0eb8430212099dc7 /src
parent77cac05d9b256039f7b2b5b00f901ad76fddfe86 (diff)
downloadhercules-94661807ec510d48ca6dd135f0e02a3a835bc614.tar.gz
hercules-94661807ec510d48ca6dd135f0e02a3a835bc614.tar.bz2
hercules-94661807ec510d48ca6dd135f0e02a3a835bc614.tar.xz
hercules-94661807ec510d48ca6dd135f0e02a3a835bc614.zip
* Moved all changes in the SVN to a new SVN-Changelog.txt
* Synchronise storage as well when saving character * Added fix for super novices' Guardian Angel system crashing * Check if login server is online before setting character to online (in SQL) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1076 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/char_sql/char.c4
-rw-r--r--src/map/chrif.c2
-rw-r--r--src/map/clif.c2
-rw-r--r--src/map/pc.c2
4 files changed, 7 insertions, 3 deletions
diff --git a/src/char_sql/char.c b/src/char_sql/char.c
index 30c16c5b9..de28fea34 100644
--- a/src/char_sql/char.c
+++ b/src/char_sql/char.c
@@ -173,7 +173,9 @@ void set_char_online(int char_id, int account_id) {
}
}
- WFIFOW(login_fd,0) = 0x272b;
+ if (login_fd <= 0 || session[login_fd]->eof)
+ return;
+ WFIFOW(login_fd,0) = 0x272b;
WFIFOL(login_fd,2) = account_id;
WFIFOSET(login_fd,6);
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 185fe307d..a04c483d5 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -112,6 +112,8 @@ int chrif_save(struct map_session_data *sd)
memcpy(WFIFOP(char_fd,12), &sd->status, sizeof(sd->status));
WFIFOSET(char_fd, WFIFOW(char_fd,2));
+ storage_storage_save(sd); // to synchronise storage with character [Yor]
+
return 0;
}
diff --git a/src/map/clif.c b/src/map/clif.c
index 678a3f716..1d4a7a437 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -7955,7 +7955,7 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data *sd) { // S 008c <
// Celest
if (pc_calc_base_job2 (sd->status.class_) == 23 ) {
int next = pc_nextbaseexp(sd)>0 ? pc_nextbaseexp(sd) : sd->status.base_exp;
- if ((sd->status.base_exp*100/next)%10 == 0) {
+ if (next > 0 && (sd->status.base_exp*100/next)%10 == 0) {
estr_lower((char*)RFIFOP(fd,4));
if (sd->state.snovice_flag == 0 && strstr((char*)RFIFOP(fd,4), msg_txt(540)))
sd->state.snovice_flag = 1;
diff --git a/src/map/pc.c b/src/map/pc.c
index 512a097ed..0734c0630 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4518,7 +4518,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
if (s_class.job == 23) {
if ((i=pc_nextbaseexp(sd))<=0)
i=sd->status.base_exp;
- if ((j=sd->status.base_exp*1000/i)>=990 && j<=1000)
+ if (i>0 && (j=sd->status.base_exp*1000/i)>=990 && j<=1000)
sd->state.snovice_flag = 4;
}