Commit graph

1895 commits

Author SHA1 Message Date
Emagi
8f35ab39d7 Fix delete spell crash when player camps with a maintained and spell effect on the same spell in certain conditions 2024-03-03 08:27:42 -05:00
Emagi
c958e02b2e Fix crash when process movement on spawn not entity, added logging for potential delete spell crash on client removal 2024-03-01 12:34:05 -05:00
Emagi
7bfa2fa1e6 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2024-02-28 09:46:50 -05:00
Emagi
12fe577015 Fix #557 bug reporting on DoF now works, thanks to ColdLlama 2024-02-28 09:46:33 -05:00
devn00b
791e48c857 Fix for discord bot. ruleset_details->rule_value was too small. Extended from 64->1024. 2024-02-15 18:48:38 +00:00
Devn00b
55f9349603 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2024-02-05 19:05:33 -08:00
Devn00b
78f4a6e63b Added Discord chat support. 2024-02-05 19:04:10 -08:00
Emagi
d1cbb045f2 Fix decline for auto loot mode command 2024-02-05 17:33:32 -05:00
Emagi
a55fda41b5 crash fix for non entity handle loot 2024-02-04 20:50:05 -05:00
Emagi
3589742e08 missing rule updates 2024-02-04 14:58:59 -05:00
Emagi
81ef0b82ab git pushMerge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2024-02-04 14:58:01 -05:00
Emagi
47196d6b67 - Fix #504 - Group Options Support (loot methods, yell restrictions, encounter lock features, item rarity, auto split coin, auto loot mode)
- Rule R_Loot, LootDistributionTime added to set lotto/NBG timer countdown for distribution, default 120 (in seconds)
- /setautolootmode [x] command now supported, 0 = none, 1 = need/lotto, 2 = decline
DB Update: update commands set handler=534 where command='setautolootmode';
- /loot list details added - tracks the loot windows of players and tells if they are still open or closed (to determine when loot should dispense)
- Addressed spells causing crashes on deconstruct of NPCs
- Fixed inner struct data honoring the IfVariableSet/IfVariableNotSet flag, eg. previously item_id would not honor IfVariableSet/IfVariableNotSet:
<Data ElementName="item_count" Type="int8" IfVariableNotSet="loot_all"/>
<Data ElementName="item_list" Type="Array" ArraySizeVariable="item_count" IfVariableNotSet="loot_all">
       <Data ElementName="item_id" Type="int32" IfVariableNotSet="loot_all"/>
</Data>
2024-02-04 14:51:55 -05:00
image
d7ed14c95a Update 'EQ2/source/WorldServer/client.cpp'
Address compile issues with b96d4170be
2024-01-26 02:26:43 +00:00
Robert Allen
b96d4170be Merchants no longer offer bank items and bags with items for sale
Merchants no longer offer bank items and bags with items for sale
2024-01-25 08:22:02 -06:00
Robert Allen
685d8a04ef Dof examine bag update
in DoF when hoover a bag not all info was shown
2024-01-21 12:17:25 -06:00
Robert Allen
1c7e08a521 Dof bags and someitmes not showing up
added bag_id to the sort so that bags would typically be at top of list when inventory items sent to client
2024-01-20 17:00:54 -06:00
Robert Allen
50022b425a DoF tradeskill Create from recipe fix
1. build components showing as 0/1 in red when component was available(tradeskillpackets.cpp)
2. select item not showing list properly(worldstruct.xml)
2024-01-10 19:18:24 -06:00
Robert Allen
3217dbd9ec delete duplicate structure
deleted the following duplicate structure
2024-01-07 11:35:40 -06:00
Devn00b
5ec88b692a Update Windows EXE 2023-12-23 13:12:24 -08:00
Emagi
5c1c66afaf Add R_World, LoreAndLegendAccept requested by Dorbin 2023-12-23 15:52:46 -05:00
Devn00b
364a7c6b45 Rewrite of WorldDatabase::DeleteCharacter to not rely on FK checks, changed most queries to use async, added all the recent character tables. 2023-12-23 12:49:37 -08:00
Emagi
f510bd89d7 Oops didn't notice this before 2023-12-18 08:45:57 -05:00
Emagi
34fa52efb9 Add memory leak fix back, address deleting spell in spell effects already deleted by maintained 2023-12-18 08:42:06 -05:00
Emagi
f303fa5895 Temporarily disabling of RemoveSpell on entity despawn, mandated passive spells -- this is to avoid a crash and was here for a mem leak fix 2023-12-18 07:54:57 -05:00
Emagi
29d50aa842 Restore access to October 2004 classic 283 release cd client 2023-12-17 08:49:33 -05:00
Emagi
6b1831d3ec Fix comments in rules file 2023-12-17 08:48:26 -05:00
Emagi
40d1e47c8f Ok classic 283 players, this is for you since you found a corner case crash 2023-12-17 07:42:02 -05:00
Emagi
6ed24cb2e5 Added isle of refuge for skipping tutorial in DoF, set StartingZoneRuleFlag to 8, eg. update ruleset_details set rule_value=8 where rule_type='StartingZoneRuleFlag'; 2023-12-16 10:05:19 -05:00
Emagi
1ef4c8cbb1 vague windows details for eq2voicerecover 2023-12-15 22:03:20 -05:00
Emagi
195f7bc84d EQ2 Voice Recover RC4 key decryptor code for Independent and BOINC Project 2023-12-15 21:57:56 -05:00
Emagi
427964b7a0 Functionality:
- Corner cases with examine inventory in DoF resolved.  Now tracked through a max index id to avoid mis-indexing an item as "new" to the client array or building on the old array the client has already created (items get removed/added/so on, but this max id remains unchanged from the initial zone-in).
- Unfriendly spells are now removed from Entity/NPCs when ClearEncounter is called
- Food/Drink can be accessed equip/unequip on DoF client.

Performance:
- Improvements to ProcessMovement loop
- lua interface process cleanup now handled at World level (since zones may not be running to process it).  Every zone used to call lua process (ick).

Memory leaks:
- Spells no longer leak into memory (NPC spell lists, player spells and passive spells)
- Player languages no longer leaks memory
- No more memory leak from player mail
- Fixed memory leak in Map loading of V3
- item memory leak fix with lore conflict/no space in inventory
- Addressed a hangup issue shutting down the world server in that pthread_cond_destroy(&cond) cannot be called until pthread_cond_broadcast(&cond) is called first
2023-12-15 19:56:33 -05:00
Emagi
72a43fdbb4 OK FrostfangSea and some other huge exceptions for NPCs, restrict the attackable flag to bot, client and their pets 2023-12-11 06:32:10 -05:00
Emagi
3a256b21cc Remove the NPC->Player side of the check for attackable, allows statues or other npcs to aggro and attack you, but you cannot attack them 2023-12-11 06:12:45 -05:00
Emagi
486f8affdb temporarily removed debug logs due to compile error 2023-12-10 08:40:53 -05:00
Emagi
479e6ede00 Merge branch 'master' of https://git.eq2emu.com/devn00b/EQ2EMu 2023-12-10 08:20:48 -05:00
Emagi
e10aedb79d - Fix #549 - DoF inventory can now remove/add items freely. The lower bounds index <=255 is assigned to existing items on zone-in or replacing items in that existing index. Indexed items 256+ will represent new items that have to grow the clients item index array. This will distinguish properly what the client is trying to examine when requests come in (versus getting no index).
- Fixed server crashing trying to send spawn packets when handling a bad version of the client entering zone (or malformed packets causing bad versioning).
- Character History is now only saved on requirement, reduced DB load.
- Avoidance of reuse for Query class as it can cause crashes
- Fixed a potential issue with AoM/DoF inventory, in which it would continually build up the array instead of re-using the first slot, eventually causing the client to crash
2023-12-10 08:20:29 -05:00
Devn00b
b75bf5ecc1 Update Login EXE. 2023-12-05 12:21:53 -08:00
Devn00b
22599e4a2e Update World EXE. 2023-12-05 12:17:05 -08:00
Emagi
480c61f7e5 Avoid reuse of Query constructor for runquery or else it will crash 2023-11-26 21:09:06 -05:00
Emagi
8af42886a0 inherit orig cast time 2023-11-25 20:05:57 -05:00
Emagi
8484c78ca2 Remove unnecessary if statements, address spell cast time stacking, some misc pieces missed from last patch like attack state of npcs 2023-11-25 10:34:02 -05:00
devn00b
d8c6d8e6c9 Fix for the last fix, that wasnt a fix (Setting char data_struct_char = true) 2023-11-24 11:01:54 -08:00
devn00b
53520b70d5 Fix for compile error on newer linux installs 2023-11-24 10:46:00 -08:00
Emagi
d32141898e - ZoneServer::GetClientBySpawn removed, no longer using the MutexMap to track the client, use the Player class instead.
- Addressed a crash cancelling a player trade
- Addressed a crash with spawn change packets overflowing during Pack()
2023-11-19 09:25:25 -05:00
Emagi
f6354ca3ef checking tier is redundant and won't help here, will break things more 2023-11-18 07:29:25 -05:00
Emagi
e83b8ea13d Fix #550 - recast timers are accurate with UI and data, linked timers no longer indirectly impact recast time incorrectly, we do not call self spell on linked timer 2023-11-18 07:21:42 -05:00
Emagi
d123ce8904 Hot fix to address spell resisting and can no longer recast 2023-11-17 15:26:56 -05:00
Emagi
2dc28cb438 restore setting the cast speed 2023-11-12 13:39:36 -05:00
Emagi
3944d57579 - Fix #496 ITEM_STAT_ABILITYCASTINGSPEED (664) and ITEM_STAT_SPELLREUSESPEED (665) now supported
- Fix #109 Soulrend does not knock down target (finish spell cast, ZoneServer::SendCastSpellPacket spell_visual is disabled) when no damage applied
* alter table character_spell_effects add column has_damaged tinyint(3) unsigned not null default 0 after resisted;

- Fix #536, SpellDamage now can drain power.  Also Fixed AoM and DoF client WS_HearSiphonSpellDamage
- SpellDamage LUA Function now returns a boolean whether damage is dealt (or spell resisted) -- (true is damage/false is no damage or resisted).  See Spells/Fighter/Crusader/Shadowknight/Soulrend.lua for a sample.
- DamageSpawn LUA Function now returns a boolean whether damage is dealt, updated to allow take_power argument DamageSpawn(Attacker, Victim, victim, type, dmg_type, low_dmg, high_dmg, spell_name, crit_mod, is_tick, no_calcs, ignore_attacker, take_power)
- new LUA Functions (both can be used in and outside of a LUA Spell):
        * SpellDamageExt(Target, type, min_damage, max_damage, crit_mod, no_calcs, override_packet_type, take_power, class_id_reqs...) -- extends support for take_power field (SpellDamage function does not have this and would break other potential spells)
        * SendHearCast(Spawn, spell_visual_id, cast_time, Caster, Target) -- lets the Spawn see a spell visual on Target.  If Caster is not defined, we use Spawn, same goes for Target.
- Fixed WS_HearHeal struct for DoF client (displays critically heal vs heal) and proper spell name.  DoF does not support absorb or other types.
- Support for translation of spell_visual (spells table) aka spellcast.dat from assets vpl.

CREATE TABLE `spell_visuals` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(128) DEFAULT NULL,
  `alternate_spell_visual` varchar(128) DEFAULT NOT NULL '',
  `spell_visual_id` int(10) unsigned NOT NULL DEFAULT 0,
  `min_version_range` int(10) unsigned NOT NULL DEFAULT 0,
  `max_version_range` int(10) unsigned NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
** MAKE SURE TO GET spell_visuals sql included with update inserted!

- Fixed right-click inventory examine (again?) - tested and it is working for main invetory, bags and items in bags!
- DoF bags support up to 36 slots now instead of the restricted 20 for "classic" client
- DoF and classic equipment restricts to 22 slots instead of trying to send client 25 slots (the additional do not exist)
- Fix crash on signs due to lack of nullptr check on entity_command
- SetInfoStructString / GetInfoStructString now supports combat_action_state -- can be used without overriding action_state outside of combat.
2023-11-12 13:19:59 -05:00
Devn00b
20795c5a6b SQL for sign marking implemention 2023-11-07 14:56:49 -08:00