Core/Conditions: Added conditions for automatic learning spells with SkillLineAbility::AcquireMethod = 4

Port From (https://github.com/TrinityCore/TrinityCore/commit/7eaa695581589e8cb9a277f9c13ad0e3daf669a7)
This commit is contained in:
Hondacrx
2025-08-11 19:42:29 -04:00
parent 5096795793
commit ceb78e5914
8 changed files with 126 additions and 39 deletions
+17 -2
View File
@@ -1120,6 +1120,21 @@ namespace Game
}
break;
}
case ConditionSourceType.SkillLineAbility:
{
var skillLineAbility = CliDB.SkillLineAbilityStorage.LookupByKey(cond.SourceEntry);
if (skillLineAbility == null)
{
Log.outError(LogFilter.Sql, $"{cond} SourceEntry in `condition` table, does not exist in SkillLineAbility.db2, ignoring.");
return false;
}
if (skillLineAbility.AcquireMethod != SkillLineAbilityAcquireMethod.LearnedOrAutomaticCharLevel)
{
Log.outError(LogFilter.Sql, $"{cond} in SkillLineAbility.db2 does not have AcquireMethod = {SkillLineAbilityAcquireMethod.LearnedOrAutomaticCharLevel} (LearnedOrAutomaticCharLevel), ignoring.");
return false;
}
break;
}
case ConditionSourceType.GossipMenu:
case ConditionSourceType.GossipMenuOption:
case ConditionSourceType.SmartEvent:
@@ -2712,8 +2727,8 @@ namespace Game
}
case WorldStateExpressionValueType.WorldState:
{
uint worldStateId = buffer.ReadUInt32();
value = Global.WorldStateMgr.GetValue((int)worldStateId, map);
int worldStateId = buffer.ReadInt32();
value = Global.WorldStateMgr.GetValue(worldStateId, map);
break;
}
case WorldStateExpressionValueType.Function: