Changelog is based on Open Source Code Base for EQ2Emu at https://git.eq2emu.com/devn00b/EQ2EMu/
Capricorn Stage started in late Dec 2020 but falls into January 2021 as to keep the stage together it is included on this page.
Jan 19th 2021: Extended Capricorn Stage 2.0 to Jan 31st. Then a new monthly system will be used for versioning.
- secondary targets working for casting heal spells, recast is more or not working correctly now..
- overrides existing spell when there is a duration of time or trigger count to the spell
- doesnt prematurely show the icons available (eg. you cancel a spell then it pops up and you cant reuse or it starts a recast timer when it shouldnt)
- doesnt reset the recast timer (sometimes giving double the time to cast)
- unlocking a spell when all spells locked, no longer occurs
- GroupTarget spell_type designation to allow “cast” function to trigger for each spawn vs a single call to “cast” on the target (and relying on group functions to make impact on the group). This is used in scenarios such as summoning an item (Divine Awakening)
- Fix Login Server not accepting a new connection after a previously rejected one
- Broker fixes, 1h/2h equip fixes, swapping equip works, additional spell fixes (group spells, targetted AE), more crash fixes
- Disabling buy item on a merchant supported, ptr checks / crash fixes
- Item/Merchant/Scribing/Inventory Updates: item_description function which returns a string added to ItemScripts, new rule RULE_INIT(R_Spells, RequirePreviousTierScribe, "0"); - when enabled requires tiering up spell apprentice→journeyman→adept→etc
- Login Server Updates: DoF/Classic auto-login on character creation instead of getting stuck, soga/standard model color displayed for character, fixed disabled flag for world servers, added ban by ip list
- Albireo Update #2
- Appearance equipment now supported and saved in database
- Added rule to disable alignment check for house purchasing - RULE_INIT(R_Player, DisableHouseAlignmentRequirement, "1");
- loot_criteria functions in ZoneScripts added for global loot
- item_difficulty function created in ItemScripts to allow overriding the merchant difficulty setting
RULE_INIT(R_Spells, EnableCrossZoneGroupBuffs, "0"); // enables/disables allowing cross zone group buffs
RULE_INIT(R_Spells, EnableCrossZoneTargetBuffs, "0"); // enables/disables allowing cross zone target buffs
RULE_INIT(R_Spells, PlayerSpellSaveStateWaitInterval, "100"); // time in milliseconds we wait before performing a save when the spell save trigger is activated, allows additional actions to take place until the cap is hit
RULE_INIT(R_Spells, PlayerSpellSaveStateCap, "1000"); // sets a maximum wait time before we queue a spell state save to the DB, given a lot can go on in a short period with players especially in combat, maybe good to have this at a higher interval.
RULE_INIT(R_Spells, EnableFizzleSpells, "1"); // enables/disables the 'fizzling' of spells based on can_fizzle in the spells table. This also enables increasing specialized skills for classes based on spells/abilities.
RULE_INIT(R_Spells, DefaultFizzleChance, "10.0"); // default percentage x / 100, eg 10% is 10.0
RULE_INIT(R_Spells, FizzleMaxSkill, "1.2"); // 1.0 is 100%, 1.2 is 120%, so you get 120% your max skill against a spell, no fizzle
RULE_INIT(R_Spells, FizzleDefaultSkill, ".2"); // offset against MaxSkill to average out to 100%, default of .2f so we don't go over the threshold if no skill
- Fixed chests opening/closing added new process of one off visual state using SendStateCommand
- Integrated GiveQuestItem into the Client::DisplayQuestComplete / Client::AcceptQuestReward process. There is support for temp rewards/status/coin. SetStatusTmpReward(quest, status) and SetCoinTmpReward(quest, coin)
- Addressed quests not updating properly in the journal where sub tasks would completely disappear
- AoM client Addressed hot swapping a bagged item to equipment slots poofing the item. Note: DoF client seems to have inventory issues of its own, those are not addressed here
- Chests have new rules for exposure times RULE_INIT(R_Loot, ChestUnlockedTimeDrop, "1200"); - RULE_INIT(R_Loot, AllowChestUnlockByDropTime, "1"); - RULE_INIT(R_Loot, ChestUnlockedTimeTrap, "600"); - RULE_INIT(R_Loot, AllowChestUnlockByTrapTime, "1");
- Prevent stacking of food / drink effects. Also added spell_type Food and Drink to enumeration. When these are set it tells the server these are unique effects to food/drink and cannot stack with other consumed items. spells DB needs updates for spell_type to properly reflect Food/Drink value.
- Auto consume is implemented (while in zone). Flips the auto consume on/off option as well as 'yellow tints' the background behind the auto consume options when 'on'. Todo not complete: maintained effects / effects need cross zone support, this would include consumed food/drink.
- if you remove an item from inventory and there is a dialog screen, you can now close it (see last parchment in Taint quest before main boss mob, it wasnt letting you put the parchment away).
- Equipment serialized to the player now always includes the player pointer, this was causing menu item information for food/drink to be omitted on zone-in
- Few crash fixes, Deleting spells on players from lua_interface when zoning, protection on QuestStep instantiation, we recreate all the ids and locations so as to not be dependent on the prior step should it be deleted
- Cleanup of LUASpell on a entity when it is deconstructed, so as to not leave dead pointers around (esp on camp of player)
- Disabled Paperdoll packet, was corrupting memory
- Spell stacking restrictions implemented, DD and DoT are the only exempt. Spell types however are not configured correctly and need DB work.
- LUA Function Added: AddToSpawnGroup(spawn, group_id), AddLanguage now also updates client correctly
- Fixed another crash on water scenario
- LUA Function SpawnSet “faction” fixed
- Status is supported for housing, purchase of, upkeep and escrow
- LUA Function Updated: GiveQuestItem(Quest, Player, Description, ItemID1, ItemID2) - now supports multiple items
- Spell Concentration now works, no_interrupt added to SetInfoStructUInt with value of 1 entity cannot be interrupted casting spells
- SpawnSet given color options via function SpawnSet(Spawn, "fieldname", "R G B") - SpawnSet also temporary by default now
hair_color1, hair_color2, hair_type_color, hair_face_color, hair_type_highlight_color, face_hairlight_color, hair_highlight, model_color, eye_color soga_skin_color, soga_hair_color1, soga_hair_color2, soga_hair_type_color, soga_hair_face_color, soga_hair_type_highlight_color, soga_face_hairlight_color, soga_hair_highlight, soga_model_color, soga_eye_color
- Fixed pets not following
- LUA Function expanded: FaceTarget(Originator, Target, disable_action_state) - disable_action_state defaults to true
- Pause on hail options - RULE_INIT(R_Spawn, HailMovementPause, "5000"); and RULE_INIT(R_Spawn, HailDistance, "5");
- LUA Function Added: PauseMovement(Spawn, time_in_ms)
- spawn_npcs added water_type and flying_type
- HP / Power Regen rewrite, consolidated calculations and support in and out of combat settings.
- Rule RSpawn, ClassicRegen added to allow circa 2004-2005 regen (out of combat did not include in combat regen). Set to "1" to enable.
- HatedBy was incorrectly tracking mobs a spawn/player was aggroed by. Fixed the 'counter'.
- Parry/Riposte/Block/Dodge implemented more in line with known resources, some formulas like block need more details to properly calculate.
- GetInfoStruct/SetInfoStruct cur_avoidance, parry, parry_base, deflection, block are now floats
- GetInfoStruct/SetInfoStruct sint16 power_regen and hp_regen, lastly power_regen_override and hp_regen_override are int8 -- both added in relation to HP / power regen rewrite
- Item skill support added for Crushing, Defense, Deflection, Disruption, Fishing, Focus, Foresting, Gathering, Mining, Parry, Piercing, Safe Fall, Slashing and Trapping
- /waypoint can now be cleared with no target and issuing just /waypoint command
- /spawn details [x] now supports behind, infront, flank to get your relationship to the targetted mob
- EmemJr: /craftitem added
INSERT INTO commands SET TYPE=1,command='craftitem',subcommand='',HANDLER=526,required_status=100;
- /add_aa crash fix
- LUA Functions Added: RemoveSpawnSpellBonus(spawn), AddIconValue(spawn, value), RemoveIconValue(spawn, value)
- LUA Function updated: GetSpell(spell_id, tier, custom_lua_script) - third argument added to setup custom script file
- Evac now correctly allows you to reload the zone (fast reload skips a lot of loading process) and you do not see a duplicate of your spawn, combat is not 'silent' (you can see damage to and from spawns)
- Player / Spawn index mapping simplified (less wasted memory/cpu/tracking)
- region_map_v1 code updated to match unsigned values (signed vs unsigned was causing compile issues)
- /bot follow id and /bot stopfollow id added
- Fixed bot camp crashing when in group
- Fixed SpawnSet LUA crashes
- Heroic Opportunity starter stage fix
- GetSpellSlot deadlock fix
- Heroic Opportunity crash fix when DB not in sync
- LUA Function Added: MakeRandomInt(min,max) and MakeRandomFloat(min,max)
- LUA Equipment commands SetEquippedItemByID(Entity, slot, itemid) SetEquippedItem(Entity, slot, item) both return false if unable to equip. UnequipSlot(Entity, slot, nodeleteitem), SetEquipment(Entity, slot, type, r , g , b , hr , hg, hb)
- Quest leaf flag update will now correctly display (eg. for quest npcs) when in-range of mob upon the update
- ModelViewer / MapEditor updated with latest code (Region updates for lava/death regions, etc)
- Better Quest class memory management
- New GM command /movecharacter [charname] [zoneshortname]
- /castspell now also includes a new argument /castspell [spellid] [selfcast] - if selfcast is 0 this means the target will cast on themselves, not YOU casting on them.