Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Database/World Building

Development::Database/World Building World Building forum, dedicated to the EQEmu MySQL Database. Post partial/complete databases for spawns, items, etc.

Reply
 
Thread Tools Display Modes
  #1  
Old 10-28-2006, 03:32 AM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default Going solo - suggestions for where to start?

I want to create a server where characters are a lot tougher than in Live. I always hated the fact that at level 5 you could kill yellows and at level 55 many blues (and even greens) would kick your arse!

I also don't like the fact that gear makes the character. A level 55 with a rusty longsword should not be so completely useless as it is in live. That level 55 still has its skills and knowledge so a rusty longsword should be a deadly weapon. Not to say that good gear shouldn't make a difference, just that I think it shouldn't be such a huge difference.

I'm brand new to EQemu and, though I have been examing the DB, I'm really not familiar with what happens in what area of the engine. I have this (vague) notion of increasing the effect of player stats on things like melee damage, AC, Damage mitigation, spell damage, etc, but I don't see anything in the database that would appear to have anything to do with this.

So, I'm wondering what you folks would think is a good approach to the concept of tougher characters and where should I look to find the data/scripts/etc that deal with it? Is my appoach practical or should I concentrate on weakening NPCs? I really don't want to boost gear stats (I'll probably end up nerfing a lot of the Uber stuff).

Increasing XP awards isn't really in the cards. I'd rather concentrate on making characters tougher and recover faster (medding/healing) so they can kill more mobs per hour, which results in faster overall XP gain anyway.

Not asking anyone for code, I'll figure that part out eventually, just educated opinions on best approach and some pointers on where to start looking for code etc.
Reply With Quote
  #2  
Old 10-28-2006, 06:55 AM
paaco
Discordant
 
Join Date: Jan 2005
Posts: 320
Default

I think you will find this extremely helpful. At least I hope so. Breaks down the different tables in the database and tells exactly what most are for.
http://www.eqemulator.net/wiki/wikka...DatabaseSchema

Also a good item editor would be very helpful unless you like to do it in sql directly, which is much much harder. This is my favorite one, made by GeorgeS. he also has a ton more very useful tools on his website.
http://eqemulator.net/forums/showthread.php?t=21442

Good luck!
Reply With Quote
  #3  
Old 10-28-2006, 06:59 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

A simple approach to making your characters seem more macho is to gimp the NPCs they encounter. Reducing their AC, HPs, offensive spells they cast, effects, etc. You should not necessarily have to tweak a players abilities... because that's what the gear itself does. Not sure of your familiarity with EQ, but gear past the noob areas have stats... those stats hunk up your characters - thus, making them more macho like you propose to do anyway.

By tuning DOWN the NPCs, those stats and abilities of your player characters would seem much greater. Try making yourself level 255 sometime... (if that still works). Talk about sick power.
Reply With Quote
  #4  
Old 10-28-2006, 11:30 AM
Dr Zauis's Avatar
Dr Zauis
I know how to fix that!
 
Join Date: May 2005
Posts: 447
Default

Increasing XP awards isn't really in the cards. I'd rather concentrate on making characters tougher and recover faster (medding/healing) so they can kill more mobs per hour, which results in faster overall XP gain anyway.


I think if you want to modify just the characters like that. You are going to have to modify the source files. I would try to modify amount of extra points to give. Or basic stats in World files/client.cpp. I dont if just modiying those tables will work though. As I also seen in there a checking rutine to make sure no one cheats. But maybe thats based on the table Im saying to modify.
Its worth a shot if you can compile the sources.
__________________
Server_Op: ForbiddenZone
Reply With Quote
  #5  
Old 10-28-2006, 02:17 PM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default

Thanks for the tips guys!

Got the server up on the public LS (though it'll never be a truly public server - just for a group of buddies since I'm using my cable connection which is only 1-2Mbit upload and my TOS says NO SERVERS!. Gotta keep the traffic low and stay below the radar heh).

I'm digging through the database, already fixed the zone destination from nexus to the bazaar (it plopped me outside the geometry) as well as the gfay scion. shouldn't take too long to get up to speed now that I'm past the unfamiliar config stuff. SQL and databases are familiar at least.

I hadn't looked until now, but I thought a lot of the server functionality was scripted in perl but I see that's mainly quests. I'll have to concentrate on learning whats here before heading off to C++ land. I've used C (literally decades ago) and I've used Java, but never C++. I don't suppose it'll be massively difficult to learn enough to modify existing code (fingers crossed!).

Making NPCs weaker would definitely work, but that means modifying a hell of a lot of database entries! I'll have to refresh my SQL knowledge... I know I can do something like a nested query where I can pull the value of something (say level) add 1 to it, then save that. I just have to remember how for one, and learn what to change, for two.

Gonna be fun learning though!
Reply With Quote
  #6  
Old 10-28-2006, 03:28 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Couple things...

Quote:
Originally Posted by Rhodan
I'm digging through the database, already fixed the zone destination from nexus to the bazaar (it plopped me outside the geometry)
I've found that the Titanium client has the new fancy zone layouts for many of the older pre-PoP zones. Like Nektulos Forest, for example. Sure, you can fix zone-in points to match these new graphics, but if you rename the shortname.eqg to something else and zone in, you'll likely be spot on where you should be. Newer gfx are nice, but I've been toying with this for the whole "remember what it was like to be a virgin" rush.

Quote:
Making NPCs weaker would definitely work, but that means modifying a hell of a lot of database entries! I'll have to refresh my SQL knowledge... I know I can do something like a nested query where I can pull the value of something (say level) add 1 to it, then save that. I just have to remember how for one, and learn what to change, for two.
If you know anything about ASP/VBScript/PHP/Perl, your task wouldn't seem so daunting. Sub-queries are cool, but MySQL seems to have fits so much, I gave up and started writing VBScripts where needed.

Sounds like you know what you want though, so you are ahead of many. I've been playing with my server for 4 mos, haven't coded a line because everytime I think I have an idea, I get too busy and can't get to it... stupid real life!!

I'm definitely going custom-server though... while Live-like is nice, I've already done that - and so have most. And I think there are plenty of those anyway.
Reply With Quote
  #7  
Old 10-28-2006, 05:28 PM
Dr Zauis's Avatar
Dr Zauis
I know how to fix that!
 
Join Date: May 2005
Posts: 447
Default

Quote:
Originally Posted by Rhodan
Thanks for the tips guys!

Got the server up on the public LS (though it'll never be a truly public server - just for a group of buddies since I'm using my cable connection which is only 1-2Mbit upload and my TOS says NO SERVERS!. Gotta keep the traffic low and stay below the radar heh).

I'm digging through the database, already fixed the zone destination from nexus to the bazaar (it plopped me outside the geometry) as well as the gfay scion. shouldn't take too long to get up to speed now that I'm past the unfamiliar config stuff. SQL and databases are familiar at least.

I hadn't looked until now, but I thought a lot of the server functionality was scripted in perl but I see that's mainly quests. I'll have to concentrate on learning whats here before heading off to C++ land. I've used C (literally decades ago) and I've used Java, but never C++. I don't suppose it'll be massively difficult to learn enough to modify existing code (fingers crossed!).

Making NPCs weaker would definitely work, but that means modifying a hell of a lot of database entries! I'll have to refresh my SQL knowledge... I know I can do something like a nested query where I can pull the value of something (say level) add 1 to it, then save that. I just have to remember how for one, and learn what to change, for two.

Gonna be fun learning though!

My cable provider dont allow public servers either. It never stopped me LOL!
Note that eqemu is set up for the old bazaar. I once set my server up for new bazaar and couldnt figure out why trading didnt work. LOL. Now that I think about it. I think trading works but only for old bazaar. You might want to check that out.
You can always do like I did and provide Big Soul Devourer http://lucy.allakhazam.com/item.html?id=11000 and Fungus Covered Scale Tunic
http://lucy.allakhazam.com/item.html?id=2735 to the players. But you will have to modify them so all players can use. Or make you own.
__________________
Server_Op: ForbiddenZone
Reply With Quote
  #8  
Old 10-29-2006, 01:28 AM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default

Ah, thats right - any post-luclin expansion client will use the new graphics and geometry. Personally, I far preferred the old bazaar - too much running around in the new one. But then again, Live Bazaar's were massive lagfests due to the huge number of models in the client's line of sight and Sony had to do something to make it better.

Since pretty well everyone that would use a server these days is going to have the newer clients, I think I'm stuck with using the new Bazaar. It'll be a good opportunity to learn though since I'll have to fix the zones for PoK, Nexus, and ... I forget the name of that moon city now.

Hey, Lavastorm and the DE areas were changed in Live too - lol, more editing!

SQL is actually pretty easy once you get going. Setting up joins is a bit cerebral particularly when you get into multiple nested joins - but hopefully it won't be required for what I want to do.
Reply With Quote
  #9  
Old 10-29-2006, 05:21 AM
GeorgeS
Forum Guide
 
Join Date: Sep 2003
Location: California
Posts: 1,474
Default

Actually making NPC's a bit easier is not that hard.
What makes it possible is to reduce their MR resists, HP and max/min damage.

In combat I can take on a tough NPC but die due to not having enough DPS, or rather NPC has too many hp's etc..

To make it better, you can create a SQL like this

UPDATE npc_types SET hp=FLOOR(-5 + (25 * level) + 1.12 * (level ^ 2)) WHERE level<50;


This will in effect change the hp of all NPC's less<50 level to a predetermined value. It's a simple polynomial nth prder equation. Put it in Excel and see it's plot

I routinely use this in my database -

aNormal = Int(-5 + (25 * lvl) + 1.12 * (lvl ^ 2#))
boss = Int(-50 + 80 * lvl + 0.6 * (lvl ^ 2))
normal_aggressive = Int(0 + 31.6 * lvl + 1.16 * (lvl ^ 2.1))
boss_aggressive = Int(-50 + 80 * lvl + 0.6 * (lvl ^ 2.4))



This comes from my NPC editor under user tools.
NORMAL:BOSS NORMAL2:BOSS2
LVL HP HP HP HP
@1 21 30 32 30
@2 49 112 68 113
@3 80 195 106 198
@4 112 279 147 286
@5 148 365 192 378
@6 185 451 239 474
@7 224 539 290 574
@8 266 628 344 678
@9 310 718 401 787
@10 357 810 462 900
@11 405 902 525 1019
@12 456 996 593 1143
@13 509 1091 664 1272
@14 564 1187 738 1407
@15 622 1285 816 1548
@16 681 1383 897 1695
@17 743 1483 982 1848
@18 807 1584 1070 2007
@19 874 1686 1162 2173
@20 943 1790 1258 2345
@21 1013 1894 1357 2524
@22 1087 2000 1459 2709
@23 1162 2107 1566 2902
@24 1240 2215 1676 3102
@25 1320 2325 1790 3308
@26 1402 2435 1907 3523
@27 1486 2547 2028 3744
@28 1573 2660 2153 3973
@29 1661 2774 2282 4210
@30 1753 2890 2414 4454
@31 1846 3006 2551 4707
@32 1941 3124 2691 4967
@33 2039 3243 2834 5235
@34 2139 3363 2982 5512
@35 2242 3485 3133 5797
@36 2346 3607 3288 6090
@37 2453 3731 3447 6392
@38 2562 3856 3610 6702
@39 2673 3982 3777 7020
@40 2787 4110 3948 7348
@41 2902 4238 4122 7684
@42 3020 4368 4300 8030
@43 3140 4499 4483 8384
@44 3263 4631 4669 8747
@45 3388 4765 4859 9120
@46 3514 4899 5053 9501
@47 3644 5035 5251 9892
@48 3775 5172 5452 10293
@49 3909 5310 5658 10703
@50 4045 5450 5868 11122
@51 4183 5590 6082 11551
@52 4323 5732 6299 11990
@53 4466 5875 6521 12439
@54 4610 6019 6747 12897
@55 4758 6165 6976 13366
@56 4907 6311 7210 13844
@57 5058 6459 7447 14333
@58 5212 6608 7689 14831
@59 5368 6758 7935 15340
@60 5527 6910 8184 15860
@61 5687 7062 8438 16389
@62 5850 7216 8696 16929
@63 6015 7371 8958 17480
@64 6182 7527 9224 18041
@65 6352 7685 9494 18613
@66 6523 7843 9768 19195
@67 6697 8003 10046 19788
@68 6873 8164 10328 20392
@69 7052 8326 10614 21007
@70 7233 8490 10904 21633



GeorgeS





__________________
Your source for EQ database tools
Toolshop is open for business


http://www.georgestools.chrsschb.com//
Reply With Quote
  #10  
Old 10-29-2006, 05:28 AM
GeorgeS
Forum Guide
 
Join Date: Sep 2003
Location: California
Posts: 1,474
Default

Another possibility is to vary the equation by factoring into it a bit of randomness -


UPDATE npc_types SET hp=FLOOR(-5 + (25 * level) + 1.12 * (level ^ 2)+RAND()*level*2) WHERE level<50;

This add's a slight variance by level

GeorgeS
__________________
Your source for EQ database tools
Toolshop is open for business


http://www.georgestools.chrsschb.com//
Reply With Quote
  #11  
Old 10-29-2006, 06:38 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

GeorgeS, you are truly brilliant. I had never really considered doing the math in the SQL statements themselves... could save me hours of script writing. Hehe!
Reply With Quote
  #12  
Old 10-29-2006, 10:32 AM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default

Are the NPCs really all that similar? I had thought they would have been a lot different - making en-mass changes like that impractical.

I'll have to dig into the NPC tables and have a look - so far I was just looking at zones and some scripting.

I really wish I could buff my GTW resist up to 200+...


(GTW= go to work).
Reply With Quote
  #13  
Old 10-29-2006, 12:55 PM
paaco
Discordant
 
Join Date: Jan 2005
Posts: 320
Default

man George you are rediculous with MySQL. I would never even attempt to come up with something like that or all the mobs on my server would be messed up lol :(
Reply With Quote
  #14  
Old 10-29-2006, 01:23 PM
Rhodan
Hill Giant
 
Join Date: Oct 2006
Posts: 179
Default

Quote:
Originally Posted by paaco
man George you are rediculous with MySQL. I would never even attempt to come up with something like that or all the mobs on my server would be messed up lol :(
Thats where making a copy of the DB to practice on comes in handy
Reply With Quote
  #15  
Old 10-30-2006, 03:05 AM
GeorgeS
Forum Guide
 
Join Date: Sep 2003
Location: California
Posts: 1,474
Default

To make a quick backup, copy the npc_types files (.frm .MYD , .MYI)These are found in C:\mysql\data\

GeorgeS
__________________
Your source for EQ database tools
Toolshop is open for business


http://www.georgestools.chrsschb.com//
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 07:56 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3