Commit Graph

224 Commits

Author SHA1 Message Date
nytmyr 4134a30f59 Allow inventory give to specific ID slots 2025-01-12 15:38:00 -06:00
nytmyr bff1705ba2 linux build fix 2025-01-11 08:15:33 -06:00
nytmyr 01afd68230 Remove bcspells, fix helper_send_usage_required_bots 2025-01-11 01:40:32 -06:00
nytmyr 95c1bb6883 code cleanup 2 2025-01-10 11:45:00 -06:00
nytmyr e994d14418 Move spelltype names, spell subtypes, category names and setting names to maps. 2024-12-30 22:58:37 -06:00
nytmyr a0c2abfedf Implement ^discipline 2024-12-29 20:01:18 -06:00
nytmyr 8ed6dece34 more raid optimizations, should be final.
10 clients, 710 bots, 10 raids, ~250 pets sits around 3.5% CPU idle
2024-12-28 22:58:07 -06:00
nytmyr 69b4c3a5a4 Add _tempSpellType as placeholder for any future passthru 2024-12-22 22:39:27 -06:00
nytmyr 83d41f00d2 Implement AIBot_spells_by_type to reduce looping when searching for spells 2024-12-22 22:38:52 -06:00
nytmyr f6fa28681b Move GatherSpellTargets and Raid to stored variables.
Missing some in "organize some checks in IsImmuneToBotSpell"
2024-12-22 00:29:15 -06:00
nytmyr 0c0fee1c67 Change GetPrioritizedBotSpellsBySpellType to vector
Some slipped through in "organize some checks in IsImmuneToBotSpell"
2024-12-22 00:26:01 -06:00
nytmyr 2a149f2949 Move GatherSpellTargets to mob 2024-12-22 00:24:31 -06:00
nytmyr d05dcb5d60 raid optimizations 2024-12-20 21:21:14 -06:00
nytmyr a46478468c Remove Bot_AICheckCloseBeneficialSpells and use AttemptCloseBeneficialSpells for better performance 2024-12-20 13:10:50 -06:00
nytmyr 665d7e3641 Combine GatherGroupSpellTargets and GatherSpellTargets 2024-12-20 09:50:07 -06:00
nytmyr e031b4d1e0 Change GetSpellListSpellType to GetParentSpellType 2024-12-20 09:42:01 -06:00
nytmyr 21f8bc0f95 add GetBotSpellCategoryIDByShortName and CopyBotBlockedPetBuffs, update ^defaultsettings command 2024-12-17 23:20:39 -06:00
nytmyr ffd92017e0 Move getnames for categories and settings to mob, rename hptomed/manatomed 2024-12-17 23:03:42 -06:00
nytmyr f33ed3d4cd more blocked buff tweaks 2024-12-17 13:09:22 -06:00
nytmyr e220163153 Implement blocked_buffs and blocked_pet_buffs 2024-12-15 23:09:32 -06:00
nytmyr f44af609e1 move bot backstab to mob 2024-12-12 22:14:12 -06:00
nytmyr 693abdd42c ^cast adjustments for spellid casts 2024-12-12 22:14:10 -06:00
nytmyr 49e15d8944 Add spellid option to ^cast to allow casting of a specific spell by ID 2024-12-12 22:14:10 -06:00
nytmyr e9534e3f75 Implement AAs and harmtouch/layonhands to ^cast --- fix IsValidSpellRange 2024-12-12 22:14:06 -06:00
nytmyr 6c19f3dbda fully implement ^pull logic to always return, can still be overidden by ^attack 2024-12-12 22:14:03 -06:00
nytmyr faf372d31d Implement spell AI pulling, fix throw stone 2024-12-12 22:14:03 -06:00
nytmyr 6ef444a771 remove unused functions 2024-12-12 22:14:02 -06:00
nytmyr 7a68b4d70c Clean up and fix any melee attacks to line up with clients 2024-12-12 22:14:01 -06:00
nytmyr c54cb2f423 fix AA loading and expansionbitmask saving/loading 2024-12-12 22:14:01 -06:00
nytmyr 8840ecb221 misc cleanup 2024-12-12 22:14:00 -06:00
nytmyr ee9651b4f1 implement commanded cast types 2024-12-12 22:13:18 -06:00
nytmyr 3d67009de5 Command help cleanup 2024-12-12 22:13:05 -06:00
nytmyr 484b88ddbc misc cleanup 2024-12-12 22:13:04 -06:00
nytmyr f3c0ddd4be correct and tweak all combat positioning and combat range 2024-12-12 22:13:02 -06:00
nytmyr a0f9745c46 correct GetBestBotMagicianPetSpell 2024-12-12 22:13:01 -06:00
nytmyr 7d670e674d add passive stance checks to commands and loading/saving. shouldn't be ` 2024-12-12 22:12:59 -06:00
nytmyr e73f1259be bot movement cleanup and tweaks, move casterrange to distanceranged 2024-12-12 22:11:27 -06:00
nytmyr 63233d11e8 Implement and rewrite stances 2024-12-12 22:11:25 -06:00
nytmyr 0f16601e5d Rewrite ^followd command and remove squared values from command 2024-12-12 22:11:24 -06:00
nytmyr 4dcaef65cd oopsies 2024-12-12 22:11:23 -06:00
nytmyr 9b87aaf39b More fixes
TGB, ^cast, group/ae checks, in group/raid checks, inviting others bots to group, group disband fix, prevent rogue bs spam, ^follow fixes and cleanup, follow owner only by default when joining raid/group, group buff fixes for bots, range fixes for group buffs
2024-12-12 22:11:23 -06:00
nytmyr 6574f780db Bot Rework 2024-12-12 22:10:36 -06:00
Alex King b6fb8daae8 [Bug Fix] Fix Bot::SetBotStance (#4426) 2024-07-22 20:43:18 -05:00
Alex King a85f4fb703 [Cleanup] Cleanup Stance Code (#4368)
* [Cleanup] Cleanup Stance-based Code

* Command

* Update emu_constants.h

* Update stance.cpp

* Cleanup
2024-07-02 21:50:34 -04:00
Paul Coene e268ab18f5 [Messages] Fix multiple errors in spell damage at death. (#4264)
* [Messages] Fix multiple errors in spell damage at death.

* Change iBuffTic in new code to use snake_case
2024-04-27 22:49:00 -04:00
Paul Coene 41c5369c18 [Pets] Fix errors in sync with client of sit/stand (#4245)
* [Pets] Fix errors in sync with client of sit/stand

* Forgot bot.h
2024-04-15 04:59:36 -05:00
Alex King 0adca46a73 [Bots] Remove Alt Combat Functionality (#4067)
* [Bots] Remove Alt Combat Functionality

# Notes
- This functionality needlessly complicates bot targeting logic and causes crashes and unintended behavior for players when accidentally enabled or enabled by default.

* Cleanup
2024-02-12 03:00:11 -06:00
Fryguy 772fed5e30 [Feature] Corpse Overhaul (#3938)
# Corpse Overhaul

Changelog:

- Player corpses now have two timers, one specific to the rezability of the corpse and the other to cover the overall rot timer of the player corpse.
- The rezability timer is based on the online presence of the player/account and is not affected by being offline.
- The rot timer is not affected by offline/online status and will count to the rot status of the corpse.
- Corpses can be rezzed multiple times, however only the first rez that yeilds returned xp will be counted. Not other rez will return any xp. This allows for a "Poor mans COTH" as was used many times in the early eras.
- All Corpse class private/protected member variables are all now prefixed with m_
- Added Corpses logging category along with many debug logs
- Removed LoadCharacterCorpseData
- Removed LoadCharacterCorpseEntity
- Added LoadCharacterCorpse(const CharacterCorpsesRepository::CharacterCorpses, const glm::vec4 &position) which simplifies areas of consumption and reduces double queries from removing LoadCharacterCorpseData and replacing LoadCharacterCorpseEntity
- All parameters that were prefixed with in_ have been dropped
- Removed two queries from CheckIsOwnerOnline and have it query the world's CLE by account_id since that is how live works
- Regenerated repository character_corpses
- Cleaned up many list iterators to use range based for loops
- Rate limit Corpse::Process m_is_rezzable with a 1 second check timer
- General code cleanup
- Added a Server Up check to bury all corpses in instances to prevent lost corpses if an instance is released during server down. This facilitates player recovery via shadowrest or priests of luclin.


This PR also now fixes a long standing issue with HasItem performance in our script plugins. It is significantly faster, we will need to coordinate quest changes and comms with operators.

```lua
    if ($client->HasItemOnCorpse($item_id)) {
        return 1;
    }
```

```lua
    --corpse
    if self:HasItemOnCorpse(itemid) then
        return true
    end
```


Testing Completed:

- Create a Corpse
- Standard rezzing
- Ghetto Coth (No Extra XP)
- Rezzing after graveyard move
- Divine Rez works as intended
- No XP Rez (Corpse Call) does not give XP
- Corpse Burying
- Cross Instance Graveyard Corpse movement/Rezzing
- DZ End/Quit Corpse Movement/Rezzing
- Server Shutdown/Reinit DZ Corpse Movement/Rezzing


---------

Co-authored-by: Akkadius <akkadius1@gmail.com>
2024-02-07 23:02:30 -05:00
Alex King ce907c9519 [Bots] Convert Bot Database Methods to Repositories (#4023)
* [Bots] Convert Bot Database Methods to Repositories

* Final push.

* Cleanup.

* Cleanup.

* Update bot_database.cpp

* Update bot_database.cpp

* Update bot_database.cpp

* Update bot_database.cpp

* Update bot_database.cpp
2024-01-28 20:23:31 -06:00
Alex King 1227f35382 [Cleanup] Remove bot-based saylink method (#3852)
# Notes
- With the new saylink functionality, bots no longer need their own saylink method.
2024-01-06 23:48:37 -06:00