public static void OnLoad( ) { Console.WriteLine("CoreAI Loading..."); string filePath = Path.Combine( "Saves/AngelIsland", "CoreAI.xml" ); if ( !File.Exists( filePath ) ) return; XmlDocument doc = new XmlDocument(); doc.Load( filePath ); XmlElement root = doc["CoreAI"]; StingerMinHP = GetValue( root["StingerMinHP"], StingerMinHP ); StingerMaxHP = GetValue( root["StingerMaxHP"], StingerMaxHP ); StingerMinDamage = GetValue( root["StingerMinDamage"], StingerMinDamage ); StingerMaxDamage = GetValue( root["StingerMaxDamage"], StingerMaxDamage ); // CellGuardSpawnFreq = GetValue( root["CellGuardSpawnFreq"], CellGuardSpawnFreq ); CellGuardStrength = GetValue( root["CellGuardStrength"], CellGuardStrength ); CellGuardSkillLevel = GetValue( root["CellGuardSkillLevel"], CellGuardSkillLevel ); CellGuardNumRegDrop = GetValue( root["CellGuardNumRegDrop"], CellGuardNumRegDrop ); GuardSpawnRestartDelay = GetValue( root["GuardSpawnRestartDelay"], GuardSpawnRestartDelay ); GuardSpawnExpireDelay = GetValue( root["GuardSpawnExpireDelay"], GuardSpawnExpireDelay ); // PostGuardSpawnFreq = GetValue( root["PostGuardSpawnFreq"], PostGuardSpawnFreq ); PostGuardStrength = GetValue( root["PostGuardStrength"], PostGuardStrength ); PostGuardSkillLevel = GetValue( root["PostGuardSkillLevel"], PostGuardSkillLevel ); PostGuardNumRegDrop = GetValue( root["PostGuardNumRegDrop"], PostGuardNumRegDrop ); PostGuardNumBandiesDrop = GetValue( root["PostGuardNumBandiesDrop"], PostGuardNumBandiesDrop ); PostGuardNumGHPotDrop = GetValue( root["PostGuardNumGHPotDrop"], PostGuardNumGHPotDrop ); CaptainGuardStrength = GetValue( root["CaptainGuardStrength"], CaptainGuardStrength ); CaptainGuardSkillLevel = GetValue( root["CaptainGuardSkillLevel"], CaptainGuardSkillLevel ); CaptainGuardWeapDrop = GetValue( root["CaptainGuardWeapDrop"], CaptainGuardWeapDrop ); CaptainGuardNumRegDrop = GetValue( root["CaptainGuardNumRegDrop"], CaptainGuardNumRegDrop ); CaptainGuardNumBandiesDrop = GetValue( root["CaptainGuardNumBandiesDrop"], CaptainGuardNumBandiesDrop ); CaptainGuardGHPotsDrop = GetValue( root["CaptainGuardGHPotsDrop"], CaptainGuardGHPotsDrop ); CaptainGuardScrollDrop = GetValue( root["CaptainGuardScrollDrop"], CaptainGuardScrollDrop ); CaptainGuardNumLighthousePasses = GetValue( root["CaptainGuardNumLighthousePasses"], CaptainGuardNumLighthousePasses ); CavePortalAvailability = GetValue( root["CavePortalAvailability"], CavePortalAvailability ); // CaptainGuardLeatherSets = GetValue( root["CaptainGuardLeatherSets"], CaptainGuardLeatherSets ); // CaptainGuardRingSets = GetValue( root["CaptainGuardRingSets"], CaptainGuardRingSets ); // SpiritRespawnFreq = GetValue( root["SpiritRespawnFreq"], SpiritRespawnFreq ); SpiritRestartDelay = GetValue( root["SpiritRestartDelay"], SpiritRestartDelay ); SpiritExpireDelay = GetValue( root["SpiritExpireDelay"], SpiritExpireDelay ); SpiritPortalAvailablity = GetValue( root["SpiritPortalAvailablity"], SpiritPortalAvailablity ); SpiritFirstWaveNumber = GetValue( root["SpiritFirstWaveNumber"], SpiritFirstWaveNumber ); SpiritFirstWaveHP = GetValue( root["SpiritFirstWaveHP"], SpiritFirstWaveHP ); SpiritSecondWaveNumber = GetValue( root["SpiritSecondWaveNumber"], SpiritSecondWaveNumber ); SpiritSecondWaveHP = GetValue( root["SpiritSecondWaveHP"], SpiritSecondWaveHP ); SpiritThirdWaveNumber = GetValue( root["SpiritThirdWaveNumber"], SpiritThirdWaveNumber ); SpiritThirdWaveHP = GetValue( root["SpiritThirdWaveHP"], SpiritThirdWaveHP ); SpiritBossHP = GetValue( root["SpiritBossHP"], SpiritBossHP ); SpiritDepotGHPots = GetValue( root["SpiritDepotGHPots"], SpiritDepotGHPots ); SpiritDepotBandies = GetValue( root["SpiritDepotBandies"], SpiritDepotBandies ); SpiritDepotReagents = GetValue( root["SpiritDepotReagents"], SpiritDepotReagents ); SpiritDepotRespawnFreq = GetValue( root["SpiritDepotRespawnFreq"], SpiritDepotRespawnFreq ); // GSGG values Server.Mobiles.PlayerMobile.GSGG = GetDouble(GetText(root["GSGGTime"], "0.0"), 0.0); // PowderOfTranslocation availability PowderOfTranslocationAvail = GetDouble( GetText(root["PowderOfTranslocationAvail"], ""), PowderOfTranslocationAvail ); DynamicFeatures = GetValue( root["DynamicFeatures"], DynamicFeatures ); // more supply depot supplies SpiritDepotTRPots = GetValue( root["SpiritDepotTRPots"], SpiritDepotTRPots ); // AIP spirit spawn virtual armor SpiritFirstWaveVirtualArmor = GetValue( root["SpiritFirstWaveVirtualArmor"], SpiritFirstWaveVirtualArmor ); SpiritSecondWaveVirtualArmor = GetValue( root["SpiritSecondWaveVirtualArmor"], SpiritSecondWaveVirtualArmor ); SpiritThirdWaveVirtualArmor = GetValue( root["SpiritThirdWaveVirtualArmor"], SpiritThirdWaveVirtualArmor ); SpiritBossVirtualArmor = GetValue( root["SpiritBossVirtualArmor"], SpiritBossVirtualArmor ); // Treasure Map Drop Rate TreasureMapDrop = GetDouble( GetText(root["TreasureMapDrop"], ""), TreasureMapDrop ); // temp vars used for system tuning TempDouble = GetDouble( GetText(root["TempDouble"], ""), TempDouble ); TempInt = GetValue( root["TempInt"], TempInt ); // purple potion explosion factors ExplosionPotionSensitivityLevel = GetValue( root["ExplPotSensitivity"], ExplosionPotionSensitivityLevel ); ExplosionPotionChance = GetDouble( GetText(root["ExplPotChance"], ""), ExplosionPotionChance ); // murder count vars OfflineShortsDecayHours = GetValue( root["OfflineShortsHours"], OfflineShortsDecayHours ); OfflineShortsDecay = GetValue( root["OfflineShortsDecay"], 0 ); ExplosionPotionTargetMethod = (EPTM)GetValue( root["ExplosionPotionTargetMethod"], (int)ExplosionPotionTargetMethod ); ExplosionPotionThreshold = GetDouble( GetText(root["ExplosionPotionThreshold"], ""), ExplosionPotionThreshold ); // town crier cost TownCrierWordMinuteCost = GetValue( root["TownCrierWordMinuteCost"], TownCrierWordMinuteCost ); // spirit cohesion controls CohesionBaseDelay = GetValue( root["CohesionBaseDelay"], CohesionBaseDelay ); CohesionLowerDelay = GetValue( root["CohesionLowerDelay"], CohesionLowerDelay ); CohesionFactor = GetValue( root["CohesionFactor"],CohesionFactor ); // enchanted scroll drop chance EScrollChance = GetDouble( GetText(root["EScrollChance"], ""), EScrollChance ); // enchanted scroll success chance adjuster EScrollChance = GetDouble( GetText(root["EScrollSuccess"], ""), EScrollSuccess ); // chance to broadcast newly IDOC houses over TCCS IDOCBroadcastChance = GetDouble( GetText(root["IDOCBroadcastChance"], ""), IDOCBroadcastChance ); // chance for creatures to ignore re-aggression when not aggressing already ReaggressIgnoreChance = GetDouble( GetText(root["ReaggressIgnoreChance"], ""), ReaggressIgnoreChance ); // base period of confusion for tamed creatures upon paralysis ReaggressIgnoreChance = GetDouble( GetText(root["ConfusionBaseDelay"], ""), ConfusionBaseDelay ); WorldSaveFrequency = GetInt32( GetText(root["WorldSaveFrequency"], "30"), 30 ); DebugItemDecayOutput = ( GetInt32( GetText(root["DebugItemDecayOutput"], "0"), 0 ) != 0 ); TCAcctCleanupDays = GetInt32( GetText(root["TCAcctCleanupDays"], "30"), 30 ); StandingDelay = GetDouble( GetText(root["StandingDelay"], ""), StandingDelay ); PlayAccessLevel = (AccessLevel)GetValue(root["PlayAccessLevel"], (int)PlayAccessLevel ); TCAcctCleanupEnable = ( GetInt32( GetText(root["TCAcctCleanupEnable"], "0"), 0 ) != 0 ); RangedCorrosionModifier = GetInt32(GetText(root["RangedCorrosionModifier"], "0"), 0); GWRChangeDelayMinutes = GetInt32(GetText(root["GWRChangeDelayMinutes"], "0"), 0); GracePeriod = GetInt32(GetText(root["GracePeriod"], ""), GracePeriod); ConnectionFloor = GetInt32(GetText(root["ConnectionFloor"], ""), ConnectionFloor); Commission = GetDouble(GetText(root["Commission"], ""), Commission); MaxAccountsPerIP = GetInt32(GetText(root["MaxAccountsPerIP"], MaxAccountsPerIP.ToString()), 0); MaxAddresses = GetInt32(GetText(root["MaxAddresses"], MaxAddresses.ToString()), 0); }
public static void OnLoad() { Console.WriteLine("CoreAI Loading..."); string filePath = Path.Combine("Saves/AngelIsland", "CoreAI.xml"); if (!File.Exists(filePath)) { return; } XmlDocument doc = new XmlDocument(); doc.Load(filePath); XmlElement root = doc["CoreAI"]; StingerMinHP = GetValue(root["StingerMinHP"], StingerMinHP); StingerMaxHP = GetValue(root["StingerMaxHP"], StingerMaxHP); StingerMinDamage = GetValue(root["StingerMinDamage"], StingerMinDamage); StingerMaxDamage = GetValue(root["StingerMaxDamage"], StingerMaxDamage); // CellGuardSpawnFreq = GetValue( root["CellGuardSpawnFreq"], CellGuardSpawnFreq ); CellGuardStrength = GetValue(root["CellGuardStrength"], CellGuardStrength); CellGuardSkillLevel = GetValue(root["CellGuardSkillLevel"], CellGuardSkillLevel); CellGuardNumRegDrop = GetValue(root["CellGuardNumRegDrop"], CellGuardNumRegDrop); GuardSpawnRestartDelay = GetValue(root["GuardSpawnRestartDelay"], GuardSpawnRestartDelay); GuardSpawnExpireDelay = GetValue(root["GuardSpawnExpireDelay"], GuardSpawnExpireDelay); // PostGuardSpawnFreq = GetValue( root["PostGuardSpawnFreq"], PostGuardSpawnFreq ); PostGuardStrength = GetValue(root["PostGuardStrength"], PostGuardStrength); PostGuardSkillLevel = GetValue(root["PostGuardSkillLevel"], PostGuardSkillLevel); PostGuardNumRegDrop = GetValue(root["PostGuardNumRegDrop"], PostGuardNumRegDrop); PostGuardNumBandiesDrop = GetValue(root["PostGuardNumBandiesDrop"], PostGuardNumBandiesDrop); PostGuardNumGHPotDrop = GetValue(root["PostGuardNumGHPotDrop"], PostGuardNumGHPotDrop); CaptainGuardStrength = GetValue(root["CaptainGuardStrength"], CaptainGuardStrength); CaptainGuardSkillLevel = GetValue(root["CaptainGuardSkillLevel"], CaptainGuardSkillLevel); CaptainGuardWeapDrop = GetValue(root["CaptainGuardWeapDrop"], CaptainGuardWeapDrop); CaptainGuardNumRegDrop = GetValue(root["CaptainGuardNumRegDrop"], CaptainGuardNumRegDrop); CaptainGuardNumBandiesDrop = GetValue(root["CaptainGuardNumBandiesDrop"], CaptainGuardNumBandiesDrop); CaptainGuardGHPotsDrop = GetValue(root["CaptainGuardGHPotsDrop"], CaptainGuardGHPotsDrop); CaptainGuardScrollDrop = GetValue(root["CaptainGuardScrollDrop"], CaptainGuardScrollDrop); CaptainGuardNumLighthousePasses = GetValue(root["CaptainGuardNumLighthousePasses"], CaptainGuardNumLighthousePasses); CavePortalAvailability = GetValue(root["CavePortalAvailability"], CavePortalAvailability); // CaptainGuardLeatherSets = GetValue( root["CaptainGuardLeatherSets"], CaptainGuardLeatherSets ); // CaptainGuardRingSets = GetValue( root["CaptainGuardRingSets"], CaptainGuardRingSets ); // SpiritRespawnFreq = GetValue( root["SpiritRespawnFreq"], SpiritRespawnFreq ); SpiritRestartDelay = GetValue(root["SpiritRestartDelay"], SpiritRestartDelay); SpiritExpireDelay = GetValue(root["SpiritExpireDelay"], SpiritExpireDelay); SpiritPortalAvailablity = GetValue(root["SpiritPortalAvailablity"], SpiritPortalAvailablity); SpiritFirstWaveNumber = GetValue(root["SpiritFirstWaveNumber"], SpiritFirstWaveNumber); SpiritFirstWaveHP = GetValue(root["SpiritFirstWaveHP"], SpiritFirstWaveHP); SpiritSecondWaveNumber = GetValue(root["SpiritSecondWaveNumber"], SpiritSecondWaveNumber); SpiritSecondWaveHP = GetValue(root["SpiritSecondWaveHP"], SpiritSecondWaveHP); SpiritThirdWaveNumber = GetValue(root["SpiritThirdWaveNumber"], SpiritThirdWaveNumber); SpiritThirdWaveHP = GetValue(root["SpiritThirdWaveHP"], SpiritThirdWaveHP); SpiritBossHP = GetValue(root["SpiritBossHP"], SpiritBossHP); SpiritDepotGHPots = GetValue(root["SpiritDepotGHPots"], SpiritDepotGHPots); SpiritDepotBandies = GetValue(root["SpiritDepotBandies"], SpiritDepotBandies); SpiritDepotReagents = GetValue(root["SpiritDepotReagents"], SpiritDepotReagents); SpiritDepotRespawnFreq = GetValue(root["SpiritDepotRespawnFreq"], SpiritDepotRespawnFreq); // GSGG values Server.Mobiles.PlayerMobile.GSGG = GetDouble(GetText(root["GSGGTime"], "0.0"), 0.0); // PowderOfTranslocation availability PowderOfTranslocationAvail = GetDouble(GetText(root["PowderOfTranslocationAvail"], ""), PowderOfTranslocationAvail); DynamicFeatures = GetValue(root["DynamicFeatures"], DynamicFeatures); // more supply depot supplies SpiritDepotTRPots = GetValue(root["SpiritDepotTRPots"], SpiritDepotTRPots); // AIP spirit spawn virtual armor SpiritFirstWaveVirtualArmor = GetValue(root["SpiritFirstWaveVirtualArmor"], SpiritFirstWaveVirtualArmor); SpiritSecondWaveVirtualArmor = GetValue(root["SpiritSecondWaveVirtualArmor"], SpiritSecondWaveVirtualArmor); SpiritThirdWaveVirtualArmor = GetValue(root["SpiritThirdWaveVirtualArmor"], SpiritThirdWaveVirtualArmor); SpiritBossVirtualArmor = GetValue(root["SpiritBossVirtualArmor"], SpiritBossVirtualArmor); // Treasure Map Drop Rate TreasureMapDrop = GetDouble(GetText(root["TreasureMapDrop"], ""), TreasureMapDrop); // temp vars used for system tuning TempDouble = GetDouble(GetText(root["TempDouble"], ""), TempDouble); TempInt = GetValue(root["TempInt"], TempInt); // purple potion explosion factors ExplosionPotionSensitivityLevel = GetValue(root["ExplPotSensitivity"], ExplosionPotionSensitivityLevel); ExplosionPotionChance = GetDouble(GetText(root["ExplPotChance"], ""), ExplosionPotionChance); // murder count vars OfflineShortsDecayHours = GetValue(root["OfflineShortsHours"], OfflineShortsDecayHours); OfflineShortsDecay = GetValue(root["OfflineShortsDecay"], 0); ExplosionPotionTargetMethod = (EPTM)GetValue(root["ExplosionPotionTargetMethod"], (int)ExplosionPotionTargetMethod); ExplosionPotionThreshold = GetDouble(GetText(root["ExplosionPotionThreshold"], ""), ExplosionPotionThreshold); // town crier cost TownCrierWordMinuteCost = GetValue(root["TownCrierWordMinuteCost"], TownCrierWordMinuteCost); // spirit cohesion controls CohesionBaseDelay = GetValue(root["CohesionBaseDelay"], CohesionBaseDelay); CohesionLowerDelay = GetValue(root["CohesionLowerDelay"], CohesionLowerDelay); CohesionFactor = GetValue(root["CohesionFactor"], CohesionFactor); // enchanted scroll drop chance EScrollChance = GetDouble(GetText(root["EScrollChance"], ""), EScrollChance); // enchanted scroll success chance adjuster EScrollChance = GetDouble(GetText(root["EScrollSuccess"], ""), EScrollSuccess); // chance to broadcast newly IDOC houses over TCCS IDOCBroadcastChance = GetDouble(GetText(root["IDOCBroadcastChance"], ""), IDOCBroadcastChance); // chance for creatures to ignore re-aggression when not aggressing already ReaggressIgnoreChance = GetDouble(GetText(root["ReaggressIgnoreChance"], ""), ReaggressIgnoreChance); // base period of confusion for tamed creatures upon paralysis ReaggressIgnoreChance = GetDouble(GetText(root["ConfusionBaseDelay"], ""), ConfusionBaseDelay); WorldSaveFrequency = GetInt32(GetText(root["WorldSaveFrequency"], "30"), 30); DebugItemDecayOutput = (GetInt32(GetText(root["DebugItemDecayOutput"], "0"), 0) != 0); TCAcctCleanupDays = GetInt32(GetText(root["TCAcctCleanupDays"], "30"), 30); StandingDelay = GetDouble(GetText(root["StandingDelay"], ""), StandingDelay); PlayAccessLevel = (AccessLevel)GetValue(root["PlayAccessLevel"], (int)PlayAccessLevel); TCAcctCleanupEnable = (GetInt32(GetText(root["TCAcctCleanupEnable"], "0"), 0) != 0); RangedCorrosionModifier = GetInt32(GetText(root["RangedCorrosionModifier"], "0"), 0); GWRChangeDelayMinutes = GetInt32(GetText(root["GWRChangeDelayMinutes"], "0"), 0); GracePeriod = GetInt32(GetText(root["GracePeriod"], ""), GracePeriod); ConnectionFloor = GetInt32(GetText(root["ConnectionFloor"], ""), ConnectionFloor); Commission = GetDouble(GetText(root["Commission"], ""), Commission); MaxAccountsPerIP = GetInt32(GetText(root["MaxAccountsPerIP"], MaxAccountsPerIP.ToString()), 0); MaxAddresses = GetInt32(GetText(root["MaxAddresses"], MaxAddresses.ToString()), 0); SlayerWeaponDropRate = GetDouble(GetText(root["SlayerWeaponDropRate"], ""), SlayerWeaponDropRate); CurrentWorldSize = (WorldSize)GetInt32(GetText(root["CurrentWorldSize"], ""), (int)CurrentWorldSize); }