201 Commits

Author SHA1 Message Date
Alex
00fb9bc9f9
[Bug Fix] Zone Heading for Binds, Summons, Teleports, and Zoning. (#1328)
* For as long as I can remember people have had issues with zoning in, facing the wrong way, and walking through a zone line.

With this we will be able to set zone's safe heading as well as preserve heading on summon (NPC or GM) and teleports between zones.

This affects several pre-existing quest methods and extends their parameters to allow for the addition of heading.

The following functions have had heading added.
Lua
- client:SetBindPoint()
- client:SetStartZone()

Perl
- $client->SetBindPoint()
- $client->SetStartZone()
- quest::rebind()

SetStartZone parameter list was fixed also.

This converts some pre-existing methods from glm::vec3() to glm::vec4() and has an overload where necessary to use a glm::vec3() method versus glm::vec4() method.

This shouldn't affect any pre-existing servers and will allow PEQ and others to document safe headings for zones properly.

* Removed possible memory leaks.

* Fix SQL.

* Fix client message.

* Fix debug log.

* Fix log message.

* Fix call in rebind overload.

* Fix floats.

* Add default to column.
2021-04-22 22:49:44 -05:00
Akkadius
4ac32d89e8 [Hotfix] DB Manifest 2021-03-29 03:01:07 -05:00
Chris Miles
7aa5308f9c
[Scheduler] Event scheduler implementation (#1257)
* Event scheduler implementation

* Create 2021_02_17_server_scheduled_events.sql

* Tweak

* Remove unused event [skip ci]

* Cleanup [skip ci]

* PR adjustments

* Database manifest
2021-03-29 02:52:57 -05:00
Alex
e6dee96266
Convert NPC Spell AI from int16 to uint16. (#1262) 2021-02-23 18:33:33 -06:00
Alex
bf3593a60d
[Experience] Add exp mod to npc types to let a server op change the exp modifier (#1252)
* Add exp mod to npc types to let a server op change the exp modifier a npc gives (useful for custom content)

* Updated version.h
2021-02-23 11:50:38 -06:00
hg
33e5bd0b67 Assign db version to expedition schema 2020-12-30 18:47:59 -05:00
Michael Cook (mackal)
69a8507908
Feature/underworld (#1146)
* Update NewZone_Structs

* Update packet translators for NewZone_Struct

* Add OP_UnderWorld OPcodes

These aren't implemented yet, but I thought it would be good to document
them. This sends up just entity ID and location when you fall
underworld. This could possibly be used to check for someone screwing
with zone data locally to warp or something I guess.

* Add database fields
2020-12-21 17:08:04 -06:00
Noudess
56afa0404b Updates to fix taunt button on PET UI to match live behavior. 2020-09-02 12:50:11 -04:00
Akkadius
e319746ca9 Typos 2020-08-16 00:16:50 -05:00
Akkadius
f78828216d Add support for virtual zonepoints 2020-08-16 00:06:20 -05:00
Akkadius
94d87584aa Lootdrop level filtering adjustments 2020-08-15 16:37:38 -05:00
Akkadius
bdf55403cf Add manifest criteria 2020-07-07 02:10:00 -05:00
Michael Cook (mackal)
0e6a0b5a70 Add Item SubType to data structures and DB 2020-05-09 22:37:35 -04:00
Akkadius
f3d8271066 Slightly adjust manifest criteria [skip ci] 2020-03-10 13:41:53 -05:00
Akkadius
431a325414 Update manifest [skip ci] 2020-03-10 00:22:39 -05:00
JJ
4915e86aba Slight tweak (field name) to #983 "Override LEVEL and INT aggro blocking".
If you already ran the previous SQL, use this instead:
ALTER TABLE `npc_types` CHANGE `always_aggros_foes` `always_aggro` TINYINT(1) NOT NULL DEFAULT '0';
2020-03-05 22:31:54 -05:00
Noudess
ac3b4ade10 Implement new always_aggro_foes field and functionality for mobs. 2020-03-05 10:44:01 -05:00
Michael Cook (mackal)
2f5909d4cb Implement AA timers reset on death
This is a field in the packet, live only uses this for Lay on Hands

Currently I didn't add this to the packet since it has 0 effect on the
client.

We could move this field to aa_ranks which would give more flexibility
for custom servers, but no one said they wanted it there.
2020-02-06 14:20:18 -05:00
Michael Cook (mackal)
501204a4d2 Add hot_zone filtering for global loot
We do this in GlobalLootEntry::PassesRules since we want to check if the
hot zone status changes during run time

Value can be null, if null it's not checked. If the value is 0 the zone
must not be a hot zone (I guess one might want that) and if it's not 0,
the zone must be a hot zone
2020-02-06 01:52:35 -05:00
hg
371265d143 Make guild consent persistent for summoned corpses
Live drops group/raid consent but not guild when moving corpse to another zone
Store guild consent id in db for character corpses and keep it updated
2020-01-28 19:41:27 -05:00
regneq
c2b3e85272 Added new pathgrid type 7 (GridCenterPoint). This grid causes a NPC to alternate between the first waypoint in their grid (Number 1 in the editor) and a random waypoint. (1 - 7 - 1 - 4 - 1 - 11 - 1 - 5 - 1, etc)
Changed the wandertype IDs to an enum so we know what we're looking at.
Added new pathgrid type 8 (GridRandomCenterPoint).  (SQL required) This new type causes a NPC to alternate between a random waypoint in grid_entries and a random waypoint marked with the new centerpoint column set to true. If no waypoints are marked as a centerpoint, this wandertype will not work. There is no numbering requirement or limit for centerpoints. You can have as many as you need.
New spawngroup field: wp_spawns (SQL required). Added a new spawngroup field, which is a boolean that if true changes the behavior of spawngroups this way: If the spawnpoint in the spawngroup has a grid, the NPC will spawn at a random waypoint location taken from its grid instead of the spawnpoint location.
New randompath behavior: The randompath grid type will now use the closest waypoint as its current waypoint on spawning.  This allows multiple spawn locations to use the same grid without having the undesirable behavior of walking to the first waypoint through walls and ignoring waypoint nodes. NPC::GetClosestWaypoint() was renamed to NPC::GetClosestWaypoints() as it was filling a list of multiple waypoints. a new method NPC::GetClosestWaypoint() returns a single waypoint in the form of an integer.
2020-01-24 15:11:08 -08:00
Akkadius
b9e87abb3c Implement Character Soft Deletes 2020-01-10 02:54:29 -06:00
Akkadius
6e4d9a915d Fix database update condition loop [skip ci] 2020-01-01 14:56:15 -06:00
Uleat
72f4f10dbb Rename table Banned_IPs to banned_ips [skip ci] 2019-12-24 02:36:00 -05:00
Uleat
6b201fcbef One-time update to log_category_descriptions to fix naming discrepancies. Additions added after the auto-inject code (including future additions) are not affected 2019-11-09 19:28:21 -05:00
Akkadius
4e129ca7b5 Update database manifest 2019-09-16 22:41:03 -05:00
Noudess
2e98de3923 Changes to allow individual spawn2 locations to vary in npc selection (cond) 2019-09-02 10:34:09 -04:00
Chris Miles
9c9615e8bb
Fix the manifest [skip ci] 2019-07-23 19:06:11 -05:00
Akkadius
35eb5b24dd Implement flymode 2019-07-10 03:39:07 -05:00
Akkadius
c8d6895526 See changelog 2019-07-03 00:59:49 -05:00
Noudess
f75c5b6fc8 Fix db version. 2019-03-25 19:32:46 -04:00
Noudess
63045fadd9 Manifest and sql to add model to npc_types to override race if presentwq 2019-03-25 19:29:57 -04:00
Paul Coene
6dbd579f4f
Merge branch 'master' into master 2019-02-28 15:05:18 -05:00
Noudess
aa9611d494 Code added to auto fix quests. Updated manifest and version to current. 2019-02-28 15:01:39 -05:00
Uleat
b810e3aa71 Fix for profanity command script file name in manifest [ci skip] 2019-02-04 21:39:16 -05:00
Uleat
93a0ad2ceb Added command 'profanity' 2019-02-04 07:02:27 -05:00
Noudess
46ead8e29e Move out faction changes to later db version as it is still pending. 2019-01-23 14:54:16 -05:00
Akkadius
b0c4d626f2 Update db_update_manifest.txt [skip ci] 2019-01-22 03:16:02 -06:00
Kinglykrab
d8c88aac96 Added multi-version capabilities to NPCs.
Setting a spawn2 row's 'version' column to -1 will make that spawn appear in all versions of the zone.

This is similar to how doors/objects/groundspawns use version -1.
2019-01-10 19:55:59 -05:00
Noudess
5474661e11 Updated manifest to remove extra space, removed comments from sql dumpw 2019-01-05 13:00:33 -05:00
Noudess
ca6bcdb1f9 Updates to match up with db versions that have chwqanges since PR created. 2019-01-05 12:46:52 -05:00
Akkadius
b9abc09294 Update base scaling data [skip ci] 2019-01-04 18:14:11 -06:00
Paul Coene
e71eefab50
Merge branch 'master' into master 2018-12-18 11:33:52 -05:00
Noudess
469224cfe7 Update manifest versions 2018-12-18 11:24:10 -05:00
Noudess
688e37f108 Changes to accomodate the new raw faction data. 2018-12-18 10:58:01 -05:00
Akkadius
0681e6dbb2 Merge branch 'master' into movement_manager 2018-12-17 01:39:37 -06:00
Akkadius
6b18c71c11 Changelog 2018-12-17 00:35:08 -06:00
Kinglykrab
8ae9c99f3d Added new data bucket and quest functionality.
Added multiple new instance related quest functions.
	1. quest::GetInstanceIDByCharID(const char *zone, int16 version, uint32 char_id)
		- Allows you to pull the instance ID of a client by character ID.
	2. quest::AssignToInstanceByCharID(uint16 instance_id, uint32 char_id)
		- Allows you to assign an instance to a client by character ID.
	3. quest::RemoveFromInstanceByCharID(uint16 instance_id, uint32 char_id)
		- Allows you to remove a client from an instance by character ID.

Added spell buckets, similar to spell globals.
	- Uses a new spell_buckets table and the Spells:EnableSpellBuckets rule.

Added max level by data bucket.
	- Uses data bucket char_id-CharMaxLevel and Character:PerCharacterBucketMaxLevel rule.
2018-12-13 19:42:31 -05:00
Noudess
cfbd8e727a Fix typo in manifest. 2018-12-12 09:15:54 -05:00
KimLS
0662e3c780 Merge fix with sql 2018-11-25 15:35:52 -08:00