Configuration questions for potential new server (huge post!)
Greetings, all!
I've just finished setting up my server, and it works like a charm, I can log in, kill monsters, the works. Now comes the really hard part: setting the server up the way I want. I intend to run a roleplay-required server, and I plan to implement several restrictions and changes to the current EQ system. Note: the first part of this post is a wall of text outlining my long-term plans. If you don't want to read them, skip to the actual configuration questions below! Level Restriction: 20 I feel that capping levels at 20 still provides a good incentive to go out and adventure, but prevents the severe gap in abilities between newer players and older ones. I don't want to encounter situations where my players simply cannot compete just because someone else has been here longer. Adjusted spells, mobs, and quests Obviously, because of the lower level cap, a lot of things need to be adjusted to bring them in tune with the lower level cap. Specifically, new spells need to be made (and existing ones modified) to take the lower levels into consideration. Since most damage/healing spells are already scaled by level, it's mostly the utility spells that might need some tweaking. Adjusted gear I'm heavily influenced by games like Dungeons and Dragons (the PnP game, not the online ones) for my itemization. Player-based economy will still be present, but with the anticipated smaller community, armor and weapons purchased from NPC merchants will be both more affordable and more feasible to use. Platemail will still be expensive for someone that's not wealthy, but it won't cost in excess of 5,000pp like it does on live servers. Weapons will also be more balanced as well. All one-handed weapons of a certain type (steel, bronze, etc) will, for example, have roughly the same DPS, leaving the decision more to one of preference rather than stats. Shields will play a bigger role as well, enough that even dual-wielding classes may prefer to use them. I will find some way to make the defensive benefit of carrying a shield good enough that swapping to two weapons will actually carry some drawbacks to weigh against the benefits. Possibly a big boost to block chance. Significantly Slower Experience Rate I don't want the focus on my server to be solely on grinding, and will actually be handing out XP for good roleplay. Because of this, the XP rates for killing monsters and performing quests will be dramatically reduced. One can still grind to 20, but doing so will be tedious. Of course, to offset that, there will be plenty of things you can participate in even at level 1, and you're going to reach level 20 a lot faster by providing and participating in good roleplaying story-lines than you ever would simply grinding on monsters. Classic EQ Only! The available zones will be limited solely to Classic EQ. Given the roleplay nature of the server, I highly doubt that we'll ever have a strong push to open other expansions, but we'll see. Server Whitelisting To ensure that we only get players truly interested in roleplaying, the entire server will not be open to any and all players. Assuming I can manage it, players will arrive at a predetermined zone and be unable to leave that zone unless they first fill out an application that demonstrates they're actually interested in roleplaying. Hopefully, this will help weed out troublemakers and trolls (the idiot internet kind, not the ones from Grobb). Realistic NPCs with improved AI Assuming it can be done, NPCs will fight like real players. Their damage will be based on their current weapon, and they'll hit like a player of that level, too. Hopefully, I can also get help implementing AI that makes casters root melee and back off, snare kite, and other tactics that a PC might use in a fight. How effective this will be is still up in the air, as I myself am not a programmer and am not sure how feasible it is. Broadened Race/Class Combination There's no legitimate reason why a wood elf couldn't become a cleric, or why a, erudite couldn't pick up a sword and become a warrior, or why a barbarian couldn't commit himself to The Tribunal and become a paladin of Justice. My server will include NPCs that are capable of performing class changes for certain races, provided said character is still only level 1. That is, unless it's possible to easily modify those options at the client level. While this won't be an ALL/ALL option, the increased class variety will make a little more sense. Now, the configuration questions! Which of the following can be done by modifying server/database settings, and which ones require changes to the source code? Note that while I am not a professional programmer, I do have some experience with writing code and modifying existing code provided it's well-commented (as all code should be). Things I already know can be done through the database:
Things I'm pretty sure can be done without modifying source code:
Things I'm not sure how to do:
Things I'm almost positive require source code changes:
Things I'm not even sure are possible:
Basically, anyone that can provide any feedback, advice, or answer any of my questions, please feel free. I'm eager to get started, but I want to know what my possibilities and limitations are before I start making too many plans. |
Quote:
|
Disabling consider you can just make Client::Handle_OP_Consider in zone/client_packet.cpp do nothing. And I don't think there is any way around this with MQ2, the client knows nothing of the mobs faction until the server responds to the OP_Consider packet. Disabling groups should be similar, I'm just not sure where in the source group chat is :P Same with the shout change.
KLS recently pushed changes that adds a base data table which also comes with a program to easily generate the SkillCaps.txt and other files after you change them in the database to distribute to players. EDIT: In zone/client.cpp Client::ChannelMessageReceived is the function that would need to be edited for the chat changes I think :P |
Here is how I disable "tell, ooc, and auction", same priciple can be applied for group...
Code:
diff --git a/zone/client.cpp b/zone/client.cpp |
Responding to everyone here. (Thanks so much for the replies, by the way!)
Quote:
As for the things requiring source changes: Some of those are pretty simple, right? Like, in the source for PvP damage mod, it must say somewhere something like "totalDamage * 0.66" or something similar, I assume, or maybe it's a constant defined somewhere like "PVP_DMG_MODIFIER" or something? Quote:
It's a minor concern, anyway. I intend to remove the effects of level on combat and spell resists, and with a cap of 20, level won't be as important as attributes, anyway. I hope to make it so that ATK, AC, and skills are the only factor in determining combat effectiveness. |
Quote:
As I said, I know some things about programming, but I don't wanna FUBAR my code unless I can figure out where I FUBAR'd it at. |
Quote:
|
Quote:
A word of warning..Once you start modifying things, it will be a chore to keep up with the tip release, so you may need to draw a line in the sand and just work from your source exclusively and perhaps cherry pick any new releases to the code manually, if at all.... Any ways: Code:
Code:
|
I see. So, if I'm understanding this correctly, could I do something like this?
(Note that I can't actually see the code right now because I'm at work, so my exact syntax may be wrong) Code:
{ // GroupChat |
Quote:
The hitting part I can probably work around simply by setting their minimum/maximum damage to be roughly equal to whatever weapon I make them spawn with. |
Not as in that example as say is not a member of Raid or Group, but if you like you can repipe it through say, yes, there are actually few limits in what you can do, you just need to "do" it....
I went the lazy route by just disabling the feature and letting the players know it was disabled so they would use other methods, but re-writing it to use the current system as close as possible is also viable... |
If you change spells you need to export the spell file from the database and distribute it to your players.
|
If you're building with client files on (default is on) it could create import_client_files and export_client_files. With these tools you can now just edit the DB entries for spells, skill caps, and base data then run export_client_files and it should generate the files for you to distribute to users.
EDIT: make sure the export directory exists. |
Quote:
|
Quote:
Quote:
|
All times are GMT -4. The time now is 07:44 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.