PDA

View Full Version : NPC ATTACK TABLE


12-23-2003, 02:51 PM
Here is a quick table I built anyone have any closer values to use ?

update npc_types set maxdmg=9 where level=1;
update npc_types set maxdmg=21 where level=2;
update npc_types set maxdmg=39 where level=3;
update npc_types set maxdmg=44 where level=4;
update npc_types set maxdmg=55 where level=5;
update npc_types set maxdmg=64 where level=6;
update npc_types set maxdmg=79 where level=7;
update npc_types set maxdmg=84 where level=8;
update npc_types set maxdmg=99 where level=9;
update npc_types set maxdmg=105 where level=10;
update npc_types set maxdmg=119 where level=11;
update npc_types set maxdmg=121 where level=12;
update npc_types set maxdmg=131 where level=13;
update npc_types set maxdmg=144 where level=14;
update npc_types set maxdmg=159 where level=15;
update npc_types set maxdmg=165 where level=16;
update npc_types set maxdmg=170 where level=17;
update npc_types set maxdmg=175 where level=18;
update npc_types set maxdmg=180 where level=19;
update npc_types set maxdmg=185 where level=20;
update npc_types set maxdmg=190 where level=21;
update npc_types set maxdmg=195 where level=22;
update npc_types set maxdmg=200 where level=23;
update npc_types set maxdmg=205 where level=24;
update npc_types set maxdmg=210 where level=25;
update npc_types set maxdmg=215 where level=26;
update npc_types set maxdmg=220 where level=27;
update npc_types set maxdmg=225 where level=28;
update npc_types set maxdmg=230 where level=29;
update npc_types set maxdmg=235 where level=30;
update npc_types set maxdmg=240 where level=31;
update npc_types set maxdmg=245 where level=32;
update npc_types set maxdmg=250 where level=33;
update npc_types set maxdmg=255 where level=34;
update npc_types set maxdmg=260 where level=35;
update npc_types set maxdmg=265 where level=36;
update npc_types set maxdmg=270 where level=37;
update npc_types set maxdmg=275 where level=38;
update npc_types set maxdmg=280 where level=39;
update npc_types set maxdmg=285 where level=40;
update npc_types set maxdmg=290 where level=41;
update npc_types set maxdmg=295 where level=42;
update npc_types set maxdmg=300 where level=43;
update npc_types set maxdmg=305 where level=44;
update npc_types set maxdmg=310 where level=45;
update npc_types set maxdmg=315 where level=46;
update npc_types set maxdmg=320 where level=47;
update npc_types set maxdmg=325 where level=48;
update npc_types set maxdmg=330 where level=49;
update npc_types set maxdmg=344 where level=50;
update npc_types set maxdmg=359 where level=51;
update npc_types set maxdmg=360 where level=52;
update npc_types set maxdmg=370 where level=53;
update npc_types set maxdmg=380 where level=54;
update npc_types set maxdmg=390 where level=55;
update npc_types set maxdmg=400 where level=156;
update npc_types set maxdmg=450 where level=257;
update npc_types set maxdmg=500 where level=358;
update npc_types set maxdmg=550 where level=459;
update npc_types set maxdmg=600 where level=560;



comments or sugesstions welcome.

vetoeq
12-23-2003, 03:00 PM
Ouch, those values are going to be hitting pretty hard in the mid-levels. I'm seeing values that run to ~150 for 55-57 for normal mobs. Of course, some things will be out of line there, but that seems about right for normal, no-flurry, etc. mobs.

--Veto

maethwyn
12-23-2003, 06:54 PM
...I was thinking more along these lines:

update npc_types set maxdmg=3 where level=1;
update npc_types set maxdmg=6 where level=2;
update npc_types set maxdmg=9 where level=3;
update npc_types set maxdmg=12 where level=4;
update npc_types set maxdmg=13 where level=5;
update npc_types set maxdmg=13 where level=6;
update npc_types set maxdmg=14 where level=7;
update npc_types set maxdmg=14 where level=8;
update npc_types set maxdmg=14 where level=9;
update npc_types set maxdmg=25 where level=10;
update npc_types set maxdmg=25 where level=11;
update npc_types set maxdmg=26 where level=12;
update npc_types set maxdmg=26 where level=13;
update npc_types set maxdmg=27 where level=14;
update npc_types set maxdmg=37 where level=15;
update npc_types set maxdmg=38 where level=16;
update npc_types set maxdmg=38 where level=17;
update npc_types set maxdmg=38 where level=18;
update npc_types set maxdmg=39 where level=19;
update npc_types set maxdmg=49 where level=20;
update npc_types set maxdmg=50 where level=21;
update npc_types set maxdmg=50 where level=22;
update npc_types set maxdmg=51 where level=23;
update npc_types set maxdmg=51 where level=24;
update npc_types set maxdmg=62 where level=25;
update npc_types set maxdmg=62 where level=26;
update npc_types set maxdmg=62 where level=27;
update npc_types set maxdmg=63 where level=28;
update npc_types set maxdmg=63 where level=29;
update npc_types set maxdmg=74 where level=30;
update npc_types set maxdmg=74 where level=31;
update npc_types set maxdmg=75 where level=32;
update npc_types set maxdmg=75 where level=33;
update npc_types set maxdmg=76 where level=34;
update npc_types set maxdmg=86 where level=35;
update npc_types set maxdmg=86 where level=36;
update npc_types set maxdmg=87 where level=37;
update npc_types set maxdmg=87 where level=38;
update npc_types set maxdmg=88 where level=39;
update npc_types set maxdmg=98 where level=40;
update npc_types set maxdmg=99 where level=41;
update npc_types set maxdmg=99 where level=42;
update npc_types set maxdmg=100 where level=43;
update npc_types set maxdmg=100 where level=44;
update npc_types set maxdmg=110 where level=45;
update npc_types set maxdmg=111 where level=46;
update npc_types set maxdmg=111 where level=47;
update npc_types set maxdmg=112 where level=48;
update npc_types set maxdmg=112 where level=49;
update npc_types set maxdmg=123 where level=50;
update npc_types set maxdmg=123 where level=51;
update npc_types set maxdmg=124 where level=52;
update npc_types set maxdmg=124 where level=53;
update npc_types set maxdmg=124 where level=54;
update npc_types set maxdmg=135 where level=55;

Shadow-Wolf
12-23-2003, 08:08 PM
ouch if those values were true in EQLive id never make level 53! i like maethwyn's a bit better but ive seen level 50+ mobs hit a bit higher.

maethwyn
12-23-2003, 08:23 PM
Yeah, I don't think there is a magic formula for fitting all instances... but so far (played my new ranjah) up to lvl 20 in qeynos2, crushbone, kurns, and paludal... and with the values I gave, they seem to be hitting right about where eqlive was... a little softer at the beginning levels... but I always hated dying 20 times until my 1HS went up enough to land a hit :)

I think on mobs 47+ (i.e. - no longer Dire charmable), the formula should increase a bit more... I'll know for sure when I test those levels out!

Muuss
12-23-2003, 11:17 PM
I wouldnt run this sql fix.
I think you have to take care of the mob classes. And this will overwrite settings made for certain spawns (nameds for example).
you could perhaps save the particularities of your npc before updating their maxdmg, and restore em after, or only update the npcs which have a name starting by 'a ' or 'an '...

update ... where (name like 'a %') or (name like 'an %');

L8rs

12-24-2003, 03:15 AM
I wouldnt run this sql fix.
I think you have to take care of the mob classes. And this will overwrite settings made for certain spawns (nameds for example).
you could perhaps save the particularities of your npc before updating their maxdmg, and restore em after, or only update the npcs which have a name starting by 'a ' or 'an '...

update ... where (name like 'a %') or (name like 'an %');

L8rs
yes that way is the best but it is very time consumeing.
right now theres all these spawns hitting for 400 and i needed a quick fix.
if someone could make a SQL for your way it would help a lot but I for one do not have the time required for such a task.

maethwyn
12-24-2003, 04:45 AM
...or maybe just update if level < 47 AND maxdmg=400, that way the ones in question/bad vals are the only ones changed regardless of Named/normal status.

UPDATE npc_types SET maxdmg='yourcalcedvalueforthislevel' WHERE (level<47 AND maxdmg=400);

Though the level check is redundant above as the maxdmg value entered would be based on level.

I am redoing my MOB HP/maxdmg tables and will post up with what I have...

I am splitting the tables into 6 categories for class consideration purposes:
01 - WAR
02 - PAL, SHD
03 - RNG, BRD
04 - BST, MNK, ROG
05 - CLR, DRU, SHM
06 - ENC, NEC, MAG, WIZ

HPs go down as group ID goes up; maxdmg is a bit of my own thoughts... MNK group highest DPS, then WAR, PAL/SHD, BRD... et cetera - though WAR has highest HP, then PAL/SHD, et cetera... I always hated being hit as hard by a WIZ MOB as his more-hp WAR friend.

Here are my proposed HP catch-alls:

LVL CID01 CID02 CID03 CID04 CID05 CID06
1 50 50 50 40 40 40
2 90 90 90 80 80 80
3 130 130 130 120 120 120
4 170 170 170 160 160 150
5 210 210 210 200 190 190
6 250 250 250 240 230 230
7 300 290 290 280 270 260
8 340 330 330 320 310 300
9 380 370 370 360 350 340
10 490 470 460 440 410 390
11 540 520 510 490 460 430
12 580 570 560 530 500 470
13 630 620 600 580 540 510
14 680 660 650 620 580 550
15 730 710 690 660 620 590
16 780 760 740 710 660 630
17 820 800 790 750 700 670
18 870 850 830 800 740 710
19 920 900 880 840 780 750
20 1100 1060 1030 970 880 820
21 1160 1120 1090 1020 930 870
22 1210 1170 1140 1070 970 910
23 1270 1220 1190 1120 1020 950
24 1320 1280 1240 1170 1060 990
25 1370 1330 1290 1220 1100 1030
26 1430 1380 1340 1270 1150 1070
27 1480 1440 1400 1310 1190 1110
28 1540 1490 1450 1360 1240 1150
29 1590 1540 1500 1410 1280 1190
30 1850 1770 1710 1590 1410 1290
31 1910 1830 1770 1650 1460 1340
32 1970 1890 1830 1700 1510 1380
33 2030 1950 1890 1750 1560 1420
34 2090 2010 1940 1810 1600 1470
35 2150 2070 2000 1860 1650 1510
36 2220 2130 2060 1910 1700 1550
37 2280 2190 2110 1970 1740 1600
38 2340 2250 2170 2020 1790 1640
39 2400 2310 2230 2070 1840 1680
40 2720 2600 2500 2300 2000 1800
41 2790 2670 2570 2360 2050 1850
42 2860 2730 2630 2420 2100 1890
43 2930 2800 2690 2480 2150 1940
44 3000 2860 2750 2530 2200 1980
45 3060 2930 2820 2590 2250 2030
46 3130 2990 2880 2650 2300 2070
47 3200 3060 2940 2710 2350 2120
48 3270 3120 3000 2760 2400 2160
49 3340 3190 3070 2820 2450 2210


And here is the SQL:
UPDATE npc_types SET hp = ( level * ( (TRUNCATE( level / 10, 0 )+1) * 3.30 * 2 + 35 ) ) WHERE class IN ( 1 ) AND ( level < 50 );
UPDATE npc_types SET hp = ( level * ( (TRUNCATE( level / 10, 0 )+1) * 3.00 * 2 + 35 ) ) WHERE class IN ( 3, 5 ) AND ( level < 50 );
UPDATE npc_types SET hp = ( level * ( (TRUNCATE( level / 10, 0 )+1) * 2.75 * 2 + 35 ) ) WHERE class IN ( 4, 8 ) AND ( level < 50 );
UPDATE npc_types SET hp = ( level * ( (TRUNCATE( level / 10, 0 )+1) * 2.25 * 2 + 35 ) ) WHERE class IN ( 7, 9, 15 ) AND ( level < 50 );
UPDATE npc_types SET hp = ( level * ( (TRUNCATE( level / 10, 0 )+1) * 1.50 * 2 + 35 ) ) WHERE class IN ( 2, 6, 10 ) AND ( level < 50 );
UPDATE npc_types SET hp = ( level * ( (TRUNCATE( level / 10, 0 )+1) * 1.00 * 2 + 35 ) ) WHERE class IN ( 11, 12, 13, 14 ) AND ( level < 50 );

maethwyn
12-24-2003, 06:56 AM
And here is the maxdmg table I came up with (same heading as HP model above (i.e. - level cid01 cid02...):


5 5 5 5 4 3
6 5 5 6 4 4
6 6 6 6 5 4
7 6 6 7 5 4
7 7 7 8 5 5
8 7 7 8 6 5
8 8 8 9 6 6
9 8 8 9 7 6
9 9 9 10 7 6
16 15 14 16 12 10
17 16 15 18 12 11
18 17 16 19 13 12
19 18 17 20 14 13
20 19 18 21 15 13
21 20 19 22 16 14
22 21 20 23 17 15
23 22 21 25 17 16
25 23 22 26 18 16
26 24 23 27 19 17
38 36 34 40 28 25
40 38 36 42 29 26
41 39 37 43 31 27
43 41 39 45 32 29
45 42 40 47 33 30
46 44 42 49 34 31
48 45 43 50 36 32
50 47 45 52 37 33
51 49 46 54 38 34
53 50 48 56 39 35
71 68 64 75 53 48
74 70 66 77 55 49
76 72 68 80 56 51
78 74 70 82 58 52
80 76 72 84 60 53
82 78 74 87 61 55
85 80 76 89 63 56
87 82 78 91 65 58
89 85 80 94 66 59
91 87 82 96 68 61
116 110 104 122 86 77
119 113 107 125 88 79
121 115 109 128 90 81
124 118 112 131 92 83
127 121 114 134 94 85
130 123 117 136 97 87
133 126 119 139 99 88
135 128 122 142 101 90
138 131 124 145 103 92
141 134 127 148 105 94


And the SQL:
UPDATE npc_types SET maxdmg = ( 3.90 * (( level * (TRUNCATE(level / 10, 0)+1)) + 8 ) / 7 ) WHERE class IN ( 1 ) AND ( level < 50 );
UPDATE npc_types SET maxdmg = ( 3.70 * (( level * (TRUNCATE(level / 10, 0)+1)) + 8 ) / 7 ) WHERE class IN ( 3, 5 ) AND ( level < 50 );
UPDATE npc_types SET maxdmg = ( 3.50 * (( level * (TRUNCATE(level / 10, 0)+1)) + 8 ) / 7 ) WHERE class IN ( 4, 8 ) AND ( level < 50 );
UPDATE npc_types SET maxdmg = ( 4.10 * (( level * (TRUNCATE(level / 10, 0)+1)) + 8 ) / 7 ) WHERE class IN ( 7, 9, 15 ) AND ( level < 50 );
UPDATE npc_types SET maxdmg = ( 2.90 * (( level * (TRUNCATE(level / 10, 0)+1)) + 8 ) / 7 ) WHERE class IN ( 2, 6, 10 ) AND ( level < 50 );
UPDATE npc_types SET maxdmg = ( 2.60 * (( level * (TRUNCATE(level / 10, 0)+1)) + 8 ) / 7 ) WHERE class IN ( 11, 12, 13, 14 ) AND ( level < 50 );

Lurker_005
12-24-2003, 08:26 AM
I highly recomend finding formulas like these to globably set a lot of the default values. Then also making another sql script that goes back and sets things like named spawns or other exceptions to the rules.

Something similar to
UPDATE npc_types SET maxdmg = 500 where (name like '%sleeper%' and zone like 'sleepers');
That way you can always reapply your hand tweeks to... well any DB actually. And don't feel limited to doing so aginst single spawns with fixed vaues.
UPDATE npc_types SET loottable_id = 30 where (name like '%skeleton%' and level < 20); set loot to bone chips ect...

It will add a tremendous consistancy to the DB, and still keep the customized stuff.