PDA

View Full Version : Going solo - suggestions for where to start?


Rhodan
10-28-2006, 03:32 AM
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.

paaco
10-28-2006, 06:55 AM
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.php?wakka=CategoryDatabaseSchema

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!

John Adams
10-28-2006, 06:59 AM
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. :)

Dr Zauis
10-28-2006, 11:30 AM
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.

Rhodan
10-28-2006, 02:17 PM
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!

John Adams
10-28-2006, 03:28 PM
Couple things...

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.

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.

Dr Zauis
10-28-2006, 05:28 PM
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.

Rhodan
10-29-2006, 01:28 AM
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.

GeorgeS
10-29-2006, 05:21 AM
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

GeorgeS
10-29-2006, 05:28 AM
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

John Adams
10-29-2006, 06:38 AM
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!

Rhodan
10-29-2006, 10:32 AM
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).

paaco
10-29-2006, 12:55 PM
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 :(

Rhodan
10-29-2006, 01:23 PM
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 ;)

GeorgeS
10-30-2006, 03:05 AM
To make a quick backup, copy the npc_types files (.frm .MYD , .MYI)These are found in C:\mysql\data\

GeorgeS

Rhodan
10-30-2006, 11:21 AM
Well, its turning out that editing the NPCs really is a viable option and probably the more practicle thing to do. Thanks to folks here and on Cavedude's site (search is handy!) I've gotten lots of ideas how to modify mobs etc to tone them down.

What I haven't found yet is an easy way to increase health and mana regeneration rates for players. I do have an idea though!

This version of EQ (Titanium) supports charms and augs and I'm hoping EQEmu does as well. In Live, you get a kobold charm for completing the newbie zone quests. I'm thinking I could add this charm (which turns out to be one of the better ones in end game) that comes fitted with flowing thought and regeneration augs. THese would be removable so you could transfer them to a new charm if you choose to change later on. Of course they would be no-drop so you couldn't make 8 characters and get 8 augs all packed into one charm :shock:

I saw an item creation tutorial around here someplace. I'll have to go looking again.

John Adams
10-30-2006, 02:15 PM
Well, its turning out that editing the NPCs really is a viable option and probably the more practicle thing to do.
~does the Snoopy dance~ :D :D :D

Before you get all happy about augs, be prepared for some of the GoD+ ones to plain not work, or have no stats. The data is in the tables, but it doesn't show up in the client, nor enhance your char. There are plenty that do, and in fact I was told by professional melees that a Ferocity III aug is better than a +100 HP aug. Not sure what that all means, but it sounds cool.

~wanders off to put on a dress and waggle his fingers~

What do I know. I just blow sh*t up.

GeorgeS
10-30-2006, 03:27 PM
Yes, currently the newest augs are not in and am not even sure aug forges even work correctly. I have not even got that far with playing the game.

Do the augmented items actually work?- I do know their table:field structs are there.

GeorgeS

Rhodan
10-30-2006, 05:10 PM
Ok, just in case someone is searching on "solo" and hits this thread:

Change all the newb monsters from warrior class to bard. This gets rid of the kick attack which is deadly to new characters

UPDATE npc_types SET class=8 WHERE class=1 and level < 8;

Then turn off poison attacks for mobs less than level 5 or so

UPDATE npc_types SET spell_list_id=0 WHERE spell_list_id = 44 AND level < 5;

This works great for Kelethin and Halas newbie areas. Have to try the others yet - particularly the high elves and evil races. Haven't been there for so long I can't even remember what they fight.