Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Windows Servers

Support::Windows Servers Support forum for Windows EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 09-07-2012, 08:59 AM
Cowboy6534
Sarnak
 
Join Date: Jul 2007
Posts: 59
Default

Code:
if(RuleB(Combat, UseIntervalAC)) {
		
		int32 con = GetLevelCon(GetLevel());
		
			int32 randDmg = MakeRandomInt(0,99); // (0,99) because we want 100%
			int32 min = 0; 
			int32 mid = 0;
			int32 mid2 = 0;
			int32 mid3 = 0;
			int32 mid4 = 0;
			int32 mid5 = 0;
			
			switch (con) {
				case CON_RED: {
					min = 19; // 20% of the time hit for min dmg
					mid = 59; // 40% of the time hit for everything between min and max
					}
					break; 
				case CON_YELLOW: {
					min = 29;
					mid = 57;
					mid2 = 75; 		// we want half of our mid to be divided by 2 to smooth out our curve but we dont want it to be too intense on our yellow mobs
					}		   		// as we get lower in con we want it to be even more of a slope start from left high going to right low on a graph.
					break;	   		
				case CON_WHITE: {
					min = 39;
					mid = 59;
					mid2 = 79;
					}
					break;
				case CON_BLUE: {
					min = 49;
					mid = 61;
					mid2 = 73;
					mid3 = 85;
					}
					break;
				case CON_LIGHTBLUE: {
					min = 57;
					mid = 65;
					mid2 = 73;
					mid3 = 81;
					mid4 = 89;
					}
					break;
				default: {
					min = 65;
					mid2 = 73;
					mid3 = 81;
					mid4 = 89;
					mid5 = 97;
					}
					break;				
				}
				if (randDmg <= min)
					damage = (min_dmg+eleBane); 
				else if (randDmg <= mid)
					damage = MakeRandomInt((min_dmg+eleBane+1),(max_dmg+eleBane-1));
				else if (randDmg <= mid2)
					damage = MakeRandomInt ((min_dmg+eleBane+1),(max_dmg+eleBane-1))/2;
				else if (randDmg <= mid3)
					damage = MakeRandomInt ((min_dmg+eleBane+1),(max_dmg+eleBane-1))/2.5;
				else if (randDmg <= mid4)
					damage = MakeRandomInt ((min_dmg+eleBane+1),(max_dmg+eleBane-1))/3;
				else if (randDmg <= mid5)
					damage = MakeRandomInt ((min_dmg+eleBane+1),(max_dmg+eleBane-1))/3.5;					
				else
					damage = (max_dmg+eleBane);
				}
As you can see the CON_RED is what current raid mobs would fall in and probably be fine but any old raid mobs wouldnt behave right because they would fall into the lower categories and would be much easier. So a seperate raid check would need to be added and its own case. So far this is working out great on my server. The only problem ive run into besides raid mobs is that all of the low level mobs on EQEMU have the wrong min max in the tables. Currently lvl1 mobs that are not in tutorialb hit for a max of 2 per the table. When I log into live into innothule swamp the decaying skeletons hit me for a max of 6 unless they hold a wep in which case it is 8 or 10 depending on the weapon they hold. So I have started to go back and readjust all of the npc min max to reflect live.

Edit: I commented out the current code in my attack.cpp starting at line 1870 and end at line 1874 then pasted the above at line 1875.
Reply With Quote
  #2  
Old 09-07-2012, 09:03 AM
Cowboy6534
Sarnak
 
Join Date: Jul 2007
Posts: 59
Default

And obviously this values I just made up with what I have seen from all of the parses I have done. They need to be fine tuned to really get it right. I stopped at dividing the mid by 5 at green con because I think that if you go any more you would defeat the purpose of AC. Right now though you dont get hit for continue top end without a ton of AC and if you have a ton AC you still get hit hard on occasion. The most testing I have done so far has been in CoM and EJ with a 50monk wearing gear only from kunark and classic. So far I am not getting completely owned like normal and I still have to stop and bw to keep fighting like it should be for dark blue and light blue mobs. If I use a fungi I have to do this less. Or just wait a bit for the regen to do it. Much like my experiences on live eqmac and p99.
Reply With Quote
  #3  
Old 09-07-2012, 09:21 AM
Cowboy6534
Sarnak
 
Join Date: Jul 2007
Posts: 59
Default

For the raid check I was thinking of something along the lines of

if(RuleB(Combat, UseIntervalAC) && raid check) {.....

copy paste the rest and then that could be adjusted to what you want raid mobs to reflect =)
Reply With Quote
Reply

Thread Tools
Display Modes

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 01:06 PM.


 

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 - 2026, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3