View Full Version : npc_types table incomplete?
quester
11-02-2002, 05:41 AM
How come the npctypes table has no stats? ac? Seems to be a LOT of information missing.
Xarslik
11-04-2002, 02:59 AM
Not really missing, just not implemented yet. As far as I remember all NPC stats (Str, Sta etc) are 75 by default.
You could probably add support for the stat variables in npc_types.
quester
11-04-2002, 06:46 AM
Yes.. I would like to add the support. I've already added npc procs to the database and the emu code.
If no one has any objections, I will add stats and ac to the database as well.
Zerak
11-05-2002, 04:20 AM
Great idea. Would increase MySQL size by a rather noticeable amount, but great idea. :D
Lurker_005
11-05-2002, 09:49 AM
A quick way to improve things would be make the stats different for different race class combos, also have it raise some stats based on levels. You could even throw some randomness in there. That would go a long ways to getting the npc's closer to wher they should be. Then perhaps have a table of profiles that could overwrite (or modify might be better) the calculated values. That way you need a lot fewer sets of stats 200-800 instead of 20000 stored in the DB.
just my 2cp
quester
11-05-2002, 09:58 AM
Not a bad idea at all. Here is what I would recommened:
Seperate the stats off into a PROFILE. Build default profies for main types "Ghoul", "mummy", "Giant", etc..
In the npc_types database, add a colum,n that specifies what profile the entry uses.
Then, to customize things, you could just make custom profiles and link those in as needed.
If this sounds good, let me know, and i'll implement it tonight. I really want to get something like this working because i'd much prefer pets to be pulled form the database rather than hard coded.
DeletedUser
11-05-2002, 09:59 AM
isnt that how eqlive works?
All races have a set stat then it raises by level/class/items/buffs/etc.
quester
11-05-2002, 10:03 AM
Stop folliwng me! :p
Yes and no. The npc defintions include the stats. If eqlive was eqemu, then the stats would be in the npc_types table. Whenever a designer wants to make, sya a new type of ghoul, he typically will copy the entry for an existing ghoul, then modify it. Thats how they retain similiar stats.
But I like te idea of splitting them off into a seperate profile better. Then just adding a link to the profile used when you define the npc. Less data overhead that way.
Trumpcard
11-05-2002, 10:59 AM
Also nice that it makes old code compatible with new databases since the stats live in an entirely new table..
Lurker_005
11-06-2002, 06:35 AM
quester:
Yea, that was the basic idea. I suggested having base profiles calculated so that most mobs would not need any modification, then have the "profile" table for special mobs. Also if the profile table is a stats modification table then the calculated values can be tweeked without greatly upsetting the special mobs.
Taking it a bit further, if all the modifications (class/race/special mobs) are formula values, then there will be even fewer profiles needed.
So wild numbers pulled from no where...
Std mob profile:
war:
5% str from the base numbers
4% sta
10% HP
-5% int
ect
halfling:
-4% str
3% agi
ect
ogre:
10% str
-15% int
ect
level:
3% * level different values for different stats
Profile adjustment:
high resist profile:
10% * level to all resists
High HP profile:
12% HP * level
ect...
So in npc_types you would specify a profile mod (or leave 0 for the default) HP would be removed, and changed to a calculation. HP, mana regen, and perhaps the walk/run speed should probably be moved to the profile as well. And I would prefer that level was moved to the spawn entry table, even beter if it was changed to a level range.
Think that about wraps up my view on things. What do you think?
quester
11-06-2002, 07:33 AM
I think it sounds good. Some stuff, as you pointed out, that is currently in npc_types should be moved over to the profiles.
I'll do what I can to make the code work with the different database configurations, since npc_types will undergo some large scale changes.
I also want to be able to make the profiles as flexible as possible, so you can do things like randoms, percentages, fixed values, etc. I'll do some thinking on that. Probably the best way would be to do it with varchar fields, and then have ways of entering values, such as:
%+10 (Increase value by 10%)
%-10 (Decrease value by 10%)
10 (Make value 10)
+10 (Increase value by 10)
-10 (Decrease value by 10)
r10-20 (Set value to a random value between 10 and 20)
r+10-20 (Increase value random between 10 and 20)
r-10-20 (Decrease value random between 10 and 20)
Maybe add in a variable, as well for levels:
l* (Level times)
l% (Level divided by)
l- (Level minus)
l+ (Level plus)
This could be used anywhere a value is indicated, for example:
[code]
%+l*10
[code]
Would mean, "Increase value by (level * 10) Percent.
Thoughts?
quester
11-07-2002, 08:44 AM
Well.. haven't seen any comments against this, so that is what i'm going to do this weekend unless someone comes up and says no :)
TheClaus
11-08-2002, 01:53 AM
quester,
I just wanted to say that you are doing some cool things and wish the devs would speak up about this. Unfortunately they tend to not answer too much in fear of being sucked into the void. Don't think your code is going unnoticed. IMO you are bringing some life back into the project. You might want to show up on IRC this weekend if your working on this. Most of the devs are around. Keep up the good work and don't leave like some people did (Malv, RIP buddy).
Trumpcard
11-08-2002, 06:24 AM
No doubt Quester, awesome work.. You should consider coming onto irc and joining the dev team.
devn00b
11-08-2002, 10:59 AM
you know the devs might care more if they saw some ACTUAL code from him..
i have yet to see antything original from him...and the one 'fix' increased the memory footprint of zones by 60%.
which is a step in the WRONG direction.
show some code then maybe somone will care.
quester
11-08-2002, 12:30 PM
Actually, i've added a few fixes, and added npc procs into the emulator.
My apologies if I have a real life, and a copmany to run instead of spending my whole time coding for this.
I don't have to do any of these changes if it bothers you.
kunta
11-08-2002, 01:20 PM
quester keep up the good work, dev/noob just hasnt seen all the stuff that you have done. I guess they spend more time coding than trolling the boards (which is a good thing)
Trumpcard
11-08-2002, 02:16 PM
No doubt Noob.. Im looking through the changelog right now, I dont see any changes with YOUR name on them... Give the guy a break, I've already seen some of the stuff he's done, at least he's offering to share his changes, thats alot more than I've seen anyone outside of the dev team do in awhile...
im not a coder nor did i ever say i was. what i was talkin about is " wish the devs would say somthing" comment. why would the devs bother to comment when the only code they have seen is what i mentioned above? that makes no sense. post somthing they can see and play with and then they might care to post.
grrrrr friend was on my pc and logged himself in
<--- /dev/n00b btw.
quester
11-12-2002, 07:18 AM
Just an update on this. I got busy this weekend playing, so didn't get as much done as I wanted to.
I have most of this code finished, but I can't test it until I finish rearranging some stuff I started working on in emusharemem.
kunta
11-12-2002, 04:11 PM
Please Post Snippets Or Diffs
...of code you change.. otherwise we have to diff our files which have other modifcations, and find what you changes, THEN merge it..try something like this
/zone/client.cpp(path/file..make sure you include path):4567(line number to start)
code:--------------------------------------------------------------------------------
pp.aapoints = atoi(sep.arg[1]);
message << "Set your AA Points to: " << pp.aapoints << endl;
--------------------------------------------------------------------------------
makes it much easier on us to merge it
If you are changing the lines of code, also paste the block(s) of corresponding orginal source(from the zip) .. also.. i just made the above example up, don't do it
This is the way the dev forum says to post code, this is how quester has done it every time, I dont see where he has only done one thing. Have you seen the other work that he has done noob? Because if not, he has done alot more than just the one thing that you mentioned. I am not trying to argue with you just curious if you personally have not seen the code that he has done. And for the devs, if he followed the "set" proceedure, then why would his code not be added? It seems pretty beneficial to me, but I could be wrong, I dont know c++ good enough yet to know.
Trumpcard
11-12-2002, 11:33 PM
This is a dead topic, lets not reopen it.. There should be a standard agreement between a dev team member and the general world that a post on a CODE FIX in the eqemu development forum will at least get a reponse. I dont think they need to answer every question that pops up on development, but for ones that are actual code changes If someone takes the time to put some code together, as the sticky asks, then someone from the team needs to respond to it to say 'Yes, good change, we'll see about putting it in' , or 'No, we shouldnt put it in because .....'
The fact is though, not all the dev's use the forums, the best way to get a code fix in is to put a server up, go onto irc and say , 'check it out, this is whats working on my server', then ask the dev's in IRC to take/look at the change. The forums arent the best place to contact the dev's, IRC is better because you can talk to them right there. 9/10's of the real work happens on irc.
quester
11-15-2002, 09:36 AM
Ok everythign seems to be workign well now as for as the BASIC profile support. By basic, I mean just raw absolute values pulled form profiles, with all the cross referencing working, as well as DB autodection to ue the correct layout.
On the to-do list either tonight or sometime this weekend (Depends on how much EQ I play):
- Conversion tool to migrate existing DB and values to new layout
- Ability to use tokens in the profiles, such as hp = &lev/6*&sta
- Simple GUI front end for creating/modifying npc's, since the EQAdmin tool obviously won't support this.
quester
11-27-2002, 08:28 AM
I've gotten a few emails from people asking me to release what I have, even though the parser and converter isn't finished.
So i'm going to go through things tonight when I get home from work, verify it works soli, then release it.
The caveats on this release are as follows:
1) The DB converter isn't done, so you will have to do that yourself
2) The token parser isn't done, so for now all profile values will have to be constants -- hard numbers -- instead of formulas.
Once I finish the token parser, I can just update that one function in the release, since right now it goes through a stub anyway.
quester
11-27-2002, 12:41 PM
Ok, the preliminary code has been posted in the dev forum:
http://forums.eqemu.net/showthread.php?s=&postid=24066#post24066
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.