Просмотр исходного кода

Fixed Grandcross and darkgrandcross, should only cause blind against undead race.
Also confirmed that ME, evil land, sanctuary, grandcross/DGC and status recovery are versus element, not race.
Removed confusion effect part from AL_CURE, it doesnt work on official anymore.
Partial revert of signum crucis modification, it doesnt work against players, but work on ELEMENT undead monsters.

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

shadow 17 лет назад
Родитель
Сommit
491d146d39
4 измененных файлов с 10 добавлено и 9 удалено
  1. 4 0
      Changelog-Trunk.txt
  2. 1 1
      src/map/pc.c
  3. 3 6
      src/map/skill.c
  4. 2 2
      src/map/status.c

+ 4 - 0
Changelog-Trunk.txt

@@ -5,6 +5,10 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 
 2008/06/13
+	* Fixed Grandcross and darkgrandcross, should only cause blind against undead race.
+		Also confirmed that ME, evil land, sanctuary, grandcross/DGC and status recovery are versus element, not race.
+	* Removed confusion effect part from AL_CURE, it doesnt work on official anymore.
+	* Partial revert of signum crucis modification, it doesnt work against players, but work on ELEMENT undead monsters.
 	* Corrected dc_serviceforyou bonus values based on irowiki (better have fansite info than 100% guessed info).
 	* Fixed dc_humming only recieving half the bonus from dancing lessons.
 	* Fixed some skills working on undead element when they were supposed to work on undead race. [Brainstorm]

+ 1 - 1
src/map/pc.c

@@ -6558,7 +6558,7 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag)
 		status_calc_pc(sd,0);
 	}
 
-	if(sd->sc.data[SC_SIGNUMCRUCIS] && (sd->battle_status.race != RC_UNDEAD))
+	if(sd->sc.data[SC_SIGNUMCRUCIS] && !battle_check_undead(sd->battle_status.race,sd->battle_status.def_ele))
 		status_change_end(&sd->bl,SC_SIGNUMCRUCIS,-1);
 
 	//OnUnEquip script [Skotlex]

+ 3 - 6
src/map/skill.c

@@ -602,7 +602,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 
 	case CR_GRANDCROSS:
 	case NPC_GRANDDARKNESS:
-		if(battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race == RC_DEMON)
+		if(tstatus->race == RC_UNDEAD || tstatus->race == RC_DEMON)
 			sc_start(bl,SC_BLIND,100,skilllv,skill_get_time2(skillid,skilllv));
 		break;
 
@@ -713,7 +713,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 			status_change_start(bl,SC_BLIND,10000,skilllv,0,0,0,skill_get_time2(skillid,skilllv),8);
 		break;
 
-	case LK_HEADCRUSH:				/* ヘッドクラッシュ */
+	case LK_HEADCRUSH: //Headcrush has chance of causing Bleeding status, except on demon and undead element
 		if (!(battle_check_undead(tstatus->race, tstatus->def_ele) || tstatus->race == RC_DEMON))
 			sc_start(bl, SC_BLEEDING,50, skilllv, skill_get_time2(skillid,skilllv));
 		break;
@@ -3903,9 +3903,6 @@ 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 );
-		//Confusion status will trigger against undead race.
-		if(tstatus->race==RC_UNDEAD)
-			sc_start(bl, SC_CONFUSION,100,1,skill_get_time2(skillid, skilllv));
 		clif_skill_nodamage(src,bl,skillid,skilllv,1);
 		break;
 
@@ -3927,7 +3924,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			status_change_end(bl, SC_STUN, -1 );
 		}
 		//Is this equation really right? It looks so... special.
-		if(battle_check_undead(tstatus->race,tstatus->def_ele) )
+		if(battle_check_undead(tstatus->race,tstatus->def_ele))
 		{
 			status_change_start(bl, SC_BLIND,
 				100*(100-(tstatus->int_/2+tstatus->vit/3+tstatus->luk/10)),

+ 2 - 2
src/map/status.c

@@ -4672,8 +4672,8 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
 			return 0; //Cannot override other opt1 status changes. [Skotlex]
 	break;
 	case SC_SIGNUMCRUCIS:
-		//Only affects demons and undead races
-		if(status->race!=RC_UNDEAD && status->race!=RC_DEMON)
+		//Only affects demons and undead element (but not players)
+		if((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC)
 			return 0;
 	break;
 	case SC_AETERNA: