summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-09-17 14:08:38 +0000
committerJesusaves <cpntb1@ymail.com>2020-09-17 14:08:38 +0000
commite8212758a110273a97b6cd5ec20a1d61440db441 (patch)
treedc74a7d74762c2fa25ed8b3521cc46623a42982f
parentee1f4206d271f4dcac8fc3edc57cc83fee89ef7a (diff)
parent15a5e4001e6b38698fa08e7dedb33bfe46ad292a (diff)
downloadserverdata-e8212758a110273a97b6cd5ec20a1d61440db441.tar.gz
serverdata-e8212758a110273a97b6cd5ec20a1d61440db441.tar.bz2
serverdata-e8212758a110273a97b6cd5ec20a1d61440db441.tar.xz
serverdata-e8212758a110273a97b6cd5ec20a1d61440db441.zip
Merge branch 'jesusalva/magic' into 'master'
Magic v1 (Core Declarations) See merge request evol/serverdata!262
-rw-r--r--db/constants.conf21
-rw-r--r--db/re/job_db.conf160
-rw-r--r--db/re/skill_db.conf51
-rw-r--r--db/re/skill_tree.conf230
-rw-r--r--npc/008-1/auldsbel.txt22
-rw-r--r--npc/config/magic.txt168
-rw-r--r--npc/items/master_skillbook.txt4
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: <link to tmw forum topic>
+// 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,{