Commit graph

1895 commits

Author SHA1 Message Date
Devn00b
1ea4536d05 First revision for marking signs. Issue #403. TODO: Refresh after marking, and timed remarking. 2023-11-07 14:47:20 -08:00
Emagi
7324c9a462 - Fix #544 - login server now correctly loads skin color for appearance data in character select, matches in-game color.
- AoM and DoF now properly sync their appearance properties (hair, face, chest, legs).  This is limited to classic (non-SOGA).  SOGA will be reviewed in Issue #443
- Fixed inventory being unable to move items around after moving a equipped item to inventory
- DoF: Ranged weapons now properly display in examine, this means they also work in quest accept display windows(Hawk Hunt quest).
- Fixed merchants freezing up on DoF client.  DoF and earlier disabled the merchant flag in serialization of items (different structures that were not updated for DoF).
- Disabled item types in DoF (not supported): 'Thrown','House Container','Adornment','Profile','Pattern Set','Item Set','Book','Decoration','Dungeon Maker','Marketplace','Reward Crate2','Infuser1','Infuser2','Experience Vial','Overseer'
- Fixed DoF client crash with merchants (eg. Scion of Khaalista in NorthFreeport).
- DoF bauble items set to generic item packet until structure is properly identified.
2023-10-22 22:01:17 -04:00
Emagi
14a74a1f45 - Fix #542 - DoF will now properly roll/pitch spawns/objects as expected
- Fix #538 - Item quest offer color and part of quest color mapping corrected
- Fix #519 - DoF broker now supports multiple pages, properly displays item name in the field area expected.
- Fix #518 - DoF client mender / repair fixed.
- Negated Control Effect 32 from DoF client, was causing low gravity when safe fall was on a spell.
- Fixed some LUA Functions handling of dead pointers and cleanup of the LUA stack.
- Fixed SpiritShard.lua to convert the timestamp to numerical from string
- Fixed a memory leak on PacketStruct handling of WS_Resurrected
- Fixed being dead allowing you to move around/jump on DoF client
- Fixed DoF control flags when revived/resurrecting to allow movement again
- Fixed reviving not setting HP and leaving player as a corpse (in any client)
- Fixed LUA Function SetSpellData, it was resetting the stack before we pulled the variable so we got no variable data
- DoF client restricted to 20 slots for backpacks (by client limitation, enforced server side to avoid bugs)
- DoF bagged inventory now behaves correctly (bags were only showing items up to the 11th slot on login, DoF supports up to slot 20)
- Fixed mender having NO_RENT flag checked incorrectly not allowing individual repair of items (was checking flags vs flags2)
2023-10-10 22:56:27 -04:00
Emagi
0536363511 remove spells copy 2023-10-10 22:52:38 -04:00
Devn00b
71e0c8661b Updated windows EXE 2023-10-09 08:28:40 -07:00
Devn00b
0f5ef8615b Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2023-10-06 11:27:58 -07:00
Devn00b
f38b6fb788 Fix for issue #242. Added GetCanEvac/SetCanEvac lua function. Example code found in server/spells/scout/escape.lua 2023-10-06 11:25:59 -07:00
Emagi
ace2e20281 - Fix #537 - DoF client health, power, concentration display on items correctly, AoM and DoF client no longer have issues with hide hood/helm in options impacting self and other options
- Fix #434 - AttackAllowed now checks for attackable against NPCs.  Added more AttackAllowed checks around AE/Enemy target to avoid non-attackable npcs
- Fix #531 - DoF house support, AoM client also fixed inside house for door widget
- Fix #543 - Addressed AE/other spells including unattackable spawns
- Support for LUA Function InFront(Spawn, Target)
- Fix AE max targets exceeding cap
2023-09-30 22:02:11 -04:00
Emagi
523e98c2c5 - Fix #533 - Group support for DoF, fixed /acceptinvite and group member display
- Fix #541 - Support for world server to use non-3306 port for mysql by using port=3307 in world_db.ini
- Fix #540 - Added GetDifficulty(Spawn) command.  No longer do spawns have a "encounter_level" all translated to "difficulty"
- HateList now no longer allows negative hate from deaggro
- more protection on player_quests to avoid crash
2023-09-23 16:12:04 -04:00
Emagi
a793c71f51 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2023-09-11 19:17:36 -04:00
Emagi
955f90a55d - SpawnScripts/Generic/SpiritShard.lua shard expiration updated to assure the values are integer based
- Disabled ClearDataMsg going to AoM+ clients, not a valid opcode (100)
- HO Spell logs moved to debug, previously was error
- Prevent zone shutting down state from causing a crash when running spell process -> procs (we no longer run any spell processing during zone shutdown)
2023-09-11 19:17:24 -04:00
devn00b
be4cc5e576 Windows World EXE Update 2023-09-10 11:03:43 -07:00
Emagi
4d4873d674 - Fix #515 display spawn name and database id when /spawn set or /spawn remove is used successfully.
- Fix #534 when drowning death occurs, proper kill message (kill blow type 10) is sent to clients for appropriate 'glug glug' message.
  * AoM client WS_HearDeath structure fixed, blow type was in wrong place
- Addressed a number of memory leaks in handling of packet structures through configReader.getStruct and LoadPacketData
- Addressed buffer overflow of packets trying to match opcodes that do not exist (beyond bounds of the opcode list)
- Addressed issues with trying to read memory in packet data when a packet is not loaded correctly, where we should instead bypass and just delete the bogus packet (avoid crash)
- Tracking icon for DoF set to 231
2023-09-06 19:34:44 -04:00
Emagi
5cc42192a5 Fix #524 - DoF client part #3, plus crash fixes (reload spells, entering zone shutting down)
- Addressed DoF inventory causing items to be put in the wrong slot or disappearing
- Fixed instances serving a client a zone currently shutting down
- Added more enforcement of the client count for a zone so it does not prematurely shutdown when a client is entering the zone
- Addressed NPCs in DoF client "looking at" them when they should not.  "interaction_flag" in SetInfoStructUInt(Spawn, "interaction_flag", 255) will now enforce not looking at a player.
- resolved /reload spells crash
- Control Effects now work for DoF client
- /flymode now supports values 1 and 2.  1 = flymode, 2 = noclip + flymode.  DoF client flymode is not the same as AOM, it doesn't support up/down/jump
- added /gm controleffects (select entity target) will display their active control effects
- DoF client: can now right-click examine items in base inventory and inside bags of inventory
- can no longer put bags inside of other bags
- fixed the classic icons for collecting, fishing, gathering, foresting, mining, trapping, tracking put in temp icon until we determine right one.
2023-09-02 19:41:15 -04:00
Emagi
dcf5bf4bdc Fix crash when attempting to equip something with no slot assignment, incorrectly defined item in the database. Also HasQuest LuaFunction has been updated to avoid incorrectly accessing player_quests without locking 2023-08-28 08:45:36 -04:00
Emagi
0d876665aa Even more player_quests null fixes to avoid crashes 2023-08-21 19:22:27 -04:00
Emagi
0c159c153b additional housing packet fix 2023-08-21 19:18:06 -04:00
Emagi
7f809a5b79 Crash fix for housing packet and checking quest flag on dead quest, finally fixed character_history needs to escape location before going in db 2023-08-21 19:16:07 -04:00
Emagi
f720513876 DoF Recipe/Tradeskill Stage 1 of 2 for Issue #532
- /info command now has recipe_product support
- /delete_quest crash fix
- knowledge sorting for DoF client now supported (ability book cannot be resorted in DoF)
- fixed copying of Recipe::Recipe class
- OP_RequestRecipeDetailsMsg and WS_RecipeDetailList support for earlier clients (DoF and probably similar classic)
- fixed HandleExamineInfoRequest to properly map the "id" for DoF client
- Quest mutex updated for pending quests to avoid crashes
- PacketStruct::serializeCountPacket better defined for larger sizes
2023-08-16 11:38:03 -04:00
Emagi
7ac81a6b99 No damage should still add aggro 2023-07-29 15:54:33 -04:00
Emagi
e8a22654b5 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2023-07-29 15:52:43 -04:00
Emagi
006b6ac924 Fix encounter not adding a player if they one hit the target 2023-07-29 15:52:32 -04:00
devn00b
804c5d05f4 Update to windows EXE 2023-07-28 16:08:30 -07:00
Emagi
3fbe306f51 Try to avoid deadlock with spell targets 2023-07-28 18:26:55 -04:00
Emagi
ee4dd24510 If Player has a dead spell that cannot be loaded from DB wont crash when resorting spell book 2023-07-28 06:44:58 -04:00
Emagi
9eeeb1e012 Disable second ear slot for DoF and earlier clients 2023-07-26 19:59:09 -04:00
Emagi
54775d0327 Going to additionally avoid calling lua removespell on zone shutdown 2023-07-05 16:08:52 -04:00
Emagi
8ef5843d7a Slight mod for crash fix 2023-07-05 15:24:07 -04:00
Emagi
7f60455b51 Address delete spells of npcs causing crash on zone shutdown 2023-07-05 15:14:21 -04:00
Emagi
b60a90aa10 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2023-07-05 07:39:57 -04:00
Emagi
3129ae3d3b PlayFlavor (HandleEmote function in zoneserver) will now handle visuals without requiring a message text being set in the database 2023-07-05 07:39:40 -04:00
Emagi
401ffd3d63 Fix crash of spell removal in LUA when zone is not set for caster 2023-07-05 07:39:03 -04:00
devn00b
eda3ffeff0 Login and World EXE update 2023-06-10 23:05:09 -07:00
Emagi
355d89124d - DoF now properly shows recipe books (struct fix in ItemStructs.xml)
- AoM and DoF both properly display recipes inside recipe book examine
- Adding recipes from a book to a player will now add correctly (via CRC ID) if we cannot identify recipe book by its book name.
2023-06-10 07:40:39 -04:00
Emagi
09978db335 Resolve unexpected crash due to lua string 2023-06-05 16:10:30 -04:00
Emagi
b924495ba3 Fix #527, blue and debt xp, Fix #523 db translation of emotes table to action_state, action_state_str added to spawns_npc table 2023-06-03 18:55:57 -04:00
Emagi
1646afdf4e Force a save of the quest when added to players quest book 2023-06-02 13:24:50 -04:00
Emagi
eec9f5b9f8 Fix #517 - AoM client can now remove/add skills and it reflects client updates correctly. DoF has issues removing Issue #525 made. Pet Options UI Window for HP/power and other options now work.
Fix #521 - Spells can now be examined correctly, loot now pops up for previously failing with items like master spells.
- Capped rain/wind to 0.0 - 1.0, going beyond 1.0 crashed DoF client
- Removed stats from clients that do not support them (DoF and AoM vice versa)
- Encounter list no longer splits exp when pet is part of encounter, only bots/players count in the split.
- Rule R_Player, AutoSkillUpBaseSkills added, 0 by default.  Setting to 1 automatically sets current skill = max skill for armor,shield,class,weapon skills
2023-05-30 12:53:01 -04:00
Emagi
a9b68f5c53 chests no longer show as corpses to client in DoF, kept consistency in AoM. Disabled ability for a chest to drop from an existing chest when using GM kill command 2023-05-24 09:26:54 -04:00
Emagi
c49802616e Fix quests in DoF and earlier displaying complete description on reward acceptance 2023-05-23 19:19:53 -04:00
Emagi
9d631f805d Fix skin color for DoF char creation 2023-05-21 07:19:21 -04:00
Emagi
8e1c321c51 Fix sending structures/packets that are not defined for the current client version, in this case the threat packet was not defined for DoF client and sending bogus data to client causing a crash 2023-05-21 07:16:19 -04:00
Emagi
c350a66ad9 avoid a deadlock between spawn list and pending spawn list 2023-05-20 14:23:21 -04:00
Emagi
22045ab11a Add missing SpawnStructs update 2023-05-20 09:20:07 -04:00
Emagi
506f8e9e29 remove code not yet available 2023-05-20 08:52:25 -04:00
Emagi
716f9affa3 - DoF Client Profile(Character) -> Options all the checkboxes set the wrong thing (afk, roleplaying, camping, linkdead, lfg, so on)
- DoF client Quest complete reward now includes temp rewards item data, previously you would see an empty quest reward window.
- DoF client properly in combat (no re-sheething of weapon while in combat)
- DoF client fixed spells to do start and end cast at appropriate times (struct fix).
- DoF client casting on self says "not a friend" -- now says not an enemy.  When being too far away, instead of saying "too close" now says "too far away".
- DoF fixed selecting self interrupts /camp
- DoF client server/client properly synched for inventory (food/drink and other equipped slots previously not working right)
- DoF Broker no longer crashes client, limited implementation to get first 8 results. WIP
- DoF fixed examine equipped items didn't work for drink/potentially mismatched other slots
- DoF item stat review  of resists now properly display
- DoF client is constantly sending HandleExamineInfoRequest packets for spells, fixed. Greatly improved performance of DoF cause it was constantly sending these packets for all spells in your book per second!
- DoF collections window is fixed, collections now display correctly in journal window. Upon turning in complete collections, client no longer crashes. Outstanding note: DoF client has EXP show up as % of level (60?) instead of just bare XP points. This might need more discovery, but isn't a huge issue right now.
- DoF player profile inspection inventory, DoF and AoM both display inventory (DoF does not support appearance gear). Cross client inspection works also. Avoidance (DoF and AOM) / ATK (DoF) stats need to be reviewed and matched in the structure, but not a big priority.
- DoF client /who list is broken (if more than one player, by myself /who works) -- structure updated for some unknown bytes tail of packet
- DoF client gestures now show up visually and not as an /emote-
- DoF item display fixed for house items (the items themselves in inventory/broker/so on were previosuly displayed corrupted)
- DoF Merchant "sell to merchant" just shows buy window, sell window was displaying buy items, there is already a sell window with the buy window.
- DoF merchant mender/repair no longer crashes the client -- currently worked around by sending buy screen then repair screen.. displays both, need to get buy screen disabled, will be its own git issue.
- Remove/Add skills via LUA will now properly update/reflect the database.
- starting_skills and starting_spells no longer applies on each login, this will stop the restoring of spells/skills on zoning that are removed with LUA
- Login sequence into world now initially load spells/skills (and also sync if first time into the world for the character).  This will allow us to avoid an unneccessary blocking behavior with World::SyncCharAbilities (it waited for 5 loops and hold the thread to see if the DB is updating the character).  Now we enforce this behavior with an updated state machine for the login, no longer blocking/holding the thread.
alter table characters add column first_world_login tinyint(1) unsigned not null default 0;
- R_World, DisplayItemTiers rule made to display item tiers (1) / disable (0)
- Bots are no longer impacted by /depop or /repop
- fixed crash with Player::CheckQuestFlag where we try to send updates based on quest, dead quest ptr when calling CheckQuestChatUpdate
- revive points now support an always_included option, otherwise it only shows the closest distance
- Database updates:
alter table revive_points add column always_included tinyint(1) unsigned not null default 0;
alter table characters add column first_world_login tinyint(1) unsigned not null default 0;

- LoginServer
	* LoginServer.ini now supports (integer) fields expansionsflag, citiesflag, defaultsubscriptionlevel, enabledraces under the "LoginConfig" block
	eg. enabledraces = 65535 allows all races
	    enabledraces = 57343 removes sarnak as playable race (-8192), another -4096 would remove Arasai.  -2048 removes Fae.

	Default values (in hex, you can only use integer in the ini):
		// full support = 0x7CFF
		// 1 << 12 (-4096) = missing echoes of faydwer, disables Fae and Arasai (black portraits) and kelethin as starting city
		// 1 << 13 (-8192) = disables sarnak (black portraits) and gorowyn as starting city
		expansionFlag = 0x7CFF; // 0x4CF5

		/* dword_1ECBA18 operand for race flag packs (sublevel 0,1,2?) -- (sublevel -1) controls starting zones omission 0xEE vs 0xCF (CF misses halas)
		1 = city of qeynos
		2 = city of freeport
		4 = city of kelethin
		8 = city of neriak
		16 = gorowyn
		32 = new halas
		64 = queens colony
		128 = outpost overlord
		*/
		citiesFlag = 0xFF;

		// sub_level 0xFFFFFFFF = blacks out all portraits for class alignments, considered non membership
		// sub_level > 0 = class alignments still required, but portraits are viewable and race selectable
		// sub_level = 2 membership, you can 'create characters on time locked servers' vs standard
		// sub_level = 0 forces popup on close to web browser
		defaultSubscriptionLevel = 0xFFFFFFFF;

		// disable extra races FAE(16) ARASAI (17) SARNAK (18) -- with 4096/8192 flags, no visibility of portraits
		enabledRaces = 0xFFFF; // 0xCFFF
2023-05-20 08:43:45 -04:00
Emagi
4f733b96da Fix calling GetSpell with a non existent spell id and tier causing a crash, also some lua functions not calling reset function stack 2023-05-13 06:57:44 -04:00
Emagi
0b6f0bc4e9 Address issues with runback mobs not becoming available again 2023-05-08 10:57:27 -04:00
Emagi
56b6d07ea0 add define for common tier 2023-04-29 14:26:52 -04:00
Emagi
33293610df Common tier 2 items should be in small chests not body drop 2023-04-29 14:26:13 -04:00