View Single Post
  #130  
Old 11-25-2022, 03:14 PM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 754
Default

Have something basic together now...

https://github.com/ClassicEmuAdm?tab=repositories

This strips instances, tasks, expeditions, adventures, spells beyond level 65, LDoN functionality, most items from expansions beyond PoP, eliminates Defiant armor drops and other irrelevant global loot drops, changes weapon models back to classic, all zones beyond PoP and associated data, all quest components in zones beyond PoP, and probably more small stuff I'm forgetting about.

There will be one additional repository for an open source dll injection to implement classic functionality on the client side similar to P99 but without P99's anti-cheat/obfuscation functions.

Still playing around with an idea but I think I'd like to offer character exports/imports. You would be able to export your character data as a .sql file so you can reload your exact character in another emulator. The main point of this will be that I also want to offer precompiled binaries with all of these files bundled up. You would click "Play My Character" and essentially get a download of the emulator ready to start with your character data from a public server preloaded. This way any progress you make on an emu server you can save for your personal use. For example a guild could all export their character data and load it into a single private emulator for their members. A group of friends could save their characters from a dying emu server and play them together. I'd like to try to extend this somehow maybe allowing people to copy characters from PVE to PVP servers. What I think would be really cool but probably not practical would be to create a ClassicEmu grouping of servers run by different people which all support copying characters between them. The server operators would have to be part of a trusted group that would not run illegitimate servers and so the character data is somewhat legit between servers. Let players take their character between multiple servers with different rule sets without having to "start over" and hopefully encouraging more cross play between servers.

Someone above mentioned the projecteq expansions project. That seems to be dead for the last 2 years but I do plan to continue using the min/max expansion database fields where possible so changes could be easily implemented on the projecteq database if they want. Same with changes to eqemu, although this is a stripped down classic emu fork changes can be merged for most things.

As an example of why this sucks though. Look at weapon models, the PEQ database changed to new age models for everything because that is how live is. These models are determined by "idfile" field in the "npc_types" table which has an entry for every NPC in the game. Except this table only defines the NPC it has no min/max expansion field. There are spawn tables that refer to the npc_types table which do have min/max expansions. This means if you wanted "classic weapon models" to be something that is turned on/off using the database fields they added you would have to duplicate every NPC in the game who holds fine steel as one example just to specify a new idfile and then change the min/max expansions for both copies of the NPC to be pre/post this weapon model change. That is so inefficient and tedious compared to just changing all the weapon idfile fields to the proper model and being done because those models won't change until after PoP therefore we don't need to maintain two copies of all the NPCs for a classic server. The simplistic min/max expansion concept doesn't translate well to situations like this. It is poor systems design to architect something like that would require you to duplicate tons of data. Instead you should have "idfile2" field and then you have a mapping of min/max expansion which maps to these multiple idfile fields. That will become.. an incredible amount of effort when you consider all the ways this will need to be done beyond just idfile. You could also change EQemu and use a rule value to load old/new models but then you're not changing ProjectEQ and this isn't part of the database. How do rule values get turned on/off per expansion? That support doesn't exist currently. It's probably 10x more work to build a classic EQ rule system into existing EQemu/ProjectEQ than it is to just create a classic emu and not worry about ever having to turn certain things on/off that will never exist in the "classic" era.
Last edited by azxten; 11-25-2022 at 03:40 PM..
Reply With Quote