EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Archive::Development (https://www.eqemulator.org/forums/forumdisplay.php?f=621)
-   -   Combat (https://www.eqemulator.org/forums/showthread.php?t=58)

DeletedUser 01-23-2002 09:14 AM

Im not trying to duplicate the formulas verant uses, I am creating my own, but I would gladly make an alternative if people were not satisfied...

Trumpcard 01-23-2002 09:22 AM

I think it's great so far. Little bits and pieces will get tweaked along the way. I was toying with the idea of trying to come up with a 'configurable' combat system, so that pertinent combat parameters were stored in a database table giving the indivudual admins the ability to customize combat values on the fly without having to recompile source. Have to track down all the configurable values and come up with some kind of table struct, but dont know if anyone would really care about that degree of customization to their server.

RadiationVibe 01-23-2002 11:12 AM

I do remember hearing something about the number being a composite of two factors, but I had forgotten about that. I believe defense is that way also. One number effects the chance of being hit and the other how much damage you take. Too bad they decided to join the two numbers.

Image,

(This isn't a question. It's a comment since you are not taking questions about your formual :D )

float attacker = ((this->GetLevel()/2) * ((this->GetDEX()/6)+this->GetSTR()+atkbonus+this->pp.skills[skillinuse]));
float defender = (other->GetLevel()/2) * (other->GetAC()+(pp.skills[DEFENSE]/2)+other->GetINT()+other->GetAGI());
float hitsuccess = (attacker / defender);

There is no point to dividing the level by 2. You can take that out or make it divide by 100 and the resulting hitsuccess number will still be the same. I like where you are going with this. I put some sample numbers to it and like the results. I keep thinking that Dex should have a bigger role, but I'm not sure why.

DeletedUser 01-23-2002 11:16 AM

I just wanted to stick level in there to make your level somewhat useful, but the level does have a big part, it takes the second part of the equation and multiplies it by half of your level, its very important in the formula :) and as for dex, Verant never used it, im happy its there, even if its divided by 6 :)

RadiationVibe 01-23-2002 11:53 AM

I understand why level is there. It's just that the "/2" part isn't necessary.

If you pull that out, like below, the result for hitsuccess will be exactly the same. It affects the individual numbers, but when you divide them by each other the net result is the same.

float attacker = this->GetLevel() * (this->GetDEX()/6)+this->GetSTR()+atkbonus+this->pp.skills[skillinuse]);
float defender = other->GetLevel()* (other->GetAC()+(pp.skills[DEFENSE]/2)+other->GetINT()+other->GetAGI());

float hitsuccess = (attacker / defender);

DeletedUser 01-23-2002 11:59 AM

Ah ok I see your point... dunno why I did that... (might have been testing other numbers on dividing, *shrug*)


All times are GMT -4. The time now is 10:42 AM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.