View Full Version : Mage Pet fixes
gej302
06-09-2003, 02:30 PM
These 2 snippets bring mage pets up to live specs with the exception of procs/spells/self-cast buffs.
Fixed this snippet was missing a { on the if (tmp...) line in the earth pet section.
Lines 3460 to 3491 of spells.cpp should be replaced by the following:
//Bentareth - Fixing Mage pets with data from Mages Tower
if (strncmp(pettype, "SumEarthR", 9) == 0) { //Baron-Sprite: This Pettype is reserved to 0. ALSO 74-87.
int8 tmp = atoi(&pettype[9]);
if (tmp >= 2 && tmp <= 15) {
switch (tmp) {
case 2: MakePet(6, 1, 75, 0, 74,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 3: MakePet(9, 1, 75, 0, 75,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 4: MakePet(12, 1, 75, 0, 76,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 5: MakePet(15, 1, 75, 0, 77,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 6: MakePet(18, 1, 75, 0, 78,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 7: MakePet(21, 1, 75, 0, 79,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 8: MakePet(25, 1, 75, 0, 80,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 9: MakePet(29, 1, 75, 0, 81,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 10: MakePet(33, 1, 75, 0, 82,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 11: MakePet(37, 1, 75, 0, 83,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 12: MakePet(41, 1, 75, 0, 84,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 13: MakePet(45, 1, 75, 0, 85,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 14: MakePet(48, 1, 75, 0, 86,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 15: MakePet(60, 1, 75, 0, 87,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
} //switch
} else {
Message(0, "Error: Unknown Earth Pet formula");
}
} else if (strncmp(pettype, "SumFireR", 8) == 0) { //Baron-Sprite: This Pettype is reserved to 1. ALSO 88-101.
int8 tmp = atoi(&pettype[8]);
if (tmp >= 2 && tmp <= 15) {
switch (tmp) {
case 2: MakePet(6, 1, 75, 1, 88,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 3: MakePet(9, 1, 75, 1, 89,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 4: MakePet(12, 1, 75, 1, 90,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 5: MakePet(15, 1, 75, 1, 91,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 6: MakePet(18, 1, 75, 1, 92,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 7: MakePet(21, 1, 75, 1, 93,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 8: MakePet(25, 1, 75, 1, 94,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 9: MakePet(29, 1, 75, 1, 95,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 10: MakePet(33, 1, 75, 1, 96,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 11: MakePet(37, 1, 75, 1, 97,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 12: MakePet(41, 1, 75, 1, 98,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 13: MakePet(45, 12, 75, 1, 99,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 14: MakePet(48, 12, 75, 1, 100,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 15: MakePet(60, 12, 75, 1, 101,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
}
} else {
Message(0, "Error: Unknown Fire Pet formula");
}
} else if (strncmp(pettype, "SumAirR", 7) == 0) { //Baron-Sprite: This Pettype is reserved to 3. ALSO 60-73.
int8 tmp = atoi(&pettype[7]);
if (tmp >= 2 && tmp <= 15) {
switch (tmp) {
case 2: MakePet(6, 1, 75, 3, 60,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 3: MakePet(9, 1, 75, 3, 61,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 4: MakePet(12, 1, 75, 3, 62,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 5: MakePet(15, 1, 75, 3, 63,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 6: MakePet(18, 1, 75, 3, 64,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 7: MakePet(21, 1, 75, 3, 65,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 8: MakePet(25, 1, 75, 3, 66,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 9: MakePet(29, 1, 75, 3, 67,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 10: MakePet(33, 1, 75, 3, 68,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 11: MakePet(37, 1, 75, 3, 69,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 12: MakePet(41, 1, 75, 3, 70,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 13: MakePet(45, 7, 75, 3, 71,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 14: MakePet(48, 7, 75, 3, 72,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 15: MakePet(60, 7, 75, 3, 73,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
}
} else {^M
Message(0, "Error: Unknown Air Pet formula");
}
} else if (strncmp(pettype, "SumWaterR", 9) == 0) { //Baron-Sprite: This Pettype is reserved to 2. ALSO 102-115.
int8 tmp = atoi(&pettype[9]);
if (tmp >= 2 && tmp <= 15) {
switch (tmp) {
case 2: MakePet(6, 1, 75, 2, 102,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 3: MakePet(9, 1, 75, 2, 103,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 4: MakePet(12, 1, 75, 2, 104,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 5: MakePet(15, 1, 75, 2, 105,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 6: MakePet(18, 1, 75, 2, 106,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 7: MakePet(21, 1, 75, 2, 107,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 8: MakePet(25, 1, 75, 2, 108,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 9: MakePet(29, 1, 75, 2, 109,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 10: MakePet(33, 1, 75, 2, 110,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 11: MakePet(37, 1, 75, 2, 111,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 12: MakePet(41, 1, 75, 2, 112,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 13: MakePet(45, 9, 75, 2, 113,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 14: MakePet(48, 9, 75, 2, 114,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
case 15: MakePet(60, 9, 75, 2, 115,4 + (((float)(tmp - 2) / 14) * 3), 1);
break;
}
} else {
Message(0, "Error: Unknown Water Pet formula");
}
gej302
06-09-2003, 02:37 PM
Roughly Lines 3811-3822 of spells.cpp replace with:
case 1: { //Bentareth: Mage pets, as close live as I can find, need spell procs added
//2 types of procs, last 3 in each category does a new type of proc
//Air and earth do damage ~50 hp, water does double previous, and fire needs several wizard spells added
npc_type->hp_regen = 6; //default case (true until lvl 39 pet)
switch(pettype) {
case 60: //Air pets begin
npc_type->max_hp = 75;
npc_type->cur_hp = 75;
npc_type->min_dmg = 6;
npc_type->max_dmg = 12;
break;
case 61:
npc_type->max_hp = 175;
npc_type->cur_hp = 175;
npc_type->min_dmg = 9;
npc_type->max_dmg = 16;
break;
case 62:
npc_type->max_hp = 230;
npc_type->cur_hp = 230;
npc_type->min_dmg = 11;
npc_type->max_dmg = 18;
break;
case 63:
npc_type->max_hp = 360;
npc_type->cur_hp = 360;
npc_type->min_dmg = 13;
npc_type->max_dmg = 20;
break;
case 64:
npc_type->max_hp = 460;
npc_type->cur_hp = 460;
npc_type->min_dmg = 15;
npc_type->max_dmg = 22;
break;
case 65:
npc_type->max_hp = 580;
npc_type->cur_hp = 580;
npc_type->min_dmg = 17;
npc_type->max_dmg = 26;
break;
case 66:
npc_type->max_hp = 700;
npc_type->cur_hp = 700;
npc_type->min_dmg = 20;
npc_type->max_dmg = 28;
break;
case 67:
npc_type->max_hp = 800;
npc_type->cur_hp = 800;
npc_type->min_dmg = 24;
npc_type->max_dmg = 34;
break;
case 68:
npc_type->max_hp = 1015;
npc_type->cur_hp = 1015;
npc_type->min_dmg = 28;
npc_type->max_dmg = 40;
npc_type->hp_regen = 30;
break;
case 69:
npc_type->max_hp = 1225;
npc_type->cur_hp = 1225;
npc_type->min_dmg = 34;
npc_type->max_dmg = 48;
npc_type->hp_regen = 30;
break;
case 70:
npc_type->max_hp = 2205;
npc_type->cur_hp = 2205;
npc_type->min_dmg = 38;
npc_type->max_dmg = 56;
npc_type->hp_regen = 30;
break;
case 71: //from here in need to do damage proc
npc_type->max_hp = 2410;
npc_type->cur_hp = 2410;
npc_type->min_dmg = 40;
npc_type->max_dmg = 56;
npc_type->hp_regen = 30;
break;
case 72:
npc_type->max_hp = 2700;
npc_type->cur_hp = 2700;
npc_type->min_dmg = 50;
npc_type->max_dmg = 68;
npc_type->hp_regen = 30;
break;
case 73:
sprintf(npc_type->npc_attacks, "E");
npc_type->max_hp = 3800;
npc_type->cur_hp = 3800;
npc_type->min_dmg = 70;
npc_type->max_dmg = 83;
npc_type->hp_regen = 100;
break;
//End of Air Pets, Begin Earth
case 74:
npc_type->max_hp = 95;
npc_type->cur_hp = 95;
npc_type->min_dmg = 6;
npc_type->max_dmg = 12;
break;
case 75:
npc_type->max_hp = 250;
npc_type->cur_hp = 250;
npc_type->min_dmg = 9;
npc_type->max_dmg = 16;
break;
case 76:
npc_type->max_hp = 350;
npc_type->cur_hp = 350;
npc_type->min_dmg = 11;
npc_type->max_dmg = 18;
break;
case 77:
npc_type->max_hp = 520;
npc_type->cur_hp = 520;
npc_type->min_dmg = 13;
npc_type->max_dmg = 20;
break;
case 78:
npc_type->max_hp = 675;
npc_type->cur_hp = 675;
npc_type->min_dmg = 15;
npc_type->max_dmg = 22;
break;
case 79:
npc_type->max_hp = 830;
npc_type->cur_hp = 830;
npc_type->min_dmg = 17;
npc_type->max_dmg = 26;
break;
case 80:
npc_type->max_hp = 1000;
npc_type->cur_hp = 1000;
npc_type->min_dmg = 20;
npc_type->max_dmg = 28;
break;
case 81:
npc_type->max_hp = 1150;
npc_type->cur_hp = 1150;
npc_type->min_dmg = 24;
npc_type->max_dmg = 34;
break;
case 82:
npc_type->max_hp = 1450;
npc_type->cur_hp = 1450;
npc_type->min_dmg = 28;
npc_type->max_dmg = 40;
npc_type->hp_regen = 30;
break;
case 83:
npc_type->max_hp = 1750;
npc_type->cur_hp = 1750;
npc_type->min_dmg = 34;
npc_type->max_dmg = 48;
npc_type->hp_regen = 30;
break;
case 84:
npc_type->max_hp = 3150;
npc_type->cur_hp = 3150;
npc_type->min_dmg = 38;
npc_type->max_dmg = 56;
npc_type->hp_regen = 30;
break;
case 85: //Damage proc from here on in
npc_type->max_hp = 3200;
npc_type->cur_hp = 3200;
npc_type->min_dmg = 42;
npc_type->max_dmg = 58;
npc_type->hp_regen = 30;
break;
case 86:
npc_type->max_hp = 3300;
npc_type->cur_hp = 3300;
npc_type->min_dmg = 52;
npc_type->max_dmg = 70;
npc_type->hp_regen = 30;
break;
case 87:
sprintf(npc_type->npc_attacks, "E");
npc_type->max_hp = 4800;
npc_type->cur_hp = 4800;
npc_type->min_dmg = 72;
npc_type->max_dmg = 85;
npc_type->hp_regen = 100;
break;
// End of Earth Pets, Begin Fire, add flameshield effect
case 88:
npc_type->max_hp = 50;
npc_type->cur_hp = 50;
npc_type->min_dmg = 6;
npc_type->max_dmg = 12;
break;
case 89:
npc_type->max_hp = 125;
npc_type->cur_hp = 125;
npc_type->min_dmg = 9;
npc_type->max_dmg = 16;
break;
case 90:
npc_type->max_hp = 180;
npc_type->cur_hp = 180;
npc_type->min_dmg = 11;
npc_type->max_dmg = 18;
break;
case 91:
npc_type->max_hp = 260;
npc_type->cur_hp = 260;
npc_type->min_dmg = 13;
npc_type->max_dmg = 20;
break;
case 92:
npc_type->max_hp = 340;
npc_type->cur_hp = 340;
npc_type->min_dmg = 15;
npc_type->max_dmg = 22;
break;
case 93:
npc_type->max_hp = 415;
npc_type->cur_hp = 415;
npc_type->min_dmg = 17;
npc_type->max_dmg = 26;
break;
case 94:
npc_type->max_hp = 500;
npc_type->cur_hp = 500;
npc_type->min_dmg = 20;
npc_type->max_dmg = 28;
break;
case 95:
npc_type->max_hp = 575;
npc_type->cur_hp = 575;
npc_type->min_dmg = 24;
npc_type->max_dmg = 34;
break;
case 96:
npc_type->max_hp = 725;
npc_type->cur_hp = 725;
npc_type->min_dmg = 28;
npc_type->max_dmg = 40;
npc_type->hp_regen = 30;
break;
case 97:
npc_type->max_hp = 875;
npc_type->cur_hp = 875;
npc_type->min_dmg = 34;
npc_type->max_dmg = 48;
npc_type->hp_regen = 30;
break;
case 98:
npc_type->max_hp = 1575;
npc_type->cur_hp = 1575;
npc_type->min_dmg = 38;
npc_type->max_dmg = 56;
npc_type->hp_regen = 30;
break;
case 99: // Fire is a wizard from here on in, needs spells,
npc_type->max_hp = 1900;
npc_type->cur_hp = 1900;
npc_type->min_dmg = 20;
npc_type->max_dmg = 29;
npc_type->hp_regen = 30;
break;
case 100:
npc_type->max_hp = 2080;
npc_type->cur_hp = 2080;
npc_type->min_dmg = 24;
npc_type->max_dmg = 36;
npc_type->hp_regen = 30;
break;
case 101:
sprintf(npc_type->npc_attacks, "E");
npc_type->max_hp = 2400;
npc_type->cur_hp = 2400;
npc_type->min_dmg = 30;
npc_type->max_dmg = 45;
npc_type->hp_regen = 100;
break;
// End of Fire Pets, Begin Water
case 102:
npc_type->max_hp = 80;
npc_type->cur_hp = 80;
npc_type->min_dmg = 6;
npc_type->max_dmg = 12;
break;
case 103:
npc_type->max_hp = 200;
npc_type->cur_hp = 200;
npc_type->min_dmg = 9;
npc_type->max_dmg = 16;
break;
case 104:
npc_type->max_hp = 280;
npc_type->cur_hp = 280;
npc_type->min_dmg = 11;
npc_type->max_dmg = 18;
break;
case 105:
npc_type->max_hp = 420;
npc_type->cur_hp = 420;
npc_type->min_dmg = 13;
npc_type->max_dmg = 20;
break;
case 106:
npc_type->max_hp = 540;
npc_type->cur_hp = 540;
npc_type->min_dmg = 15;
npc_type->max_dmg = 22;
break;
case 107:
npc_type->max_hp = 660;
npc_type->cur_hp = 660;
npc_type->min_dmg = 17;
npc_type->max_dmg = 26;
break;
case 108:
npc_type->max_hp = 800;
npc_type->cur_hp = 800;
npc_type->min_dmg = 20;
npc_type->max_dmg = 28;
break;
case 109:
npc_type->max_hp = 920;
npc_type->cur_hp = 920;
npc_type->min_dmg = 24;
npc_type->max_dmg = 34;
case 110:
npc_type->max_hp = 1160;
npc_type->cur_hp = 1160;
npc_type->min_dmg = 28;
npc_type->max_dmg = 40;
npc_type->hp_regen = 30;
break;
case 111:
npc_type->max_hp = 1400;
npc_type->cur_hp = 1400;
npc_type->min_dmg = 34;
npc_type->max_dmg = 48;
npc_type->hp_regen = 30;
break;
case 112:
npc_type->max_hp = 2520;
npc_type->cur_hp = 2520;
npc_type->min_dmg = 38;
npc_type->max_dmg = 56;
npc_type->hp_regen = 30;
break;
case 113: //Rogue type now, should backstab, needs higher dmg proc
npc_type->max_hp = 2350;
npc_type->cur_hp = 2350;
npc_type->min_dmg = 40;
npc_type->max_dmg = 56;
npc_type->hp_regen = 30;
break;
case 114:
npc_type->max_hp = 2450;
npc_type->cur_hp = 2450;
npc_type->min_dmg = 50;
npc_type->max_dmg = 58;
npc_type->hp_regen = 30;
break;
case 115:
sprintf(npc_type->npc_attacks, "E");
npc_type->max_hp = 3300;
npc_type->cur_hp = 3300;
npc_type->min_dmg = 70;
npc_type->max_dmg = 81;
npc_type->hp_regen = 100;
break;
} //End of Normal Mage pets
break;
}
case 15: { // Mage Epic Pet fixed
npc_type->max_hp = 4300;
npc_type->cur_hp = 4300;
npc_type->min_dmg = 50;
npc_type->max_dmg = 80;
npc_type->hp_regen=50;
Trumpcard
06-10-2003, 12:01 AM
Getting errors compiling the 1st section.
Does this compile for you? I'm getting syntax errors somewhere..
How about merging it in the the latest CVS spells.cpp, and attatch it here. Then I can diff it off and merge that file in.
Thanks!
gej302
06-10-2003, 03:52 AM
It did but I had to do some funky cut and pasting 'cause I was remote editing it from a windoze box, probably introduced some errors there I'll post a better version later today.
gej302
06-10-2003, 05:11 AM
ok from cvs diff -uBb spells.cpp
compiles makes etc. but I appear to have deleted a line when re-merging the code. between the last normal pet and the Epic pet, need a "break;" statement. nothing like summoning up your level 4 pet and having a 6th level epic pet with earth pet skin.
Index: spells.cpp
================================================== =================
RCS file: /cvsroot/eqemu/NightDumps/Source/zone/spells.cpp,v
retrieving revision 1.1.1.4
diff -u -B -b -r1.1.1.4 spells.cpp
--- spells.cpp 7 Jun 2003 15:53:04 -0000 1.1.1.4
+++ spells.cpp 10 Jun 2003 17:08:00 -0000
@@ -3489,42 +3489,154 @@
* will stay on 4. Also I may want to note that even though pet
* ranges and types are reserved, it doesn't mean they will be used,
* however please respect the reserved spots. Thanks!
-TODO: Define specifics for mage pets. - Make anything missing on this list ^_^
*/
- //Baron-Sprite: Mage pets have been hax0red for now.
+//Bentareth - Fixing Mage pets with data from MagesCompendium
if (strncmp(pettype, "SumEarthR", 9) == 0) { //Baron-Sprite: This Pettype is reserved to 0. ALSO 74-87.
int8 tmp = atoi(&pettype[9]);
if (tmp >= 2 && tmp <= 15) {
- MakePet(((int)(2 + ((tmp-2) * 3.5) + (rand()%3))),
- 0, 75, 0, 0, 4 + (((float)(tmp - 2) / 14) * 3),1);
+ switch (tmp) {
+ case 2: MakePet(6, 1, 75, 0, 74,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 3: MakePet(9, 1, 75, 0, 75,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 4: MakePet(12, 1, 75, 0, 76,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 5: MakePet(15, 1, 75, 0, 77,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 6: MakePet(18, 1, 75, 0, 78,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 7: MakePet(21, 1, 75, 0, 79,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 8: MakePet(25, 1, 75, 0, 80,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 9: MakePet(29, 1, 75, 0, 81,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 10: MakePet(33, 1, 75, 0, 82,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 11: MakePet(37, 1, 75, 0, 83,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 12: MakePet(41, 1, 75, 0, 84,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 13: MakePet(45, 1, 75, 0, 85,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 14: MakePet(48, 1, 75, 0, 86,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 15: MakePet(60, 1, 75, 0, 87,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ } //switch
} else {
Message(0, "Error: Unknown Earth Pet formula");
}
} else if (strncmp(pettype, "SumFireR", 8) == 0) { //Baron-Sprite: This Pettype is reserved to 1. ALSO 88-101.
int8 tmp = atoi(&pettype[8]);
if (tmp >= 2 && tmp <= 15) {
- MakePet(((int)(4 + ((tmp-2) * 3.5) + (rand()%3))),
- 0, 75, 1, 0, 4 + (((float)(tmp - 2) / 14) * 3),1);
+ switch (tmp) {
+ case 2: MakePet(6, 1, 75, 1, 88,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 3: MakePet(9, 1, 75, 1, 89,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 4: MakePet(12, 1, 75, 1, 90,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 5: MakePet(15, 1, 75, 1, 91,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 6: MakePet(18, 1, 75, 1, 92,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 7: MakePet(21, 1, 75, 1, 93,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 8: MakePet(25, 1, 75, 1, 94,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 9: MakePet(29, 1, 75, 1, 95,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 10: MakePet(33, 1, 75, 1, 96,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 11: MakePet(37, 1, 75, 1, 97,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 12: MakePet(41, 1, 75, 1, 98,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 13: MakePet(45, 12, 75, 1, 99,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 14: MakePet(48, 12, 75, 1, 100,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 15: MakePet(60, 12, 75, 1, 101,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ }
+
} else {
Message(0, "Error: Unknown Fire Pet formula");
}
} else if (strncmp(pettype, "SumAirR", 7) == 0) { //Baron-Sprite: This Pettype is reserved to 3. ALSO 60-73.
int8 tmp = atoi(&pettype[7]);
if (tmp >= 2 && tmp <= 15) {
- MakePet(((int)(3 + ((tmp-2) * 3.5) + (rand()%3))),
- 0, 75, 3, 0, 4 + (((float)(tmp - 2) / 14) * 3),1);
+ switch (tmp) {
+ case 2: MakePet(6, 1, 75, 3, 60,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 3: MakePet(9, 1, 75, 3, 61,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 4: MakePet(12, 1, 75, 3, 62,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 5: MakePet(15, 1, 75, 3, 63,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 6: MakePet(18, 1, 75, 3, 64,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 7: MakePet(21, 1, 75, 3, 65,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 8: MakePet(25, 1, 75, 3, 66,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 9: MakePet(29, 1, 75, 3, 67,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 10: MakePet(33, 1, 75, 3, 68,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 11: MakePet(37, 1, 75, 3, 69,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 12: MakePet(41, 1, 75, 3, 70,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 13: MakePet(45, 7, 75, 3, 71,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 14: MakePet(48, 7, 75, 3, 72,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 15: MakePet(60, 7, 75, 3, 73,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ }
} else {
Message(0, "Error: Unknown Air Pet formula");
}
} else if (strncmp(pettype, "SumWaterR", 9) == 0) { //Baron-Sprite: This Pettype is reserved to 2. ALSO 102-115.
int8 tmp = atoi(&pettype[9]);
if (tmp >= 2 && tmp <= 15) {
- MakePet(((int)(3 + ((tmp-2) * 3.5) + (rand()%3))),
- 0, 75, 2, 0, 4 + (((float)(tmp - 2) / 14) * 3),1);
+ switch (tmp) {
+ case 2: MakePet(6, 1, 75, 2, 102,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 3: MakePet(9, 1, 75, 2, 103,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 4: MakePet(12, 1, 75, 2, 104,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 5: MakePet(15, 1, 75, 2, 105,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 6: MakePet(18, 1, 75, 2, 106,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 7: MakePet(21, 1, 75, 2, 107,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 8: MakePet(25, 1, 75, 2, 108,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 9: MakePet(29, 1, 75, 2, 109,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 10: MakePet(33, 1, 75, 2, 110,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 11: MakePet(37, 1, 75, 2, 111,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 12: MakePet(41, 1, 75, 2, 112,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 13: MakePet(45, 9, 75, 2, 113,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 14: MakePet(48, 9, 75, 2, 114,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ case 15: MakePet(60, 9, 75, 2, 115,4 + (((float)(tmp - 2) / 14) * 3), 1);
+ break;
+ }
} else {
Message(0, "Error: Unknown Water Pet formula");
}
- } else if (strncmp(pettype, "Familiar1",9) == 0) { // neotokyo: reserved type 217 for familiars
+//end Bentareth fix } else if (strncmp(pettype, "Familiar1",9) == 0) { // neotokyo: reserved type 217 for familiars
MakePet(27,1,46,1,120,3,217); //Baron-Sprite: This Pettype is reserved to 120-124.
} else if (strncmp(pettype, "Familiar2",9) == 0) {
MakePet(47,1,46,1,121,3,217);
@@ -3827,7 +3939,7 @@
npc_type->max_hp = CalcPetHp(npc_type->level, npc_type->class_);
npc_type->cur_hp = npc_type->max_hp;
npc_type->fixedZ = 1;
- int pettype = in_pettype; //Baron-Sprite: Needed for necro pet types.
+ int pettype = in_pettype; //Baron-Sprite: Needed for necro pet types.(Mages too - Bentareth)
int yourlevel = this->GetLevel();
switch(type) {
@@ -3843,18 +3955,385 @@
npc_type->max_hp = 1000;
break;
}
- case 1: { //Baron-Sprite: Gay Mage Pets. Will make them real once I am done moving.
- npc_type->max_hp = ((yourlevel * 5) * 5);
- npc_type->cur_hp = ((yourlevel * 5) * 5);
- npc_type->min_dmg = (yourlevel / 2);
- npc_type->max_dmg = ((yourlevel / 2) + 7);
+ case 1: { //Bentareth: Mage pets, as close live as I can find, need spell procs added
+ //2 types of procs, last 3 in each category does a new type of proc
+ //Air and earth do damage ~50 hp, water does double previous, and fire needs several wizard spells added
+ npc_type->hp_regen = 6; //default case (true until lvl 39 pet)
+ switch(pettype) {
+ case 60: //Air pets begin
+ npc_type->max_hp = 75;
+ npc_type->cur_hp = 75;
+ npc_type->min_dmg = 6;
+ npc_type->max_dmg = 12;
break;
- }
- case 15: { // Mage Epic Pet
- npc_type->max_hp = 2200;
- npc_type->cur_hp = 2200;
- npc_type->min_dmg = 1;
+ case 61:
+ npc_type->max_hp = 175;
+ npc_type->cur_hp = 175;
+ npc_type->min_dmg = 9;
+ npc_type->max_dmg = 16;
+ break;
+ case 62:
+ npc_type->max_hp = 230;
+ npc_type->cur_hp = 230;
+ npc_type->min_dmg = 11;
+ npc_type->max_dmg = 18;
+ break;
+ case 63:
+ npc_type->max_hp = 360;
+ npc_type->cur_hp = 360;
+ npc_type->min_dmg = 13;
+ npc_type->max_dmg = 20;
+ break;
+ case 64:
+ npc_type->max_hp = 460;
+ npc_type->cur_hp = 460;
+ npc_type->min_dmg = 15;
+ npc_type->max_dmg = 22;
+ break;
+ case 65:
+ npc_type->max_hp = 580;
+ npc_type->cur_hp = 580;
+ npc_type->min_dmg = 17;
+ npc_type->max_dmg = 26;
+ break;
+ case 66:
+ npc_type->max_hp = 700;
+ npc_type->cur_hp = 700;
+ npc_type->min_dmg = 20;
+ npc_type->max_dmg = 28;
+ break;
+ case 67:
+ npc_type->max_hp = 800;
+ npc_type->cur_hp = 800;
+ npc_type->min_dmg = 24;
+ npc_type->max_dmg = 34;
+ break;
+ case 68:
+ npc_type->max_hp = 1015;
+ npc_type->cur_hp = 1015;
+ npc_type->min_dmg = 28;
+ npc_type->max_dmg = 40;
+ npc_type->hp_regen = 30;
+ break;
+ case 69:
+ npc_type->max_hp = 1225;
+ npc_type->cur_hp = 1225;
+ npc_type->min_dmg = 34;
+ npc_type->max_dmg = 48;
+ npc_type->hp_regen = 30;
+ break;
+ case 70:
+ npc_type->max_hp = 2205;
+ npc_type->cur_hp = 2205;
+ npc_type->min_dmg = 38;
+ npc_type->max_dmg = 56;
+ npc_type->hp_regen = 30;
+ break;
+ case 71: //from here in need to do damage proc
+ npc_type->max_hp = 2410;
+ npc_type->cur_hp = 2410;
+ npc_type->min_dmg = 40;
+ npc_type->max_dmg = 56;
+ npc_type->hp_regen = 30;
+ break;
+ case 72:
+ npc_type->max_hp = 2700;
+ npc_type->cur_hp = 2700;
+ npc_type->min_dmg = 50;
+ npc_type->max_dmg = 68;
+ npc_type->hp_regen = 30;
+ break;
+ case 73:
+ sprintf(npc_type->npc_attacks, "E");
+ npc_type->max_hp = 3800;
+ npc_type->cur_hp = 3800;
+ npc_type->min_dmg = 70;
+ npc_type->max_dmg = 83;
+ npc_type->hp_regen = 100;
+ break;
+ //End of Air Pets, Begin Earth
+ case 74:
+ npc_type->max_hp = 95;
+ npc_type->cur_hp = 95;
+ npc_type->min_dmg = 6;
+ npc_type->max_dmg = 12;
+ break;
+ case 75:
+ npc_type->max_hp = 250;
+ npc_type->cur_hp = 250;
+ npc_type->min_dmg = 9;
+ npc_type->max_dmg = 16;
+ break;
+ case 76:
+ npc_type->max_hp = 350;
+ npc_type->cur_hp = 350;
+ npc_type->min_dmg = 11;
+ npc_type->max_dmg = 18;
+ break;
+ case 77:
+ npc_type->max_hp = 520;
+ npc_type->cur_hp = 520;
+ npc_type->min_dmg = 13;
+ npc_type->max_dmg = 20;
+ break;
+ case 78:
+ npc_type->max_hp = 675;
+ npc_type->cur_hp = 675;
+ npc_type->min_dmg = 15;
+ npc_type->max_dmg = 22;
+ break;
+ case 79:
+ npc_type->max_hp = 830;
+ npc_type->cur_hp = 830;
+ npc_type->min_dmg = 17;
+ npc_type->max_dmg = 26;
+ break;
+ case 80:
+ npc_type->max_hp = 1000;
+ npc_type->cur_hp = 1000;
+ npc_type->min_dmg = 20;
+ npc_type->max_dmg = 28;
+ break;
+ case 81:
+ npc_type->max_hp = 1150;
+ npc_type->cur_hp = 1150;
+ npc_type->min_dmg = 24;
+ npc_type->max_dmg = 34;
+ break;
+ case 82:
+ npc_type->max_hp = 1450;
+ npc_type->cur_hp = 1450;
+ npc_type->min_dmg = 28;
+ npc_type->max_dmg = 40;
+ npc_type->hp_regen = 30;
+ break;
+ case 83:
+ npc_type->max_hp = 1750;
+ npc_type->cur_hp = 1750;
+ npc_type->min_dmg = 34;
+ npc_type->max_dmg = 48;
+ npc_type->hp_regen = 30;
+ break;
+ case 84:
+ npc_type->max_hp = 3150;
+ npc_type->cur_hp = 3150;
+ npc_type->min_dmg = 38;
+ npc_type->max_dmg = 56;
+ npc_type->hp_regen = 30;
+ break;
+ case 85: //Damage proc from here on in
+ npc_type->max_hp = 3200;
+ npc_type->cur_hp = 3200;
+ npc_type->min_dmg = 42;
+ npc_type->max_dmg = 58;
+ npc_type->hp_regen = 30;
+ break;
+ case 86:
+ npc_type->max_hp = 3300;
+ npc_type->cur_hp = 3300;
+ npc_type->min_dmg = 52;
+ npc_type->max_dmg = 70;
+ npc_type->hp_regen = 30;
+ break;
+ case 87:
+ sprintf(npc_type->npc_attacks, "E");
+ npc_type->max_hp = 4800;
+ npc_type->cur_hp = 4800;
+ npc_type->min_dmg = 72;
+ npc_type->max_dmg = 85;
+ npc_type->hp_regen = 100;
+ break;
+ // End of Earth Pets, Begin Fire, add flameshield effect
+ case 88:
+ npc_type->max_hp = 50;
+ npc_type->cur_hp = 50;
+ npc_type->min_dmg = 6;
+ npc_type->max_dmg = 12;
+ break;
+ case 89:
+ npc_type->max_hp = 125;
+ npc_type->cur_hp = 125;
+ npc_type->min_dmg = 9;
+ npc_type->max_dmg = 16;
+ break;
+ case 90:
+ npc_type->max_hp = 180;
+ npc_type->cur_hp = 180;
+ npc_type->min_dmg = 11;
+ npc_type->max_dmg = 18;
+ break;
+ case 91:
+ npc_type->max_hp = 260;
+ npc_type->cur_hp = 260;
+ npc_type->min_dmg = 13;
+ npc_type->max_dmg = 20;
+ break;
+ case 92:
+ npc_type->max_hp = 340;
+ npc_type->cur_hp = 340;
+ npc_type->min_dmg = 15;
+ npc_type->max_dmg = 22;
+ break;
+ case 93:
+ npc_type->max_hp = 415;
+ npc_type->cur_hp = 415;
+ npc_type->min_dmg = 17;
+ npc_type->max_dmg = 26;
+ break;
+ case 94:
+ npc_type->max_hp = 500;
+ npc_type->cur_hp = 500;
+ npc_type->min_dmg = 20;
+ npc_type->max_dmg = 28;
+ break;
+ case 95:
+ npc_type->max_hp = 575;
+ npc_type->cur_hp = 575;
+ npc_type->min_dmg = 24;
+ npc_type->max_dmg = 34;
+ break;
+ case 96:
+ npc_type->max_hp = 725;
+ npc_type->cur_hp = 725;
+ npc_type->min_dmg = 28;
+ npc_type->max_dmg = 40;
+ npc_type->hp_regen = 30;
+ break;
+ case 97:
+ npc_type->max_hp = 875;
+ npc_type->cur_hp = 875;
+ npc_type->min_dmg = 34;
+ npc_type->max_dmg = 48;
+ npc_type->hp_regen = 30;
+ break;
+ case 98:
+ npc_type->max_hp = 1575;
+ npc_type->cur_hp = 1575;
+ npc_type->min_dmg = 38;
+ npc_type->max_dmg = 56;
+ npc_type->hp_regen = 30;
+ break;
+ case 99: // Fire is a wizard from here on in, needs spells,
+ npc_type->max_hp = 1900;
+ npc_type->cur_hp = 1900;
+ npc_type->min_dmg = 20;
+ npc_type->max_dmg = 29;
+ npc_type->hp_regen = 30;
+ break;
+ case 100:
+ npc_type->max_hp = 2080;
+ npc_type->cur_hp = 2080;
+ npc_type->min_dmg = 24;
+ npc_type->max_dmg = 36;
+ npc_type->hp_regen = 30;
+ break;
+ case 101:
+ sprintf(npc_type->npc_attacks, "E");
+ npc_type->max_hp = 2400;
+ npc_type->cur_hp = 2400;
+ npc_type->min_dmg = 30;
+ npc_type->max_dmg = 45;
+ npc_type->hp_regen = 100;
+ break;
+ // End of Fire Pets, Begin Water
+ case 102:
+ npc_type->max_hp = 80;
+ npc_type->cur_hp = 80;
+ npc_type->min_dmg = 6;
+ npc_type->max_dmg = 12;
+ break;
+ case 103:
+ npc_type->max_hp = 200;
+ npc_type->cur_hp = 200;
+ npc_type->min_dmg = 9;
+ npc_type->max_dmg = 16;
+ break;
+ case 104:
+ npc_type->max_hp = 280;
+ npc_type->cur_hp = 280;
+ npc_type->min_dmg = 11;
+ npc_type->max_dmg = 18;
+ break;
+ case 105:
+ npc_type->max_hp = 420;
+ npc_type->cur_hp = 420;
+ npc_type->min_dmg = 13;
+ npc_type->max_dmg = 20;
+ break;
+ case 106:
+ npc_type->max_hp = 540;
+ npc_type->cur_hp = 540;
+ npc_type->min_dmg = 15;
+ npc_type->max_dmg = 22;
+ break;
+ case 107:
+ npc_type->max_hp = 660;
+ npc_type->cur_hp = 660;
+ npc_type->min_dmg = 17;
+ npc_type->max_dmg = 26;
+ break;
+ case 108:
+ npc_type->max_hp = 800;
+ npc_type->cur_hp = 800;
+ npc_type->min_dmg = 20;
+ npc_type->max_dmg = 28;
+ break;
+ case 109:
+ npc_type->max_hp = 920;
+ npc_type->cur_hp = 920;
+ npc_type->min_dmg = 24;
+ npc_type->max_dmg = 34;
+ case 110:
+ npc_type->max_hp = 1160;
+ npc_type->cur_hp = 1160;
+ npc_type->min_dmg = 28;
+ npc_type->max_dmg = 40;
+ npc_type->hp_regen = 30;
+ break;
+ case 111:
+ npc_type->max_hp = 1400;
+ npc_type->cur_hp = 1400;
+ npc_type->min_dmg = 34;
+ npc_type->max_dmg = 48;
+ npc_type->hp_regen = 30;
+ break;
+ case 112:
+ npc_type->max_hp = 2520;
+ npc_type->cur_hp = 2520;
+ npc_type->min_dmg = 38;
+ npc_type->max_dmg = 56;
+ npc_type->hp_regen = 30;
+ break;
+ case 113: //Rogue type now, should backstab, needs higher dmg proc
+ npc_type->max_hp = 2350;
+ npc_type->cur_hp = 2350;
+ npc_type->min_dmg = 40;
+ npc_type->max_dmg = 56;
+ npc_type->hp_regen = 30;
+ break;
+ case 114:
+ npc_type->max_hp = 2450;
+ npc_type->cur_hp = 2450;
+ npc_type->min_dmg = 50;
+ npc_type->max_dmg = 58;
+ npc_type->hp_regen = 30;
+ break;
+ case 115:
+ sprintf(npc_type->npc_attacks, "E");
+ npc_type->max_hp = 3300;
+ npc_type->cur_hp = 3300;
+ npc_type->min_dmg = 70;
+ npc_type->max_dmg = 81;
+ npc_type->hp_regen = 100;
+ break;
+ } //switch (pettype) - End of Normal Mage pets
+ }
+ case 15: { // Mage Epic Pet fixed
+ npc_type->max_hp = 4300;
+ npc_type->cur_hp = 4300;
+ npc_type->min_dmg = 50;
npc_type->max_dmg = 80;
+ npc_type->hp_regen=50;
// TODO: NPCSPELLS
// sprintf(npc_type->npc_spells,"847 848 849");
break;
Trumpcard
06-10-2003, 02:11 PM
Ok, merged it in and publishing to CVS. Take a look at it there and verify I didnt hose it up too bad...lol...
seh1635
06-11-2003, 02:33 AM
If Mage pets weren't right, does anyone know if the rest of the pets are correct? (Shaman, Necro) ?
gej302
06-11-2003, 04:36 AM
But it isn't me. It seems that Baron set them up differently, more like this set of mage pets, but he set up all mage pets equal. Shaman pets and necro pets seemed to be fine on my server, but my mage pets were getting chewed up and spit out. They are still weaker than they should be, cause I'm not sure how to implement proc's/spells on these guys.
Bigpull
06-11-2003, 05:20 AM
Set up spell lists,
from npc_spells.sql
Insert into npc_spells (id, name, parent_list, attack_proc)
values (1, "Defaul Cleric List", 0, -1);
-- Type 1 spells - Nukes
-- Strike
Insert into npc_spells_entries (npc_spells_id, spellid, type, minlevel, maxlevel, manacost, recast_delay, priority)
values (1, 14, 1, 1, 13, -1, -1, 0);
-- Furor
Insert into npc_spells_entries (npc_spells_id, spellid, type, minlevel, maxlevel, manacost, recast_delay, priority)
values (1, 560, 1, 5, 28, -1, -1, 10);
Lets make a hypothetical pet that is a cleric class so i can be lazy and not look up spell numbers
We give them a spell list, buffs heals ect
Insert into npc_spells (id, name, parent_list, attack_proc)
values (13, "Mage pet cleric1", 0, -1);
It is a parent list, and they are not procs...
And a proc list, dd lifetap ect.
Insert into npc_spells (id, name, parent_list, attack_proc)
values (14, "Mage pet cleric1 procs", 13, 1);
A proc list with parent list set to 13
Buff
-- Type 8 spells - Buffs
-- Courage
Insert into npc_spells_entries (npc_spells_id, spellid, type, minlevel, maxlevel, manacost, recast_delay, priority)
values (13, 202, 8, 1, 255, 0, -1, 0);
Cast Courage from min level to max level, with no manacost, using the default recast delay.
And a heal it is a cleric after all =)
-- Type 2 spells - Heals
-- Minor Healing
Insert into npc_spells_entries (npc_spells_id, spellid, type, minlevel, maxlevel, manacost, recast_delay, priority)
values (13, 200, 2, 1, 255, 0, 10, 1);
Cast Minor Healing, again at any level with no manacost, no faster than every 10 seconds with an increased priority
And now lets make them proc thier low level dd and root =)
DD
-- Type 1 spells - Nukes
-- Strike
Insert into npc_spells_entries (npc_spells_id, spellid, type, minlevel, maxlevel, manacost, recast_delay, priority)
values (14, 14, 1, 1, 255, 0, -1, 0);
We use 14 instead of 13 so it goes to the proc list we made above
Again at any level with no manacost using default recast.
Root
-- Type 4 spells - Root
-- Root
Insert into npc_spells_entries (npc_spells_id, spellid, type, minlevel, maxlevel, manacost, recast_delay, priority)
values (14, 230, 4, 1, 255, 0, -1, 0);
Again using the proc list all levels no mana and default delay
EDIT:
I forgot to tell you how to assign them if you didn't spot it it's part of the npc_type so you can do a
npc_type->npc_spells_id=14
gej302
06-11-2003, 05:33 AM
Ah, so it's a code AND db fix? Code to assign a spell list because these are not static NPC's, and db to set up the spell list? I'll look at adding in that to the code/db after I get my home computer put back together.
gej302
06-12-2003, 05:51 AM
Mage pets work appear to work procs and all, need to actually craft a reduced list of spells for the high end fire pets (since as it stands I just made them a child of the wizard list, and they summon up a familiar, lol) Haven't tested the necro procs, but I stubbed out the code to do them, need to fix the DB entries for them to make the proc's happen.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.