|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Archive::Development Archive area for Development's posts that were moved here after an inactivity period of 90 days. |
 |
|
 |

06-09-2003, 02:30 PM
|
Sarnak
|
|
Join Date: May 2003
Location: Silverfist
Posts: 42
|
|
Mage Pet fixes
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:
Code:
//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");
}
|
 |
|
 |
 |
|
 |

06-09-2003, 02:37 PM
|
Sarnak
|
|
Join Date: May 2003
Location: Silverfist
Posts: 42
|
|
Fix part 2
Roughly Lines 3811-3822 of spells.cpp replace with:
Code:
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;
|
 |
|
 |

06-10-2003, 12:01 AM
|
Demi-God
|
|
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
|
|
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!
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
|

06-10-2003, 03:52 AM
|
Sarnak
|
|
Join Date: May 2003
Location: Silverfist
Posts: 42
|
|
*sigh*
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.
|
 |
|
 |

06-10-2003, 05:11 AM
|
Sarnak
|
|
Join Date: May 2003
Location: Silverfist
Posts: 42
|
|
Diff this time
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.
Code:
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;
|
 |
|
 |

06-10-2003, 02:11 PM
|
Demi-God
|
|
Join Date: Jan 2002
Location: Charlotte, NC
Posts: 2,614
|
|
Ok, merged it in and publishing to CVS. Take a look at it there and verify I didnt hose it up too bad...lol...
__________________
Quitters never win, and winners never quit, but those who never win and never quit are idiots.
|

06-11-2003, 02:33 AM
|
Fire Beetle
|
|
Join Date: Jun 2003
Posts: 16
|
|
If Mage pets weren't right, does anyone know if the rest of the pets are correct? (Shaman, Necro) ?
__________________
Never Meddle in the affairs of Dragons....
Cause You're crunchy and taste good with ketchup......
|

06-11-2003, 04:36 AM
|
Sarnak
|
|
Join Date: May 2003
Location: Silverfist
Posts: 42
|
|
I'm sure someone does ;)
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.
|
 |
|
 |

06-11-2003, 05:20 AM
|
Discordant
|
|
Join Date: Feb 2003
Posts: 305
|
|
Set up spell lists,
from npc_spells.sql
Quote:
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
Code:
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.
Code:
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
Code:
-- 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 =)
Code:
-- 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
Code:
-- 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
Code:
-- 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
Code:
npc_type->npc_spells_id=14
|
 |
|
 |

06-11-2003, 05:33 AM
|
Sarnak
|
|
Join Date: May 2003
Location: Silverfist
Posts: 42
|
|
Thanks
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.
|

06-12-2003, 05:51 AM
|
Sarnak
|
|
Join Date: May 2003
Location: Silverfist
Posts: 42
|
|
Fix for pets in testing
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.
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 09:59 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |