11418 Commits

Author SHA1 Message Date
Alex King
742b437f2c
[Zones] Convert IDLE_WHEN_EMPTY to a Zone Column (#3891)
* [Rules] Convert IDLE_WHEN_EMPTY to a rule

# Notes
- Converts `IDLE_WHEN_EMPTY` to `Zone:ZonesIdleWhenEmpty` so that we can change this on the fly or on a zone-by-zone basis instead of having to recompile to do this.
- Especially helpful for those using release binaries that do not compile their own source.

* Convert to zone column.

* Update ruletypes.h

* Update ruletypes.h

* Update entity.cpp

* Update entity.cpp

* Rename.

* Update database_update_manifest.cpp

* Update base_zone_repository.h

* Update zone.cpp

* seconds_before_idle

* Update database_update_manifest.cpp

* Getter/Setters/Private

* Update base_zone_repository.h

* IsIdle()/SetIsIdle()

* Update entity.cpp
2024-01-13 01:21:40 -06:00
Alex King
d41bd8f963
[Zones] Convert Get/Set of Zone Timezone to Repositories (#3946)
* [Zones] Convert Get/Set of Zone Timezone to Repositories

- Convert `GetZoneTimezone()` and `SetZoneTimeZone()` to repositories.

* Update time_zone.cpp
2024-01-13 00:10:14 -06:00
Alex King
73a099c5ea
[Character] Character EXP Modifiers in Memory (#3934)
* Cleanup

* Final push.

* Update zonedb.cpp

* Update zone.h

* Update exp.cpp

* Update zonedb.cpp

---------

Co-authored-by: Chris Miles <akkadius1@gmail.com>
2024-01-13 00:03:36 -06:00
Alex King
77c0eb3998
[Character] Convert Character Corpses to Repositories (#3941)
* asdsa

* Final push

* Update character_corpses_repository.h

* Update character_corpses_repository.h

* Update zonedb.cpp

* Update zonedb.cpp

* Final push

* Update character_corpses_repository.h
2024-01-13 00:02:44 -06:00
Alex King
5d1c59c95f
[Merchants] Convert Clear/Delete/Save of Temporary Merchant Lists to Repositories (#3945)
* [Merchants] Convert Clear/Delete/Save of Temporary Merchant Lists to Repositories

- Convert `ClearMerchantTemp()`, `DeleteMerchantTemp()`, and `SaveMerchantTemp()` to repositories.

* Update merchantlist_temp_repository.h
2024-01-12 23:47:25 -06:00
Fryguy
1d7f39c13b
[Feature] Add Lore Item Trade Error (#3932)
* DRAFT: [Feature] Add Lore Item Trade Error

I had lots of feedback from players to add feedback when doing player to player trades to include what items were causing the trade block.

I quickly added this check, however if multiple lore items are being traded, this will only output the first. So far it has worked well, but not sure if we want to:

- Expand this to list all lore items in the trade.
- Enable this by default and do not provide a rule?

* Credit to @KinglyKrab for the assist on making this output a list.

Ruled this off but enabled by default.
2024-01-12 23:43:57 -06:00
Alex King
1bb8678abe
[Cleanup] Remove GroupCount() and RaidGroupCount() (#3943)
# Notes
- These are unused.
2024-01-12 23:41:21 -06:00
Alex King
47968774d9
[Cleanup] Remove unused Grid methods (#3944)
# Notes
- Remove `AssignGrid()`, `GetGridType()`, `GetGridType2()`, and `GetWaypoints()` as they are unused.
2024-01-12 23:41:06 -06:00
Alex King
d7dc717249
[Mercenaries] Convert Mercenaries to Repositories (#3947)
* [Mercenaries] Convert Mercenaries to Repositories

- Convert all Mercenary methods to repositories aside from inner join queries that cannot be converted.

* Update base_merc_subtypes_repository.h

* Update base_merc_subtypes_repository.h

* Regenerate repositories
2024-01-12 23:40:26 -06:00
Alex King
32659426ba
[AAs] Convert Loading of AAs to Repositories (#3963)
* [AAs] Convert Loading of AAs to Repositories

- Convert `LoadAlternateAdvancementAbilities()` to repositories.
- Regenerate repositories since a column was added to `aa_ability`.

* Update aa.cpp

* Update aa.cpp
2024-01-12 23:38:13 -06:00
Alex King
238c9fe667
[Global Loot] Convert Global Loot to Repositories (#3962)
* [Global Loot] Convert Global Loot to Repositories

# Notes
- Convert `LoadGlobalLoot()` to repositories.

* Update repository-generator.pl

* Final push.

* Update loottables.cpp

---------

Co-authored-by: Akkadius <akkadius1@gmail.com>
2024-01-12 23:37:26 -06:00
Alex King
b9f997015a
[Horses] Convert Horses to Repositories (#3965)
* [Horses] Convert Horses to Repositories

# Notes
- Convert `BuildHorseType()` to repositories.
- Removed unused code, parameters, and member variables in horses.

* Update horse.cpp
2024-01-12 23:33:52 -06:00
Alex King
11e2a252e5
[Objects] Convert World Containers to Repositories (#3951)
* [Objects] Convert World Containers to Repositories

- Convert world containers to repositories.

* Update zonedb.cpp
2024-01-12 23:33:37 -06:00
Alex King
fc627ed52d
[NPCs] Convert Load of NPC Emotes to Repositories (#3954)
* [NPCs] Convert Load of NPC Emotes to Repositories

- Convert `LoadNPCEmotes()` to repositories.

* Cleanup
2024-01-12 23:33:11 -06:00
Alex King
4c028b85f0
[Auras] Convert Get of Auras to Repositories (#3964)
* [Auras] Convert Get of Auras to Repositories

# Notes
- Convert `GetAuraEntry()` to repositories.

* Update aura.cpp
2024-01-12 23:29:43 -06:00
Alex King
f1d5e3eedf
[Zones] Convert SaveZoneCFG to Repositories (#3950)
* [Zones] Convert SaveZoneCFG to Repositories

# Notes
- Convert `SaveZoneCFG()` to repositories.

* Comment

* safe_heading

* Update zone_data.cpp
2024-01-12 23:28:16 -06:00
Alex King
d59531b16f
[Item Ticks] Remove Item Ticks Code (#3955)
* [Items] Convert Load of Item Ticks to Repositories

- Convert `LoadItemTicks()` to repositories.

* Remove item tick code.

* Remove repository references.

* Update zone.h
2024-01-12 23:17:00 -06:00
Alex King
e182d685d3
[Commands] Convert NPC Spawn Methods to Repositories (#3956)
* [Commands] Convert NPC Spawn Methods to Repositories

# Notes
- Convert `AddNewNPCSpawnGroupCommand()`, `AddNPCTypes()`, `AddSpawnFromSpawnGroup()`, `CreateNewNPCCommand()`, `DeleteSpawnLeaveInNPCTypeTable()`, `DeleteSpawnRemoveFromNPCTypeTable()`, `NPCSpawnDB()`, and `UpdateNPCTypeAppearance()`.

* Regenerate.

* Cleanup.
2024-01-12 23:02:19 -06:00
Alex King
6968a70310
[Cleanup] Cleanup Owner Related Mob Methods (#3960)
* [Cleanup] Cleanup Owner Related Mob Methods

# Notes
- Cleanup `GetOwner()`, `GetOwnerOrSelf()`, `GetUltimateOwner()`, `HasOwner()`, and `IsPet()` methods.

* Update mob.cpp
2024-01-12 22:59:30 -06:00
Alex King
06e8d258e4
[Objects] Convert Add/Delete/Update of Objects to Repositories (#3966)
* [Objects] Convert Add/Delete/Update of Objects to Repositories

- Convert `AddObject()`, `DeleteObject()`, and `UpdateObject()` to repositories.

* Update object_manipulation.cpp

* Update object_manipulation.cpp

* Update object_manipulation.cpp
2024-01-12 22:55:46 -06:00
Alex King
8cb15f9357
[Pets] Convert Pets to Repositories (#3968)
* [Pets] Convert Pets to Repositories

# Notes
- Convert `GetPoweredPetEntry()` to repositories.

* Update pets.cpp
2024-01-12 22:41:56 -06:00
Alex King
eb33e5a064
[Ground Spawns] Convert Ground Spawns to Repositories (#3967)
# Notes
- Convert `LoadGroundSpawns()` to repositories.
2024-01-12 22:41:08 -06:00
Alex King
71f78b757e
[Respawns] Convert Respawn Times to Repositories (#3949)
* [Respawns] Convert Respawn Times to Repositories

- Convert `respawn_times` based methods to repositories.

* Missed some.

* Comments
2024-01-12 22:38:31 -06:00
Chris Miles
818f833d04
[Repository] Add null integer column support, instance_list notes migration, regenerate repositories (#3969) 2024-01-12 22:23:55 -06:00
Alex King
1238a6ca68
[Traps] Convert Load of LDoN Traps/Trap Entries to Repositories (#3953)
- Convert `LoadLDoNTraps()` and `LoadLDoNTrapEntries()` to repositories.
2024-01-12 20:05:00 -05:00
Alex King
4afc1efb38
[Character] Convert Save of Character Languages to Repositories (#3948)
# Notes
- Convert `SaveCharacterLanguage()` to repositories.
- Was missed in the other languages changes.
2024-01-12 03:30:42 -06:00
Alex King
24eb40d231
[Experience Modifiers] Convert Load of Level Experience Modifiers to Repositories (#3952)
# Notes
- Convert `LoadLevelEXPMods()` to repositories.
2024-01-12 02:46:33 -06:00
Alex King
2475092ed9
[Cleanup] Cleanup AddCash() and RemoveCash() NPC Methods (#3957)
# Notes
- `AddCash()` was `uint16` in C++/Perl and `int` in Lua, fix these to `uint32`.
- Consolidate logic in `AddCash()`.
2024-01-12 01:53:01 -06:00
Alex King
53d6e449c2
[Cleanup] Cleanup ChangeSize() (#3959)
# Notes
- Use `EQ::Clamp()` for logic instead of basic comparsions.
- Rename restriction parameter to `unrestricted`.
2024-01-12 01:51:02 -06:00
Alex King
b61649a2a0
[Cleanup] Cleanup RandomizeFeatures() (#3958)
# Notes
- Uses pre-defined constants and cleanup code.
- Move `IsPlayerRace()` check so it's an early return instead of using an `else`.
2024-01-12 01:50:06 -06:00
Alex King
ef635cb257
[Bug Fix] Fix Issue with SetFlyMode() (#3961)
# Notes
- Variable and parameter had the same name, meaning this could fail.
2024-01-12 01:35:30 -06:00
Fryguy
62b5f8a488
[Rules] Classic Spell Data SPA Calc variability (#3931)
* [Rules] Classic Spell Data SPA Calc variability

When  using lucy imports of older more classic data, they lack the limit values which provides Focus Random Effectiveness.

Example:

Bazu Plauge (6472) went from a 40 limit to 0 limit on the 2006 lucy import.

Lucy does have limit value data, but it appears the affected SPAs sony handled in source vs in spell data.

* Requested Changes
2024-01-09 05:49:10 -05:00
Fryguy
d0e069f4f8
[Bug Fix] Rampage Number of Hits Limit (#3929)
* [Bug Fix] Rampage Number of Hits Limit

Rampage should Hit 1-2 times (Primary / Secondary) should not be Triple/Quadable

* requested name convention changes
2024-01-09 05:48:45 -05:00
Fryguy
1b5b22eeca
[Rule] Classic Tracking Skillups (#3923)
* [Rule] Classic Tracking Skillups

Rule: TrackingAutoRefreshSkillUps
Default: True

Disable rule to prevent skillups from happening on auto refresh of tracking window.

* typo
2024-01-09 05:48:35 -05:00
Fryguy
66d9371714
[Bug Fix] Increase Precision in CheckDoubleAttack (#3928)
* [Bug Fix] Increase percision on CheckDoubleAttack.

On DA Checks where class was a non skill based DA Attacker (Bard or BST with granted DA) The DA check was too steep and should not have been dividing by 500 but rather 100. Also adjusted logic percision to use floats so loss of data does not occur.

* logging var names update

* Update attack.cpp

---------

Co-authored-by: Alex King <89047260+Kinglykrab@users.noreply.github.com>
2024-01-08 22:34:41 -06:00
Fryguy
0418dc4aa3
[Bug Fix] Attack Corpse Skill Up Fix (#3924)
* [Bug] Attack Corpse Skillup Fix

Occasions where a corpse will allow skillups from attacks being turned on (even if no damage)

* requested changes
2024-01-08 22:32:18 -06:00
Fryguy
f12c87a04a
[Feat] Alt Sinister Strike Formula (#3921)
I have been informed that this was proven to be false, but the AA is pretty useless without some adjustment.

Adding this as a rule to allow server owners to adjust as needed.

Update Sinister Strikes
tapatalk.com/groups/monklybusiness43508/leksikon-s-half-assed-guide-to-monkly-aas-oow-incl-t510-s20.html?sid=a9c7745f287f3e89301c960c20f33248

Sinister Strikes:
19 Delay weapon -- Gives a 5 damage bonus to all hits
20 Delay weapon -- Gives a 6 damage bonus to all hits
24 Delay weapon -- Gives a 7 damage bonus to all hits
Given Quarm hammer with maxed non-GoD AAs:
0.7 HPS offhand = 4.9 DPS increase.
2024-01-08 22:31:04 -06:00
Fryguy
97dbf85a4c
[Bug Fix] Limit MeleeMitigationEffect to defender if only client. (#3918)
* [Bug] Limit MeleeMitigationEffect to defender if only client.

* Fix MeleeMitigation to properly Add (Substract due to negative values).

* defender fix
2024-01-08 22:30:29 -06:00
Fryguy
46a0cf6b02
[Rule] Separate Tradeskill Max Train from Research. (#3916)
* [Rule] Seperate Tradeskill Max Train from Research.

Different eras had different rules on the max gm trainable skill for Research.

* Phrasing
2024-01-08 22:29:57 -06:00
Fryguy
8f34bd998f
[Rule] Add rule for bard aggro cap (#3909)
BardAggroCap - Default 40

Allows adjustment of per song bard aggro cap.
2024-01-08 22:29:24 -06:00
Fryguy
98928aee74
[Rule] Allow GMs to silently summon (#3910)
* [Rule] Allow GMs to silently summon

Disable to silently summon players with #summon.

Converted SummonPC to a MessageString

* Implementing an automatic detection of gm hidden mode and silent summoning.
2024-01-08 22:28:50 -06:00
Fryguy
e6dc980315
[Bug Fix] Harm Touch Critical Ratio (#3915)
* [Bug] HT Crit Ratio

This is used to tune and bring HT Crits more in line with the correct values as proven in screenshots.

* requested changes

* mistakenly kept mob::
2024-01-08 22:27:56 -06:00
Fryguy
ec465616b4
[Feature] Rule: UseLiveBlockedMessage Bard Spam (#3933)
When using `UseLiveBlockedMessage` rule, bard will get massively spammed when doing aoe songs that are blocked. Not sure it is resonable to try and filter out all stacking messages from songs, but rather just block bards as a whole. I can not think of many cases where bards care of songs land or not when using this rule.
2024-01-08 22:26:10 -06:00
Fryguy
23de0119ff
[Bug Fix] Undead Should Never Flee (#3926)
* [Bug Fix] Undead Should Never Flee

Added a hard return on Undead Body Types. They should never flee under any circumstance.

* space
2024-01-08 22:24:57 -06:00
hg
f59b4feb94
[Tasks] Add Support for Task Window Element Groups (#3902)
Elements that share a group are placed in the same list section and
separated from other groups with a divider.

Live appears to only use this for optional elements in some tasks and
when used each optional always gets its own group. This might indicate
it's done automatically under certain criteria to ensure optionals are
never grouped with non-optionals regardless of index.

Since groups are available in captures and there's very few tasks that
use this, we don't need to worry about trying to replicate any automatic
behavior since this allows more customization.
2024-01-08 23:24:41 -05:00
Fryguy
e035660150
[Crash Fix] Character Creation Class/Race out of Range. (#3920)
* [Crash Fix] Character Creation Class/Race out of Range.

Known bug to crash the world server from character creation.

You can send a packet with a manual race or class entry below 0 or above 255 will cause world crash.

* Requested changes

* Compile fixes and logging change

* Fixed compile issues
2024-01-08 23:24:15 -05:00
Fryguy
472dd71d7f
[Rules] Bash Two Hander use Shoulders (#3925)
Rule: BashTwoHanderUseShoulderAC
Default: False

Allows server operators to choose if they want two handed bash to utilize the shoulder armor or not.

Rule: BashACBonusDivisor
Default: 25.0

Allows adjustment for bash AC value contributions. Lower to increase damage.
2024-01-08 23:23:51 -05:00
Fryguy
409b6bf424
[Bug Fix] IsOfClientBotMerc() for Discipline Messages (#3940) 2024-01-08 23:23:09 -05:00
Alex King
9da713a830
[Bug Fix] Remove duplicate character_data repository in zonedb.cpp (#3935)
# Notes
- Must have been a typo from one of my commits where they overlapped in functionality.
2024-01-08 23:22:42 -05:00
Alex King
7d194083aa
[Release] 22.41.0 (#3939)
### Bug

* DI Buff Fade ([#3919](https://github.com/EQEmu/Server/pull/3919)) @fryguy503 2024-01-08
* NPCs will now only proc on hit ([#3913](https://github.com/EQEmu/Server/pull/3913)) @fryguy503 2024-01-08
* Pets should not ignore Z axis ([#3912](https://github.com/EQEmu/Server/pull/3912)) @fryguy503 2024-01-08

### Fixes

* Disciplines should show when someone casts them. ([#3901](https://github.com/EQEmu/Server/pull/3901)) @fryguy503 2024-01-08
* Fix Typo in Character Skills loading ([#3937](https://github.com/EQEmu/Server/pull/3937)) @Kinglykrab 2024-01-09
* Fix for HasLockoutByCharacterID ([#3927](https://github.com/EQEmu/Server/pull/3927)) @fryguy503 2024-01-08
* Harm Touch, Improved Harm Touch, and Unholy Touch ([#3904](https://github.com/EQEmu/Server/pull/3904)) @fryguy503 2024-01-08
* Legacy Manaburn should have hard cap. ([#3905](https://github.com/EQEmu/Server/pull/3905)) @fryguy503 2024-01-08
* TGB - Added logic to stop bard errors on group songs. ([#3906](https://github.com/EQEmu/Server/pull/3906)) @fryguy503 2024-01-08
* World Shutdown Filter ([#3930](https://github.com/EQEmu/Server/pull/3930)) @fryguy503 2024-01-08

### Info

* Adding textual feedback when trying to sell alt items back to … ([#3917](https://github.com/EQEmu/Server/pull/3917)) @fryguy503 2024-01-08

### Rules

* Backstab Damage Modifier ([#3908](https://github.com/EQEmu/Server/pull/3908)) @fryguy503 2024-01-08
* Classic Tradeskill Skill Clamp ([#3914](https://github.com/EQEmu/Server/pull/3914)) @fryguy503 2024-01-08
* Classic Triple Attack ([#3903](https://github.com/EQEmu/Server/pull/3903)) @fryguy503 2024-01-08
* Ensure mana taps only effect NPC's that have mana. ([#3907](https://github.com/EQEmu/Server/pull/3907)) @fryguy503 2024-01-08
* Over Taunt Hate ([#3900](https://github.com/EQEmu/Server/pull/3900)) @fryguy503 2024-01-08
* Stun Chance Percent Rule ([#3922](https://github.com/EQEmu/Server/pull/3922)) @fryguy503 2024-01-08
v22.41.0
2024-01-08 20:31:13 -06:00