Commit graph

690 commits

Author SHA1 Message Date
Emagi
69612e08b6 - Fix #528 - Support for DoF Advancement Window!
* Restrictions based on rule R_Player, TraitTieringSelection = 1, limits to 1 trait selection per group, 0 allows 'free' selection much like newer EQ2
	* Racial Traditions and Personal Traits available, Training and Enemy Tactics need content
- Fix #472 - Spell damage now has resist added to reduce damage.  Resistability support, info struct now has float "max_spell_reduction" and int8 "max_spell_reduction_override".  Use override to set manually the resistability.  Otherwise uses table for max resistability based on level
- Fix #456 - Parital support for NPC Knockback, challenge is the updates are not using delta properly, but they do fly!
- Fixed /follow for DoF client
- Fixed multiple crashes in adding a trait
- Spell book should no longer have type 4 spells (not shown spells)
- Spell book issue addressed where innate abilities would wipe out the spell book
- Fixed situations on login where HP/Power would not regen since you were not added to the damaged spawns
- Implemented a workaround to get all items to appear in inventory for DoF client upon zoning *does not resolve evac/escape
- Fixed Spawn info struct, we were not passing spell_effects properly for DoF client
**Be sure to check the db file may2024_classictraits_personalandracial.sql and note it has a static max item id 10204351 that may need to be changed in the future if you insert it later
2024-05-11 20:29:26 -04:00
Emagi
96902a5564 - Fix #564 - Mail support for DoF!
- Mail list inbox now updated when a mail item is read (previously unread)
- Fix run speed like sprint stacking on the player
- Removed some unnecessary spell code that was unused, nullified spell when cast timer is performing delete/cleanup
2024-04-17 07:49:30 -04:00
Emagi
f9ddc49fcd - Fix #560 - DoF Trade Support! Works cross client to AoM, restricted to 6 slots when trading with DoF. WorldStructs.xml updated!
- /info command updated with /info your_trade|their_trade slot_num for DoF trading
- Rule R_Player, CoinWeightPerHundred -> R_Player, CoinWeightPerStone, defaulted to 40 which is the DoF client equivalent (eg 100/40 = 2.5 weight)
- Concentration is now capped on zone/reload of the player spells
- Fix crash related to trade (entity pointers were loosely handled), bot or player otherwise could decouple from the zone and leave a dead ptr.
- LUA Functions added: GetCharacterFlag(Spawn, val) and ToggleCharacterFlag(Spawn, val) -- val is defined by the Character Flags in Player.h with #define CF_ or CF2_
2024-04-13 10:24:58 -04:00
Emagi
dbe82f8eff remove somewhat duplicate directory of upper case Generic 2024-04-12 20:00:04 -04:00
devn00b
34b588c370 Sync Lua from dev server to git 2024-04-07 18:28:29 +00:00
devn00b
891ced632e Windows EXE Update 2024-04-03 23:06:10 -07:00
Devn00b
a72149f6ab Update Windows EXE 2024-03-28 17:48:37 -07:00
devn00b
4207e21dfa Windows EXE update 2024-03-11 14:07:47 -07: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
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
29d50aa842 Restore access to October 2004 classic 283 release cd client 2023-12-17 08:49:33 -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
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
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
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
devn00b
804c5d05f4 Update to windows EXE 2023-07-28 16:08:30 -07: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
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
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
9d631f805d Fix skin color for DoF char creation 2023-05-21 07:19:21 -04:00
Emagi
22045ab11a Add missing SpawnStructs update 2023-05-20 09:20:07 -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
ec247da687 Spirit shards now decay per request from premierio <3 2023-04-22 09:50:05 -04:00
Emagi
7b023ec019 - Fix #314 Encounter states, locked, overmatched and broken now supported up to group level (raids and functionality to them will be done in a later milestone). This also entails all the functionality within, npcs go gray when in an encounter or yelled, you cant heal or damage a player or npc in an encounter.
- Fix #351 /yell now available, yell with self target breaks all active encounters, yell with direct target breaks that encounter, no target breaks first encounter
- WorldStructs.xml update required for /yell so others know you are yelling!
- /spawn details aggro (NPC only) added, view active encounter list (who receives credit, locked encounter) and hate list (actual damage/hate)
- InfoStruct now has a new UINT8 "engaged_encounter", set to 1 for being in an active encounter, 0 for out of encounter (allows regen/speed recovery)
- Returning from linkdead DB load reduced
- Returning from linkdead you won't see ghost versions of yourself
- Addressed returning from linkdead and spells missing, would despawn your pet or remove buffs for examples.
- Protections around private spawns aggroing/attacking players that cannot see them
- Additional spell crash protection when spell caster is not in zone
2023-04-14 20:31:24 -04:00
Emagi
658658e1a6 - Fixed popping non-existent items from overflow causing a crash
- Addressed spells being removed from character on /camp and disconnect
- LUA AddRecipeBookToPlayer(Player,  BookID)
BookID = SELECT id, name, tradeskill_default_level FROM items  WHERE item_type='Recipe'
- LUA RemoveRecipeFromPlayer(Player, RecipeID)
RecipeID = SELECT id from recipe where name='RecipeName';
2023-03-24 13:37:05 -04:00
Emagi
8d52f85e2c Enter House button is fixed! No longer intermittently displays as grey 2023-03-15 14:08:16 -04:00
Robert Allen
60e2fbaee4 Update WorldStructs.xml
tradeskill and recipe fixes
2022-12-27 19:51:07 -06:00
devn00b
b3773b1047 Windows World EXE Update 2022-12-28 01:22:06 +00:00
devn00b
f794984fdb Windows EQ2World exe update 2022-12-13 20:30:01 +00:00
devn00b
c79ec17c09 LoginServer EXE update 2022-11-27 21:17:09 +00:00
Robert Allen
12a348199a Tradeskill Update
Many tradeskill updates, the following issues should be resolved
- Counter successes/fails don't seem to have any effect on durability/progress more than a regular tick.
- Every recipe has the description "The art of sculpting metal into a candelabra." in the mouseover tooltip.
- Materials and fuels stored in bank are counted for use in recipes.
- Recipes with a primary component that is not owned in inventory (or bank) show as "Primary Component: [0]" in the recipe tooltip when hovering the recipe icon in the recipe window, instead of red-colored text "Primary Component: Bronze Cluster [0]". This is only with primary components. Build components and fuel components don't have this same behavior.
- Recipes can be crafted from recipe window, without having a crafting station selected or even being near one.
- T1 rawhide leather pelts harvested from dens are not the same pelts needed for any recipe that requires rawhide leather pelts:
    Alder, Bronze, Sackcloth, Tranquil Sackcloth, Waxed Leather, Woven Waxed, Elm, Rawhide Leather, Woven Rawhide, Threadbare, Tranquil Threadbare, Tin (probably more)
- examine recipe windows fixed, including showing total amounts of components in your inventory and previously created stage now displays as intended
- when in the craft recipe screen (prior to pressing begin) you may now select components to craft with, all available will be listed that can be used
2022-11-25 12:05:42 -06:00
devn00b
d7ee900396 EQ2Login EXE update. 2022-11-24 23:33:48 +00:00
devn00b
550eab5280 EQ2World EXE Update. 2022-11-24 20:20:25 +00:00