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

* Fixed message display for FullStrip and SelfProvoke. (bugreport: 3011, bugreport: 3415)
* Fixed an error on 'changequest'

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

Inkfish 16 лет назад
Родитель
Сommit
2187e9a59a
3 измененных файлов с 18 добавлено и 5 удалено
  1. 2 1
      Changelog-Trunk.txt
  2. 1 1
      src/map/script.c
  3. 15 3
      src/map/skill.c

+ 2 - 1
Changelog-Trunk.txt

@@ -4,7 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 09/07/25
-	* Rewrote Quest Log system.
+	* Rewrote Quest Log system. [Inkfish]
+	* Fixed message display for FullStrip and SelfProvoke. (bugreport: 3011, bugreport: 3415) [Inkfish]
 09/07/21
 	* Added proper bounds of INT_MIN to INT_MAX for hp/sp when being sent to/from status_damage/status_heal for negative values because of INT_MAX being (-INT_MIN - 1). [Paradox924X]
 09/07/17

+ 1 - 1
src/map/script.c

@@ -13455,7 +13455,7 @@ BUILDIN_FUNC(changequest)
 	TBL_PC * sd = script_rid2sd(st);
 	int q1 = script_getnum(st, 2), q2 = script_getnum(st, 3);
 
-	if( quest_check_quest(sd, q1, HAVEQUEST) == Q_ACTIVE && quest_add(sd, q2) >= 0 )
+	if( quest_check_quest(sd, q1, HAVEQUEST) == Q_ACTIVE && !quest_add(sd, q2) )
 	{
 		quest_update_status(sd, q1, Q_COMPLETE);
 		intif_quest_save(sd->status.char_id, &sd->quest_log[sd->avail_quests]);

+ 15 - 3
src/map/skill.c

@@ -3796,7 +3796,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			return 1;
 		}
 		//TODO: How much does base level affects? Dummy value of 1% per level difference used. [Skotlex]
-		clif_skill_nodamage(src,bl,skillid,skilllv,
+		clif_skill_nodamage(src,bl,skillid == SM_SELFPROVOKE ? SM_PROVOKE : skillid,skilllv,
 			(i = sc_start(bl,type, skillid == SM_SELFPROVOKE ? 100:( 50 + 3*skilllv + status_get_lv(src) - status_get_lv(bl)), skilllv, skill_get_time(skillid,skilllv))));
 		if( !i )
 		{
@@ -4507,9 +4507,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			location = EQP_WEAPON|EQP_SHIELD|EQP_ARMOR|EQP_HELM;
 			break;
 		}
+
+		//Special message when trying to use strip on FCP [Jobbie]
+		if( sd && skillid == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD] )
+		{
+			clif_gospel_info(sd, 0x28);
+			break;
+		}
+
 		//Attempts to strip at rate i and duration d
-		if (!clif_skill_nodamage(src,bl,skillid,skilllv,skill_strip_equip(bl, location, i, skilllv, d)) && sd)
-			clif_skill_fail(sd,skillid,0,0); //Nothing stripped.
+		if( (i = skill_strip_equip(bl, location, i, skilllv, d)) || skillid != ST_FULLSTRIP )
+			clif_skill_nodamage(src,bl,skillid,skilllv,i); 
+
+		//Nothing stripped.
+		if( sd && !i )
+			clif_skill_fail(sd,skillid,0,0);
 	}
 		break;