Commit graph

796 commits

Author SHA1 Message Date
Image
66c23cf771 Improvement to async query code to not have subsequent query held on main client/spawn process threads
Fixed the queue being used while we process existing queries from the same query id group.  We subsequently check at the end of the thread if more queries are available to process and start a new thread to build a new temp queue.
2020-03-29 10:07:50 -04:00
Image
8c8ad9e93c fixes LogStart
Fixes #60

Login server needed to call LogStart, world server needed to call earlier (messages were getting recorded out of order without the timestamps)
2020-03-28 12:57:51 -04:00
Image
d6bbc50989 login_db.ini and world_db.ini logging improvement
Fixes #1 adds more detail to when the login_db.ini or world_db.ini is not filled out correctly.
2020-03-28 12:56:59 -04:00
Image
0091eedd0a spawn move close_heading needed to also update spawn_location_placement
the spawn_location_placement heading must match close heading
2020-03-27 08:57:39 -04:00
Image
9f01692d8d Fixed bug on spawn move close_heading 2020-03-27 08:43:02 -04:00
Image
d71e9c76ee Mem leak fix for async query code 2020-03-26 17:43:01 -04:00
Image
7c42966f14 Fixed erase crash when no client to erase 2020-03-25 23:15:48 -04:00
Image
cb0d07c5fa Character saves needed to be async, too slow to run synchronous in client process
Fixes #44

Database class now has the ability to asynchronously run queries that don't tie up the process threads.

This is being utilized right now for character saves as that seems to be the slowest process.  However query id's (and potentially extension of such) can allow anything to be asynchronous -- and later on even add return vars.
2020-03-25 23:15:31 -04:00
Image
456cfa5828 Deadlock fixes in new GetScriptName 2020-03-25 22:35:59 -04:00
Image
1dfbf01cf4 Fix crash on login to zone
Fixes #59

Client gets ahead of server, tries to get character info before we set appropriate structures for client to use
2020-03-25 21:06:18 -04:00
Image
d11d58df75 enemy target group spells do not impact current target
Fixes #58
2020-03-25 00:04:50 -04:00
Image
5cd1bacc28 Login Server Updates
Fixes #55 - check on if an account exists or not before attempting an account creation (we still rely on the DB to do the password comparison as its own query)
2020-03-24 22:23:51 -04:00
Image
9bbd10e147 Command to move spawn to your current location
Fixes #56
new command : /spawn move myloc
Updates X,Y,Z,Heading to the players current values and saves the spawn_location_placement
2020-03-23 22:47:41 -04:00
Image
c724918484 Removed unused rule SpeedRatio 2020-03-22 17:08:04 -04:00
Image
5dfafe4464 Linux fixes 2020-03-22 17:07:49 -04:00
Image
3234470441 disarm chest traps trigger on group
Fixes #49

Added group triggers to disarm chest traps.

Rule R_Loot, ChestTriggerRadiusGroup added (by default 10.0f).  Outside radius group members will not be impacted
2020-03-22 13:18:40 -04:00
Image
f0d1fb950d Update Spawn.cpp
Include not needed
2020-03-22 10:18:04 -04:00
Image
04498a2490 Player/Target Radius added to distance checks
Radius is now built into the GetDistance formula, it also is based on f32/32.0f per recommendations of peak (Thx peak!)

Added combat range as a rule: rule_manager.GetGlobalRule(R_Combat, MaxCombatRange)->GetFloat()

Fixes #53
2020-03-22 09:45:40 -04:00
Image
442868f80a smash crash fix for camera shake
crash fix for camera shake by smash
2020-03-21 21:22:52 -04:00
Image
151b1fc91a Disarm chest old rules
- Added rule R_Loot, AutoDisarmChest enabled (1) by default.  Setting to 0 will mean you must right click and disarm chest, clicking the chest will not auto disarm and instead always trigger the trap

Fixes #47
2020-03-21 11:32:07 -04:00
Image
7d6de27e1f spawn combine save crashes, reports wrong location id
Fixed spawn combine save, was previously crashing (RemoveSpawn called multiple times) and also giving the wrong spawn location id as well (in the message output to the client)

Fixes #54
2020-03-21 07:42:40 -04:00
Image
e86c4bb4aa Added rule R_Spells,NoInterruptBaseChance set to 50
Base chance to resist interrupt was 30%, increased to 50%.  Maybe later on a level restriction to reduce when you are much higher level than your target.

Fixes #34
2020-03-21 00:24:36 -04:00
Image
47604d1735 LUA Filename Tracking in errors
Can translate lua_state into applicable filename, used to expose errors in logs.

Fixes #38
2020-03-20 23:42:12 -04:00
Image
cbdef22c5f LoginServer Patches
- allow more than one world server
- fixed some of the fields in the WorldList being set properly
- Added a flag in CreateCharacterReply
2020-03-20 23:41:27 -04:00
Image
6676f66184 LoginServer.ini reading updated
- LoginServer and LoginConfig blocks now break out if we enter a new block (previously the ini was read all thru)
- Upon a failure from login server, world server will attempt to reload the ini (you can change account name/password on the fly if it is wrong)
2020-03-19 09:48:30 -04:00
Image
5a38e28d1e Added customizeable LootRadius rule
Syncs to disarm and loot right click options + /loot distance check.

Fixes #50, side issue #53 to be fixed in Aries Stage 1.0
2020-03-19 09:05:24 -04:00
Image
49483cfeba LS needs to send char list after character delete to remove 'recoverable' char option
Fixes #29
2020-03-19 08:40:21 -04:00
Image
d87a363e4b Login Server now supports auto account creation upon a new acct
This includes creation of a new parameter in the LoginServer.ini, AccountCreation in the LoginConfig block can be 0 to disable, by default it is 1 (or if the field is not defined, its considered true)

Fixes #51
2020-03-18 23:48:57 -04:00
Image
6a06b51c5d SHA512 Implementation **Must reset password on worldservers and accounts**
Fixes #10

LS database:
- md5 no longer used, now use sha2('password',512) instead for mysql/mariadb
- account table passwd expanded to 256 chars
- login_worldservers password field expanded to 256 chars

manual update:

\u eq2ls
alter table account modify column passwd varchar(256) not null default '';
alter table login_worldservers modify column password varchar(256) not null default '';
2020-03-18 23:15:10 -04:00
Image
870c3f61ac Update WorldDatabase.cpp
Update support for spawn_widgets and spawn_signs.  Also place holder for insert.  Fixes #36.
2020-03-18 22:43:10 -04:00
Image
3c0b5abeb5 Update Widget.h
Translation from Widget Type ID to Widget Type Name
2020-03-18 22:42:44 -04:00
Image
5339ebd958 DatabaseNew needed retry logic upon loss of mysql server
Fixes #45
2020-03-16 20:11:34 -04:00
Image
172065b60a fixed second depth of chest lists
allows all difficulty levels to be tracked individually in the 2nd layer (zone->difficulty or difficulty->zone)
2020-03-16 19:22:06 -04:00
Image
05e065279b More nix fixes... 2020-03-16 15:02:10 -04:00
Image
de0979f2ec Linux fixes for ChestTraps 2020-03-16 14:54:54 -04:00
Image
b61ec973b0 Proper live messages for disarm chest trap
Fixed the self messages for disarm chest trap to be like live
2020-03-16 14:26:17 -04:00
Image
71335bbe99 Update ChestTrap.cpp
Forgot some locking on GetNextChestTrap..
2020-03-16 13:38:55 -04:00
Image
83a441f4e5 Update ChestTrap.cpp 2020-03-16 13:26:17 -04:00
Image
d7a00658d1 Rest of Chest Traps and Disarm Chest Traps implementation
Fixes #24 - chest traps and the ability to disarm is implemented.  Can restrict by zone (or applicable to all zones using -1), min and max chest difficulties.

1 = Small Chest (no trigger)
2 =  Treasure Chest (trigger)
3 = Ornate Chest (trigger)
5 = Exquisite Chest (trigger)

DB/updates/chest_traps_tableandsamples.txt included - this will allow you to source in the chest_traps and some 'example' traps (not real ones just testing ones).

Disarm command also required for right click option on chest: insert into commands set type=0,command='disarm',subcommand='',handler=510,required_status=0;
2020-03-16 13:23:38 -04:00
Image
4bc36eb7af Reduce worldserver reconnect to loginserver and fix database.ping 90s to 10s
Should help reduce #45, however must still investigate further into mysql has gone away and reconnecting to DB automatically.
2020-03-16 13:13:47 -04:00
Image
a3c542cbcc Fix to have spell visuals on /castspell 2020-03-16 11:19:43 -04:00
Image
927805733d Invisiblity behavior not restricted by PVP Flag check, only radius setting
Allows PVE/PVP to both support 'invisibility' behavior that makes clients actually invisible from each other at range or all together.
2020-03-13 12:41:38 -04:00
Image
4e940f6b7c PVP Invisibility Support
Fixes #42

- Invisibility support for PVP
- Rule R_PVP InvisPlayerDiscoveryRange added.  Default 20.  Setting to 0 means invis players are always seen.  -1 means they are never seen (unless their opponent has see invis for example)
- Crash fix back in ProcessSpawnConditional, spawn_list is getting a null spawn somehow, we can't process it!
2020-03-13 11:42:13 -04:00
Image
7c960a9d74 PVP Basics
PVP Melee attack, spell attack is possible now.  Originally the PVPFlag did not function correctly.  Added a PVP Level Range rule.

Fixes #33
2020-03-13 00:20:58 -04:00
Image
c50775412b EQStream SendPacket fix for packet construction length req
Fixes #40
2020-03-12 10:37:34 -04:00
Image
dc7710f4be Mutex fix thanks to foof!
forcing writing lock when the first read comes in
2020-03-11 22:24:34 -04:00
Image
4c33e979a0 Additional deadlocks fixed in ProcessMovement
Command_Hail needs to lock MSpawnList when it triggers ProcessMovement.  When we are doing SpawnProcess however, we already have MSpawnList locked, no need to lock again.
2020-03-11 21:27:35 -04:00
Image
30761b52eb Make World Server reconnect to LS despite FatalError
never disable retry attempts to connect to LS from world
2020-03-11 21:21:30 -04:00
Image
93f8bb1b7b Merge branch 'master' of http://cutpon.com:3000/devn00b/EQ2EMu 2020-03-10 23:17:27 -04:00
Image
396c8ff409 First change to allow us to set commands on widgets 2020-03-10 23:17:15 -04:00
Gogs
00ecf4b6c2 Fixes for Linix builds 2020-03-10 18:46:40 -07:00
Image
ed7d7f73ae more sql_updates.sql table filters
removed character_ tables, variables, char_colors, guild_ and bugs
2020-03-10 11:34:10 -04:00
Image
d9c52bbf64 sql_updates.sql updated to put semi colon at end of query
Added semi colon to end of query to make it easy to source in to other DB's
2020-03-10 11:19:17 -04:00
Image
2ea621db1b sub commands /loot list [add/remove/clearall]
Fixes #28

/loot list add loottable_id
/loot list remove loottable_id
/loot list clearall

auto reloads loot, purges previous loot and re-assigns loot to selected spawn.

If you have multiple of the same spawn, then /repop the zone and it will repopulate after one is updated.
2020-03-10 09:12:56 -04:00
Image
4daeeb3489 client.cpp linux fix
boolean->bool
2020-03-10 00:06:00 -04:00
Image
7802f527d3 on openheading / closeheading forgot to set includeheading true 2020-03-09 23:55:40 -04:00
Image
0d9c901e0e spawn move openheading and closeheading
Added support for /spawn move openheading and /spawn move closeheading -- this works on widgets only.  You can set the heading without worrying about the x,y,z position, will auto update and new headings will be used.

include_heading is also updated in the DB to 1.

Fixes #32.
2020-03-09 23:20:12 -04:00
Image
d695965fbb LUA Functions do not call with MSpawnList locked? (hopefully not)
This is a tough situation here, question is if Combat code can somehow call LUA and lua calls back to KillSpawn, so this might go both ways...

Entity::DamageSpawn

GetZone()->CallSpawnScript(victim, SPAWN_SCRIPT_HEALTHCHANGED, this);

This could if calling KillSpawn on that script action cause a deadlock
2020-03-09 18:51:58 -04:00
Image
714d7a3676 merge eq2emu r2870 r2869
merge ClaimWindow fix (unknown3 data)
2020-03-09 18:03:44 -04:00
Image
0be40a6d3e LUA Interface was incorrectly managing running scripts
Fixes #35 - memory leak and performance/stability fix (avoids constant loading of scripts over and over)
2020-03-09 17:39:09 -04:00
Image
08e929ddda reintroduced spawn_list.erase, had removed when testing deadlock issues 2020-03-09 10:41:50 -04:00
Image
f80a38d093 Merge branch 'master' of http://cutpon.com:3000/devn00b/EQ2EMu 2020-03-09 09:10:48 -04:00
Image
847b8c6ac8 Additional zoneserver.cpp update for new RemoveSpawn code
Fixed a memory leak
2020-03-09 09:10:44 -04:00
Gogs
7dafc584d2 fix for linux build 2020-03-09 01:00:48 -07:00
Image
285a8aa591 additional deadlock changes
Continued changes for deadlock issue.  Fixes #31.
2020-03-08 21:20:20 -04:00
Image
466ccebe36 turning force of soga models off
Now that issue #31 is resolved, we can turn soga models off since we know its unrelated
2020-03-08 20:59:57 -04:00
Image
bd2658946f Resolve Deadlock in MSpawnList against CombatProcess, barebones of disarm trap
Resolved deadlock in CombatProcess (dead_spawns).  Fixes #31.

Added base for issue #24
2020-03-08 20:42:54 -04:00
Image
1149dc7f2a Easier tracking of bad packet structures 2020-03-08 20:40:26 -04:00
Image
57d12cf795 revert soga change, causes lockup if increased level
exe to follow
2020-03-08 01:48:00 -05:00
Image
3ef040383a disabled force of soga models on LS reply 2020-03-07 22:19:56 -05:00
Image
3195a78e82 self damage possible
Change in lua spell damage to make self damage possible (allows /castspell to function correctly)
2020-03-07 17:27:59 -05:00
Image
a3834b5570 Update Commands.cpp
unnecessary code, took a different route
2020-03-07 08:39:02 -05:00
Image
e18194d7d2 itemsearch updated
Fixed #26 - /itemsearch (broker search) now displays item id in paranthesis name (id)

https://cdn.discordapp.com/attachments/603677936582918189/685839069061971983/unknown.png
2020-03-07 08:20:38 -05:00
Image
409e802251 forgot a break on castspell
needs a break or else we start autoattacking! oops
2020-03-07 00:18:01 -05:00
Image
856e068cad castspell command
Fixes #25

/castspell [spellid] (tier=1) - Cast Spell with specified spell id, tier is optional, default of 1.
/castspell [spellname] - Find spells wildcard match with a partial spell name

cannot damage self with current setup.

sql query required: insert into commands set type=0,command='castspell',subcommand='',handler=509,required_status=200;
2020-03-07 00:13:14 -05:00
Image
b15ec2c476 Added Open command to allow special doors to open
new command: insert into commands set type=0,command='Open',subcommand='',handler=508,required_status=0;
2020-03-06 20:32:43 -05:00
Image
050e639b76 SpellProcess/Commands target rewrite
- Added GENERIC doors to be opened after use timer expires (CastProcess)
- CastProcess now tracks a target by the int32 spawn id instead of relying on the static target.  For example trying to double click on a door that has a use action, this would lose target and the door would fail to open.  Fixes #23.
2020-03-06 18:33:12 -05:00
Image
04f291f5db Update database.cpp
- Fixed a filter on the sql_updates file we are using to track inserts/updates, filtered `guilds` instead of guilds
2020-03-06 18:30:25 -05:00
Image
45d58b4766 Updates
Updated /spawn details to include a radius option if no target is selected, eg. /spawn details 5 - for a radius of 5.  Gets some general spawn information (location id, spawn id, widget id, etc.)

Character Save / WritePlayerStatistic updated to check if characterid is set (in case client disconnects before character loads)

Default char_id of 0 set for Player class

Added a sql_updates.sql file for WORLD with _DEBUG define so we can more easily push updates made in game to each other
2020-03-06 16:10:08 -05:00
Image
f2727f40a3 Flymode zone in fix
Flymode wasn't enabling cross zone correctly at times, moved it to later on in the zone in process.

Made it so flymode off doesn't trigger on zone in(don't need to know if its off, only on).
2020-03-06 00:15:43 -05:00
Image
b19fd5f36f Adds char properties and fixes looting alive npcs
Fixes #21 - need cross zone capabilities for speed, flymode and invul
Fixes #22 - NPCs that are alive should not be looted (also /loot command was causing npcs to poof if you attempted to loot npc with no loot)
2020-03-05 23:55:08 -05:00
Image
b9eb09dacd Crash on spawn condition trigger
Fixes #20 when we are removing a spawn at the same time iterating the spawn_list to trigger spawn conditions
2020-03-05 15:54:46 -05:00
Image
42433f8453 camp issue causing instability to world
This Fixes #19.  Devn00b will test to confirm on his server.
2020-03-05 14:21:35 -05:00
Image
8befaa2c37 Update WorldDatabase.cpp 2020-03-05 14:21:07 -05:00
Image
8d962dede2 Character visual race available in character select
Fixes #11 -- additional analysis will be needed for equipment / potentially other features of the model
2020-03-05 00:18:57 -05:00
Image
2aaba44994 EQStream Update
Fixes #16 in regards to sequencing out of order packets and preventing an infinite loop on the sequencing.
2020-03-04 07:40:44 -05:00
Image
74e4b20180 EQ2emu merge update with LoginStructs broke world list on char creation
Reverted LoginStructs.xml, also added a mem leak fix in LWorld.cpp (something I should have dealt with earlier)
2020-03-03 14:13:41 -05:00
Image
b9fc4e7281 EQ2Emu Merge To Current Date (Requires DB update, will be separate commit)
Fixes #15
2020-03-02 22:01:36 -05:00
Image
24a1ccf3a2 EQ2Emu Base Updates
Resolves #14
2020-03-02 18:47:18 -05:00
Image
412cb69401 Added additional eq2emu revision for localtime bug in EQPacket
https://svn.eq2emulator.net/!/#eq2server/commit/r2853/head/trunk
2020-02-29 08:29:34 -05:00
Image
5333c294c9 localtime crash fix (updated from EQ2emu revision)
Replaces commit e5876f9a10 with the official revision change to fix https://svn.eq2emulator.net/!/#eq2server/commit/r2852/head/trunk
2020-02-29 08:24:53 -05:00
Image
dbb0daacd7 Trade Updates, Fixes #13
Added Trade command for Right Click.
Resolved quantity length for both traders in a trade, your_item_quantity, their_item_quantity (was int16, now int32)
2020-02-29 00:07:43 -05:00
Image
e5876f9a10 Crash on localtime struct
Seems localtime struct ptr is not being returned, thus we crash (might be something with my environment), however for now adding a check to stop us from crashing.
2020-02-28 11:09:30 -05:00
Image
c4f9c92303 Update git to allow dll and lib
Updated gitignore to allow dll/lib, easy portability to provide these to users
2020-02-28 10:31:46 -05:00
Image
dc7051a329 Adding Executables
Adding Executables for easy access (versus needing all our devs to compile)
2020-02-28 10:22:23 -05:00
Image
548007ea96 Base
Starting point..!
2020-02-28 09:17:24 -05:00