81 Commits

Author SHA1 Message Date
SecretsOTheP
788959a5e2 Haynar's movement fixes.
Changes Speed from float to int. EQ client deals with int step locs better than it does floats according to Haynar's testing.

This also contains mob runspeed changes. I recommend you set runspeeds to start in the DB 1.25 for NPCs below 1.25 which will match player runspeeds almost equally. Existing DBs will need to be updated.

General Cleanup of MobAI functions. Mobs now change their heading on AIMovement timers if their targets' heading has changed since that time. This prevents players from being able to land backstabs inbetween mob swings.

Charmed/feared players now send the appropriate packet, there was a missing CastToClient() in spells that was missing.

Mob runspeed can no longer be snared to 0%, instead, 1% of their base runspeed is the maximum. Roots apply as roots instead of a modifier under this code.

There is going to be bugs with this code. It's better we push through it than revert it. Sanctuary has been running this for a good week and we've worked through the issues.

Misc updates:
Exported some variables to perl, including:

EVENT_ITE_CLICK_CAST:
EVENT_ITEM_CLICK:
spell_id - returns the spell_id of the click effect.
return value - cancels the cast.

EVENT_DROP_ITEM:
quantity - returns the # of items dropped in the packet. If the item has charges, charges are returned here instead.
itemname - name of the item being dropped
itemid - id of the item being droppped
spell_id - spell_id associated with the item's click effect.
slotid - the inventory slot id of the item being dropped.
return value - cancels the item from being dropped.

Added Perl function: CalcEXP. Calculates the experience you would gain for an NPC that cons a specific con value to you.

Fixed a bug where you would receive the group experience bonus and group experience messages for simply being in a group, regardless of the player being in the same zone as you.
2015-05-25 12:35:53 -04:00
N0ctrnl
c4a7acb6d1 Update tradeskills.cpp 2015-03-25 12:04:03 -05:00
Akkadius
99baba4762 More cleanup of some QueryDatabase references that no longer need auto results 2015-01-19 05:38:23 -06:00
Akkadius
5ab131dcd6 More cleanup of some QueryDatabase references that no longer need auto results 2015-01-19 05:35:28 -06:00
Akkadius
75ea162c2b Remove Duplicative MySQL Error: Error in DisableRecipe query '%s': %s 2015-01-19 05:25:59 -06:00
Akkadius
dfec624b8d Remove Duplicative MySQL Error: Error in EnableRecipe query '%s': %s 2015-01-19 05:25:56 -06:00
Akkadius
c4ebfa8890 Remove Duplicative MySQL Error: Error in LearnRecipe query '%s': %s 2015-01-19 05:25:53 -06:00
Akkadius
50fd74a2d2 Remove Duplicative MySQL Error: Error in Client::LearnRecipe query '%s': %s 2015-01-19 05:25:44 -06:00
Akkadius
590634ebef Remove Duplicative MySQL Error: Error in UpdateRecipeMadecount query '%s': %s 2015-01-19 05:25:37 -06:00
Akkadius
21ad8e1e7c Remove Duplicative MySQL Error: Error in GetTradeRecept success query '%s': %s 2015-01-19 05:25:33 -06:00
Akkadius
636f090ce3 Remove Duplicative MySQL Error: Error in tradeskill verify query: '%s': %s 2015-01-19 05:25:26 -06:00
Akkadius
71497f0674 Remove Duplicative MySQL Error: Error in SendTradeskillDetails query '%s': %s 2015-01-19 05:25:22 -06:00
Akkadius
0133dd5688 Remove Duplicative MySQL Error: Error in TradeskillSearchResults query '%s': %s 2015-01-19 05:25:17 -06:00
Akkadius
0c5a902032 Remove Duplicative MySQL Error: Error in HandleAutoCombine query '%s': %s 2015-01-19 05:25:08 -06:00
Akkadius
0d9b6703a6 Rename debug.h to global_define.h, update cmakelists and such 2015-01-19 04:12:09 -06:00
Akkadius
467b359d0c Moved all EQEmuLogSys:: enum references used in Log.Out to a namespace 'Logs' for shortening of syntax 2015-01-18 02:20:16 -06:00
Akkadius
c025765283 Renamed DoLog to Out as the aggregate logging function for simplicity of use and shortened syntax of Log.Out 2015-01-18 02:00:15 -06:00
Akkadius
1c048cb1d1 Renamed DebugCategory to DoLog as the aggregate logging function for simplicity of use and shortened syntax of Log.DoLog 2015-01-18 01:54:09 -06:00
Akkadius
ec7fd9b4e7 Consolidate 'LogType' Normal logs over to 'LogCategory' 2015-01-18 01:32:18 -06:00
Akkadius
e691735a2d Consolidate 'LogType' Error logs over to 'LogCategory' 2015-01-18 01:30:25 -06:00
Akkadius
7dbde36b03 Rename reference logger to Log 2015-01-18 00:41:18 -06:00
Akkadius
132fbbb0c6 Rename LogDebugType to DebugCategory 2015-01-16 03:09:02 -06:00
Akkadius
509bd2d652 Convert 'TRADESKILLS' debugging _log to logger.LogDebugType 2015-01-12 22:55:44 -06:00
Akkadius
a92233240c Replaced Normal calls 2015-01-10 15:55:10 -06:00
Akkadius
b76e179d75 Fix spacing 2015-01-10 15:47:36 -06:00
Akkadius
6844645dfb Replace LogFile->write(EQEmuLog::Error, with logger.logevents(EQEmuLogSys::Error 2015-01-10 15:44:35 -06:00
Akkadius
be381b4e56 Renamed EQEMuLog class to EQEmuLog 2015-01-08 19:46:28 -06:00
Uleat
34ab3e10f5 Added some nullptr checks for ItemInst* in a few places (tradeskills.cpp - particularly augments - needs a better review) 2014-12-23 10:14:45 -05:00
Akkadius
c5c33f6f49 tradeskills.cpp header include cleanup 2014-12-15 18:57:09 -06: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
Michael Cook (mackal)
395be050a3 Switch random function to std::mt19937
Added class EQEmu::Random
Functions:
EQEmu::Random::Int(int low, int high)
EQEmu::Random::Real(double low, double high)
EQEmu::Random::Roll(int required)
EQEmu::Random::Roll(double required)
EQEmu::Random::Reseed()

For zone, you will access the random object through the zone object
ex.
	zone->random.Int(0, 100);

Int returns a random int between low and high
Real returns a random double between low and high
Roll(int) returns true if Int(0, 99) < required is true
Roll(double) returns true if Real(0.0, 1.0) <= required is true
2014-12-01 18:13:12 -05:00
akkadius
4a597a2b38 tradeskills.cpp #include cleanup 2014-11-29 16:48:48 -06:00
Michael Cook
cf1370b9e2 Spelling matters! 2014-11-27 22:56:40 -05:00
Michael Cook (mackal)
6f67577115 Crash fixes 2014-11-27 22:30:44 -05:00
Natedog2012
4e3842b9d8 Detransformation of mold type ornamentations. 2014-11-27 16:14:04 -05:00
Natedog2012
daec5bde66 Item Transformation now works! 2014-11-26 17:23:04 -05:00
Leere
e7681f1b49 Fix for GetTradeRecipe results variable overload instead of reuse 2014-11-19 09:40:08 +01:00
Arthur Ice
e338f801ea DisableRecipe converted to QueryDatabase 2014-10-08 16:05:52 -07:00
Arthur Ice
6221c1f8ab EnableRecipe converted to QueryDatabase 2014-10-08 16:04:19 -07:00
Arthur Ice
5dac9a944b LearnRecipe converted to QueryDatabase 2014-10-08 16:02:30 -07:00
Arthur Ice
97c1c479f9 GetTradeRecipe converted to QueryDatabase 2014-10-08 15:55:12 -07:00
Arthur Ice
21d6865e8c GetTradeRecipe converted to QueryDatabase 2014-10-08 15:43:50 -07:00
Arthur Ice
e2894ef2aa SendTradeskillDetails converted to QueryDatabase 2014-10-08 15:05:24 -07:00
Arthur Ice
7656b9b928 TradeskillSearchResults converted to const std::string query instead of const *char query 2014-10-08 15:00:34 -07:00
Arthur Ice
0fde0fbd23 removed unneeded querylength parameter from TradeskillSearchResults 2014-10-08 14:41:34 -07:00
Arthur Ice
d5955da08c TradeskillSearchResults converted to QueryDatabase 2014-10-08 14:38:38 -07:00
Arthur Ice
e2333e671b HandleautoCombine converted to QueryDatabase 2014-10-08 14:28:40 -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
akkadius
7f89191ffc Changed zone process window title format, example: 'crushbone :: clients: 6 inst_id: 1 inst_ver: 0 :: port: 7015'
Most of the following changes are QueryServ related, fully implemented its original functionality to be able to offload
	intensive or metric based logging to a remote server process that could exist on another server entirely
Implemented Player Event Logging Types (Go to table `qs_player_events`):
		1 = Player_Log_Quest,
		2 = Player_Log_Zoning,
		3 = Player_Log_Deaths,
		4 = Player_Log_Connect_State,
		5 = Player_Log_Levels,
		6 = Player_Log_Keyring_Addition,
		7 = Player_Log_QGlobal_Update,
		8 = Player_Log_Task_Updates,
		9 = Player_Log_AA_Purchases,
		10 = Player_Log_Trade_Skill_Events,
		11 = Player_Log_Issued_Commands,
		12 = Player_Log_Money_Transactions,
		13 = Player_Log_Alternate_Currency_Transactions,
		- All QueryServ logging will be implemented with a front end in EoC 2.0 very soon
Changed all QS Error related logging to 'QUERYSERV__ERROR'
(Natedog) (Crash Fix) Legacy MySQL bug revert for loading AA's COALESCE( from COALESCE (
Implemented Perl Quest objects (LUA still needed to be exported):
	- quest::qs_send_query("MySQL query") - Will send a raw query to the QueryServ process, useful for custom logging
	- quest::qs_player_event(char_id, event_desc); - Will process a quest type event to table `qs_player_events`
Added MySQL Tables:
	- `qs_player_aa_rate_hourly`
	- `qs_player_events`
	- Source table structures from:
		- utils\sql\git\queryserv\required\08_23_2014_player_events_and_player_aa_rate_hourly
		To get the complete QueryServ schema, source from here:
		- utils\sql\git\queryserv\required\Complete_QueryServ_Table_Structures.sql
Added rules for each logging type, source rules here with them enabled by default:
	- utils\sql\git\queryserv\required\Complete_QueryServ_Rules_Enabled.sql
Spawn related logging cleanup
General code cleanup
Added queryserv.cpp and queryserv.h with QueryServ class
2014-08-23 23:59:20 -05:00
KimLS
07a2cbe9a5 Renamed zone files 2014-08-21 23:46:01 -07:00