Browse Source

* Corrected a typo preventing Plagiarism to work
* Fixed Berzebub card and other 'reduce cast delays' equipment not working

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

celest 20 years ago
parent
commit
f4fd8cb7fb
2 changed files with 9 additions and 5 deletions
  1. 3 0
      Changelog.txt
  2. 6 5
      src/map/skill.c

+ 3 - 0
Changelog.txt

@@ -1,5 +1,8 @@
 Date	Added
 Date	Added
 01/13
 01/13
+        * Corrected a typo preventing Plagiarism to work, thanks to orn [celest]
+        * Fixed Berzebub card and other 'reduce cast delays' equipment not working
+          [celest]
         * Updated packet_db.txt loading to support reading into multiple packet
         * Updated packet_db.txt loading to support reading into multiple packet
           versions [celest]
           versions [celest]
         * Removed packet_db_ver defining in packet_db.txt -- it'll determine itself
         * Removed packet_db_ver defining in packet_db.txt -- it'll determine itself

+ 6 - 5
src/map/skill.c

@@ -1790,11 +1790,12 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds
 		if(rand()%100 < rate)
 		if(rand()%100 < rate)
 			skill_addtimerskill(src,tick + 800,bl->id,0,0,skillid,skilllv,0,flag);
 			skill_addtimerskill(src,tick + 800,bl->id,0,0,skillid,skilllv,0,flag);
 	}
 	}
-	if(damage > 0 && dmg.flag&BF_SKILL && bl->type==BL_PC && pc_checkskill((struct map_session_data *)bl,RG_PLAGIARISM) && sc_data[SC_PRESERVE].timer != -1){
+	if(damage > 0 && dmg.flag&BF_SKILL && bl->type==BL_PC && pc_checkskill((struct map_session_data *)bl,RG_PLAGIARISM) && sc_data[SC_PRESERVE].timer == -1){
 		struct map_session_data *tsd = (struct map_session_data *)bl;
 		struct map_session_data *tsd = (struct map_session_data *)bl;
 		nullpo_retr(0, tsd);
 		nullpo_retr(0, tsd);
-		if(!tsd->status.skill[skillid].id && !tsd->status.skill[skillid].id
-			&& !(skillid > NPC_PIERCINGATT && skillid < NPC_SUMMONMONSTER) ){
+		if(!tsd->status.skill[skillid].id && !tsd->status.skill[skillid].lv
+			&& !(skillid > NPC_PIERCINGATT && skillid < NPC_SUMMONMONSTER)
+			&& !(skillid > NPC_SELFDESTRUCTION2 && skillid < NPC_UNDEADATTACK)){
 			//?に?んでいるスキルがあれば該?スキルを消す
 			//?に?んでいるスキルがあれば該?スキルを消す
 			if (tsd->cloneskill_id && tsd->cloneskill_lv && tsd->status.skill[tsd->cloneskill_id].flag==13){
 			if (tsd->cloneskill_id && tsd->cloneskill_lv && tsd->status.skill[tsd->cloneskill_id].flag==13){
 				tsd->status.skill[tsd->cloneskill_id].id=0;
 				tsd->status.skill[tsd->cloneskill_id].id=0;
@@ -7474,9 +7475,9 @@ int skill_delayfix( struct block_list *bl, int time )
 
 
 		if(battle_config.delay_dependon_dex &&	/* dexの影響を計算する */
 		if(battle_config.delay_dependon_dex &&	/* dexの影響を計算する */
 			!skill_get_delaynodex(skill, lv))	// if skill casttime is allowed to be reduced by dex
 			!skill_get_delaynodex(skill, lv))	// if skill casttime is allowed to be reduced by dex
-			time=time*delayrate*(battle_config.castrate_dex_scale - battle_get_dex(bl))/(battle_config.castrate_dex_scale * 100);
+			time=time*(battle_config.castrate_dex_scale - battle_get_dex(bl))/(battle_config.castrate_dex_scale);
 
 
-		time=time*battle_config.delay_rate/100;
+		time=time*delayrate*battle_config.delay_rate/10000;
 	}
 	}
 
 
 	/* ブラギの詩 */
 	/* ブラギの詩 */