Quellcode durchsuchen

- Added inf2 4096 (INF2_ALLOW_ENEMY) which is to be used in conjunction with INF2_PARTY_ONLY/INF2_GUILD_ONLY when said skill should ALSO be allowed to be used on enemies.
- Updated Soul Change to use inf2 4096 (INF2_ALLOW_ENEMY).


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

skotlex vor 19 Jahren
Ursprung
Commit
ad25bf8e24
6 geänderte Dateien mit 16 neuen und 14 gelöschten Zeilen
  1. 3 0
      Changelog-Trunk.txt
  2. 1 0
      db/Changelog.txt
  3. 3 2
      db/skill_db.txt
  4. 1 1
      src/map/pc.c
  5. 6 11
      src/map/skill.c
  6. 2 0
      src/map/skill.h

+ 3 - 0
Changelog-Trunk.txt

@@ -4,6 +4,9 @@ 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.
 
 2006/05/28
+	* Added inf2 4096 (INF2_ALLOW_ENEMY) which is to be used in conjunction
+	  with INF2_PARTY_ONLY/INF2_GUILD_ONLY when said skill should ALSO be allowed
+	  to be used on enemies. [Skotlex]
 	* Cleaned up a bit the code for @item [Skotlex]
 	* Fixed character/storage being sent to be saved TWICE when you logged out
 	  while the storage is opened. [Skotlex]

+ 1 - 0
db/Changelog.txt

@@ -25,6 +25,7 @@
 
 =========================
 06/28
+	* Updated Soul Change to use inf2 4096 (INF2_ALLOW_ENEMY). [Skotlex]
 	* Updated Morpheus's Hood and Freyr's Shoes [Playtester]
 	* Fixed the SP usage of AS_SPLASHER. Thanks to Belle. [MasterOfMuppets]
 06/27

+ 3 - 2
db/skill_db.txt

@@ -15,7 +15,8 @@
 //    8- spirit skill, 16- guild skill, 32- song/dance, 64- ensemble skill
 //    128- trap (can be targetted), 256- skill that damages/targets yourself
 //    512- cannot be casted on self (if inf = 4, auto-select target skill)
-//    1024- usable only on party-members, 2048- usable only on guild-mates)
+//    1024- usable only on party-members, 2048- usable only on guild-mates
+//    4096- allow usage on enemies too (use with 1024/2048))
 // 13 maxcount: max amount of skill instances to place on the ground when
 //    player_land_skill_limit/monster_land_skill_limit is enabled.
 // 14 attack type (none, weapon, magic, misc)
@@ -393,7 +394,7 @@
 371,-2,8,4,-1,0,0,5,1,no,0,512,0,weapon,0	//CH_TIGERFIST#Glacier Fist#
 372,-2,8,4,-1,0,0,10,-1:-1:-2:-2:-3:-3:-4:-4:-5:-5,no,0,512,0,weapon,0	//CH_CHAINCRUSH#Chain Crush Combo#
 373,0,6,4,0,1,0,5,1,no,0,0,0,magic,0	//PF_HPCONVERSION#Health Conversion#
-374,9,6,16,0,1,0,1,1,yes,0,3072,0,none,0	//PF_SOULCHANGE#Soul Exhale#
+374,9,6,16,0,1,0,1,1,yes,0,7168,0,none,0	//PF_SOULCHANGE#Soul Exhale#
 375,9,6,1,0,0,0,5,1,yes,0,0,0,magic,0	//PF_SOULBURN#Soul Siphon#
 376,0,0,0,0,1,0,5,1,no,0,0,0,weapon,0	//ASC_KATAR#Advanced Katar Mastery#
 //377,0,0,4,0,1,0,10,1,no,0,0,0,misc,0	//ASC_HALLUCINATION#Hallucination Walk#

+ 1 - 1
src/map/pc.c

@@ -6358,7 +6358,7 @@ int pc_checkitem(struct map_session_data *sd)
 			continue;
 		if( battle_config.item_check &&  !itemdb_available(id) ){
 			if(battle_config.error_log)
-				ShowWarning("illeagal item id %d in %d[%s] cart.\n",id,sd->bl.id,sd->status.name);
+				ShowWarning("illegal item id %d in %d[%s] cart.\n",id,sd->bl.id,sd->status.name);
 			pc_cart_delitem(sd,i,sd->status.cart[i].amount,1);
 			continue;
 		}

+ 6 - 11
src/map/skill.c

@@ -5545,17 +5545,12 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
 
 		inf2 = skill_get_inf2(ud->skillid);
 		if(inf2 & (INF2_PARTY_ONLY|INF2_GUILD_ONLY) && src != target) {
-			int fail_flag = 1;
-			if(inf2 & INF2_PARTY_ONLY && battle_check_target(src, target, BCT_PARTY) > 0)
-				fail_flag = 0;
-			else if(inf2 & INF2_GUILD_ONLY && battle_check_target(src, target, BCT_GUILD) > 0)
-				fail_flag = 0;
-			
-			if (ud->skillid == PF_SOULCHANGE && map_flag_vs(target->m))
-				//Soul Change overrides this restriction during pvp/gvg [Skotlex]
-				fail_flag = 0;
-			
-			if(fail_flag)
+			inf2 = 	
+				(inf2&INF2_PARTY_ONLY?BCT_PARTY:0)|
+				(inf2&INF2_GUILD_ONLY?BCT_GUILD:0)|
+				(inf2&INF2_ALLOW_ENEMY?BCT_ENEMY:0);
+
+			if(battle_check_target(src, target, inf2) <= 0)
 				break;
 		}
 

+ 2 - 0
src/map/skill.h

@@ -40,6 +40,8 @@
 #define INF2_NO_TARGET_SELF 512
 #define INF2_PARTY_ONLY 1024
 #define INF2_GUILD_ONLY 2048
+//For Party/Guild only skills that can ALSO be used on enemies.
+#define INF2_ALLOW_ENEMY 4096
 
 //Walk intervals at which chase-skills are attempted to be triggered.
 #define WALK_SKILL_INTERVAL 5