summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/chrif.c2
-rw-r--r--src/map/chrif.h1
-rw-r--r--src/map/mob.c2
-rw-r--r--src/map/pc.c4
-rw-r--r--src/map/skill.c3
6 files changed, 9 insertions, 6 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index d2ea5c127..13b71f023 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -5,6 +5,9 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/11/09
=======
+ * Fixed status-change loading not working. [Skotlex]
+ * Fixed permanent mob-spawn script-events not working. [Skotlex]
+ * AL_CURE won't confuse undead players. [Skotlex]
* Corrected the Fog of Wall check so that it lasts 2x when it is placed on
TOP of a suiton/deluge, not when the caster is on top of them. [Skotlex]
* Updated status_check_skilluse so that when the caster has a disabling
diff --git a/src/map/chrif.c b/src/map/chrif.c
index 64194c1a2..7039a8d71 100644
--- a/src/map/chrif.c
+++ b/src/map/chrif.c
@@ -483,7 +483,6 @@ void chrif_authreq(struct map_session_data *sd)
auth_data->login_id1 == sd->login_id1)
{ //auth ok
pc_authok(sd, auth_data->login_id2, auth_data->connect_until_time, auth_data->char_dat);
- chrif_scdata_request(auth_data->account_id, auth_data->char_dat->char_id);
} else { //auth failed
pc_authfail(sd);
chrif_char_offline(sd); //Set him offline, the char server likely has it set as online already.
@@ -524,7 +523,6 @@ void chrif_authok(int fd) {
auth_data->login_id1 == RFIFOL(fd, 8))
{ //Auth Ok
pc_authok(auth_data->sd, RFIFOL(fd, 16), RFIFOL(fd, 12), (struct mmo_charstatus*)RFIFOP(fd, 20));
- chrif_scdata_request(auth_data->account_id, auth_data->sd->status.char_id);
} else { //Auth Failed
pc_authfail(auth_data->sd);
chrif_char_offline(auth_data->sd); //Set him offline, the char server likely has it set as online already.
diff --git a/src/map/chrif.h b/src/map/chrif.h
index 4e30b4b2c..fc87f9b18 100644
--- a/src/map/chrif.h
+++ b/src/map/chrif.h
@@ -25,6 +25,7 @@ extern int other_mapserver_count;
void chrif_authreq(struct map_session_data *);
void chrif_authok(int fd);
+int chrif_scdata_request(int account_id, int char_id);
int chrif_save(struct map_session_data*, int flag);
int chrif_charselectreq(struct map_session_data *sd, unsigned long s_ip);
void check_fake_id(int fd, struct map_session_data *sd, int target_id);
diff --git a/src/map/mob.c b/src/map/mob.c
index ae742b617..36af27b17 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -177,7 +177,7 @@ int mob_parse_dataset(struct spawn_data *data) {
data->eventname[0] = '\0'; //Clear event as it is not used.
}
} else {
- if (data->eventname[i-1] == '"');
+ if (data->eventname[i-1] == '"')
data->eventname[i-1] = '\0'; //Remove trailing quote.
if (data->eventname[0] == '"') //Strip leading quotes
memmove(data->eventname, data->eventname+1, i-1);
diff --git a/src/map/pc.c b/src/map/pc.c
index 492cd11f1..5c55c5c26 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -820,8 +820,8 @@ int pc_reg_received(struct map_session_data *sd)
// The earliest I can get is here to prevent more failures of status_calc_pc
// while making equipment scripts with global_regs possible. [Lance]
status_calc_pc(sd,1);
- //if (!sd->die_counter && (sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE)
- // status_calc_pc(sd, 0); //Check +10 to all stats bonus.
+ chrif_scdata_request(sd->status.account_id, sd->status.char_id);
+
if (pc_checkskill(sd, TK_MISSION)) {
sd->mission_mobid = pc_readglobalreg(sd,"TK_MISSION_ID");
sd->mission_count = pc_readglobalreg(sd,"TK_MISSION_COUNT");
diff --git a/src/map/skill.c b/src/map/skill.c
index c27b187e8..c8365482a 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4266,7 +4266,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
status_change_end(bl, SC_SILENCE , -1 );
status_change_end(bl, SC_BLIND , -1 );
status_change_end(bl, SC_CONFUSION, -1 );
- if(battle_check_undead(tstatus->race,tstatus->def_ele))
+ //Confusion on undead won't trigger on undead players.
+ if(!dstsd && battle_check_undead(tstatus->race,tstatus->def_ele))
sc_start(bl, SC_CONFUSION,100,1,skill_get_time2(skillid, skilllv));
clif_skill_nodamage(src,bl,skillid,skilllv,1);
break;