49 Commits

Author SHA1 Message Date
Xackery
758859eea6
[Experience] Add SetExp/SetAAExp lua mods (#4292) 2024-05-04 18:10:27 -05:00
Xackery
34c27ebb2a
[Lua] Add UpdatePersonalFaction Lua Mod (#4279)
* Add UpdatePersonalFaction lua mod

* Fix typo

* Fix value typo
2024-05-04 17:58:58 -05:00
Xackery
39bb7e1723
[Lua] Add IsImmuneToSpell Lua Mod (#4278)
* Add IsImmuneToSpell lua mod

* Add lua_parser.h include in spells.cpp
2024-04-28 08:20:34 -04:00
Xackery
b638795f9b
[Feature] Add LuaMod functions for CommonDamage and HealDamage (#4227)
* Add LuaMod functions for CommonDamage and HealDamage

* Remove extra bracket
2024-03-31 11:30:16 -04:00
Xackery
e19f72f021
[Feature] Add RegisterBug LuaMod (#4209)
* Add RegisterBug LuaMod

* Add missing header

* Add missing header to lua_mod

* Fix RegisterBug ignore_default

* Fix ignore_default

* Fix formatting
2024-03-30 11:45:37 -04:00
Akkadius
54050924d8 Revert "[Quest API] Cleanup string copies and push_backs. (#2807)"
This reverts commit bcc2e022dcc41261ff2f1a7643ee6ed3e376e678.
2023-01-31 20:30:34 -06:00
Alex King
bcc2e022dc
[Quest API] Cleanup string copies and push_backs. (#2807)
# Notes
- Several places use `push_back` instead of `emplace_back`.
- Several places use `std::string` instead of `const std::string&`.
2023-01-29 15:14:49 -05:00
Alex King
3335cacac1
[Bots] Cleanup and remove preprocessors. (#2757)
* [Bots] Cleanup and remove preprocessors.

- Removes every `#ifdef BOTS` we have and locks bots behind `Bots:AllowBots` rule.
- Bot updates are now done by default similar to regular database updates.
- Modify `CMakeLists.txt`, `.drone.yml`, and `BUILD.md` to match the removal of `EQEMU_ENABLE_BOTS`.

* Cleanup

- Add SQL for enabling bots for servers with bots.
- Add message that tells players/operators bots are disabled.

* Suggested changes.

* Bot injection stuff

* Change SQL to bot SQL.

* Tweaks

* Remove `is_bot`

* Update version.h

* Update main.cpp

* Update database.cpp

* Fix name availability crash

* Remove bots from update script

Co-authored-by: Akkadius <akkadius1@gmail.com>
2023-01-20 12:35:33 -06:00
Natedog2012
3341c0b7ab
[Luamod] Add CalcSpellEffectValue_formula to luamods (#2721)
* [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
2023-01-11 17:49:35 -06:00
Aeadoin
9c3c5b5230
[Experience] Change Exp Calculations to be 64 bit where needed. (#2677)
* [Experience] Change Exp Calculations to be 64 bit where needed.

* Fix lua values

* Formatting
2022-12-30 22:03:30 -05:00
Kinglykrab
856aa51cb8
[Bots] Add support for Bot scripting. (#2515)
* [Bots] Add support for Bot scripting.

# Perl
- Add support for `zone/bot.pl` and `zone/bot_v#.pl`.
- Add support for `global/global_bot.pl`.
- Add `$bot->SignalBot(signal_id)` to Perl.
- Add `$bot->OwnerMessage(message)` to Perl.
- Add `$entity_list->SignalAllBotsByOwnerCharacterID(character_id, signal_id)` to Perl.
- Add `$entity_list->SignalBotByBotID(bot_id, signal_id)` to Perl.
- Add `$entity_list->SignalBotByBotName(bot_name, signal_id)` to Perl.
- Add `EVENT_SPELL_EFFECT_BOT` to Perl.
- Add `EVENT_SPELL_EFFECT_BUFF_TIC_BOT` to Perl.

# Lua
- Add support for `zone/bot.lua` and `zone/bot_v#.lua`.
- Add support for `global/global_bot.lua`.
- Add `bot:SignalBot(signal_id)` to Lua.
- Add `bot:OwnerMessage(message)` to Lua.
- Add `entity_list:SignalAllBotsByOwnerCharacterID(character_id, signal_id)` to Lua.
- Add `entity_list:SignalBotByBotID(bot_id, signal_id)` to Lua.
- Add `entity_list:SignalBotByBotName(bot_name, signal_id)` to Lua.
- Add `EVENT_SPELL_EFFECT_BOT` to Lua.
- Add `EVENT_SPELL_EFFECT_BUFF_TIC_BOT` to Lua.

# Supported Bot Events
1. `EVENT_CAST`
2. `EVENT_CAST_BEGIN`
3. `EVENT_CAST_ON`
4. `EVENT_COMBAT`
5. `EVENT_DEATH`
6. `EVENT_DEATH_COMPLETE`
7. `EVENT_SAY`
8. `EVENT_SIGNAL`
9. `EVENT_SLAY`
10. `EVENT_SLAY_NPC`
11. `EVENT_SPAWN`
12. `EVENT_TARGET_CHANGE`
13. `EVENT_TIMER`
14. `EVENT_USE_SKILL`

# Common
- Convert NPC pointers in common events to Mob pointers so bots are supported.
- Convert signal IDs to `int` where it wasn't already, allowing negative signals to be sent properly.

* Add EVENT_POPUP_RESPONSE.

* Cleanup and fix EVENT_COMBAT/EVENT_SLAY/EVENT_NPC_SLAY.

* Fix DoNPCEmote calls.

* Update attack.cpp

* Update event_codes.h

* Update bot_command.cpp
2022-11-16 21:02:16 -06:00
hg
dbf8440a32
[Quest API] Let HasQuestSub check encounters (#2435)
This fixes an edge case where trading would not detect the npc had a
quest handler if it was registered inside a Lua encounter.
2022-09-20 13:21:48 -04:00
Michael Cook (mackal)
5331f4d841
[CPP] Update C++ standard to C++17 (#2308)
* Update C++ standard to C++17

* Nuke EQ::Any in favor of std::any

* Remove std::iterator due to deprecation

* Replace result_of with invoke_result due to deprecation
2022-07-27 09:00:09 -05:00
Kinglykrab
81e7cf5a32
[Quest API] Convert Spell Events to similar formats and exports. (#1618)
* [Quest API] Convert Spell Events to similar formats and exports.
Export spell ID, caster ID, caster level, tics remaining, and buff slot to Perl/Lua spell events.
- Export e.buff_slot, e.caster_id, e.caster_level, e.spell_id, and e.tics_remaining to `event_spell_buff_tic`, `event_spell_effect`, and `event_spell_fade` in Lua.
- Export $buff_slot, $caster_id, $caster_level, $spell_id, $tics_remaining to `EVENT_SPELL_EFFECT_BUFF_TIC_CLIENT`, `EVENT_SPELL_EFFECT_BUFF_TIC_NPC`, `EVENT_SPELL_EFFECT_CLIENT`, `EVENT_SPELL_EFFECT_NPC`, and `EVENT_SPELL_FADE` in Perl.

* Formatting.

* Remove debug variable.
2021-10-20 16:02:12 -04:00
Michael Cook (mackal)
43fade82e5 Fix ReloadQuest on Shutdown crash related to encounters
Basically, EntityList::RemoveAllEncounters is called before ReloadQuests
resulting in stale pointers in the lua_encounters map.

We just have to remove the entry from the map.
2021-02-24 01:03:38 -05:00
Akkadius
ee7ef97506 Revert "Spell Fizzle for < LDON expansions via lua_mod (#1118)"
This reverts commit e9d312fa8664b736d2052bac1e76797485aca21d.
2020-10-25 23:48:57 -05:00
Ali Al-Khalifa
e9d312fa86
Spell Fizzle for < LDON expansions via lua_mod (#1118)
* [expansions] Create a Lua mod hook into Client::CheckFizzle()

* Added expansions_combat.lua mod stub

* Spell  Fizzle as per TAKP formula
2020-10-24 19:49:43 -05:00
KimLS
2fbd5aaccc Rename namespace EQEmu to namespace EQ (so we don't have two similar but different namespaces anymore) 2020-05-17 18:36:06 -07:00
KimLS
b29f70ad3f Add mod hook for CommonOutgoingHitSuccess 2017-06-12 13:01:01 -07:00
KimLS
31d8336b4b Fix acceptmessages, added exp hooks to luamods 2017-06-10 15:12:31 -07:00
KimLS
7189994b78 Many lua things many many things 2017-05-19 22:50:08 -07:00
KimLS
0fd6815f81 Mods get their own file so i can take the big chunks of code out of lua parser 2017-04-30 00:30:23 -07:00
KimLS
6d59baffaf Basic mod setup only supports combat hooks for now I'll add a few more before i push this 2017-04-26 22:56:18 -07:00
KimLS
3b62cf9fd5 Some work 2017-04-22 16:40:01 -07:00
Uleat
8b5dd58e96 Renamed struct EQEmu::ItemBase to EQEmu::ItemData and class ItemInst to EQEmu::ItemInstance 2016-10-16 05:10:54 -04:00
phredi
b997a040d7 Config File Update Initial Update 2016-05-20 21:03:34 -05:00
Russell Kinasz
2c6fd44811 Implemented encounter timers - no spawn required 2015-06-02 12:25:09 -07:00
KimLS
6597967acd Changed void* to EQEmu::Any in quest interface. Been meaning to change from void* for a while to a structure that data hides instead. 2014-08-25 22:59:52 -07:00
KimLS
07a2cbe9a5 Renamed zone files 2014-08-21 23:46:01 -07:00
KimLS
a6589e283b Some potential fixes for clang, not complete 2014-06-23 16:56:37 -07:00
KimLS
16d3825df4 Fixed translocate, dispatch event now returns values properly, embparser now stores errors (what few it has) 2013-06-26 09:26:19 -07:00
KimLS
d8a1d84a49 Regression fixes, support for new lua arguments for many events 2013-06-19 22:56:46 -07:00
KimLS
c0d37b2e04 Many fixes to regressions in perl and cleaning up the final interface 2013-06-12 15:04:26 -07:00
KimLS
56b41c882b Redoing event item api 2013-06-07 02:26:17 -07:00
KimLS
a3738dc131 Changed EVENT_TRADE to pass iteminst instead of variable ids, perl will not have changed at all but lua now passes the iteminsts in the trade object. Also redid a bunch of the spell quest stuff 2013-06-05 16:47:49 -07:00
KimLS
6d0c0aee7d Last work to make lua parser feature complete, time to start fixing bugs and cleaning up design and maybe adding some features here and there. 2013-06-04 23:22:03 -07:00
KimLS
1b290b577d Fix for potential nullptr when using base lua class constructors in debug mode, also added eq.get_qglobals and removed automatic export of them (will do this for a lot of other automatic exports) 2013-06-04 16:48:32 -07:00
KimLS
49c3a81e18 More lua work, client should be completely exported barring any more bugs that crop up. Starting work on getting the rest of the general functions 2013-05-27 17:24:31 -07:00
KimLS
1e7c5bb9b7 Bug fix in event_trade export, exported augments too. Also need to fix overloads 2013-05-26 15:56:55 -07:00
KimLS
ce63503bab Changed a bunch of lua stuff, as well as modified a bunch of generic item quest stuff 2013-05-23 12:43:21 -07:00
KimLS
69bad31019 Cleanup of some lua code, initial work on encounter_quests 2013-05-19 12:13:44 -07:00
KimLS
b10de6f4e7 More work on lua parser - gonna get all events firing correctly by end of week also put all arguments into an event table object 2013-05-16 15:35:55 -07:00
KimLS
2336aa0e4f Changed quests/templates to quests/global. Changed default location for plugins to quests/plugins instead of quests. Added a single interpreter for lua instead of multiple ones. 2013-05-15 13:00:46 -07:00
KimLS
3cc1065873 more lua, gonna work on single interpreter soon 2013-05-14 19:05:49 -07:00
KimLS
38521e0009 Lua - basic npc quests work and i need a damned break for a bit 2013-05-13 21:56:42 -07:00
KimLS
7b23c8dc75 Working on last of Mob:: that can be implemented atm, added safety checks to the lua functions that will be optional later in dev mode. Also changed quest return types to integers instead of doubles as that was non-intuitive 2013-05-13 14:29:50 -07:00
KimLS
dc045591e4 Lua work - loading works, I think checking for sub works. Calling subs is in the beginning stages and binding is starting 2013-05-10 20:13:35 -07:00
KimLS
bcf9546b2d Partial perl parser rewrite, want to make it cleaner and have it match the interface 2013-05-08 20:18:39 -07:00
KimLS
6e9e81a890 Working on fixing up QuestInterface to make multiple parsers work together in harmony, need to fix up Embperl parser next 2013-05-05 23:36:15 -07:00