- DoF and classic clients will auto login after char creation instead of getting stuck at character select
- model_color and soga_model_color properly tracked on login server
- Removed ServerOP_WorldListUpdate code (revisit at a later time)
- Login account flag fix, sets Veteran Bonus under 'Select Character' yellow (vs greyed out), adventure/tradeskill bonus 200%
- Fixed disabled flag in login_worldservers not working
- Added login_bannedips table
- Both are checked periodically against the database with logged in worlds
Fixed treasure chests in AoM client being pre-opened. They now swing open rather quickly when opened, but not sure we have any control over the speed of the animation. This is closer to how DoF behaves in far journey.
Fix#300 - appearance inventory saved to database, can equip and overrides normal equipment. Also fixed appearance properly updating (it wasn't sent other than in zone in primarily)
Fix#322 - rule to disable house alignment requirements
RULE_INIT(R_Player, DisableHouseAlignmentRequirement, "1");
Fix#311 - defines for root/snare as spell types
#define SPELL_TYPE_ROOT 15
#define SPELL_TYPE_SNARE 16
Fix#301 - loot_global needs a lua_script to access the ZoneScript and call function loot_criteria(Spawn)
loot_criteria_zone(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
loot_criteria_racial(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
loot_criteria_level(Zone, Spawn, LootTableID, MinLevel, MaxLevel)
Spawn: the target of the loot table to be added
LootTableID: the current loot table id we are checking to add to the Spawn
MinLevel/MaxLevel: Criteria from the global loot table that is handled via code (eg. always add if minlevel/maxlevel is 0, otherwise it is based on the Spawn's level)
return value of 0 will skip the provided LootTableID(int32) despite the database MinLevel/MaxLevel checks
return value of 1 will always include the loot table id on the Spawn list, even overriding if the min/max level check fails in the code
Issue #231 partially addressed, added support to override item_difficulty in the item script based on the arrow color (3 is white):
function item_difficulty(Item, Spawn)
return 3
end
Complete Fix#305
- Other players pets (grouped) will persist buffs, non-grouped direct target also persist
- Save spell state added to persist beyond the self player since targets/spells can evolve rapidly with other players/npc/pets in the mix, resulted in two new rules:
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.
- /spawn details now includes the stat / base stats (STR/AGI/STA/INT/WIS) of an entity (NPC/PET/Player)
- SetInfoStructUInt and GetInfoStructUInt now support interaction_flag, when not set we will default to 12 which is looking at other players nearby.
- Fixed NPCs / Pets having spell bonuses, base stats updated (sta/str/agi/wis/int)
- Deprecated GiveImmediateQuestReward
- With spell persistence (groups, direct target and self pet) added new rule options for cross zone buffs:
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
Appreciate the fix, 0xFF is ok for server side, client needs 0xFFFF for certain quantity fields to blank out the quantity I guess is the difference to note.
Issue #305 - partially implemented cross zone spells. Buffs will cross with you for self, group spells can re-attach if the caster enters the zone first. Pet spells will recreate the pet, but name and other buffs to the pet do not persist cross zone. WORK IN PROGRESS!!
Fix#310 - no sale option supported on merchants and saved to database, see additionalfields_mar6_2021.sql
Fix#309 - mastery skills all update now and relate to fizzle (ordination, ministration, etc)
Fix#308 - fizzle support added
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
Fix#303 - Brokers now use /frombroker instead of /itemsearch to show correct icon (money stack like merchants)
Fix#291 - implemented selling for status, no buy back, city merchant type (set merchant_type in spawn to 64) allows selling for status
Fix#250 - Added a caching of state to send a single shoot of visual state. When setting visual states for chests it was causing opening/closing of the chest if you were not already in range of it. See SendStateCommand and ProcessStateCommands in client.cpp for more
Fix#302 - Integrated GiveQuestItem into the Client::DisplayQuestComplete / Client::AcceptQuestReward process. There is support for temp rewards/status/coin.
LUA Functions added, ONLY CALLED BEFORE GiveQuestItem, NOT to be used with GiveQuestReward
SetStatusTmpReward(quest, status)
SetCoinTmpReward(quest, coin)
- Also addressed quests not updating properly in the journal where sub tasks would completely disappear
Fix#299 - 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
Fix#207 - Chests have new rules for exposure times
RULE_INIT(R_Loot, ChestUnlockedTimeDrop, "1200"); // time in seconds, 20 minutes by default, triggers only if AllowChestUnlockByDropTime is 1
RULE_INIT(R_Loot, AllowChestUnlockByDropTime, "1"); // when set to 1 we will start a countdown timer to allow anyone to loot once ChestUnlockedTimeDrop elapsed
RULE_INIT(R_Loot, ChestUnlockedTimeTrap, "600"); // time in seconds, 10 minutes by default
RULE_INIT(R_Loot, AllowChestUnlockByTrapTime, "1"); // when set to 1 we will allow unlocking the chest to all players after the trap is triggered (or chest is open) and period ChestUnlockedTimeTrap elapsed
Fix#297 - 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.
In conjunction with this fix, 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'.
Issue #305 has been created to allow 'cross zone' of maintained effects / effects on the player.
- Few additional fixes:
* 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