Browse Source

- Fixed status-change loading not working.
- Fixed permanent mob-spawn script-events not working.
- AL_CURE won't confuse undead players.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9187 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 18 years ago
parent
commit
0b3a00dce8
6 changed files with 9 additions and 6 deletions
  1. 3 0
      Changelog-Trunk.txt
  2. 0 2
      src/map/chrif.c
  3. 1 0
      src/map/chrif.h
  4. 1 1
      src/map/mob.c
  5. 2 2
      src/map/pc.c
  6. 2 1
      src/map/skill.c

+ 3 - 0
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

+ 0 - 2
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.

+ 1 - 0
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);

+ 1 - 1
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);

+ 2 - 2
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");

+ 2 - 1
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;