440 Commits

Author SHA1 Message Date
Trevius
da75007b0f (RoF2) Fixed Rest Timer, Show Helm Option, Auto-Consent Options, and identified Krono in the PP. 2014-12-19 19:42:55 -06:00
Trevius
ef287bc857 Fixed Armor Tinting (players and NPCs) that was broken during a previous update. 2014-12-19 15:46:01 -06:00
Trevius
fce52d7186 (RoF2) Fixed Leadership AA Purchasing and Recipe Search by correcting opcodes. 2014-12-19 02:02:31 -06:00
Trevius
8aea6da7df Fixed zoning after death for RoF2. 2014-12-18 17:48:15 -06:00
Trevius
ba5e5058f9 Finished lining up the RoF2 Player Profile Struct. Zone times are now normal, and everything from the PP is accurate in game now. 2014-12-18 13:13:03 -06:00
SecretsOTheP
d721580c9f EQStream changes as recommended by a community member in private. 2014-12-17 17:55:21 -05:00
Michael Cook (mackal)
a14f8058da Switch path stuff to vectors
This should be more CPU cache friendly compared to lists so should
be faster. (profiling looked promising)
2014-12-17 01:52:00 -05:00
Trevius
200027bf89 (RoF+) Implemented the 6th Augment Slot for Items.
Player Corpses now saved attuned settings for Items.
Renamed IsInstNoDrop() and SetInstNoDrop() to IsAttuned() and SetAttuned() respectively.
2014-12-15 17:55:23 -06:00
Trevius
250ad31038 Added required SQL. Without it, there will be item loss using the last commit! 2014-12-13 14:01:12 -06:00
Trevius
9056008342 (RoF+) Implemented Armor Ornamentation using Hero's Forge Armor Models. To use, create an ornamentation augment and set the herosforgemodel field in the items table.
(RoF+) Added command #heromodel (#hm for short) - Usage: #heromodel [hero forge model] [ [slot] ] (example: #heromodel 63)
2014-12-13 13:53:55 -06:00
Michael Cook (mackal)
80a67f9ebc Fix guild rank spam 2014-12-13 03:18:30 -05:00
Michael Cook (mackal)
118d587064 Implement IGNORE_ROOT_AGGRO_RULES (special attack 42)
This allows you to have a mob be rooted but still try to attack the
target with the most amount of hate instead of attacking the closest
2014-12-12 18:55:43 -05:00
Michael Cook (mackal)
820f99067d Make use of the targetable_with_hotkey flag for SoF+ 2014-12-10 01:19:44 -05:00
Trevius
37951d09c7 (RoF+) Implemented Hero's Forge Armor Models for Items. To use, set herosforgemodel field in the item table to a model number such as 63 (for example). 2014-12-09 21:18:56 -06:00
SecretsOTheP
9db39b5eec Added a feature that allows an EQ client to log in directly to World without having to enter the LoginServer, provided the 'password' field is set in WorldServer.
Mainly used for administration purposes. A DLL hack is needed to utilize this feature, and the DLL itself will be posted (source included) on the EQEmulator forums. It uses Microsoft Detours 1.5. Up to you guys if you want to add the source to this program here.
2014-12-08 05:46:10 -05:00
Trevius
af42af7869 Initial addition of the RoF2 client from May 10th 2013 (currently available on Steam as the F2P client).
RoF2 is disabled by default, but you can enable by editing /common/patches/patches.cpp (see comments)
2014-12-04 02:13:01 -06:00
KayenEQ
052b41fbb2 Ranged attacks will now much more accurately calculate max distance server side
via accounting for differences in attacker/target size. This
fixes a very common issue of player hitting range attack and
nothing happening due to server improperly calculating
max range.
2014-12-04 02:40:51 -05:00
Trevius
24ea7a0d45 Mercenaries now spawn as the same Gender and Size of the Merchant they are purchased from.
Mercenaries now spawn with randomized facial features when purchased.
Setting a lastname for NPCs will now override any hard coded lastname (such as GM Trainers).
2014-12-01 19:54:01 -06:00
KayenEQ
ca3b5a3221 Merge git://github.com/EQEmu/Server into Development
Conflicts:
	changelog.txt
2014-11-29 03:22:11 -05:00
Trevius
84fa042c75 Fixed a zone crash related to numhits for spells.
Fixed a query related to group leaders logging in.
Fixed a world crash related to attempting to join an adventure with Mercenaries.
2014-11-28 20:23:42 -06:00
KayenEQ
191aa575f8 Projectiles (ie Arrows) fired from an archery attacks will do damage upon
actually hitting the target, instead of instantly when fired. Consistent
with live.

Optional SQL added to disable this.

Throwing will be implemented in a future update.
2014-11-27 22:12:13 -05:00
Trevius
b4862dea45 Compile Fix and fix to prevent Mercenaries from being set as Group Leader. 2014-11-25 02:54:02 -06:00
Trevius
09e13d0034 Spells that modify model size are now limited to 2 size adjustments from the base size. 2014-11-25 02:22:58 -06:00
Trevius
bee04c1b53 Merge branch 'master' of https://github.com/EQEmu/Server 2014-11-24 02:36:13 -06:00
Trevius
79a70271d5 Crash fix for Swarm Pets. 2014-11-22 12:53:49 -06:00
Trevius
d49426f763 Merge branch 'master' of https://github.com/EQEmu/Server 2014-11-22 00:27:40 -06:00
Trevius
62e22d1aea Mercenaries now Dismiss, Suspend, Unsuspend, and Die correctly. 2014-11-19 22:46:15 -06:00
Michael Cook (mackal)
d7e05de556 Merge pull request #292 from KayenEQ/Development
Updated swarm pet AI to be consistent with live.
2014-11-18 15:04:08 -05:00
Trevius
a6b9e6cb3c Trevius: Mercenaries can now zone once again. 2014-11-18 01:02:11 -06: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
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
41cbe5fb01 i hate the change log 2014-11-15 23:42:10 -05:00
KayenEQ
71d72a02a9 Merge git://github.com/EQEmu/Server into Development 2014-11-15 23:41:22 -05:00
KayenEQ
01c580224d Implemented NPC Special Ability 41 'Allow To Tank', gives NPC opportunity to take aggro over a client in melee range. 2014-11-15 23:40:13 -05:00
Uleat
0355af310d Non-buggy fix for OP_ShopPlayerBuy (thanks Natedog!) 2014-11-15 23:16:24 -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
SecretsOTheP
51b6db977f Identified object size and solidtype as flags. Exported them as functions to Perl. 2014-11-14 18:22:06 -05:00
KayenEQ
9de4f84f22 Merge git://github.com/EQEmu/Server into Development
Conflicts:
	changelog.txt
2014-11-13 21:49:10 -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
Uleat
741eca17f4 Added exclusion check for PlayerLogMerchantTransactions partial stack purchase logging 2014-11-13 13:17:29 -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
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