// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #include "stdpch.h" #include "egs_variables.h" #include "entities_game_service.h" #include "player_manager/player_manager.h" #include "player_manager/player.h" #include "guild_manager/fame_manager.h" using namespace NLMISC; using namespace std; CVariable ClearAttackFlags("egs","ClearAttackFlags","teampraire !!",true,0,true); CVariable GuildSystemEnabled("egs","GuildSystemEnabled","bool enabling /disabling the GuildSystem",true,0,true); CVariable MissionSystemEnabled("egs","MissionSystemEnabled","bool enabling /disabling the MissionSystem",true,0,true); CVariable PackAnimalSystemEnabled("egs","PackAnimalSystemEnabled","bool enabling /disabling the PackAnimalSystem",true,0,true); CVariable EnchantSystemEnabled("egs","EnchantSystemEnabled","bool enabling /disabling the EnchantSystem",true,0,true); CVariable ForageSystemEnabled("egs","ForageSystemEnabled","bool enabling /disabling the ForageSystem",true,0,true); CVariable CraftSystemEnabled("egs","CraftSystemEnabled","bool enabling /disabling the CraftSystem",true,0,true); CVariable HarvestSystemEnabled("egs","HarvestSystemEnabled","bool enabling /disabling the HarvestSystem",true,0,true); CVariable DelayBeforeItemTP("egs","DelayBeforeItemTP","delay between item use and teleportation",150,0,true); // XP/Progression config CVariable MaxDistanceForXpGain("egs","MaxDistanceForXpGain", "max distance from combat to gain Xp at creature death (in meters)", 50.0f, 0, true ); CVariable XPTeamMemberDivisorValue("egs","XPTeamMemberDivisorValue", "for team XP progression, add this value to the xp divisor for each team member above one", 0.9f, 0, true ); CVariable MaxXPGainPerPlayer("egs","MaxXPGainPerPlayer", "Max XP gain by any one player on any creature (each team member can gain up to this value)", 30.0f, 0, true ); CVariable NbTickForRegenCreature("egs","NbTickForRegenCreature", "nb tick needed for regenerate scores of all creature (total creature / number regenerated per tick)", 64, 0, true ); // variable create Character Start skills value CVariable CreateCharacterStartSkillsValue("egs","CreateCharacterStartSkillsValue", "create Character Start skills value", std::string(""), 0, true ); // variable for death penalty duration CVariable DeathXPFactor("egs","DeathXPFactor", "XP to gain after a death is DeathXPFactor * max skill /(1 + death index )", 10, 0, true ); // variable for death penalty resorption CVariable DeathXPResorptionTime("egs","DeathXPResorptionTime", "XP resorbs totally after DeathXPResorptionTime / NbDeath", 3, 0, true ); // variable for min best skill value to get death penalty CVariable DeathPenaltyMinLevel("egs","DeathPenaltyMinLevel", "No death penalty if best skill value is lesser than DeathPenaltyMinLevel", 10, 0, true ); // comma duration before character are dead (it's time allowed for resurect player buy a healing spell) CVariable CommaDelayBeforeDeath( "egs", "CommaDelayBeforeDeath", "Comma time in server tick before a character dead", 3000, 0, true ); // variable define Max skill value can be reached, this not decrease skill value if this limit are reduce and player character have higher skills CVariable SkillFightValueLimiter("egs","SkillFightValueLimiter", "Skill value limit", 250, 0, true ); CVariable SkillMagicValueLimiter("egs","SkillMagicValueLimiter", "Skill value limit", 250, 0, true ); CVariable SkillCraftValueLimiter("egs","SkillCraftValueLimiter", "Skill value limit", 250, 0, true ); CVariable SkillHarvestValueLimiter("egs","SkillHarvestValueLimiter", "Skill value limit", 250, 0, true ); // magic skill boost for low level chars CVariable MagicSkillStartValue("egs","MagicSkillStartValue", "Minimum magic skill used for break cast and resist tests", 20, 0, true ); // variable define if areas effects are on or off CVariable FightAreaEffectOn("egs","FightAreaEffectOn", "Are effect for fight are active if variable = true", true, 0, true ); CVariable MagicAreaEffectOn("egs","MagicAreaEffectOn", "Are effect for magic are active if variable = true", true, 0, true ); CVariable HarvestAreaEffectOn("egs","HarvestAreaEffectOn", "Are effect for harvest (toxic cloud) are active if variable = true", true, 0, true ); CVariable MaxAreaTargetCount("egs","MaxAreaTargetCount", "maximum number of target in an area effect spell/missile", 6, 0, true ); CVariable CorrectInvalidPlayerPositions("egs","CorrectInvalidPlayerPositions", "If true, invalid player positions will be corrected if when a player logs in", true, 0, true ); CVariable MountDuration("egs","MountDuration","delay in ticks between mount order and player really mounted on creature",50,0,true); CVariable UnmountDuration("egs","UnmountDuration","delay in ticks between unmount order and player really unmounted from creature",30,0,true); /// tod guild : put that to false when ben has debugged the system CVariable DataPersistsAsText("egs","DataPersistsAsText", "If true Persistant data will be stored as text", false, 0, true ); CVariable GuildSavingPeriod("egs","GuildSavingPeriod", "guild saving period in ticks", 10, 0, true ); CVariable StoreSavePeriod("egs","StoreSavePeriod","sell store save period in ticks", 10, 0, true ); // values used by the weapon table CVariable MinDamage("egs","MinDamage", "Min damage (when skill 0), used by weapon damage table", 25.0f, 0, true ); CVariable DamageStep("egs","DamageStep", "Damage step, used by weapon damage table", 1.0f, 0, true ); CVariable ExponentialPower("egs","ExponentialPower", "ExponentialPower used by weapon damage table", 2.0f, 0, true ); CVariable SmoothingFactor("egs","SmoothingFactor", "SmoothingFactor used by weapon damage table", 0.8f, 0, true ); // combat config vars CVariable HandToHandDamage("egs","HandToHandDamage", "damage factor when fighting without weapons", 0.35f, 0, true ); CVariable HandToHandLatency("egs","HandToHandLatency", "attacks latency *in ticks* when fighting without a weapon", 30, 0, true ); CVariable HandToHandReachValue("egs","HandToHandReachValue", "reach value (~allonge) when fighting without a weapon", 0, 0, true ); CVariable MinTwoWeaponsLatency("egs","MinTwoWeaponsLatency", "Min attack latency (in ticks) when using 2 weapons", 15, 0, true ); CVariable MaxAngleForRangeCombat("egs","MaxAngleForRangeCombat", "Max angle in Radians between player heading and target position to validate range combat", (float)NLMISC::Pi, 0, true ); CVariable AreaEffectClipDistance("egs","AreaEffectClipDistance", "above this value (in mm) we clip vertical range to 'AreaEffectClipVerticalRange' millimeters", 5000, 0, true ); CVariable AreaEffectClipVerticalRange("egs","AreaEffectClipVerticalRange", "vertical range of area effects when area effect range is below 4-5meters (see 'AreaEffectClipDistance')", 2000, 0, true ); // fame interpolation time (for player fame comming from guild) CVariable FameMemoryInterpolation("egs","FameMemoryInterpolation", "Guild fame interpolation time in ticks", 4320000, 0, true ); // fame trend reset delay. CVariable FameTrendResetDelay("egs","FameTrendResetDelay", "Guild fame trend reset delay in ticks", 18000, 0, true ); CVariable AutoSpawnForageSourcePeriodOverride( "egs", "AutoSpawnForageSourcePeriodOverride", "Average time in ticks between two auto-spawns of forage source in a deposit with auto-spawn enabled (set to 0 to use deposit settings instead)", 0, // using deposit settings instead 0, true ); CVariable ForageKamiAngerDecreasePerHour( "egs", "ForageKamiAngerDecreasePerHour", "Level of kami anger automatically decreased per hour (10x3600 gamecycles)", 83.0f, // decrease by 1000 in about 12h 0, true ); CVariable ForageKamiAngerOverride( "egs", "ForageKamiAngerOverride", "Force all deposits to the specified kami anger level (debug option)", 0, 0, false ); CVariable ForageKamiAngerThreshold1( "egs", "ForageKamiAngerThreshold1", "Threshold 1 of kami anger level ( ForageKamiAngerThreshold2( "egs", "ForageKamiAngerThreshold2", "Threshold 1 of kami anger level (>ForageKamiAngerThreshold1)", 1000.0f, 0, true ); CVariable ForageKamiAngerPunishDamage( "egs", "ForageKamiPunishDamage", "Max HP hit once by an angry (invisible) kami", 6000, 0, true ); /*CVariable ForageKamiAngerPunishFX( "KamiAngerPunishFX", "0 = Piercing; 1 = Blunt; 2 = Slashing", 1, 0, true );*/ CVariable ForageSiteStock( "egs", "ForageSiteStock", "Number of extractions before a forage site is empty", 100, 0, true ); CVariable ForageSiteNbUpdatesToLive( "egs", "ForageSiteNbUpdatesToLive", "Number of deposit updates before a forage site stock is reset", 10, 0, true ); CVariable ForageSiteRadius( "egs", "ForageSiteRadius", "Radius of foage site area", 9.0f, // diameter 18 m (as wide as three source ranges) 0, true ); CVariable UseAsyncBSPlayerLoading("egs","UseAsyncBSPlayerLoading", "Use BS for Asynchrone player loading", true, 0, true ); //CVariable BackupServiceIP("egs","BSHost", "Host address and port of backup service (ip:port)", "localhost", 0, true ); //CVariable UseBS("egs","UseBS", "if 1, use the backup service or use local save", false, 0, true); //#ifdef NL_DEBUG CVariable GlobalDebugDamageFactor("egs","GlobalDebugDamageFactor", "global damage factor (debug only)", 1.0f, 0, true ); //#endif CVariable VerboseWorldInstance("egs","VerboseWorldInstance", "world instance activity verbose", false, 0, true ); // FOR TESTING ONLY CVariable EntitiesNoResist("egs","EntitiesNoResist", "change or just display the NoResist flag - true means no target resist", false ,0 , true); CVariable EntitiesNoActionFailure("egs","EntitiesNoActionFailure", "hange or just display the NoActionFailure flag - true means no failure", false ,0 , true); CVariable EntitiesNoCastBreak("egs","EntitiesNoCastBreak","change or just display the NoCastBreak flag - true means no cast break when hit", false ,0 , true); // ITEM DECAY vars CVariable ReferenceWeaponLatencyForWear("egs","ReferenceLatencyForWear","latency used as reference for weapon wear, a weapon with this latency will have a wear factor of 1.0", 20,0,true);; CVariable DaggerWearPerAction("egs","DaggerWearPerAction","define the 'wear per action' for Dagger (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable SwordWearPerAction("egs","SwordWearPerAction","define the 'wear per action' for Sword (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable MaceWearPerAction("egs","MaceWearPerAction","define the 'wear per action' for Mace (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable AxeWearPerAction("egs","AxeWearPerAction","define the 'wear per action' for Axe (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable SpearWearPerAction("egs","SpearWearPerAction","define the 'wear per action' for Spear (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable StaffWearPerAction("egs","StaffWearPerAction","define the 'wear per action' for Staff (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable MagicianStaffWearPerAction("egs","MagicianStaffWearPerAction","define the 'wear per action' for MagicianStaff (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable TwoHandSwordWearPerAction("egs","TwoHandSwordWearPerAction","define the 'wear per action' for TwoHandSword (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable TwoHandAxeWearPerAction("egs","TwoHandAxeWearPerAction","define the 'wear per action' for TwoHandAxe (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable PikeWearPerAction("egs","PikeWearPerAction","define the 'wear per action' for Pike (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable TwoHandMaceWearPerAction("egs","TwoHandMaceWearPerAction","define the 'wear per action' for TwoHandMace (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable AutolauchWearPerAction("egs","AutolauchWearPerAction","define the 'wear per action' for Autolauch (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable BowrifleWearPerAction("egs","BowrifleWearPerAction","define the 'wear per action' for Bowrifle (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable LauncherWearPerAction("egs","LauncherWearPerAction","define the 'wear per action' for Launcher (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable PistolWearPerAction("egs","PistolWearPerAction","define the 'wear per action' for Pistol (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable BowpistolWearPerAction("egs","BowpistolWearPerAction","define the 'wear per action' for Bowpistol (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable RifleWearPerAction("egs","RifleWearPerAction","define the 'wear per action' for Rifle (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable CraftingToolWearPerAction("egs","CraftingToolWearPerAction","define the 'wear per action' for CraftingTool (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable ForageToolWearPerAction("egs","ForageToolWearPerAction","define the 'wear per action' for ForageTool (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable ArmorWearPerAction("egs","ArmorWearPerAction","define the 'wear per action' for Armor (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable JewelryWearPerAction("egs","JewelryWearPerAction","define the 'wear per action' for Jewels (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable ShieldWearPerAction("egs","ShieldWearPerAction","define the 'wear per action' for Shield (1.0 = -1 HP for each action)", 0.01f,0,true); CVariable WornState1("egs","WornState1","define the 'WornState1' for items (0.2 = 20% of hp)", 0.25f,0,true); CVariable WornState2("egs","WornState2","define the 'WornState2' for items (0.2 = 20% of hp)", 0.10f,0,true); CVariable WornState3("egs","WornState3","define the 'WornState3' for items (0.2 = 20% of hp)", 0.05f,0,true); CVariable WornState4("egs","WornState4","define the 'WornState4' for items (0.2 = 20% of hp)", 0.01f,0,true); // MAGIC config // add some time to dead links CVariable NoLinkSurvivalAddTime("egs","NoLinkSurvivalAddTime","add some time to dead links", 0,0,true); CVariable NoLinkTimeFear("egs","NoLinkTimeFear","add some time to dead Fear links", 0,0,true); CVariable NoLinkTimeSleep("egs","NoLinkTimeSleep","add some time to dead Sleep links", 0,0,true); CVariable NoLinkTimeStun("egs","NoLinkTimeStun","add some time to dead Stun links", 0,0,true); CVariable NoLinkTimeRoot("egs","NoLinkTimeRoot","add some time to dead Root links", 0,0,true); CVariable NoLinkTimeSnare("egs","NoLinkTimeSnare","add some time to dead Snare links", 0,0,true); CVariable NoLinkTimeSlow("egs","NoLinkTimeSlow","add some time to dead Slow links", 0,0,true); CVariable NoLinkTimeBlind("egs","NoLinkTimeBlind","add some time to dead Blind links", 0,0,true); CVariable NoLinkTimeMadness("egs","NoLinkTimeMadness","add some time to dead Madness links", 0,0,true); CVariable NoLinkTimeDot("egs","NoLinkTimeDot","add some time to dead Dot links", 0,0,true); CVariable UpdatePeriodFear("egs","UpdatePeriodFear","update period of Fear link spells", 40,0,true); CVariable UpdatePeriodSleep("egs","UpdatePeriodSleep","update period of Sleep link spells", 40,0,true); CVariable UpdatePeriodStun("egs","UpdatePeriodStun","update period of Stun link spells", 40,0,true); CVariable UpdatePeriodRoot("egs","UpdatePeriodRoot","update period of Root link spells", 40,0,true); CVariable UpdatePeriodSnare("egs","UpdatePeriodSnare","update period of Snare link spells", 40,0,true); CVariable UpdatePeriodSlow("egs","UpdatePeriodSlow","update period of Slow link spells", 40,0,true); CVariable UpdatePeriodBlind("egs","UpdatePeriodBlind","update period of Blind link spells", 40,0,true); CVariable UpdatePeriodMadness("egs","UpdatePeriodMadness","update period of Madness link spells", 40,0,true); CVariable UpdatePeriodDot("egs","UpdatePeriodDot","update period of Dot link spells", 40,0,true); CVariable DefaultUpdatePeriod("egs","DefaultUpdatePeriod","default update period of link spells", 40,0,true); // add some post cast time to magic (latency) CVariable PostCastLatency("egs","PostCastLatency","add some post cast time to magic (latency in ticks)", 5,0,true); // value added to resist value each time a spell is cast on an entity CVariable ResistIncreaseFear("egs","ResistIncreaseFear","value added to Fear resist each time a Fear spell is cast on an entity", 5,0,true); CVariable ResistIncreaseSleep("egs","ResistIncreaseSleep","value added to Sleep resist each time a Sleep spell is cast on an entity", 5,0,true); CVariable ResistIncreaseStun("egs","ResistIncreaseStun","value added to Stun resist each time a Stun spell is cast on an entity", 5,0,true); CVariable ResistIncreaseRoot("egs","ResistIncreaseRoot","value added to Root resist each time a Root spell is cast on an entity", 5,0,true); CVariable ResistIncreaseSnare("egs","ResistIncreaseSnare","value added to Snare resist each time a Snare spell is cast on an entity", 5,0,true); CVariable ResistIncreaseSlow("egs","ResistIncreaseSlow","value added to Slow resist each time a Slow spell is cast on an entity", 5,0,true); CVariable ResistIncreaseBlind("egs","ResistIncreaseBlind","value added to Blind resist each time a Blind spell is cast on an entity", 5,0,true); CVariable ResistIncreaseMadness("egs","ResistIncreaseMadness","value added to Madness resist each time a Madness spell is cast on an entity", 5,0,true); CVariable ResistIncreaseAcid("egs","ResistIncreaseAcid","value added to Acid resist each time a Acid spell is cast on an entity", 3,0,true); CVariable ResistIncreaseCold("egs","ResistIncreaseCold","value added to Cold resist each time a Cold spell is cast on an entity", 3,0,true); CVariable ResistIncreaseElectricity("egs","ResistIncreaseElectricity","value added to Electricity resist each time a Electricity spell is cast on an entity", 5,0,true); CVariable ResistIncreaseFire("egs","ResistIncreaseFire","value added to Fire resist each time a Fire spell is cast on an entity", 3,0,true); CVariable ResistIncreasePoison("egs","ResistIncreasePoison","value added to Poison resist each time a Poison spell is cast on an entity", 3,0,true); CVariable ResistIncreaseRot("egs","ResistIncreaseRot","value added to Rot resist each time a Rot spell is cast on an entity", 3,0,true); CVariable ResistIncreaseShockwave("egs","ResistIncreaseShockwave","value added to Shockwave resist each time a Shockwave spell is cast on an entity", 3,0,true); // values used to determine player magic resist level CVariable MagicResistFactorForCombatSkills("egs","MagicResistFactorForCombatSkills","factor on combat skill level to get equivalent magic resist level", 1.0f,0,true); CVariable MagicResistFactorForMagicSkills("egs","MagicResistFactorForMagicSkills","factor on magic skill level to get equivalent magic resist level", 1.0f,0,true); CVariable MagicResistFactorForForageSkills("egs","MagicResistFactorForForageSkills","factor on forage skill level to get equivalent magic resist level", 0.5f,0,true); CVariable MagicResistSkillDelta("egs","MagicResistSkillDelta","value always added to player base magic resist", -25,0,true); CVariable MaxMagicProtection("egs","MaxMagicProtection","Maximum protection a character can have against a magic damage",80,0,true); CVariable MaxAbsorptionFactor("egs","MaxAbsorptionFactor","Maximum magic damage absorption factor, 100 = factor 1.0f, base absorption is sum of jewel level", 100,0,true); CVariable HominBaseProtection("egs","HominBaseProtection","Homin base protection against magic common damage (cold, acid, rot)", 10,0,true); CVariable HominRacialProtection("egs","HominRacialProtection","Homin base protection against magic racial damage (Fire, Poison, Shockwave, Electricity)", 20,0,true); CVariable HominRacialResistance("egs","HominRacialResistance","Homin base resistance against magic racial spell type", 10,0,true); CVariable MaxMagicResistanceBonus("egs","MaxMagicResistanceBonus","Max bonus resistance against magic spell type", 50,0,true); CVariable EcosystemResistancePenalty("egs","EcosystemResistancePenalty","Resistance Penalty gived by each ecosystem", 10,0,true); // intangible time after a teleport or a respawn CVariable IntangibleTimeAfterTP("egs","IntangibleTimeAfterTP","intangible time after a teleport or a respawn (in ticks)", 30,0,true); // update frequency of the compass target position (in ticks) CVariable CompassTargetUpdateFrequency("egs","CompassTargetUpdateFrequency", " update frequency of the compass target position (in ticks)", 20, 0, true); // update period of toxic cloud damaging (in ticks) CVariable ToxicCloudUpdateFrequency("egs","ToxicCloudUpdateFrequency", "update frequency of toxic cloud damaging (in ticks)", 20, 0, true); // update period of deposits (in ticks) (should not be frequent; 0 is forbidden) CVariable DepositUpdateFrequency("egs","DepositUpdateFrequency", "update frequency of deposits (in ticks)", 300, 0, true, cbChangeDepositUpdateFrequency); // default: 30 s // update period of auras effects (to determine chich entities are affected for instance) (in ticks) CVariable AurasUpdateFrequency("egs","AurasUpdateFrequency", "update frequency of auras effects (to determine which entities are affected for instance) (in ticks)", 20, 0, true); // update frequency of locate deposit effect CVariable ForageLocateDepositUpdateFrequency("egs","ForageLocateDepositUpdateFrequency", "update frequency of locate deposit effect", 25, 0, true ); // characteristic brick progression step CVariable CharacteristicBrickStep("egs","CharacteristicBrickStep", "characteristic brick progression step(brick xxxx05 match a charac value of characteristic 5*CharacteristicBrickStep)", 5, 0, true); // Variable regen divisor & factor CVariable RegenDivisor("egs","RegenDivisor", "Divisor used for compute regenerate per seconde in repos (divide characteristics per divisor)", 16.0f, 0, true, CPlayerService::updateRegen ); CVariable RegenReposFactor("egs","RegenReposFactor", "Divisor used for compute regenerate per seconde in action (regen repos / factor)", 2.0f, 0, true, CPlayerService::updateRegen ); CVariable RegenOffset("egs","RegenOffset", "Regen offset", 1.6f, 0, true, CPlayerService::updateRegen ); // Max value for player's characteristics CVariable MaxCharacteristicValue("egs","MaxCharacteristicValue", "Max value for player's characteristics", 250, 0, true); // COMBAT config // factor on creature and npc damage CVariable BotDamageFactor("egs","BotDamageFactor", "Factor applied on all Bots (creature and npcs) damage", 1.0f, 0, true ); CVariable HitChestStaLossFactor("egs","HitChestStaLossFactor", "factor of damage also lost in sta when hit to chest", 0.5f, 0, true ); CVariable HitHeadStunDuration("egs","HitHeadStunDuration", "duration (in seconds) of a stun when hit to head", 2.5f, 0, true ); CVariable HitArmsSlowDuration("egs","HitArmsSlowDuration", "duration (in seconds) of a slow attack when hit to arms", 5.0f, 0, true ); CVariable HitArmsSlowFactor("egs","HitArmsSlowFactor", "slowing factor when hit to arms (+20 = +20% to attack latency)", 50, 0, true ); CVariable HitLegsSlowDuration("egs","HitLegsSlowDuration", "duration (in seconds) of a slow move when hit to legs", 5.0f, 0, true ); CVariable HitLegsSlowFactor("egs","HitLegsSlowFactor", "slowing factor when hit to legs (-20 = -20% to move speed)", -20, 0, true ); CVariable HitHandsDebuffDuration("egs","HitHandsDebuffDuration", "duration in seconds of skills debuff when hit to hands", 5.0f, 0, true ); CVariable HitHandsDebuffValue("egs","HitHandsDebuffValue", "value of skills debuff when hit to hands ", -20, 0, true ); CVariable HitFeetDebuffDuration("egs","HitFeetDebuffDuration", "duration in seconds of dodge debuff when hit to feet", 5.0f, 0, true ); CVariable HitFeetDebuffValue("egs","HitFeetDebuffValue", "value of skills dodge when hit to hands ", -20, 0, true ); CVariable NbOpponentsBeforeMalus("egs","NbOpponentsBeforeMalus", "number of opponent one can handle without defense malus", 1, 0, true ); CVariable ModPerSupernumeraryOpponent("egs","ModPerSupernumeraryOpponent", "modifier on defense (parry/dodge) per opponent after 'n'", -5, 0, true ); CVariable ShieldingRadius("egs","ShieldingRadius", "effective radius of the 'shielding' power", 5.0f, 0, true ); CVariable CombatFlagLifetime("egs","CombatFlagLifetime", "time *in ticks* during which a combat flag is kept 'active'", 50, 0, true ); CVariable CriticalHitChances("egs","CriticalHitChances", "chances (in%) to make a critical hit during a combat action (5 means 5%)", 5, 0, true ); CVariable DodgeFactorForMagicSkills("egs","DodgeFactorForMagicSkills", "Factor aplied on magic skill values to determine the equivalent for dodge", 1.0f, 0, true ); CVariable DodgeFactorForForageSkills("egs","DodgeFactorForForageSkills", "Factor aplied on forage skill values to determine the equivalent for dodge", 0.5f, 0, true ); CVariable ForageExtractionTimeMinGC( "egs", "ForageExtractionTimeMinGC", "Minimum time of extraction in ticks", 230.0f, 0, true ); CVariable ForageExtractionTimeSlopeGC( "egs", "ForageExtractionTimeSlopeGC", "Slope of base extraction time curve", 2.0f, 0, true ); CVariable ForageQuantityBaseRate( "egs", "ForageQuantityBaseRate", "Base of extraction rate", 0.23f, 0, true ); // 0.23 doubles the previous minimum setting // ForageQuantitySlowFactor=0.5 => Results: 100% of rate at extraction #4 CVariable ForageQuantitySlowFactor( "egs","ForageQuantitySlowFactor", "Factor for slowness of quantity growth", 0.5f, 0, true ); // ForageQualitySlowFactor=1.69 and ForageQualityCeilingFactor=1.1 CVariable ForageQualitySlowFactor( "egs","ForageQualitySlowFactor", "Factor for slowness of quality growth", 1.69f, 0, true ); CVariable ForageQualitySlowFactorQualityLevelRatio( "egs", "ForageQualitySlowFactorQualityLevelRatio", "Each quality level in extraction action slows the quality raising from this amount", 0.01f, 0, true ); CVariable ForageQualitySlowFactorDeltaLevelRatio( "egs", "ForageQualitySlowFactorDeltaLevelRatio", "Each delta between quality level in extraction action and player's level slows the quality raising from this amount", 0.08f, 0, true ); CVariable ForageQualitySlowFactorMatSpecRatio( "egs", "ForageQualitySlowFactorMatSpecRatio", "Material specialization in extraction speeds up the quality raising from this amount", 0.80f, 0, true ); CVariable ForageQualityCeilingFactor( "egs","ForageQualityCeilingFactor", "Factor for ceiling of quality growth", 1.1f, 0, true ); CVariable ForageQualityCeilingClamp( "egs","ForageQualityCeilingClamp", "Prevent to go past the ceiling", true, 0, true ); // Impact on negative values CVariable ForageQuantityImpactFactor( "egs","ForageQuantityImpactFactor", "Factor for extraction impact", 20.0f, 0, true ); CVariable ForageQualityImpactFactor( "egs","ForageQualityImpactFactor", "Factor for extraction impact", 1.5f, 0, true ); CVariable ForageExtractionAbsorptionMatSpecFactor( "egs", "ForageExtractionAbsorptionMatSpecFactor", "Material specialization reduces harmfulness", 4.0f, 0, true ); CVariable ForageExtractionAbsorptionMatSpecMax( "egs", "ForageExtractionAbsorptionMatSpecMax", "Material specialization reduces harmfulness", 0.8f, 0, true ); CVariable ForageExtractionCareMatSpecFactor( "egs", "ForageExtractionCareMatSpecFactor", "Material specialization raises care", 1.2f, 0, true ); CVariable ForageExtractionAbsorptionEcoSpecFactor( "egs", "ForageExtractionAbsorptionEcoSpecFactor", "Ecosystem specialization reduces harmfulness", 3.0f, 0, true ); CVariable ForageExtractionAbsorptionEcoSpecMax( "egs", "ForageExtractionAbsorptionEcoSpecMax", "Ecosystem specialization reduces harmfulness", 0.8f, 0, true ); CVariable ForageExtractionCareEcoSpecFactor( "egs", "ForageExtractionCareEcoSpecFactor", "Ecosystem specialization raises care", 1.1f, 0, true ); CVariable ForageExtractionNaturalDDeltaPerTick( "egs", "ForageExtractionNaturalDDeltaPerTick", "D increase per tick", 0.1f, 0, true ); CVariable ForageExtractionNaturalEDeltaPerTick( "egs", "ForageExtractionNaturalEDeltaPerTick", "E increase per tick", 0.1f, 0, true ); CVariable ForageHPRatioPerSourceLifeImpact( "egs", "HPRatioPerSourceLifeImpact", "Ratio of HP damaged per source life (D) impact value", 0.003937f, 0, true ); // 1/127 / 2 CVariable ForageCareFactor( "egs","ForageCareFactor","Factor for care delta", 4.0f,0, true ); CVariable ForageCareBeginZone( "egs", "ForageCareBeginZone", "", 5.0f, 0, true ); CVariable ForageProspectionXPBonusRatio( "egs", "ForageProspectionXPBonusRatio", "", 0.5f, 0, true ); CVariable ForageExtractionXPFactor( "egs", "ForageExtractionXPFactor", "", 5.0f, 0, true ); CVariable ForageExtractionNbParticipantsXPBonusRatio( "egs", "ForageExtractionNbParticipantsXPBonusRatio", "", 0.1f, 0, true ); CVariable ForageExtractionNastyEventXPMalusRatio( "egs", "ForageExtractionNastyEventXPMalusRatio", "", 0.1f, 0, true ); CVariable ToxicCloudDamage( "egs","ToxicCloudDamage", "Max HP hit by a toxic cloud at ToxicCloudUpdateFrequency", 800.0f, true ); CVariable ForageExplosionDamage( "egs","ForageExplosionDamage", "Max HP hit once by a forage explosion", 4000.0f, true ); CVariable FameByKill( "egs","FameByKill", "Number of fame point lost for a kill", -5000, true ); CVariable PVPFameRequired ("egs","PVPFameRequired", "Minimum of positive or negative fame for PVP", 25, 0, true ); NLMISC::CVariableDuelQueryDuration ("egs","DuelQueryDuration", "duration in ticks of a duel requests", 600, 0, true ); NLMISC::CVariable PVPZoneEnterBufferTime ("egs","PVPZoneEnterBufferTime", "duration in ticks of the time buffer triggered when someone enters a PVP zone", 300, 0, true ); NLMISC::CVariable PVPZoneLeaveBufferTime ("egs","PVPZoneLeaveBufferTime", "duration in ticks of the time buffer triggered when someone leaves a PVP zone", 9000, 0, true ); NLMISC::CVariable PVPZoneWarningRepeatTime ("egs","PVPZoneWarningRepeatTime", "duration in ticks used to repeat warnings of PVP zones", 50, 0, true ); NLMISC::CVariable PVPZoneWarningRepeatTimeL ("egs","PVPZoneWarningRepeatTimeL", "duration in ticks used to repeat warnings of PVP zones for time left is more than one minute", 50, 0, true ); NLMISC::CVariable PVPZoneWithDeathPenalty("egs","PVPZoneWithDeathPenalty", "if true a player killed by another player in a PVP zone will have a death penalty", false, 0, true ); NLMISC::CVariable PVPMeleeCombatDamageFactor("egs","PVPMeleeCombatDamageFactor", "Factor applied on Melee Damage in PVP", 0.8f, 0, true ); NLMISC::CVariable PVPRangeCombatDamageFactor("egs","PVPRangeCombatDamageFactor", "Factor applied on Range Damage in PVP", 0.8f, 0, true ); NLMISC::CVariable PVPMagicDamageFactor("egs","PVPMagicDamageFactor", "Factor applied on Magic Damage in PVP", 0.8f, 0, true ); //NLMISC::CVariable PVPMagicHealFactor("egs","PVPMagicHealFactor", "Factor applied on heals in PVP", 0.8f, 0, true ); NLMISC::CVariable TimeForSetPVPFlag("egs","TimeForSetPVPFlag", "time before set pvp flag become effective (in game cycle)", 1200, 0, true ); NLMISC::CVariable TimeForResetPVPFlag("egs","TimeForResetPVPFlag", "minimal time before reset pvp flag (in game cycle)", 18000, 0, true ); NLMISC::CVariable TimeForPVPFlagOff("egs","TimeForPVPFlagOff", "time before pvp flag return to off become effective (in game cycle)", 300, 0, true ); NLMISC::CVariable PVPActionTimer("egs","PVPActionTimer", "time duration of pvp action flag, each time a character made a pvp action, corresponding flag is true during this timer", 6000, 0, true ); NLMISC::CVariable KillAttribMinFactor("egs","KillAttribMinFactor", "min fraction of the total damage done on a creature that a group/player must do to be attributed a kill", 0.3f, 0, true); CVariable BaseGuildBulk("egs","BaseGuildBulk", "base bulk for a new guild building", 2000000, 0, true); CVariable MinFameToBuyGuildBuilding("egs","MinFameToBuyGuildBuilding", "Minimum Fame To Buy a Guild Building", 0, 0, true); CVariable MinFameToBuyPlayerBuilding("egs","MinFameToBuyPlayerBuilding", "Minimum Fame To Buy a Player Building", 0, 0, true); CVariable GuildCreationCost("egs","GuildCreationCost", "", 100, 0, true); CVariable GuildMaxMemberCount("egs","GuildMaxMemberCount", "", 256, 0, true); CVariable TriggerRequestTimout("egs","TriggerRequestTimout", "", 300, 0, true); CVariable GuildSavePeriod("egs","GuildSavePeriod", "", 100, 0, true); CVariable MonoMissionTimout("egs","MonoMissionTimout", "default timout of mono mission", 144000, 0, true); CVariable VerboseMissions("egs","VerboseMissions", "Logging of mission parsing/event (0/1)", false, 0, true); CVariable MissionPrerequisitsEnabled("egs","MissionPrerequisitsEnabled", "Activate the checking of pre requisits for mission", true, 0, true); CVariable TickFrequencyCompassUpdate("egs","TickFrequencyCompassUpdate","Min time in tick between 2 updates of mission compass of a character", 32, 0, true); CVariable WearMalusCraftFactor("egs","WearMalusCraftFactor", "Factor for apply wear penalty to craft", 0.1f, 0, true ); CVariable ForageCareSpeed( "egs","ForageCareSpeed", "Speed of care action in action/tick", 0.05f, // 2 s 0, true ); CVariable ForageKamiOfferingSpeed( "egs","ForageKamiOfferingSpeed", "Speed of offering action in action/tick", 0.02f, // 5 s 0, true ); CVariable ForageReduceDamageTimeWindow( "egs", "ForageReduceDamageTimeWindow", "Time in tick before a blowing up when Reduce Damage actions are taken into account", 30, 0, true ); // 3 s CVariable ForageDebug( "egs","ForageDebug", "Debug mode for forage phrases (0=normal 2=focusOnly 5=focus+skill 7=prospectionWithVariables 10=fullCheat)", 0, 0, true ); CVariable ForageSourceSpawnDelay( "egs","ForageSourceSpawnDelay", "Time (ticks) between end of prospection & spawning the source(s)", 50, 0, true ); CVariable ForageValidateSourcesSpawnPos( "egs", "ForageValidateSourcesSpawnPos", "If true, the AIS checks all source spawn positions", true, 0, true ); CVariable ForageRange( "egs","ForageRange", "", 0, 0, false ); CVariable ForageAngle( "egs","ForageAngle", "", 0, 0, false ); CVariable ForageLevel( "egs","ForageLevel", "", 0, 0, false ); CVariable ForageFocusRatioOfLocateDeposit( "egs", "ForageFocusRatioOfLocateDeposit", "", 10, 0, true ); CVariable ForageQuantityXPDeltaLevelBonusRate( "egs", "ForageQuantityXPDeltaLevelBonusRate", "Delta level increase per qtty unit (except 1st one)", 2.0f, 0, true ); CVariable QuarteringQuantityAverageForCraftHerbivore( "egs", "QuarteringQuantityAverageForCraftHerbivore", "Control the global quantity in quartering for craft RMs of herbivores (H/B/P)", 1.0f, 0, true ); CVariable QuarteringQuantityAverageForCraftCarnivore( "egs", "QuarteringQuantityAverageForCraftCarnivore", "Control the global quantity in quartering for craft RMs of carnivores", 5.0f, 0, true ); CVariable QuarteringQuantityAverageForMissions( "egs", "QuarteringQuantityAverageForMissions", "Control the global quantity in quartering for mission RMs", 5.0f, 0, true ); CVariable QuarteringQuantityAverageForBoss5( "egs", "QuarteringQuantityAverageForBoss5", "Control the quantity of quartered material of normal creatures '5' and '8'", 10, 0, true ); CVariable QuarteringQuantityAverageForBoss7( "egs", "QuarteringQuantityAverageForBoss7", "Control the quantity of quartered material of normal creatures '7'", 40, 0, true ); CVariable QuarteringQuantityForInvasion5( "egs", "QuarteringQuantityForInvasion5", "Control the quantity of quartered invasion material of creatures '5'", 40, 0, true ); CVariable QuarteringQuantityForInvasion7( "egs", "QuarteringQuantityForInvasion7", "Control the quantity of quartered invasion material of creatures '7'", 80, 0, true ); CVariable LootMoneyAmountPerXPLevel( "egs", "LootMoneyAmountPerXPLevel", "Amount of money to earn when looting, per XPLevel of the looted NPC", 10.0f, 0, true ); CVariable GuildChargeSavePeriod("egs","GuildChargeSavePeriod", "", 100, 0, true); CVariable MaxAppliedChargeCount("egs","AppliedChargeMaxCount", "max number of charge a guild can apply for", 1, 0, true); CVariable OupostPowerRadius("egs","OupostPowerRadius", "Radius of an outpost power in meters", 100, 0, true); CVariable OutpostPowerDuration("egs","OutpostPowerDuration", "duration of outpost powers in ticks", 54000, 0, true); CVariable DumpRangeAnalysis("egs","DumpRangeAnalysis","debug dump for range combat",false,0,true); CVariable RechargeMoneyFactor("egs","RechargeMoneyFactor", "factor to apply on a recharge spell sabrina cost to get the cost in money", 2.0f, 0, true ); CVariable CristalMoneyFactor("egs","CristalMoneyFactor", "factor to apply on a cristallisation spell sabrina cost to get the cost in money", 2.0f, 0, true ); CVariable AllowPVP("egs","AllowPVP", "AllowPVP", false ); // free PVP everywhere! NLMISC::CVariable BasePlayerRoomBulk("egs","BasePlayerRoomBulk", "Maximum bulk a player can have in his room", 500000, 0, true); NLMISC::CVariable MaxPlayerBulk("egs","MaxPlayerBulk", "Maximum bulk a player can have on him", 100000, 0, true); NLMISC::CVariable BaseMaxCarriedWeight("egs","BaseMaxCarriedWeight", "max weight in grammes a player can have on him if his strength is 0", 100000, 0, true); NLMISC::CVariable MessageOfTheDay("egs","MessageOfTheDay", "Message of the day sended at new connected player", string(""), 0, true, broadcastMessageOfTheDay); NLMISC::CVariable MaxDistanceGooDamage("egs","MaxDistanceGooDamage", "the maximum distance when character take damage from goo path", 100.0f, 0, true ); NLMISC::CVariable DeathGooDistance("egs","DeathGooDistance", "the distance when character take 100% damage from goo path", 1.0f, 0, true ); NLMISC::CVariable MaxGooDamageRatio("egs","MaxGooDamageRatio", "the factor applied goo damage for calculate effective goo damage (distance = 0 - 100% * ratio * base hp = damages)", 0.5f, 0, true ); NLMISC::CVariable NBTickForGooDamageRate("egs","NBTickForGooDamageRate", "nb tick needed for apply goo damage again", 5, 0, true ); NLMISC::CVariable NBTickForNewbieGooDamageRate("egs","NBTickForNewbieGooDamageRate", "nb tick needed for apply goo damage again in newbieland", 10, 0, true ); NLMISC::CVariable NewbieGooDamageFactor("egs","NewbieGooDamageFactor", "percentage of life lost at maximum from goo in newbieland", .2f, 0, true ); NLMISC::CVariable TickFrequencyPCSave("loadSave","TickFrequencyPCSave", "A PC is saved in each nb tick for prevent overrun backup system", 100, 0, true ); NLMISC::CVariable MinPlayerSavePeriod("loadSave","MinPlayerSavePeriod", "The same PC cant be saved more than once during MinPlayerSavePeriod ticks", 600, 0, true ); NLMISC::CVariable XMLSave("loadSave","XMLSave", "boolean : if true players are saved in XML format", true, 0, true ); NLMISC::CVariable PDRSave("loadSave","PDRSave", "boolean : if true players are saved in PDR format", true, 0, true ); NLMISC::CVariable PDRLoad("loadSave","PDRLoad", "boolean : if true players are loaded from PDR format", false, 0, true ); NLMISC::CVariable SerialSave("loadSave","SerialSave", "boolean : if true players are saved in serial format", false, 0, true ); CVariable ItemPriceCoeff0("egs","ItemPriceCoeff0", "polynom coeff of degree 0 in the price formula", 1.0f, 0, true ); CVariable ItemPriceCoeff1("egs","ItemPriceCoeff1", "polynom coeff of degree 1 in the price formula", 1.0f, 0, true ); CVariable ItemPriceCoeff2("egs","ItemPriceCoeff2", "polynom coeff of degree 2 in the price formula", 1.0f, 0, true ); CVariable ItemPriceFactor("egs","ItemPriceFactor", "factor to apply on non raw material items to compute their price", 1.0f, 0, true ); CVariable AnimalSellFactor("egs","AnimalSellFactor", "factor to apply on animal price to get the price a user can buy them", 1.0f, 0, true ); CVariable TeleportSellFactor("egs","TeleportSellFactor", "factor to apply on teleport price to get the price a user can buy them", 1.0f, 0, true ); CVariable MaxFamePriceVariation("egs","MaxFamePriceVariation", "maximum price variation ( in absolute value ) that can be due to fame", 0.3f, 0, true ); CVariable MaxFameToTrade("egs","MaxFameToTrade", "maximum fame value taken in account in trade", 600000, 0, true ); CVariable MinFameToTrade("egs","MinFameToTrade", "minimum fame value taken in account in trade", -200000, 0, true ); CVariable MaxGameCycleSaleStore("egs", "MaxGameCycleSaleStore", "maximum time game cycle an item stay in sale store before been destroyed", 7*24*60*60*10, 0, true ); CVariable MaxLevelNpcItemInStore("egs","MaxLevelNpcItemInStore", "Maximum level for item solded by NPC", 250, 0, true ); CVariable VerboseShopParsing("egs","VerboseShopParsing", "activate verbose mode for shop category parsing", false, 0, true ); CVariable NBMaxItemPlayerSellDisplay("egs","NBMaxItemPlayerSellDisplay","NB max item can be displayed for player item list selled",128, 0, true); CVariable NBMaxItemNpcSellDisplay("egs","NBMaxItemNpcSellDisplay","NB max item can be displayed for npc item list selled",128, 0, true); CVariable NBMaxItemYoursSellDisplay("egs","NBMaxItemYoursSellDisplay","NB max item can be displayed for your item list selled",128, 0, true); /// disconnection delay CVariable TimeBeforeDisconnection("egs","TimeBeforeDisconnection", "delai during character stay in game after a disconnection for prevent logoff exploit", 300, 0, true ); // Privilege needed for banner CVariable BannerPriv("privilege", "BannerPriv", "Privilege needed for banner", string(":G:SG:VG:GM:SGM:"), 0, true); // Privilege that never aggro the bots CVariable NeverAggroPriv("privilege", "NeverAggroPriv", "Privilege that never aggro the bots", string(":OBSERVER:G:SG:VG:GM:SGM:"), 0, true); // Privilege always invisible CVariable AlwaysInvisiblePriv("privilege", "AlwaysInvisiblePriv", "Privilege always invisible", string(":OBSERVER:"), 0, true); // Privilege to teleport with a mektoub CVariable TeleportWithMektoubPriv("privilege", "TeleportWithMektoubPriv", "Privilege to teleport with a mektoub", string(":GM:SGM:DEV:"), 0, true); // Privilege that forbid action execution CVariable NoActionAllowedPriv("privilege", "NoActionAllowedPriv", "Privilege that forbid action execution", string(":OBSERVER:"), 0, true); // Privilege that bypass value and score checking CVariable NoValueCheckingPriv("privilege", "NoValueCheckingPriv", "Privilege that bypass value and score checking", string(":GM:SGM:DEV:"), 0, true); // Privilege that prevent being disconnected in case of shard closing for technical problem CVariable NoForceDisconnectPriv("privilege", "NoForceDisconnectPriv", "Privilege that prevent being disconnected in case of shard closing for technical problem", string(":GM:SGM:DEV:"), 0, true); /** * AnimalHungerFactor = MaxSatiety * RunSpeed / ( Range * (RunSpeed - WalkSpeed) * NbSecondPerTick) * Example: 1000 * 9 / ( 7680 * (9 - 4.5 ) * 0.1) */ CVariable AnimalHungerFactor( "egs", "AnimalHungerFactor", "Number of satiety points decreased per tick for each m/tick above the walk speed", 1000.0f*9.0f / (7680.0f * (9.0f-4.5f) * 0.1f), // maxsatiety=1000, range=7680 m, runspeed=9m/s, walkspeed=4.5m/s 0, true ); CVariable AnimalStopFollowingDistance( "egs", "AnimalStopFollowingDistance", "When a follower mektoub get further than this distance (in m) from his target, he stops", 100.0f, 0, true ); // events CVariable EventChannelHistoricSize( "egs", "EventChannelHistoricSize", "Historic size of event channel", 512, 0, true ); // outposts CVariable OutpostSavingPeriod( "egs", "OutpostSavingPeriod", "Save period of outposts in ticks (1 outpost saved at a time)", 10, 0, true ); CVariable OutpostUpdatePeriod( "egs", "OutpostUpdatePeriod", "Period in ticks between 2 updates of the same outpost", 10, 0, true ); CVariable OutpostLeavePeriod("egs","OutpostLeavePeriod", "time duration before a user who has left outpost zone looses his pvp flag", 60*10, 0, true ); // 10 min as seconds CVariable VerboseFactionPoint("egs", "VerboseFactionPoint", "set if faction point system is verbose or not", false, 0, true); CVariable UseNewNewbieLandStartingPoint("egs", "UseNewNewbieLandStartingPoint", "set if create new character start at new noobland or old", false, 0, true); // Fame // - Limits CVariable FameMinToDeclare( "egs", "FameMinToDeclare", "Minimum level of fame needed to declare membership to a clan", 30*kFameMultipler, 0, true ); CVariable FameWarningLevel( "egs", "FameWarningLevel", "Level at which a player is notified that their fame is getting too low", 5*kFameMultipler, 0, true ); CVariable FameMinToRemain( "egs", "FameMinToRemain", "Minimum fame needed to remain as a member of a clan", 0*kFameMultipler, 0, true ); CVariable FameMinToTrade( "egs", "FameMinToTrade", "Minimum fame needed to trade with a clan", -30*kFameMultipler, 0, true, CFameManager::thresholdChanged ); CVariable FameMinToKOS( "egs", "FameMinToKOS", "Minimum fame needed to not be KOS to a clan", -50*kFameMultipler, 0, true, CFameManager::thresholdChanged ); CVariable FameMaxDefault( "egs", "FameMaxDefault", "Default maximum amount of fame (same as neutral max)", 50*kFameMultipler, 0, true ); CVariable FameAbsoluteMin( "egs", "FameAbsoluteMin", "Absolute fame minimum a player can have", -100*kFameMultipler, 0, true ); CVariable FameAbsoluteMax( "egs", "FameAbsoluteMax", "Absolute fame maximum a player can have", 100*kFameMultipler, 0, true ); /* Fame variables, naming: The fame variables begin with the name "Fame". The next part is if the variable is a starting value, "Start", or maximum value, "Max". The last elements indicate the groups compared. The first group is the character's group, then a small 'v' to separate, and then the target group of the fame desired. For example: FameStartTrykervFyros is a Tryker character's starting Fyros fame. */ // - Start values, Civilizations CVariable FameStartFyrosvFyros( "egs", "FameStartFyrosvFyros", "Starting fame of a Fyros to their own civ", 20*kFameMultipler, 0, true ); CVariable FameStartFyrosvMatis( "egs", "FameStartFyrosvMatis", "Starting fame of a Fyros to the Matis civ", -20*kFameMultipler, 0, true ); CVariable FameStartFyrosvTryker( "egs", "FameStartFyrosvTryker", "Starting fame of a Fyros to the Tryker civ", -10*kFameMultipler, 0, true ); CVariable FameStartFyrosvZorai( "egs", "FameStartFyrosvZorai", "Starting fame of a Fyros to the Zorai civ", 10*kFameMultipler, 0, true ); CVariable FameStartMatisvFyros( "egs", "FameStartMatisvFyros", "Starting fame of a Matis to the Fyros civ", -20*kFameMultipler, 0, true ); CVariable FameStartMatisvMatis( "egs", "FameStartMatisvMatis", "Starting fame of a Matis to their own civ", 20*kFameMultipler, 0, true ); CVariable FameStartMatisvTryker( "egs", "FameStartMatisvTryker", "Starting fame of a Matis to the Tryker civ", 10*kFameMultipler, 0, true ); CVariable FameStartMatisvZorai( "egs", "FameStartMatisvZorai", "Starting fame of a Matis to the Zorai civ", -10*kFameMultipler, 0, true ); CVariable FameStartTrykervFyros( "egs", "FameStartTrykervFyros", "Starting fame of a Tryker to the Fyros civ", -10*kFameMultipler, 0, true ); CVariable FameStartTrykervMatis( "egs", "FameStartTrykervMatis", "Starting fame of a Tryker to the Matis civ", 10*kFameMultipler, 0, true ); CVariable FameStartTrykervTryker( "egs", "FameStartTrykervTryker", "Starting fame of a Tryker to their own civ", 20*kFameMultipler, 0, true ); CVariable FameStartTrykervZorai( "egs", "FameStartTrykervZorai", "Starting fame of a Tryker to the Zorai civ", -20*kFameMultipler, 0, true ); CVariable FameStartZoraivFyros( "egs", "FameStartZoraivFyros", "Starting fame of a Zorai to the Fyros civ", 10*kFameMultipler, 0, true ); CVariable FameStartZoraivMatis( "egs", "FameStartZoraivMatis", "Starting fame of a Zorai to the Matis civ", -10*kFameMultipler, 0, true ); CVariable FameStartZoraivTryker( "egs", "FameStartZoraivTryker", "Starting fame of a Zorai to the Tryker civ", -20*kFameMultipler, 0, true ); CVariable FameStartZoraivZorai( "egs", "FameStartZoraivZorai", "Starting fame of a Zorai to their own civ", 20*kFameMultipler, 0, true ); // - Start values, Cults CVariable FameStartFyrosvKami( "egs", "FameStartFyrosvKami", "Starting fame of a Fyros to the Kami cult", 10*kFameMultipler, 0, true ); CVariable FameStartFyrosvKaravan( "egs", "FameStartFyrosvKaravan", "Starting fame of a Fyros to the Karavan cult", -10*kFameMultipler, 0, true ); CVariable FameStartMatisvKami( "egs", "FameStartMatisvKami", "Starting fame of a Matis to the Kami cult", -20*kFameMultipler, 0, true ); CVariable FameStartMatisvKaravan( "egs", "FameStartMatisvKaravan", "Starting fame of a Matis to the Karavan cult", 20*kFameMultipler, 0, true ); CVariable FameStartTrykervKami( "egs", "FameStartTrykervKami", "Starting fame of a Tryker to the Kami cult", -10*kFameMultipler, 0, true ); CVariable FameStartTrykervKaravan( "egs", "FameStartTrykervKaravan", "Starting fame of a Tryker to the Karavan cult", 10*kFameMultipler, 0, true ); CVariable FameStartZoraivKami( "egs", "FameStartZoraivKami", "Starting fame of a Zorai to the Kami cult", 20*kFameMultipler, 0, true ); CVariable FameStartZoraivKaravan( "egs", "FameStartZoraivKaravan", "Starting fame of a Zorai to the Karavan cult", -20*kFameMultipler, 0, true ); // - Max Values when declared, Civilizations CVariable FameMaxNeutralvFyros( "egs", "FameMaxNeutralvFyros", "Maximum Fame for a neutral to the Fyros civ", 50*kFameMultipler, 0, true ); CVariable FameMaxNeutralvMatis( "egs", "FameMaxNeutralvMatis", "Maximum Fame for a neutral to the Matis civ", 50*kFameMultipler, 0, true ); CVariable FameMaxNeutralvTryker( "egs", "FameMaxNeutralvTryker", "Maximum Fame for a neutral to the Tryker civ", 50*kFameMultipler, 0, true ); CVariable FameMaxNeutralvZorai( "egs", "FameMaxNeutralvZorai", "Maximum Fame for a neutral to the Zorai civ", 50*kFameMultipler, 0, true ); CVariable FameMaxFyrosvFyros( "egs", "FameMaxFyrosvFyros", "Maximum Fame for a Fyros to their own civ", 100*kFameMultipler, 0, true ); CVariable FameMaxFyrosvMatis( "egs", "FameMaxFyrosvMatis", "Maximum Fame for a Fyros to the Matis civ", 0*kFameMultipler, 0, true ); CVariable FameMaxFyrosvTryker( "egs", "FameMaxFyrosvTryker", "Maximum Fame for a Fyros to the Tryker civ", 25*kFameMultipler, 0, true ); CVariable FameMaxFyrosvZorai( "egs", "FameMaxFyrosvZorai", "Maximum Fame for a Fyros to the Zorai civ", 75*kFameMultipler, 0, true ); CVariable FameMaxMatisvFyros( "egs", "FameMaxMatisvFyros", "Maximum Fame for a Matis to the Fyros civ", 0*kFameMultipler, 0, true ); CVariable FameMaxMatisvMatis( "egs", "FameMaxMatisvMatis", "Maximum Fame for a Matis to their own civ", 100*kFameMultipler, 0, true ); CVariable FameMaxMatisvTryker( "egs", "FameMaxMatisvTryker", "Maximum Fame for a Matis to the Tryker civ", 75*kFameMultipler, 0, true ); CVariable FameMaxMatisvZorai( "egs", "FameMaxMatisvZorai", "Maximum Fame for a Matis to the Zorai civ", 25*kFameMultipler, 0, true ); CVariable FameMaxTrykervFyros( "egs", "FameMaxTrykervFyros", "Maximum Fame for a Tryker to the Fyros civ", 25*kFameMultipler, 0, true ); CVariable FameMaxTrykervMatis( "egs", "FameMaxTrykervMatis", "Maximum Fame for a Tryker to the Matis civ", 75*kFameMultipler, 0, true ); CVariable FameMaxTrykervTryker( "egs", "FameMaxTrykervTryker", "Maximum Fame for a Tryker to their own civ", 100*kFameMultipler, 0, true ); CVariable FameMaxTrykervZorai( "egs", "FameMaxTrykervZorai", "Maximum Fame for a Tryker to the Zorai civ", 0*kFameMultipler, 0, true ); CVariable FameMaxZoraivFyros( "egs", "FameMaxZoraivFyros", "Maximum Fame for a Zorai to the Fyros civ", 75*kFameMultipler, 0, true ); CVariable FameMaxZoraivMatis( "egs", "FameMaxZoraivMatis", "Maximum Fame for a Zorai to the Matis civ", 25*kFameMultipler, 0, true ); CVariable FameMaxZoraivTryker( "egs", "FameMaxZoraivTryker", "Maximum Fame for a Zorai to the Tryker civ", 0*kFameMultipler, 0, true ); CVariable FameMaxZoraivZorai( "egs", "FameMaxZoraivZorai", "Maximum Fame for a Zorai to their own civ", 100*kFameMultipler, 0, true ); // - Max Values when declared, Civilizations CVariable FameMaxNeutralvKami( "egs", "FameMaxNeutralvKami", "Max fame for a neutral to the Kami cult", 50*kFameMultipler, 0, true ); CVariable FameMaxNeutralvKaravan( "egs", "FameMaxNeutralvKaravan", "Max fame for a neutral to the Karavan cult", 50*kFameMultipler, 0, true ); CVariable FameMaxKamivKami( "egs", "FameMaxKamivKami", "Max fame for a Kami to the Kami cult", 100*kFameMultipler, 0, true ); CVariable FameMaxKamivKaravan( "egs", "FameMaxKamivKaravan", "Max fame for a Kami to the Karavan cult", -50*kFameMultipler, 0, true ); CVariable FameMaxKaravanvKami( "egs", "FameMaxKaravanvKami", "Max fame for a Karavan to the Kami cult", -50*kFameMultipler, 0, true ); CVariable FameMaxKaravanvKaravan( "egs", "FameMaxKaravanvKaravan", "Max fame for a Karavan to the Karavan cult", 100*kFameMultipler, 0, true ); // female titles CVariable UseFemaleTitles("egs","UseFemaleTitles", "Use female titles when character is a female character", true, 0, true); // - NPC Icons CVariable ClientNPCIconRefreshTimerDelay("egs", "ClientNPCIconRefreshTimerDelay", "Max number of gamecycles between 2 refreshes of a single mission giver NPC", 60*10, 0, true, CPlayerManager::onNPCIconTimerChanged); // - Ring CVariable TickFrequencyNpcControlUpdate("egs","TickFrequencyNpcControlUpdate","Min time in tick between 2 updates of udate of npc control", 6, 0, true); // Scores CVariable PhysicalCharacteristicsBaseValue( "egs", "PhysicalCharacteristicsBaseValue", "Physical characteristic base value used to compute base score value", 10, 0, true ); CVariable PhysicalCharacteristicsFactor( "egs", "PhysicalCharacteristicsFactor", "Factor used to compute base score value from characteristic value", 10, 0, true );