Преглед на файлове

Updates the behavior of Stasis (#6196)

* Fixes #6071.
* Updates the behavior of Stasis to block Songs, Ensembles, Choruses, and magic type skills.
* Removes the INF2_IGNORESTASIS flag as it doesn't effectively fit it's purpose anymore.
Thanks to @Felleonel!
Aleos преди 3 години
родител
ревизия
7e2a85a578
променени са 7 файла, в които са добавени 1 реда и са изтрити 16 реда
  1. 0 5
      db/pre-re/skill_db.yml
  2. 0 5
      db/re/skill_db.yml
  3. 0 1
      doc/skill_db.txt
  4. 0 1
      src/map/script_constants.hpp
  5. 1 1
      src/map/skill.cpp
  6. 0 1
      src/map/skill.hpp
  7. 0 2
      src/tool/csv2yaml.cpp

+ 0 - 5
db/pre-re/skill_db.yml

@@ -2538,8 +2538,6 @@ Body:
     TargetType: Support
     DamageFlags:
       NoDamage: true
-    Flags:
-      IgnoreStasis: true
     Range: 9
     Hit: Single
     HitCount: 1
@@ -7848,7 +7846,6 @@ Body:
       NoTargetSelf: true
       PartyOnly: true
       GuildOnly: true
-      IgnoreStasis: true
       TargetHidden: true
     Range: 9
     Hit: Single
@@ -19545,7 +19542,6 @@ Body:
       NoDamage: true
     Flags:
       PartyOnly: true
-      IgnoreStasis: true
       TargetHidden: true
     Range: 11
     Hit: Single
@@ -27690,7 +27686,6 @@ Body:
     Type: Weapon
     TargetType: Attack
     Flags:
-      IgnoreStasis: true
       TargetHidden: true
     Range: -9
     Hit: Single

+ 0 - 5
db/re/skill_db.yml

@@ -2575,8 +2575,6 @@ Body:
     TargetType: Support
     DamageFlags:
       NoDamage: true
-    Flags:
-      IgnoreStasis: true
     Range: 9
     Hit: Single
     HitCount: 1
@@ -8239,7 +8237,6 @@ Body:
       NoTargetSelf: true
       PartyOnly: true
       GuildOnly: true
-      IgnoreStasis: true
       TargetHidden: true
     Range: 9
     Hit: Single
@@ -20266,7 +20263,6 @@ Body:
       NoDamage: true
     Flags:
       PartyOnly: true
-      IgnoreStasis: true
       TargetHidden: true
     Range: 11
     Hit: Single
@@ -28312,7 +28308,6 @@ Body:
     Type: Weapon
     TargetType: Attack
     Flags:
-      IgnoreStasis: true
       TargetHidden: true
     Range: -9
     Hit: Single

+ 0 - 1
doc/skill_db.txt

@@ -86,7 +86,6 @@ IgnoreLandProtector			- Ignore SA_LANDPROTECTOR.
 AllowWhenHidden				- Usable while hiding.
 AllowWhenPerforming			- Usable while in dancing state.
 TargetEmperium				- Damages/targets Emperium.
-IgnoreStasis				- Ignore SC_STASIS.
 IgnoreKagehumi				- Ignore KG_KAGEHUMI.
 AlterRangeVulture			- Skill range affected by AC_VULTURE.
 AlterRangeSnakeEye			- Skill range affected by GS_SNAKEEYE.

+ 0 - 1
src/map/script_constants.hpp

@@ -7824,7 +7824,6 @@
 	export_constant(INF2_ALLOWWHENHIDDEN);
 	export_constant(INF2_ALLOWWHENPERFORMING);
 	export_constant(INF2_TARGETEMPERIUM);
-	export_constant(INF2_IGNORESTASIS);
 	export_constant(INF2_IGNOREKAGEHUMI);
 	export_constant(INF2_ALTERRANGEVULTURE);
 	export_constant(INF2_ALTERRANGESNAKEEYE);

+ 1 - 1
src/map/skill.cpp

@@ -21454,7 +21454,7 @@ int skill_block_check(struct block_list *bl, sc_type type , uint16 skill_id) {
 				return 1;
 			break;
 		case SC_STASIS:
-			if (bl->type == BL_PC && !skill_get_inf2(skill_id, INF2_IGNORESTASIS))
+			if (skill_get_inf2_(skill_id, { INF2_ISSONG, INF2_ISENSEMBLE, INF2_ISCHORUS }) || skill_get_type(skill_id) == BF_MAGIC)
 				return 1; // Can't do it.
 			break;
 		case SC_KAGEHUMI:

+ 0 - 1
src/map/skill.hpp

@@ -91,7 +91,6 @@ enum e_skill_inf2 : uint8 {
 	INF2_ALLOWWHENHIDDEN, // Skill that can be use in hiding
 	INF2_ALLOWWHENPERFORMING, // Skill that can be use while in dancing state
 	INF2_TARGETEMPERIUM, // Skill that could hit emperium
-	INF2_IGNORESTASIS, // Skill that can ignore SC_STASIS
 	INF2_IGNOREKAGEHUMI, // Skill blocked by kagehumi
 	INF2_ALTERRANGEVULTURE, // Skill range affected by AC_VULTURE
 	INF2_ALTERRANGESNAKEEYE, // Skill range affected by GS_SNAKEEYE

+ 0 - 2
src/tool/csv2yaml.cpp

@@ -1316,8 +1316,6 @@ static bool skill_parse_row_skilldb(char* split[], int columns, int current) {
 			body << YAML::Key << "AllowWhenPerforming" << YAML::Value << "true";
 		if (inf3_val & 0x10)
 			body << YAML::Key << "TargetEmperium" << YAML::Value << "true";
-		if (inf3_val & 0x20)
-			body << YAML::Key << "IgnoreStasis" << YAML::Value << "true";
 		if (inf3_val & 0x40)
 			body << YAML::Key << "IgnoreKagehumi" << YAML::Value << "true";
 		if (inf3_val & 0x80)