From 15a5e4001e6b38698fa08e7dedb33bfe46ad292a Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 17 Sep 2020 14:08:38 +0000 Subject: Magic v1 Core Declaration Technical feature only. Subject to changes post-commit. --- db/constants.conf | 21 ++-- db/re/job_db.conf | 160 ++++++++++++++-------------- db/re/skill_db.conf | 51 ++++++--- db/re/skill_tree.conf | 230 +++++++++++++++++++++++++++++++++++++---- npc/008-1/auldsbel.txt | 22 ++-- npc/config/magic.txt | 168 +++++++++++++++++++++++++++++- npc/items/master_skillbook.txt | 4 +- 7 files changed, 523 insertions(+), 133 deletions(-) diff --git a/db/constants.conf b/db/constants.conf index f6bd3f75..8dc47c78 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -699,14 +699,17 @@ more than one separator can be used in a row (so 12_3___456 is illegal). comment__: "Elements" Ele_Neutral: 0 Ele_Water: 1 - Ele_Earth: 2 + Ele_Nature: 2 Ele_Fire: 3 - Ele_Wind: 4 - Ele_Poison: 5 Ele_Holy: 6 Ele_Dark: 7 - Ele_Ghost: 8 - Ele_Undead: 9 + + // Kept for Compatibility + Ele_Earth: 2 + Ele_Wind: 2 // 4 + Ele_Poison: 2 // 5 + Ele_Ghost: 7 // 8 + Ele_Undead: 7 // 9 Ele_All: 255 comment__: "Races" @@ -5147,7 +5150,13 @@ more than one separator can be used in a row (so 12_3___456 is illegal). CHEST_WAITTIME: 900 // 15 minutes comment__: "Magic constants" - CLASS_OTHER: 0 + CLASS_OTHER: 0 + CLASS_MASTER: 1 + CLASS_WAR: 2 + CLASS_NATURE: 3 + CLASS_FIRE: 4 + CLASS_WATER: 5 + CLASS_HARMONY: 6 @include "conf/import/constants.conf" } diff --git a/db/re/job_db.conf b/db/re/job_db.conf index 267b6200..58de235f 100644 --- a/db/re/job_db.conf +++ b/db/re/job_db.conf @@ -86,22 +86,22 @@ Viro: { 6900, 6950, 7000, 7050, 7100, 7150, 7200, 7250, 7300, 7350, // 131 - 140 7400, 7450, 7500, 7550, 7600, 7650, 7700, 7750, 7800, 7850, // 141 - 150 7900, 7950, 8000, 8050, 8100, 8150, 8200, 8250, 8300, 835] // 151 - 160 - SPTable:[ 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, // 1 - 10 - 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, // 11 - 20 - 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, // 21 - 30 - 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, // 31 - 40 - 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, // 41 - 50 - 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, // 51 - 60 - 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, // 61 - 70 - 810, 820, 830, 840, 850, 860, 870, 880, 890, 900, // 71 - 80 - 910, 920, 930, 940, 950, 960, 970, 980, 990, 1000, // 81 - 90 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1000, // 91 - 100 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, // 101 - 110 - 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, // 111 - 120 - 1210, 1220, 1230, 1240, 1250, 1260, 1270, 1280, 1290, 1300, // 121 - 130 - 1310, 1320, 1330, 1340, 1350, 1360, 1370, 1380, 1390, 1400, // 131 - 140 - 1410, 1420, 1430, 1440, 1450, 1460, 1470, 1480, 1490, 1500, // 141 - 150 - 1510, 1520, 1530, 1540, 1550, 1560, 1570, 1580, 1590, 160] // 151 - 160 + SPTable:[ 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, // 1 - 10 + 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, // 11 - 20 + 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, // 21 - 30 + 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, // 31 - 40 + 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, // 41 - 50 + 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, // 51 - 60 + 315, 320, 325, 330, 335, 340, 345, 350, 355, 360, // 61 - 70 + 365, 370, 375, 380, 385, 390, 395, 400, 405, 410, // 71 - 80 + 415, 420, 425, 430, 435, 440, 445, 450, 455, 460, // 81 - 90 + 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, // 91 - 100 + 515, 520, 525, 530, 535, 540, 545, 550, 555, 560, // 101 - 110 + 565, 570, 575, 580, 585, 590, 595, 600, 605, 610, // 111 - 120 + 615, 620, 625, 630, 635, 640, 645, 650, 655, 660, // 121 - 130 + 665, 670, 675, 680, 685, 690, 695, 700, 705, 710, // 131 - 140 + 715, 720, 725, 730, 735, 740, 745, 750, 755, 760, // 141 - 150 + 765, 770, 775, 780, 785, 790, 795, 800, 805, 810] // 151 - 160 } CaveUkar: { @@ -139,22 +139,22 @@ CaveUkar: { 6900, 6950, 7000, 7050, 7100, 7150, 7200, 7250, 7300, 7350, // 131 - 140 7400, 7450, 7500, 7550, 7600, 7650, 7700, 7750, 7800, 7850, // 141 - 150 7900, 7950, 8000, 8050, 8100, 8150, 8200, 8250, 8300, 835] // 151 - 160 - SPTable:[ 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, // 1 - 10 - 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, // 11 - 20 - 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, // 21 - 30 - 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, // 31 - 40 - 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, // 41 - 50 - 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, // 51 - 60 - 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, // 61 - 70 - 810, 820, 830, 840, 850, 860, 870, 880, 890, 900, // 71 - 80 - 910, 920, 930, 940, 950, 960, 970, 980, 990, 1000, // 81 - 90 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1000, // 91 - 100 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, // 101 - 110 - 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, // 111 - 120 - 1210, 1220, 1230, 1240, 1250, 1260, 1270, 1280, 1290, 1300, // 121 - 130 - 1310, 1320, 1330, 1340, 1350, 1360, 1370, 1380, 1390, 1400, // 131 - 140 - 1410, 1420, 1430, 1440, 1450, 1460, 1470, 1480, 1490, 1500, // 141 - 150 - 1510, 1520, 1530, 1540, 1550, 1560, 1570, 1580, 1590, 160] // 151 - 160 + SPTable:[ 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, // 1 - 10 + 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, // 11 - 20 + 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, // 21 - 30 + 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, // 31 - 40 + 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, // 41 - 50 + 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, // 51 - 60 + 315, 320, 325, 330, 335, 340, 345, 350, 355, 360, // 61 - 70 + 365, 370, 375, 380, 385, 390, 395, 400, 405, 410, // 71 - 80 + 415, 420, 425, 430, 435, 440, 445, 450, 455, 460, // 81 - 90 + 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, // 91 - 100 + 515, 520, 525, 530, 535, 540, 545, 550, 555, 560, // 101 - 110 + 565, 570, 575, 580, 585, 590, 595, 600, 605, 610, // 111 - 120 + 615, 620, 625, 630, 635, 640, 645, 650, 655, 660, // 121 - 130 + 665, 670, 675, 680, 685, 690, 695, 700, 705, 710, // 131 - 140 + 715, 720, 725, 730, 735, 740, 745, 750, 755, 760, // 141 - 150 + 765, 770, 775, 780, 785, 790, 795, 800, 805, 810] // 151 - 160 } FireKralog: { BaseExpGroup: "EvolClasses" @@ -191,22 +191,22 @@ FireKralog: { 6900, 6950, 7000, 7050, 7100, 7150, 7200, 7250, 7300, 7350, // 131 - 140 7400, 7450, 7500, 7550, 7600, 7650, 7700, 7750, 7800, 7850, // 141 - 150 7900, 7950, 8000, 8050, 8100, 8150, 8200, 8250, 8300, 835] // 151 - 160 - SPTable:[ 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, // 1 - 10 - 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, // 11 - 20 - 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, // 21 - 30 - 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, // 31 - 40 - 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, // 41 - 50 - 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, // 51 - 60 - 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, // 61 - 70 - 810, 820, 830, 840, 850, 860, 870, 880, 890, 900, // 71 - 80 - 910, 920, 930, 940, 950, 960, 970, 980, 990, 1000, // 81 - 90 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1000, // 91 - 100 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, // 101 - 110 - 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, // 111 - 120 - 1210, 1220, 1230, 1240, 1250, 1260, 1270, 1280, 1290, 1300, // 121 - 130 - 1310, 1320, 1330, 1340, 1350, 1360, 1370, 1380, 1390, 1400, // 131 - 140 - 1410, 1420, 1430, 1440, 1450, 1460, 1470, 1480, 1490, 1500, // 141 - 150 - 1510, 1520, 1530, 1540, 1550, 1560, 1570, 1580, 1590, 160] // 151 - 160 + SPTable:[ 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, // 1 - 10 + 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, // 11 - 20 + 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, // 21 - 30 + 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, // 31 - 40 + 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, // 41 - 50 + 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, // 51 - 60 + 315, 320, 325, 330, 335, 340, 345, 350, 355, 360, // 61 - 70 + 365, 370, 375, 380, 385, 390, 395, 400, 405, 410, // 71 - 80 + 415, 420, 425, 430, 435, 440, 445, 450, 455, 460, // 81 - 90 + 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, // 91 - 100 + 515, 520, 525, 530, 535, 540, 545, 550, 555, 560, // 101 - 110 + 565, 570, 575, 580, 585, 590, 595, 600, 605, 610, // 111 - 120 + 615, 620, 625, 630, 635, 640, 645, 650, 655, 660, // 121 - 130 + 665, 670, 675, 680, 685, 690, 695, 700, 705, 710, // 131 - 140 + 715, 720, 725, 730, 735, 740, 745, 750, 755, 760, // 141 - 150 + 765, 770, 775, 780, 785, 790, 795, 800, 805, 810] // 151 - 160 } LightRaijin: { @@ -244,22 +244,22 @@ LightRaijin: { 6900, 6950, 7000, 7050, 7100, 7150, 7200, 7250, 7300, 7350, // 131 - 140 7400, 7450, 7500, 7550, 7600, 7650, 7700, 7750, 7800, 7850, // 141 - 150 7900, 7950, 8000, 8050, 8100, 8150, 8200, 8250, 8300, 835] // 151 - 160 - SPTable:[ 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, // 1 - 10 - 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, // 11 - 20 - 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, // 21 - 30 - 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, // 31 - 40 - 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, // 41 - 50 - 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, // 51 - 60 - 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, // 61 - 70 - 810, 820, 830, 840, 850, 860, 870, 880, 890, 900, // 71 - 80 - 910, 920, 930, 940, 950, 960, 970, 980, 990, 1000, // 81 - 90 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1000, // 91 - 100 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, // 101 - 110 - 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, // 111 - 120 - 1210, 1220, 1230, 1240, 1250, 1260, 1270, 1280, 1290, 1300, // 121 - 130 - 1310, 1320, 1330, 1340, 1350, 1360, 1370, 1380, 1390, 1400, // 131 - 140 - 1410, 1420, 1430, 1440, 1450, 1460, 1470, 1480, 1490, 1500, // 141 - 150 - 1510, 1520, 1530, 1540, 1550, 1560, 1570, 1580, 1590, 160] // 151 - 160 + SPTable:[ 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, // 1 - 10 + 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, // 11 - 20 + 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, // 21 - 30 + 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, // 31 - 40 + 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, // 41 - 50 + 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, // 51 - 60 + 315, 320, 325, 330, 335, 340, 345, 350, 355, 360, // 61 - 70 + 365, 370, 375, 380, 385, 390, 395, 400, 405, 410, // 71 - 80 + 415, 420, 425, 430, 435, 440, 445, 450, 455, 460, // 81 - 90 + 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, // 91 - 100 + 515, 520, 525, 530, 535, 540, 545, 550, 555, 560, // 101 - 110 + 565, 570, 575, 580, 585, 590, 595, 600, 605, 610, // 111 - 120 + 615, 620, 625, 630, 635, 640, 645, 650, 655, 660, // 121 - 130 + 665, 670, 675, 680, 685, 690, 695, 700, 705, 710, // 131 - 140 + 715, 720, 725, 730, 735, 740, 745, 750, 755, 760, // 141 - 150 + 765, 770, 775, 780, 785, 790, 795, 800, 805, 810] // 151 - 160 } SeaTritan: { @@ -297,22 +297,22 @@ SeaTritan: { 6900, 6950, 7000, 7050, 7100, 7150, 7200, 7250, 7300, 7350, // 131 - 140 7400, 7450, 7500, 7550, 7600, 7650, 7700, 7750, 7800, 7850, // 141 - 150 7900, 7950, 8000, 8050, 8100, 8150, 8200, 8250, 8300, 835] // 151 - 160 - SPTable:[ 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, // 1 - 10 - 210, 220, 230, 240, 250, 260, 270, 280, 290, 300, // 11 - 20 - 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, // 21 - 30 - 410, 420, 430, 440, 450, 460, 470, 480, 490, 500, // 31 - 40 - 510, 520, 530, 540, 550, 560, 570, 580, 590, 600, // 41 - 50 - 610, 620, 630, 640, 650, 660, 670, 680, 690, 700, // 51 - 60 - 710, 720, 730, 740, 750, 760, 770, 780, 790, 800, // 61 - 70 - 810, 820, 830, 840, 850, 860, 870, 880, 890, 900, // 71 - 80 - 910, 920, 930, 940, 950, 960, 970, 980, 990, 1000, // 81 - 90 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1000, // 91 - 100 - 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1090, 1100, // 101 - 110 - 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1180, 1190, 1200, // 111 - 120 - 1210, 1220, 1230, 1240, 1250, 1260, 1270, 1280, 1290, 1300, // 121 - 130 - 1310, 1320, 1330, 1340, 1350, 1360, 1370, 1380, 1390, 1400, // 131 - 140 - 1410, 1420, 1430, 1440, 1450, 1460, 1470, 1480, 1490, 1500, // 141 - 150 - 1510, 1520, 1530, 1540, 1550, 1560, 1570, 1580, 1590, 160] // 151 - 160 + SPTable:[ 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, // 1 - 10 + 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, // 11 - 20 + 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, // 21 - 30 + 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, // 31 - 40 + 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, // 41 - 50 + 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, // 51 - 60 + 315, 320, 325, 330, 335, 340, 345, 350, 355, 360, // 61 - 70 + 365, 370, 375, 380, 385, 390, 395, 400, 405, 410, // 71 - 80 + 415, 420, 425, 430, 435, 440, 445, 450, 455, 460, // 81 - 90 + 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, // 91 - 100 + 515, 520, 525, 530, 535, 540, 545, 550, 555, 560, // 101 - 110 + 565, 570, 575, 580, 585, 590, 595, 600, 605, 610, // 111 - 120 + 615, 620, 625, 630, 635, 640, 645, 650, 655, 660, // 121 - 130 + 665, 670, 675, 680, 685, 690, 695, 700, 705, 710, // 131 - 140 + 715, 720, 725, 730, 735, 740, 745, 750, 755, 760, // 141 - 150 + 765, 770, 775, 780, 785, 790, 795, 800, 805, 810] // 151 - 160 } FrostKralog: { diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index ab104f3c..dd4d5da7 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -480,7 +480,18 @@ skill_db: ( Name: "MG_NAPALMBEAT" Description: "Napalm Beat" MaxLevel: 10 - Range: 9 + Range: { + Lv1: 10 + Lv2: 11 + Lv3: 12 + Lv4: 13 + Lv5: 14 + Lv6: 15 + Lv7: 15 + Lv8: 15 + Lv9: 15 + Lv10: 15 + } Hit: "BDT_SKILL" SkillType: { Enemy: true @@ -489,25 +500,35 @@ skill_db: ( AllowReproduce: true } AttackType: "Magic" - Element: "Ele_Ghost" + Element: "Ele_Neutral" DamageType: { SplashArea: true - SplitDamage: true } - SplashRange: 1 + SplashRange: { + Lv1: 2 + Lv2: 3 + Lv3: 3 + Lv4: 4 + Lv5: 4 + Lv6: 5 + Lv7: 5 + Lv8: 5 + Lv9: 5 + Lv10: 5 + } InterruptCast: true CastTime: 400 AfterCastActDelay: { Lv1: 1000 - Lv2: 1000 - Lv3: 1000 - Lv4: 900 - Lv5: 900 - Lv6: 800 - Lv7: 800 - Lv8: 700 - Lv9: 600 - Lv10: 500 + Lv2: 900 + Lv3: 750 + Lv4: 550 + Lv5: 300 + Lv6: 300 + Lv7: 300 + Lv8: 300 + Lv9: 300 + Lv10: 200 } FixedCastTime: 100 Requirements: { @@ -887,7 +908,7 @@ skill_db: ( { Id: 18 Name: "MG_FIREWALL" - Description: "Fire Wall" + Description: "Nature Wall" MaxLevel: 10 Range: 9 Hit: "BDT_SKILL" @@ -898,7 +919,7 @@ skill_db: ( AllowReproduce: true } AttackType: "Magic" - Element: "Ele_Fire" + Element: "Ele_Nature" InterruptCast: true SkillInstances: 3 KnockBackTiles: 2 diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf index 940ea93a..8f26f66c 100644 --- a/db/re/skill_tree.conf +++ b/db/re/skill_tree.conf @@ -33,11 +33,9 @@ Viro: { AC_OWL: 0 NV_BASIC: 0 NV_FIRSTAID: 0 - NV_TRICKDEAD: 0 WE_BABY: 0 WE_CALLPARENT: 0 WE_CALLBABY: 0 - ALL_INCCARRY: 0 MC_VENDING: 0 MC_PUSHCART: 0 ALL_BUYING_STORE: 0 @@ -73,7 +71,6 @@ Viro: { AL_TELEPORT: 0 MG_SAFETYWALL: 0 WZ_QUAGMIRE: 0 - WZ_FROSTNOVA: 0 MO_BODYRELOCATION: 0 MO_CALLSPIRITS: 0 GN_HELLS_PLANT: 0 @@ -84,9 +81,50 @@ Viro: { WE_FEMALE: 0 WE_CALLPARTNER: 0 MG_COLDBOLT: 0 - EVOL_MASS_PROVOKE: 0 EVOL_PHYSICAL_SHIELD: 0 EVOL_MONSTER_IDENTIFY: 0 + + SA_FREECAST: 0 + ALL_FULL_THROTTLE: 0 + SA_DRAGONOLOGY: 0 + CR_TRUST: 0 + SM_RECOVERY: 0 + MG_SRECOVERY: 0 + MC_MAMMONITE: 0 + TF_DETOXIFY: 0 + NV_TRICKDEAD: 0 + HW_MAGICPOWER: 0 + TF_POISON: 0 + TF_BACKSLIDING: 0 + MC_DISCOUNT: 0 + GC_DARKILLUSION: 0 + AC_CHARGEARROW: 0 + AC_SHOWER: 0 + ASC_METEORASSAULT: 0 + SN_SHARPSHOOTING: 0 + KN_AUTOCOUNTER: 0 + AC_VULTURE: 0 + MG_SOULSTRIKE: 0 + MG_NAPALMBEAT: 0 + SA_SEISMICWEAPON: 0 + SN_WINDWALK: 0 + MG_LIGHTNINGBOLT: 0 + MG_FIREWALL: 0 + SA_FLAMELAUNCHER: 0 + MG_FIREBOLT: 0 + MG_FIREBALL: 0 + SO_FIREWALK: 0 + SA_FROSTWEAPON: 0 + MG_FROSTDIVER: 0 + WZ_FROSTNOVA: 0 + SM_PROVOKE: 0 + EVOL_MASS_PROVOKE: 0 + TF_STEAL: 0 + MC_OVERCHARGE: 0 + ALL_INCCARRY: 0 + AL_HOLYLIGHT: 0 + AL_HEAL: 0 + AB_HIGHNESSHEAL: 0 } } @@ -98,11 +136,9 @@ CaveUkar: { AC_OWL: 0 NV_BASIC: 0 NV_FIRSTAID: 0 - NV_TRICKDEAD: 0 WE_BABY: 0 WE_CALLPARENT: 0 WE_CALLBABY: 0 - ALL_INCCARRY: 0 MC_VENDING: 0 MC_PUSHCART: 0 ALL_BUYING_STORE: 0 @@ -138,7 +174,6 @@ CaveUkar: { AL_TELEPORT: 0 MG_SAFETYWALL: 0 WZ_QUAGMIRE: 0 - WZ_FROSTNOVA: 0 MO_BODYRELOCATION: 0 MO_CALLSPIRITS: 0 GN_HELLS_PLANT: 0 @@ -149,9 +184,50 @@ CaveUkar: { WE_FEMALE: 0 WE_CALLPARTNER: 0 MG_COLDBOLT: 0 - EVOL_MASS_PROVOKE: 0 EVOL_PHYSICAL_SHIELD: 0 EVOL_MONSTER_IDENTIFY: 0 + + SA_FREECAST: 0 + ALL_FULL_THROTTLE: 0 + SA_DRAGONOLOGY: 0 + CR_TRUST: 0 + SM_RECOVERY: 0 + MG_SRECOVERY: 0 + MC_MAMMONITE: 0 + TF_DETOXIFY: 0 + NV_TRICKDEAD: 0 + HW_MAGICPOWER: 0 + TF_POISON: 0 + TF_BACKSLIDING: 0 + MC_DISCOUNT: 0 + GC_DARKILLUSION: 0 + AC_CHARGEARROW: 0 + AC_SHOWER: 0 + ASC_METEORASSAULT: 0 + SN_SHARPSHOOTING: 0 + KN_AUTOCOUNTER: 0 + AC_VULTURE: 0 + MG_SOULSTRIKE: 0 + MG_NAPALMBEAT: 0 + SA_SEISMICWEAPON: 0 + SN_WINDWALK: 0 + MG_LIGHTNINGBOLT: 0 + MG_FIREWALL: 0 + SA_FLAMELAUNCHER: 0 + MG_FIREBOLT: 0 + MG_FIREBALL: 0 + SO_FIREWALK: 0 + SA_FROSTWEAPON: 0 + MG_FROSTDIVER: 0 + WZ_FROSTNOVA: 0 + SM_PROVOKE: 0 + EVOL_MASS_PROVOKE: 0 + TF_STEAL: 0 + MC_OVERCHARGE: 0 + ALL_INCCARRY: 0 + AL_HOLYLIGHT: 0 + AL_HEAL: 0 + AB_HIGHNESSHEAL: 0 } } @@ -163,11 +239,9 @@ FireKralog: { AC_OWL: 0 NV_BASIC: 0 NV_FIRSTAID: 0 - NV_TRICKDEAD: 0 WE_BABY: 0 WE_CALLPARENT: 0 WE_CALLBABY: 0 - ALL_INCCARRY: 0 MC_VENDING: 0 MC_PUSHCART: 0 ALL_BUYING_STORE: 0 @@ -203,7 +277,6 @@ FireKralog: { AL_TELEPORT: 0 MG_SAFETYWALL: 0 WZ_QUAGMIRE: 0 - WZ_FROSTNOVA: 0 MO_BODYRELOCATION: 0 MO_CALLSPIRITS: 0 GN_HELLS_PLANT: 0 @@ -214,9 +287,50 @@ FireKralog: { WE_FEMALE: 0 WE_CALLPARTNER: 0 MG_COLDBOLT: 0 - EVOL_MASS_PROVOKE: 0 EVOL_PHYSICAL_SHIELD: 0 EVOL_MONSTER_IDENTIFY: 0 + + SA_FREECAST: 0 + ALL_FULL_THROTTLE: 0 + SA_DRAGONOLOGY: 0 + CR_TRUST: 0 + SM_RECOVERY: 0 + MG_SRECOVERY: 0 + MC_MAMMONITE: 0 + TF_DETOXIFY: 0 + NV_TRICKDEAD: 0 + HW_MAGICPOWER: 0 + TF_POISON: 0 + TF_BACKSLIDING: 0 + MC_DISCOUNT: 0 + GC_DARKILLUSION: 0 + AC_CHARGEARROW: 0 + AC_SHOWER: 0 + ASC_METEORASSAULT: 0 + SN_SHARPSHOOTING: 0 + KN_AUTOCOUNTER: 0 + AC_VULTURE: 0 + MG_SOULSTRIKE: 0 + MG_NAPALMBEAT: 0 + SA_SEISMICWEAPON: 0 + SN_WINDWALK: 0 + MG_LIGHTNINGBOLT: 0 + MG_FIREWALL: 0 + SA_FLAMELAUNCHER: 0 + MG_FIREBOLT: 0 + MG_FIREBALL: 0 + SO_FIREWALK: 0 + SA_FROSTWEAPON: 0 + MG_FROSTDIVER: 0 + WZ_FROSTNOVA: 0 + SM_PROVOKE: 0 + EVOL_MASS_PROVOKE: 0 + TF_STEAL: 0 + MC_OVERCHARGE: 0 + ALL_INCCARRY: 0 + AL_HOLYLIGHT: 0 + AL_HEAL: 0 + AB_HIGHNESSHEAL: 0 } } @@ -228,11 +342,9 @@ LightRaijin: { AC_OWL: 0 NV_BASIC: 0 NV_FIRSTAID: 0 - NV_TRICKDEAD: 0 WE_BABY: 0 WE_CALLPARENT: 0 WE_CALLBABY: 0 - ALL_INCCARRY: 0 MC_VENDING: 0 MC_PUSHCART: 0 ALL_BUYING_STORE: 0 @@ -268,7 +380,6 @@ LightRaijin: { AL_TELEPORT: 0 MG_SAFETYWALL: 0 WZ_QUAGMIRE: 0 - WZ_FROSTNOVA: 0 MO_BODYRELOCATION: 0 MO_CALLSPIRITS: 0 GN_HELLS_PLANT: 0 @@ -279,9 +390,50 @@ LightRaijin: { WE_FEMALE: 0 WE_CALLPARTNER: 0 MG_COLDBOLT: 0 - EVOL_MASS_PROVOKE: 0 EVOL_PHYSICAL_SHIELD: 0 EVOL_MONSTER_IDENTIFY: 0 + + SA_FREECAST: 0 + ALL_FULL_THROTTLE: 0 + SA_DRAGONOLOGY: 0 + CR_TRUST: 0 + SM_RECOVERY: 0 + MG_SRECOVERY: 0 + MC_MAMMONITE: 0 + TF_DETOXIFY: 0 + NV_TRICKDEAD: 0 + HW_MAGICPOWER: 0 + TF_POISON: 0 + TF_BACKSLIDING: 0 + MC_DISCOUNT: 0 + GC_DARKILLUSION: 0 + AC_CHARGEARROW: 0 + AC_SHOWER: 0 + ASC_METEORASSAULT: 0 + SN_SHARPSHOOTING: 0 + KN_AUTOCOUNTER: 0 + AC_VULTURE: 0 + MG_SOULSTRIKE: 0 + MG_NAPALMBEAT: 0 + SA_SEISMICWEAPON: 0 + SN_WINDWALK: 0 + MG_LIGHTNINGBOLT: 0 + MG_FIREWALL: 0 + SA_FLAMELAUNCHER: 0 + MG_FIREBOLT: 0 + MG_FIREBALL: 0 + SO_FIREWALK: 0 + SA_FROSTWEAPON: 0 + MG_FROSTDIVER: 0 + WZ_FROSTNOVA: 0 + SM_PROVOKE: 0 + EVOL_MASS_PROVOKE: 0 + TF_STEAL: 0 + MC_OVERCHARGE: 0 + ALL_INCCARRY: 0 + AL_HOLYLIGHT: 0 + AL_HEAL: 0 + AB_HIGHNESSHEAL: 0 } } @@ -293,11 +445,9 @@ SeaTritan: { AC_OWL: 0 NV_BASIC: 0 NV_FIRSTAID: 0 - NV_TRICKDEAD: 0 WE_BABY: 0 WE_CALLPARENT: 0 WE_CALLBABY: 0 - ALL_INCCARRY: 0 MC_VENDING: 0 MC_PUSHCART: 0 ALL_BUYING_STORE: 0 @@ -333,7 +483,6 @@ SeaTritan: { AL_TELEPORT: 0 MG_SAFETYWALL: 0 WZ_QUAGMIRE: 0 - WZ_FROSTNOVA: 0 MO_BODYRELOCATION: 0 MO_CALLSPIRITS: 0 GN_HELLS_PLANT: 0 @@ -344,9 +493,50 @@ SeaTritan: { WE_FEMALE: 0 WE_CALLPARTNER: 0 MG_COLDBOLT: 0 - EVOL_MASS_PROVOKE: 0 EVOL_PHYSICAL_SHIELD: 0 EVOL_MONSTER_IDENTIFY: 0 + + SA_FREECAST: 0 + ALL_FULL_THROTTLE: 0 + SA_DRAGONOLOGY: 0 + CR_TRUST: 0 + SM_RECOVERY: 0 + MG_SRECOVERY: 0 + MC_MAMMONITE: 0 + TF_DETOXIFY: 0 + NV_TRICKDEAD: 0 + HW_MAGICPOWER: 0 + TF_POISON: 0 + TF_BACKSLIDING: 0 + MC_DISCOUNT: 0 + GC_DARKILLUSION: 0 + AC_CHARGEARROW: 0 + AC_SHOWER: 0 + ASC_METEORASSAULT: 0 + SN_SHARPSHOOTING: 0 + KN_AUTOCOUNTER: 0 + AC_VULTURE: 0 + MG_SOULSTRIKE: 0 + MG_NAPALMBEAT: 0 + SA_SEISMICWEAPON: 0 + SN_WINDWALK: 0 + MG_LIGHTNINGBOLT: 0 + MG_FIREWALL: 0 + SA_FLAMELAUNCHER: 0 + MG_FIREBOLT: 0 + MG_FIREBALL: 0 + SO_FIREWALK: 0 + SA_FROSTWEAPON: 0 + MG_FROSTDIVER: 0 + WZ_FROSTNOVA: 0 + SM_PROVOKE: 0 + EVOL_MASS_PROVOKE: 0 + TF_STEAL: 0 + MC_OVERCHARGE: 0 + ALL_INCCARRY: 0 + AL_HOLYLIGHT: 0 + AL_HEAL: 0 + AB_HIGHNESSHEAL: 0 } } diff --git a/npc/008-1/auldsbel.txt b/npc/008-1/auldsbel.txt index 7ee1994b..7f0bc2b1 100644 --- a/npc/008-1/auldsbel.txt +++ b/npc/008-1/auldsbel.txt @@ -22,18 +22,28 @@ } speech l("Hello."), - l("Oh, you look more interested in magic.. the brotherhood did forbid most of the interesting paths of magic, but boring baby spells are still allowed."), - lg("If you come back later, I may teach you something. But psst, practising magic is quite dangerous these days."); - - // Placeholder please remove - if (debug) { + l("Oh, you look more interested in magic.. the brotherhood did forbid most of the interesting paths of magic, but boring baby spells are still allowed."); + // Give poor Auldsbel some weak magic D: + if (!MAGIC_CLU[EVOL_MONSTER_IDENTIFY]) { mesn; mesq l("May I interest you in an useless skill?"); + ShowAbizit(true); + next; + mesc l("Identify Monsters - Unlocks the %s chat command.", "##B/mi##b"); + mesc l("It will analyse and inform about the monster stats and drops."); + mesc l("If multiple monsters have same name, all of them will be listed."); + mesc l("Alias: %s", "##B@monsterinfo##b"); next; + mesn; + mesq l("May I interest you in an useless skill?"); + mesc l("Skill: %s", getskillname(EVOL_MONSTER_IDENTIFY)); + // FIXME You know that learn_magic has its own prompt, right? if (askyesno() == ASK_YES) { learn_magic(EVOL_MONSTER_IDENTIFY); } - ShowAbizit(true); + } else { + mesn; + mesq lg("If you come back later, I may teach you something. But psst, practising magic is quite dangerous these days."); } close; diff --git a/npc/config/magic.txt b/npc/config/magic.txt index 3fbafbdf..dbe665a6 100644 --- a/npc/config/magic.txt +++ b/npc/config/magic.txt @@ -19,11 +19,6 @@ // Array of (skill ID, Level) for sk_canlevelup -// PLACEHOLDER -function script getskillname { - return getarg(0); -} - // This function will add MAGIC_EXP // And manage last skills used memory // GetManaExp(SkillID, EXP Points) @@ -282,11 +277,174 @@ function script RegisterMagic { OnInit: /* RegisterMagic(MSP, Skill, MaxLv, Item, Amount, Class, Cost, {PreReq, PostReq}) */ + // (B) - Brawling + // (A) - Active + // (R) - Ranged (bows only) + // (M) - Magic + // (S) - Support + // (T) - Terrain + // (G) - GP on usage + // (P) - Passive + // (X) - Area Of Effect //////////////////////// Other: Misc // Monster Identify RegisterMagic(0, EVOL_MONSTER_IDENTIFY, 1, Beer, 1, CLASS_OTHER, 5000); + // Bash (B) + RegisterMagic(0, SM_BASH, 1, MagicFeather, 1, + CLASS_OTHER, 0); + // Free Cast (P) + RegisterMagic(0, SA_FREECAST, 1, MagicFeather, 1, + CLASS_OTHER, 0); + // Full Throttle (A) + RegisterMagic(0, ALL_FULL_THROTTLE, 1, MagicFeather, 1, + CLASS_OTHER, 0); + + + //////////////////////// Master Skill Book: Skills + // These skills are handled by the Master Skill Book + // So the definition here is duplicate. + // Dragon Slayer (P) + RegisterMagic(0, SA_DRAGONOLOGY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // HP/DEF Boosting (P) + RegisterMagic(0, CR_TRUST, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // HP Recovery (P) + RegisterMagic(0, SM_RECOVERY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // MP Recovery (P) + RegisterMagic(0, MG_SRECOVERY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Mammonite (G) + RegisterMagic(0, MC_MAMMONITE, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Anti-Poison (A) + RegisterMagic(0, TF_DETOXIFY, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Trick Dead (A) + RegisterMagic(0, NV_TRICKDEAD, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Sudden Attack (A) + RegisterMagic(0, GC_DARKILLUSION, 1, MagicFeather, 1, + CLASS_MASTER, 0); + + //////////////////////// Master Skill Book: Spells + // MATK Charge (A) + RegisterMagic(0, HW_MAGICPOWER, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Poison (?) + RegisterMagic(0, TF_POISON, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Backslide (A) + RegisterMagic(0, TF_BACKSLIDING, 1, MagicFeather, 1, + CLASS_MASTER, 0); + // Discount (P) + RegisterMagic(0, MC_DISCOUNT, 1, MagicFeather, 1, + CLASS_MASTER, 0); + + + //////////////////////// War Magic: Skills + // Charged Shot (R) + RegisterMagic(1, AC_CHARGEARROW, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Arrow Shower (RX) + RegisterMagic(1, AC_SHOWER, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Ground Strike (AX) + RegisterMagic(1, ASC_METEORASSAULT, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Sharp Shooter (R) + RegisterMagic(1, SN_SHARPSHOOTING, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Critical Counter Attack (A) + RegisterMagic(1, KN_AUTOCOUNTER, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Mallard's Eye (PR) + RegisterMagic(1, AC_VULTURE, 1, MagicFeather, 1, + CLASS_WAR, 0); + + //////////////////////// War Magic: Spells + // Soul Strike (M) + RegisterMagic(1, MG_SOULSTRIKE, 1, MagicFeather, 1, + CLASS_WAR, 0); + // Napalm Beat (MX) + RegisterMagic(1, MG_NAPALMBEAT, 1, MagicFeather, 1, + CLASS_WAR, 0); + + + //////////////////////// Nature Magic: Skills + // Nature Weapon (S) + RegisterMagic(1, SA_SEISMICWEAPON, 1, MagicFeather, 1, + CLASS_NATURE, 0); + // Wind Walker (A) + RegisterMagic(1, SN_WINDWALK, 1, MagicFeather, 1, + CLASS_NATURE, 0); + //////////////////////// Nature Magic: Spells + // Lightning Arrow (M) + RegisterMagic(1, MG_LIGHTNINGBOLT, 1, MagicFeather, 1, + CLASS_NATURE, 0); + // Nature Wall (T) + RegisterMagic(1, MG_FIREWALL, 1, MagicFeather, 1, + CLASS_NATURE, 0); + + + //////////////////////// Fire Magic: Skills + // Fire Weapon (S) + RegisterMagic(1, SA_FLAMELAUNCHER, 1, MagicFeather, 1, + CLASS_FIRE, 0); + //////////////////////// Fire Magic: Spells + // Fire Arrow (M) + RegisterMagic(1, MG_FIREBOLT, 1, MagicFeather, 1, + CLASS_FIRE, 0); + // Fire Ball (MX) + RegisterMagic(1, MG_FIREBALL, 1, MagicFeather, 1, + CLASS_FIRE, 0); + // Fire Walk (MX) + RegisterMagic(2, SO_FIREWALK, 1, MagicFeather, 1, + CLASS_FIRE, 0); + + + //////////////////////// Water Magic: Skills + // Frost Weapon (S) + RegisterMagic(1, SA_FROSTWEAPON, 1, MagicFeather, 1, + CLASS_WATER, 0); + //////////////////////// Water Magic: Spells + // Frost Diver (M) + RegisterMagic(1, MG_FROSTDIVER, 1, MagicFeather, 1, + CLASS_WATER, 0); + // Frost Nova (MX) + RegisterMagic(2, WZ_FROSTNOVA, 1, MagicFeather, 1, + CLASS_WATER, 0); + + + //////////////////////// Harmony Magic: Skills + // Provoke (A) + RegisterMagic(1, SM_PROVOKE, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Mass Provoke (A) + RegisterMagic(1, EVOL_MASS_PROVOKE, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Stealing (A) + RegisterMagic(1, TF_STEAL, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Barter (P) + RegisterMagic(1, MC_OVERCHARGE, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Backpack Floating (P) + RegisterMagic(1, ALL_INCCARRY, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + //////////////////////// Harmony Magic: Spells + // Holy Light (M) + RegisterMagic(1, AL_HOLYLIGHT, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // Healing (MS) + RegisterMagic(1, AL_HEAL, 1, MagicFeather, 1, + CLASS_HARMONY, 0); + // High Healing (MS) + RegisterMagic(2, AB_HIGHNESSHEAL, 1, MagicFeather, 1, + CLASS_HARMONY, 0); end; } diff --git a/npc/items/master_skillbook.txt b/npc/items/master_skillbook.txt index d5ded1de..efd582a4 100644 --- a/npc/items/master_skillbook.txt +++ b/npc/items/master_skillbook.txt @@ -4,7 +4,7 @@ // Elvano // Description: // Contains master skills which can only be learnt after killing boss -// See also: +// See also: https://forums.themanaworld.org/viewtopic.php?f=2&t=19918 // Notes: // Not exactly as Elvano proposal. I actually care for restrictions you know... // Variables: @@ -27,6 +27,8 @@ // TODO: Reset @mb_* when register_skill() finish // TODO: You cannot get Magic Feather anywhere in the game (yet) // TODO: See if the time (15s) is enough. +// TODO: Skill level up +// TODO: Use the data supplied by magic.txt - script #MasterBook NPC_HIDDEN,{ -- cgit v1.2.3-60-g2f50