807 Commits

Author SHA1 Message Date
KayenEQ
1e13d43b71 Merge git://github.com/EQEmu/Server into Development 2014-11-18 04:46:14 -05:00
Michael Cook (mackal)
0b44f58518 Correct OP_AugmentInfo reply
This fixes the display issue for RoF
SoF/SoD/UF still won't show the charm info on Adventurer's Stone,
probably a client bug.
2014-11-17 16:41:37 -05:00
Akkadius
9d6248886c Turn off potential warning garbage for different versions of perl 2014-11-16 21:22:09 -06:00
Akkadius
251d4fa3e3 Implemented Automatic Database update and versioning system
Created database revision define, this is located in version.h in common #define CURRENT_BINARY_DATABASE_VERSION 9057
	- This revision define will need to be incremented each time a database update is made
	- Along with a revision define increment, you will need to update the db_update manifest located in:
		- https://raw.githubusercontent.com/EQEmu/Server/master/utils/sql/db_update_manifest.txt
		- An entry needs to be made at the bottom of the manifest, the entry is quite simple
		- Example: 9057|2014_11_13_spells_new_updates.sql|SHOW COLUMNS FROM `spells_new` LIKE 'disallow_sit'|empty|
			- This latest example is checking to see if the spells_new table contains the column 'disallow_sit', if its empty, the update needs to be ran
				- More examples of match types below:
		# Example: Version|Filename.sql|Query_to_Check_Condition_For_Needed_Update|match type|text to match
		#	0 = Database Version
		#	1 = Filename.sql
		#	2 = Query_to_Check_Condition_For_Needed_Update
		#	3 = Match Type - If condition from match type to Value 4 is true, update will flag for needing to be ran
		#		contains = If query results contains text from 4th value
		#		match = If query results matches text from 4th value
		#		missing = If query result is missing text from 4th value
		#		empty = If the query results in no results
		#		not_empty = If the query is not empty
		#	4 = Text to match
	- The manifest contains all database updates 'Required' to be made to the schema, and it will contain a working backport all the way back to SVN -
		currently it is tested and backported through the beginning of our Github repo
	- On world bootup or standalone run of db_update.pl, users will be prompted with a simple menu that we will expand upon later:

		============================================================
			   EQEmu: Automatic Database Upgrade Check
		============================================================
				Operating System is: MSWin32
				(Windows) MySQL is in system path
				Path = C:\Program Files\MariaDB 10.0\bin/mysql
		============================================================
				Binary Database Version: (9057)
				Local Database Version: (9057)

				Database up to Date: Continuing World Bootup...
		============================================================
		Retrieving latest database manifest...
        URL:    https://raw.githubusercontent.com/EQEmu/Server/master/utils/sql/db_update_manifest.txt
        Saved:  db_update/db_update_manifest.txt

Database Management Menu (Please Select):
        1) Backup Database - (Saves to Backups folder)
                Ideal to perform before performing updates
        2) Backup Database Compressed - (Saves to Backups folder)
                Ideal to perform before performing updates
        3) Check for pending Database updates
                Stages updates for automatic upgrade...
        0) Exit

Created db_update.pl, placed in utils/scripts folder, used for the automatic database update routine (Linux/Windows)
	- db_update.pl script created db_version table if not created, if old one is present it will remove it
Created db_dumper.pl, placed in utils/scripts folder, used for the automatic database update routine backups and standalone backups (Linux/Windows)
World will now check the db_update.pl script on bootup, if the db_update.pl script is not present, it will fetch it remotely before running -
	when db_update.pl is done running, world will continue with bootup
world.exe db_version - will report database binary version
2014-11-16 19:26:59 -06:00
Michael Cook (mackal)
e11fa4a278 Fix issue with ControlBoat_Struct and OP_BoardBoat 2014-11-16 17:42:15 -05:00
KayenEQ
94231b62a3 Updated swarm pet AI to be consistent with live.
*OLD AI: Swarm pet would lock on to target until target died, then depop as soon as target died.

*NEW AI: Swarm pet will attack cast on target, NOT perma locked it can change targets if attacked
by something else that generate more hate. When target dies swarm pet will follow owner, if owner is
attacked by something else the swarm pet will attack it (until duration timer despawns the pet).

Updated perl quest function: MakeTempPet(Tspell_id, name=nullptr, duration=0, target=nullptr, sticktarg=0)
Implemented perl quest function:  Mob::TypesTempPet(npctypesid, name=nullptr, duration=0, follow=0, target=nullptr, sticktarg=0)
Note: 'sticktarg' field will cause the swarm pet to use the OLD AI

Rule to use OLD AI only - default is disabled.
Optional SQL: utils/sql/git/optional/2014_11_15_SwarmPetTargetLock.sql
2014-11-15 23:01:26 -05:00
Michael Cook (mackal)
30922afd08 Remove scaling hack for client 62 (untested) 2014-11-15 01:01:57 -05:00
Michael Cook (mackal)
73e398b0f4 Remove scaling hack for SoD 2014-11-15 01:00:38 -05:00
Michael Cook (mackal)
10ae97e42f Remove scaling hack for SoF 2014-11-15 00:54:21 -05:00
Michael Cook (mackal)
96242f6c5e Remove scaling hack for Titanium 2014-11-15 00:29:56 -05:00
Michael Cook (mackal)
5dc3a5ab20 Also stop using hack on UF 2014-11-15 00:08:16 -05:00
Michael Cook (mackal)
44bfdfebc2 Correct charm scaling for RoF
Other clients should actually work the same as well
2014-11-14 23:45:56 -05:00
KayenEQ
4a26466b2b add 2014-11-14 00:26:14 -05:00
KayenEQ
6c7a4edae3 Support for spell field to determine if a spell can be blocked or not.
Numerous other spell fields defined.

Required sql added for updating spells_new field definations.
2014-11-14 00:23:26 -05:00
KayenEQ
563a39c2d9 Spell field defined that determines if must be sneaking to use this ability.
This is handled by client under normal conditions, however if you
force cast this effect in situations like 'procs' you can cause
zone crashes, therefore a failsafe check is added in 'SpellOnTarget'
2014-11-13 21:45:19 -05:00
KayenEQ
352d6fd83c Support for all remaining known spell target types.
Implemented target type (32) AE Target HateList
Implemented target type (36) Area Client Only
Implemented target type (37) Area PC Only
Implemented target type (39) Group No Pet
2014-11-13 05:19:01 -05:00
KayenEQ
738fa38047 Implemented target type (50) which excludes players pets from target AE's. 2014-11-13 02:46:22 -05:00
KayenEQ
fabe93e548 Implemented target type (44) 'Beams' (which projects an AE infront of caster with a specified length and width).
Clean up of target type direction code, implemented use of aemaxtargets field for it.
2014-11-13 02:25:18 -05:00
Uleat
f0f5262e3e Updated 'GMTrainee' structs to reflect the proper size of skills (100) 2014-11-12 18:17:03 -05:00
Uleat
22cc86e6a0 Removed type qualifier for SkillUseTypes enum 2014-11-11 18:01:21 -05:00
Uleat
bb5ae7447d Fix for GM Trainer crashing server (undefined behavior on enum cast) 2014-11-10 21:41:39 -05:00
KayenEQ
e63b310058 Merge git://github.com/EQEmu/Server into Development
Conflicts:
	changelog.txt
2014-11-10 09:42:59 -05:00
JJ
384d8c6167 Merge pull request #285 from addtheice/legacy_removal
Removed two unused functions
2014-11-10 00:47:55 -05:00
JJ
d23608964e Implement new Live-like faction adjustment message through optional rule. 2014-11-09 23:54:01 -05:00
KayenEQ
d656db843a Implemented spell Target Type (45) 'Target Rings' on Underfoot.
Thanks to Lecht for figuring out op code side of it.
2014-11-09 22:37:12 -05:00
Arthur Ice
0ed1e539ae Removed two unused functions 2014-11-09 15:12:31 -08:00
SecretsOTheP
d8a8b8e6dc Merge branch 'master' of https://github.com/EQEmu/Server 2014-11-09 03:40:59 -05:00
SecretsOTheP
77f0e7919e Indentation fix. Ornamentation Augments are integrated now. 2014-11-09 03:40:33 -05:00
Natedog2012
587ddc0fdd fix for copy paste error that linux didnt like 2014-11-09 03:33:58 -05:00
Natedog2012
efdc177b78 Implement RoF + UF ornament augmentation.. thanks for the help Drajor! 2014-11-09 03:33:58 -05:00
KimLS
d987ccf289 Added transactions for corpse creation, added sql to fix a bug in raid member saving in some situations, fixed a bug in encounters 2014-11-08 15:22:03 -08:00
Akkadius
51958b991c Cleaner way to handle out of range and swaps 2014-11-02 22:30:29 -06:00
JJ
43e906e3c8 Manual merge of new faction system (#256).
Clean up some personal signatures.
2014-11-01 23:27:23 -04:00
Uleat
65cb049a38 Added Client::InterrogateInventory() and command #interrogateinv to manually invoke it. (GM's - use #interrogateinv help) 2014-10-28 11:35:26 -04:00
Michael Cook (mackal)
a6ae2ca635 Switch Inspect Buffs to use the OP code
Client 6.2 is SOL until someone find the op for that client
2014-10-19 22:30:11 -04:00
Michael Cook (mackal)
a327c91bac Implement group mentoring while in raids (SoF+ only)
Note: This does not allow the raid leader to share raid leader XP
and since the raid leader doesn't gain group leadership, they can't
share that either.
2014-10-19 17:20:07 -04:00
Michael Cook (mackal)
e8eb774458 Implement group mentor, leadership exp sharing (SoF+ only)
Currently only works in normal groups
Some decisions: the EXP will be rounded in the favor of the group leader
No idea how live actually handles it.
2014-10-18 00:17:46 -04:00
Michael Cook (mackal)
9c72533264 Fix issue with raidMakeLeader packets 2014-10-16 19:23:32 -04:00
Uleat
f805ddf319 Merge branch 'master' of https://github.com/EQEmu/Server 2014-10-16 19:20:49 -04:00
Uleat
2267881d52 Fixed BOTS auto-convert code and load/drop scripts. Added a sql for fixing an existing database that was auto-converted incorrectly (located in ../bots/deprecated) 2014-10-16 19:16:52 -04:00
KimLS
9c6ab05659 Removed PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP ifdef, we dont use it anyway and it was failing on FreeBSD gcc49 2014-10-16 01:05:43 -07:00
JJ
fc8cb2b5b7 Manual merge of 4e3826228d43321abec7805f65b6d43d0f04ab06 in #269. 2014-10-15 22:12:57 -04:00
JJ
594657f2c7 Manual merge for 0c3e51963b5803d66443e71554d3e06a296805b3 in pull request #269. 2014-10-15 22:08:27 -04:00
JJ
09e1155a26 Merge pull request #261 from addtheice/RunQueryToDatabaseQuery_common_shareddb
Run query to database query common shareddb
2014-10-15 21:37:33 -04:00
Uleat
e824f81670 Merge branch 'master' of https://github.com/EQEmu/Server
Conflicts:
	changelog.txt
2014-10-15 19:50:35 -04:00
Uleat
69c0405004 Updated both load and drop sqls for bots..added a 'deprecated' load for pre-pp blob conversion databases..the auto-conversion code will catch this if the server
is updated to a newer version. (Had a really nice load script coded..but, the supported version of MySQL doesn't support 'TEMPORARY' procedures, nor commit commands from
'PREPARE(d)' statements... :( )
2014-10-15 07:49:39 -04:00
Michael Cook (mackal)
6f00a69850 Raid Leadership RoF 2014-10-13 22:55:57 -04:00
Michael Cook (mackal)
41938fbe72 Raid leadership SoD 2014-10-13 22:54:57 -04:00
Michael Cook (mackal)
d1561c28d9 Raid Leadership SoF 2014-10-13 22:53:41 -04:00
Michael Cook (mackal)
be0621de42 Partial implementation of leadership in raids
Currently working: stat bonuses and client side only effects
Currently not working: Mark NPC and others that need more server side work

Currently only tested on UF, Ti and 62 may work, but not tested
SoF, SoD, and RoF need packet translators, which are most likely the same as UF
2014-10-13 21:36:59 -04:00