* Initial code
* Tweak
* Rule description tweak
* More channel work
* More adjustments
* Auto-join saved permanent player channels
* Fix UCS crash if player has no channels to load from table.
* Implemented channel blocking feature
* Update database when player channel's owner or password change
* First round of requested changes.
* Logic tweak to ensure player channels are sets to permanent when appropraite
* name_filter table integration and some refactoring
* Use new `reserved_channel_names` table to block specific channel names.
* Remove some legacy channel block code
* Setup required SQL update to create `reserved_channel_names` table.
* Update db_update_manifest.txt
* Update db_update_manifest.txt
* Update chatchannel.cpp
* Code review
* Database to UCSDatabase
* Repository SaveChatChannel
* CurrentPlayerChannelCount repository
* Cleanup name filter
* CreateChannel
* Update websocketpp
* Increment CURRENT_BINARY_DATABASE_VERSION
Set to 9216
* Minor tweaks to blocked channel name checks & other related areas.
- Enforce blocked channel names on channel creation.
- Also enforce blocked channel names on channel join.
- Add channel status check to Debug logging.
- Minor formatting adjustments.
- Add single quotes to column name value in query.
* Minor log change
* Increment DB Version
* Formatting Tweaks
- Made formatting adjustments consistent with KinglyKrab's recommended changes.
- This compiles successfully with these changes, but unable to test the changes until this weekend.
Co-authored-by: Akkadius <akkadius1@gmail.com>
* [Mercs] Add Mercenary Support
# Notes
- Adds `--merc-tables` support to database dumper.
- Adds Mercenary-based repositories.
- Adds required SQL `2023_01_15_merc_data.sql` to insert the tables for those who don't already have them.
- Adds optional SQL `2023_01_15_merc_liaisons.sql` to change NPCs to the Mercenary Liaison class optionally.
* Inline.
* Trim tables_to_dump output
Co-authored-by: Akkadius <akkadius1@gmail.com>
# Notes
- Adds `Character:EnableGroupEXPModifier`, defaults to `true`.
- Adds `Character:GroupMemberEXPModifier`, defaults to `0.2`.
- Adds `Character:FullGroupEXPModifier`, defaults to `2.16`.
- Allows operators to enable or disable the group experience modifier based on number of members.
- Allows operators to change the modifier per member in the group between `2` and `5`.
- Allows operators to change the full group experience modifier.
* [Bug Fix] Fix issue with Bot:;LoadAndSpawnAllZonedBots.
# Notes
- Bots could spawn beyond class/global limits due to being stuck in group limbo and spawning when you enter a zone properly.
* Debug messages.
* Remove unspawned bots from group.
* Update bot.cpp
* Update bot.cpp
* Update bot.cpp
* Update bot.cpp
* >= 0
# Perl
- Minor cleanup of variable types.
# Lua
- Add `bot:GetAugmentAt(slot_id, augment_index)`.
- Add `bot:GetItemAt(slot_id)`.
- Add `bot:SendSpellAnim(target_id, spell_id)`.
- Properly implemented `bot:GetItemIDAt(slot_id)`.
# Notes
- `bot:GetItemIDAt` existed in Lua, but didn't have a bind definition, so was non-functional.
- This makes Perl/Lua bot methods 1:1 as Perl had 75 and Lua had 72, they now both have 75.
# Perl
- Add `$client->CampAllBots()`.
- Add `$client->CampAllBots(class_id)`.
# Lua
- Add `client:CampAllBots()`.
- Add `client:CampAllBots(class_id)`.
# Notes
- Adds constants for `NO_CLASS` which is class `0` and uses `RACE_DOUG_0` for any spots that use race ID `0`.
- Cleans up magic number usage of race/class of `0`.
# Perl
- Add `$entity_list->SignalAllBotsByOwnerName(owner_name)`.
# Lua
- Add `eq.get_entity_list():SignalAllBotsByOwnerName(owner_name)`.
# Notes
- Adds a way to signal all bots by owner name instead of only character ID.
* [Luamod] Add CalcSpellEffectValue_formula to luamods with example code in utils/mods/spell_formula.lua
* Fix typo
* Change formula down to uint32, fix format issues and remove debug on lua file
* [Bug Fix] Fix Bot "Failed to Load" Messages.
# Notes
- Bots were producing error messages for "failing to load" spells and inventory when the bot had no spells, like a Warrior, or when the bot was naked, like a newly created bot.
* Update botspellsai.cpp
# Perl
- Add `$bot->Camp()`.
- Add `$bot->Camp(save_to_database)`.
# Lua
- Add `bot:Camp()`.
- Add `bot:Camp(save_to_database)`.
# Notes
- Saves to database by default, overload is for edge case where a user may not want bot to save to database.
* [Zones] Add Max Level Check to Zones.
# Perl
- Add `$client->CanEnterZone(zone_short_name)`.
- Add `$client->CanEnterZone(zone_short_name, instance_version)`.
# Lua
- Add `client:CanEnterZone(zone_short_name)`.
- Add `client:CanEnterZone(zone_short_name, instance_version)`.
# Notes
- Allows operators to limit zones to a maximum level.
- Allows operators to see if a player can enter a zone before sending them.
- Keeps players from entering via `#peqzone` and `#zone` as well if they do not meet the requirements or are not high enough status to bypass the requirements.
* Cleanup.
* [Bug Fix] Fix NPC Reference in EVENT_SPAWN
# Notes
- Event parsing was too early and memory wasn't fully allocated, meaning that sometimes you could use the NPC reference and other times you couldn't.
- Most people worked around this by setting timers in `EVENT_SPAWN` then using `EVENT_TIMER` to handle the stuff they wanted to do on spawn.
# Example Code in Perl
```pl
sub EVENT_SPAWN {
quest::shout($npc->GetCleanName() . " just spawned with an ID of " . $npc->GetID() . " and an NPC Type ID of " . $npc->GetNPCTypeID() . ".");
}```
* Update bot.cpp