Project 1999

Go Back   Project 1999 > Red Community > Red Server Chat

Reply
 
Thread Tools Display Modes
  #1  
Old 11-25-2022, 03:14 PM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 757
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
  #2  
Old 11-25-2022, 04:26 PM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 757
Default

Next step is to start implementing this progression functionality while salvaging as much of the existing min/max expansion and existing EQEmu rule/database value checking as possible. I jump in the emulator and mess around fixing the database as I notice things as well when the coding gets boring. Beyond this I'm still working on a master bug list for implementing more classic details as well as possibly creating a test framework to avoid unknowingly breaking intended functionality when changing things. This list will also be publicly available.

Have to setup my classicemu website and provide my more newb friendly emulator setup instructions ideally just run the exe to start the server on Windows possibly using an sqlite database to avoid having to setup a database. This should be performant enough for people wanting to mess around on their own server solo or with a few friends.

I'll probably start playing on TAKP because it sounds like their core mechanics are way more classic than P99. Need to start reverse engineering some things but they're also very open about a lot of the functionality and provide the pseudocode. I want to compare P99/TAKP as well and luckily I still have a lot of various classes/levels on P99. Much of the work I'm doing might be wasted when/if they open source their code but whatever I'm having fun for now and the future is never certain. Also I need to redeploy Faydwar using this new classic project.

Oh and I got the classic boats working using a disgusting hack but it works. Invisible 90 degree inclined doors with increased size that the boat moves along with it using the quest API and some custom packet functionality to only despawn/respawns doors for players on the boat to avoid the client side lag this causes to players on land who might be pulling mobs, etc who would notice this stuttering. The quest code moves the player in relation to the door when the door moves so if you're in one corner and run to the other the next tick of the doors moving your player still appears in the same place on the door that you moved to. There is some handling of changing door heading to the boat heading and how this also has to change player movement. This is a hilarious hack to me and almost definitely is going to dump players in the ocean especially if their computer connection lags, I love it. I'll probably add some kind of correction logic to catch players who probably glitched off the boat unintentionally so they get warped back to the deck unless they intentionally ran off of it. Ideally I can get a door model onto a spawn path which would be a much smoother experience for those on the boat. Currently it's pretty jerky but also reminds me of classic and is still functional in terms of moving around the boat and even fighting NPCs on it. The funny thing is the door packet thing means players on the shore watching the boat see a smooth sailing ship but players on the boat are in for a bumpy wild ride.

As far as I know that's the first time the classic boat models have "worked" since 2004 or whatever. Now that I think about it it's probably the first time you could ride the classic boats and also cast spells/fight on them since long ago I'm not sure when they added the "too distracted" message and blocked spells.
Last edited by azxten; 11-25-2022 at 04:43 PM..
Reply With Quote
  #3  
Old 11-25-2022, 05:19 PM
Gustoo Gustoo is offline
Planar Protector

Gustoo's Avatar

Join Date: Mar 2012
Location: The side of Bristlebane
Posts: 6,002
Default

I don’t think you could ever cast on boats, could be wrong
__________________
Discord PVP Server:
Quote:
Originally Posted by Rogean View Post
Lost but not forgotten.
Reply With Quote
  #4  
Old 11-25-2022, 06:14 PM
azxten azxten is offline
Fire Giant

azxten's Avatar

Join Date: May 2010
Posts: 757
Default

Quote:
Originally Posted by Gustoo [You must be logged in to view images. Log in or Register.]
I don’t think you could ever cast on boats, could be wrong
You could early on I suspect if I look at the original EQ client files it won't have the "too distracted to cast" string proving it didn't exist when the first CD shipped at least but I could be wrong too. I forgot to consider the "too distracted to cast" message also helps locate the boat functionality. Did some reverse engineering and testing stuff but that should be a lot better starting place.
Reply With Quote
  #5  
Old 11-26-2022, 10:07 AM
Tassador Tassador is offline
Planar Protector


Join Date: Oct 2011
Posts: 3,903
Default

Probably never been so concern about someone in my life than this wall of text guy.
Reply With Quote
  #6  
Old 11-26-2022, 08:20 PM
Tradesonred Tradesonred is offline
Banned


Join Date: Mar 2012
Location: Ecoli
Posts: 4,287
Default

Quote:
Originally Posted by Tassador [You must be logged in to view images. Log in or Register.]
Probably never been so concern about someone in my life than this wall of text guy.
You should start worrying about the guy with the sad face looking back at you in the mirror each morning.
Reply With Quote
  #7  
Old 11-27-2022, 09:44 AM
Tassador Tassador is offline
Planar Protector


Join Date: Oct 2011
Posts: 3,903
Default

Quote:
Originally Posted by Tradesonred [You must be logged in to view images. Log in or Register.]
You should start worrying about the guy with the sad face looking back at you in the mirror each morning.
You always worry about yourself first if not you don’t love yourself and can’t help others. Hope this helps you on your pursuit of eq novels of servers that are never happening.
Reply With Quote
  #8  
Old 11-28-2022, 01:24 PM
Twil Twil is offline
Orc

Twil's Avatar

Join Date: Jul 2015
Posts: 31
Default

Started a Monk over the weekend. Kick doesn't seem to be working - no matter what I tried to kick, it said the mob was invulnerable. Same thing happened when I got the first monk ability (roundhouse kick or something) - never would land because everything was invulnerable. Dwarf monk for the record.
Reply With Quote
  #9  
Old 11-28-2022, 01:26 PM
Twil Twil is offline
Orc

Twil's Avatar

Join Date: Jul 2015
Posts: 31
Default

Oh, last thing. I've started to see a few other people online. I tried talking with a few, but I couldn't understand them and I don't think they could understand me. Turns out my language was set to Elvish (I am a dwarf). Is there a way to change the default language? If not, you might need to let people know to check which language they are talking in.
Reply With Quote
  #10  
Old 11-28-2022, 02:43 PM
magnetaress magnetaress is offline
Planar Protector

magnetaress's Avatar

Join Date: Feb 2020
Location: Inside of you.
Posts: 10,241
Default

Good to know the most important feature of the server is working )))
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 05:34 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.