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!
This commit is contained in:
Aleos 2021-08-17 15:44:32 -04:00 committed by GitHub
parent b9c53941f1
commit 7e2a85a578
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 1 additions and 16 deletions

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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);

View File

@ -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:

View File

@ -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

View File

@ -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)