Browse Source

- corrected Option_Xmas value in const.txt
- Wand of Hermode now dispells buffs only of allies.
- Fixed some null pointer checks in status_change_end.
- Corrected a crashy Warning message.


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

skotlex 17 năm trước cách đây
mục cha
commit
aa83de997f
6 tập tin đã thay đổi với 13 bổ sung10 xóa
  1. 4 0
      Changelog-Trunk.txt
  2. 2 0
      db/Changelog.txt
  3. 1 1
      db/const.txt
  4. 1 1
      src/map/party.c
  5. 4 1
      src/map/skill.c
  6. 1 7
      src/map/status.c

+ 4 - 0
Changelog-Trunk.txt

@@ -3,6 +3,10 @@ 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.
 
+2007/12/14
+	* Wand of Hermode now dispells buffs only of allies.
+	* Fixed some null pointer checks in status_change_end.
+	* Corrected a crashy Warning message. [Skotlex]
 2007/12/13
 	* Fixed possible segmentation faults in the script engine.
 	- some strings that can be freed outside the script engine were being 

+ 2 - 0
db/Changelog.txt

@@ -38,6 +38,8 @@
 
 =======================
 
+12/14
+	* corrected Option_Xmas value in const.txt [Skotlex]
 12/13
 	* Rev. 11909 Fixed Big Defense Potion 10ea Box. (was giving small def pot.) [L0ne_W0lf]
 12/05

+ 1 - 1
db/const.txt

@@ -165,7 +165,7 @@ EAJ_BABY_ROGUE	0x2206
 EAJ_BABY_SOUL_LINKER	0x2207
 
 Option_Wedding	0x1000
-Option_Xmas	0x20000
+Option_Xmas	0x10000
 Option_Summer	0x40000
 
 bc_all	0

+ 1 - 1
src/map/party.c

@@ -155,7 +155,7 @@ int party_check_member(struct party *p)
 			ARR_FIND( 0, MAX_PARTY, j, p->member[j].account_id == sd->status.account_id && p->member[j].char_id == sd->status.char_id );
 			if( j == MAX_PARTY )
 			{
-				ShowWarning("party_check_member: '%s' (acc:%d) is not member of party '%s' (id:%d)\n",sd->status.char_id,sd->status.name,p->name,p->party_id);
+				ShowWarning("party_check_member: '%s' (acc:%d) is not member of party '%s' (id:%d)\n",sd->status.name,sd->status.account_id,p->name,p->party_id);
 				sd->status.party_id = 0;
 			}
 		}

+ 4 - 1
src/map/skill.c

@@ -6544,6 +6544,10 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
 			0,0,sg->limit);
 		break;
 
+	case UNT_HERMODE:
+		if (sg->src_id!=bl->id && battle_check_target(&src->bl,bl,BCT_PARTY|BCT_GUILD) > 0)
+			status_change_clear_buffs(bl,1); //Should dispell only allies.
+			break;
 	case UNT_RICHMANKIM:
 	case UNT_ETERNALCHAOS:
 	case UNT_DRUMBATTLEFIELD:
@@ -6551,7 +6555,6 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
 	case UNT_ROKISWEIL:
 	case UNT_INTOABYSS:
 	case UNT_SIEGFRIED:
-	case UNT_HERMODE:
 		 //Needed to check when a dancer/bard leaves their ensemble area.
 		if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER))
 			return skillid;

+ 1 - 7
src/map/status.c

@@ -5552,10 +5552,6 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
 			val2 = 50*val1; //aspd reduction
 			break;
 
-		case SC_HERMODE:
-			status_change_clear_buffs(bl,1);
-			break;
-
 		case SC_REGENERATION:
 			if (val1 == 1)
 				val2 = 2;
@@ -6206,10 +6202,8 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
 	
 	sc = status_get_sc(bl);
 	status = status_get_status_data(bl);
-	nullpo_retr(0,sc);
-	nullpo_retr(0,status);
 
-	if(type < 0 || type >= SC_MAX || !(sce = sc->data[type]))
+	if(type < 0 || type >= SC_MAX || !sc || !(sce = sc->data[type]))
 		return 0;
 
 	BL_CAST(BL_PC,bl,sd);