소스 검색

Fixed bugreport:5788 no 2 Releasing Spells should now update/reset sp reduction while WL_READING_SB is active.
Fixed bugreport:6029 GN_MANDRAGORA is now updated its success chance percentage.


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

rud0lp20 13 년 전
부모
커밋
2e59316f3e
4개의 변경된 파일9개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 1
      db/pre-re/skill_cast_db.txt
  2. 1 1
      db/re/skill_cast_db.txt
  3. 4 1
      src/map/skill.c
  4. 3 0
      src/map/status.c

+ 1 - 1
db/pre-re/skill_cast_db.txt

@@ -1608,7 +1608,7 @@
 //-- GN_HELLS_PLANT_ATK 
 2491,0,0,0,20000,0,0,0
 //-- GN_MANDRAGORA
-2492,1000,500,0,30000,0,10000
+2492,1000,500,0,10000:15000:20000:25000:30000,0,15000,0
 //-- GN_SLINGITEM //CHECK Whats durations 1 and 2 used for?
 2493,0,0,0,77000,10000,1000
 

+ 1 - 1
db/re/skill_cast_db.txt

@@ -1609,7 +1609,7 @@
 //-- GN_HELLS_PLANT_ATK 
 2491,0,0,0,20000,0,0,0
 //-- GN_MANDRAGORA
-2492,1000,500,0,30000,0,10000,0
+2492,1000,500,0,10000:15000:20000:25000:30000,0,15000,0
 //-- GN_SLINGITEM //CHECK Whats durations 1 and 2 used for?
 2493,0,0,0,77000,10000,1000,0
 

+ 4 - 1
src/map/skill.c

@@ -4117,6 +4117,9 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 				rsb_skillid = sd->rsb[i].skillid;
 				rsb_skilllv = sd->rsb[i].level;
 
+				if( sc && sc->data[SC_READING_SB] && sc->data[SC_READING_SB]->val2 > 0 )
+					sc->data[SC_READING_SB]->val2 -= sd->rsb[i].points;
+
 				if( skilllv > 1 )
 					sd->rsb[i].skillid = 0; // Last position - only remove it from list
 				else
@@ -8474,7 +8477,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	case GN_MANDRAGORA:
 		if( flag&1 ) {
 			if ( clif_skill_nodamage(bl, src, skillid, skilllv,
-									 sc_start(bl, type, 35 + 10 * skilllv, skilllv, skill_get_time(skillid, skilllv))) )
+									 sc_start(bl, type, 25 + 10 * skilllv, skilllv, skill_get_time(skillid, skilllv))) )
 				status_zap(bl, 0, status_get_max_sp(bl) / 100 * 25 + 5 * skilllv);
 		} else
 			map_foreachinrange(skill_area_sub, bl, skill_get_splash(skillid, skilllv), BL_CHAR,

+ 3 - 0
src/map/status.c

@@ -5852,6 +5852,9 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti
 	case SC_VACUUM_EXTREME:
 		tick -= 50*status->str;
 		break;
+	case SC_MANDRAGORA:
+		sc_def = (status->vit+status->luk)/5;
+		break;
 	default:
 		//Effect that cannot be reduced? Likely a buff.
 		if (!(rnd()%10000 < rate))