Job Improvement Project - Super Novice (#4429)

* Fixes #4427.
* kRO Changelog: http://ro.gnjoy.com/news/notice/View.asp?BBSMode=10001&seq=7081
Thanks to @Rytech2!
This commit is contained in:
Aleos 2020-05-07 14:48:44 -04:00 committed by GitHub
parent 956f14bbfd
commit 931155ee33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 163 additions and 29 deletions

View File

@ -280,9 +280,9 @@
// Baby Mechanic (Mado) // Baby Mechanic (Mado)
4112,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0,6,1,5,0,4,3,2,0,5,1 4112,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0,6,1,5,0,4,3,2,0,5,1
// Super Novice (Expanded) // Super Novice (Expanded)
4190,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0 4190,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,4,5,0
// Super Baby (Expanded) // Super Baby (Expanded)
4191,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0 4191,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,4,5,0
// Kagerou // Kagerou
4211,5,0,4,0,2,3,0,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,6,3,4,0,5,0,2,0,1,4,0,5,4,0,3,5,1,0,2,4,1,0,5,6,2,1,0,5 4211,5,0,4,0,2,3,0,1,6,0,5,1,2,0,4,6,3,0,1,5,2,0,6,3,4,0,5,0,2,0,1,4,0,5,4,0,3,5,1,0,2,4,1,0,5,6,2,1,0,5
// Oboro // Oboro

View File

@ -262,7 +262,7 @@
// Baby Mechanic (Mado) // Baby Mechanic (Mado)
4112, 30000,90 ,500 ,400 ,40 ,60 ,65 ,200 ,200 ,200 ,45 ,48 ,48 ,50 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,6 4112, 30000,90 ,500 ,400 ,40 ,60 ,65 ,200 ,200 ,200 ,45 ,48 ,48 ,50 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,6
// Super Novice (Expanded) // Super Novice (Expanded)
4190, 20000,0 ,500 ,100 ,40 ,55 ,57 ,200 ,200 ,200 ,50 ,200 ,50 ,55 ,65 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,65 ,10 4190, 20000,0 ,5000 ,500 ,40 ,55 ,57 ,200 ,200 ,200 ,50 ,200 ,50 ,55 ,65 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,65 ,10
// Super Baby (Expanded) // Super Baby (Expanded)
4191, 20000,0 ,500 ,100 ,40 ,55 ,57 ,200 ,200 ,200 ,50 ,200 ,50 ,55 ,65 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,65 ,10 4191, 20000,0 ,500 ,100 ,40 ,55 ,57 ,200 ,200 ,200 ,50 ,200 ,50 ,55 ,65 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,200 ,65 ,10
// Kagerou // Kagerou

View File

@ -33561,6 +33561,31 @@ Body:
FixedCastTime: 2000 FixedCastTime: 2000
Requires: Requires:
SpCost: 70 SpCost: 70
- Id: 5075
Name: NV_BREAKTHROUGH
Description: Break Through
MaxLevel: 5
- Id: 5076
Name: NV_HELPANGEL
Description: Help Angel
MaxLevel: 1
TargetType: Self
DamageFlags:
NoDamage: true
Splash: true
Hit: Single
HitCount: 1
SplashArea: 7
CastCancel: true
AfterCastActDelay: 500
Duration1: 20000
Cooldown: 300000
Requires:
SpCost: 1
- Id: 5077
Name: NV_TRANSCENDENCE
Description: Transcendence
MaxLevel: 5
- Id: 8001 - Id: 8001
Name: HLIF_HEAL Name: HLIF_HEAL
Description: Healing Touch Description: Healing Touch

View File

@ -5455,34 +5455,54 @@
4190,53,1,52,3,0,0,0,0,0,0,0,0 //TF_DETOXIFY#Detoxify# 4190,53,1,52,3,0,0,0,0,0,0,0,0 //TF_DETOXIFY#Detoxify#
4190,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby# 4190,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
4190,66,5,0,0,0,0,0,0,0,0,0,0 //PR_IMPOSITIO#Impositio Manus# 4190,66,5,0,0,0,0,0,0,0,0,0,0 //PR_IMPOSITIO#Impositio Manus#
4190,68,5,31,1,66,3,0,0,0,0,0,0 //PR_ASPERSIO#Aspersio#
4190,70,10,28,1,0,0,0,0,0,0,0,0 //PR_SANCTUARY#Sanctuary# 4190,70,10,28,1,0,0,0,0,0,0,0,0 //PR_SANCTUARY#Sanctuary#
4190,72,1,0,0,0,0,0,0,0,0,0,0 //PR_STRECOVERY#Status Recovery# 4190,72,1,0,0,0,0,0,0,0,0,0,0 //PR_STRECOVERY#Status Recovery#
4190,74,5,0,0,0,0,0,0,0,0,0,0 //PR_MAGNIFICAT#Magnificat#
4190,75,5,70,7,0,0,0,0,0,0,0,0 //PR_GLORIA#Gloria# 4190,75,5,70,7,0,0,0,0,0,0,0,0 //PR_GLORIA#Gloria#
4190,80,10,18,1,0,0,0,0,0,0,0,0 //WZ_FIREPILLAR#Fire Pillar# 4190,80,10,18,1,0,0,0,0,0,0,0,0 //WZ_FIREPILLAR#Fire Pillar#
4190,81,10,20,1,10,1,0,0,0,0,0,0 //WZ_SIGHTRASHER#Sightrasher# 4190,81,10,20,1,10,1,0,0,0,0,0,0 //WZ_SIGHTRASHER#Sightrasher#
4190,83,10,81,2,21,1,0,0,0,0,0,0 //WZ_METEOR#Meteor Storm#
4190,84,10,11,1,20,1,0,0,0,0,0,0 //WZ_JUPITEL#Jupiter Thunder# 4190,84,10,11,1,20,1,0,0,0,0,0,0 //WZ_JUPITEL#Jupiter Thunder#
4190,85,10,21,1,84,5,0,0,0,0,0,0 //WZ_VERMILION#Lord of Vermilion#
4190,86,5,14,1,20,1,0,0,0,0,0,0 //WZ_WATERBALL#Water Ball# 4190,86,5,14,1,20,1,0,0,0,0,0,0 //WZ_WATERBALL#Water Ball#
4190,87,10,16,1,15,1,0,0,0,0,0,0 //WZ_ICEWALL#Ice Wall# 4190,87,10,16,1,15,1,0,0,0,0,0,0 //WZ_ICEWALL#Ice Wall#
4190,88,10,87,1,0,0,0,0,0,0,0,0 //WZ_FROSTNOVA#Frost Nova# 4190,88,10,87,1,0,0,0,0,0,0,0,0 //WZ_FROSTNOVA#Frost Nova#
4190,89,10,15,1,84,3,0,0,0,0,0,0 //WZ_STORMGUST#Storm Gust#
4190,90,5,16,1,0,0,0,0,0,0,0,0 //WZ_EARTHSPIKE#Earth Spike# 4190,90,5,16,1,0,0,0,0,0,0,0,0 //WZ_EARTHSPIKE#Earth Spike#
4190,91,5,90,3,0,0,0,0,0,0,0,0 //WZ_HEAVENDRIVE#Heaven's Drive# 4190,91,5,90,3,0,0,0,0,0,0,0,0 //WZ_HEAVENDRIVE#Heaven's Drive#
4190,92,5,91,1,0,0,0,0,0,0,0,0 //WZ_QUAGMIRE#Quagmire# 4190,92,5,91,1,0,0,0,0,0,0,0,0 //WZ_QUAGMIRE#Quagmire#
4190,93,1,0,0,0,0,0,0,0,0,0,0 //WZ_ESTIMATION#Sense# 4190,93,1,0,0,0,0,0,0,0,0,0,0 //WZ_ESTIMATION#Sense#
4190,105,1,0,0,0,0,0,0,0,0,0,0 //BS_HILTBINDING#Hilt Binding# 4190,105,1,0,0,0,0,0,0,0,0,0,0 //BS_HILTBINDING#Hilt Binding#
4190,107,10,105,1,0,0,0,0,0,0,0,0 //BS_WEAPONRESEARCH#Weaponry Research# 4190,107,10,105,1,0,0,0,0,0,0,0,0 //BS_WEAPONRESEARCH#Weaponry Research#
4190,108,1,107,1,0,0,0,0,0,0,0,0 //BS_REPAIRWEAPON#Weapon Repair#
4190,115,5,0,0,0,0,0,0,0,0,0,0 //HT_SKIDTRAP#Skid Trap# 4190,115,5,0,0,0,0,0,0,0,0,0,0 //HT_SKIDTRAP#Skid Trap#
4190,119,5,120,1,0,0,0,0,0,0,0,0 //HT_SANDMAN#Sandman# 4190,116,5,0,0,0,0,0,0,0,0,0,0 //HT_LANDMINE#Land Mine#
4190,120,5,115,1,0,0,0,0,0,0,0,0 //HT_FLASHER#Flasher# 4190,126,10,0,0,0,0,0,0,0,0,0,0 //HT_BEASTBANE#Beast Bane#
4190,121,5,120,1,0,0,0,0,0,0,0,0 //HT_FREEZINGTRAP#Freezing Trap#
4190,138,10,52,1,0,0,0,0,0,0,0,0 //AS_ENCHANTPOISON#Enchant Poison# 4190,138,10,52,1,0,0,0,0,0,0,0,0 //AS_ENCHANTPOISON#Enchant Poison#
4190,139,10,138,3,0,0,0,0,0,0,0,0 //AS_POISONREACT#Poison React#
4190,140,10,138,5,0,0,0,0,0,0,0,0 //AS_VENOMDUST#Venom Dust#
4190,141,10,139,5,140,5,0,0,0,0,0,0 //AS_SPLASHER#Venom Splasher#
4190,210,10,50,1,0,0,0,0,0,0,0,0 //RG_SNATCHER#Gank#
4190,211,10,210,4,0,0,0,0,0,0,0,0 //RG_STEALCOIN#Mug#
4190,212,10,211,4,0,0,0,0,0,0,0,0 //RG_BACKSTAP#Back Stab#
4190,213,5,51,1,0,0,0,0,0,0,0,0 //RG_TUNNELDRIVE#Stalk# 4190,213,5,51,1,0,0,0,0,0,0,0,0 //RG_TUNNELDRIVE#Stalk#
4190,214,5,212,2,213,2,0,0,0,0,0,0 //RG_RAID#Sightless Raid#
4190,226,10,0,0,0,0,0,0,0,0,0,0 //AM_AXEMASTERY#Axe Mastery# 4190,226,10,0,0,0,0,0,0,0,0,0,0 //AM_AXEMASTERY#Axe Mastery#
4190,248,10,0,0,0,0,0,0,0,0,0,0 //CR_TRUST#Faith# 4190,248,10,0,0,0,0,0,0,0,0,0,0 //CR_TRUST#Faith#
4190,249,10,0,0,0,0,0,0,0,0,0,0 //CR_AUTOGUARD#Guard#
4190,250,5,249,5,0,0,0,0,0,0,0,0 //CR_SHIELDCHARGE#Smite#
4190,251,5,250,3,0,0,0,0,0,0,0,0 //CR_SHIELDBOOMERANG#Shield Boomerang#
4190,253,10,248,7,0,0,0,0,0,0,0,0 //CR_HOLYCROSS#Holy Cross# 4190,253,10,248,7,0,0,0,0,0,0,0,0 //CR_HOLYCROSS#Holy Cross#
4190,259,10,23,10,22,10,0,0,0,0,0,0 //MO_IRONHAND#Iron Fists# 4190,259,10,23,10,22,10,0,0,0,0,0,0 //MO_IRONHAND#Iron Fists#
4190,261,5,259,2,0,0,0,0,0,0,0,0 //MO_CALLSPIRITS#Summon Spirit Sphere# 4190,261,5,259,2,0,0,0,0,0,0,0,0 //MO_CALLSPIRITS#Summon Spirit Sphere#
4190,262,1,261,5,0,0,0,0,0,0,0,0 //MO_ABSORBSPIRITS#Absorb Spirit Sphere# 4190,262,1,261,5,0,0,0,0,0,0,0,0 //MO_ABSORBSPIRITS#Absorb Spirit Sphere#
4190,270,5,262,1,0,0,0,0,0,0,0,0 //MO_EXPLOSIONSPIRITS#Fury#
4190,365,1,9,1,0,0,0,0,0,0,0,0 //HW_MAGICCRASHER#Stave Crasher# 4190,365,1,9,1,0,0,0,0,0,0,0,0 //HW_MAGICCRASHER#Stave Crasher#
4190,401,1,261,5,262,1,270,5,0,0,0,0 //CH_SOULCOLLECT#Hyper Spirit Sphere#
4190,5075,5,0,0,0,0,0,0,0,0,0,0 //NV_BREAKTHROUGH#Break Through#
4190,5076,1,0,0,0,0,0,0,0,0,0,0 //NV_HELPANGEL#Help Angel#
4190,5077,5,0,0,0,0,0,0,0,0,0,0 //NV_TRANSCENDENCE#Transcendence#
4190,2535,1,41,1,0,0,0,0,0,0,0,0 //ALL_BUYING_STORE#Open Buying Store# 4190,2535,1,41,1,0,0,0,0,0,0,0,0 //ALL_BUYING_STORE#Open Buying Store#
4190,2544,1,0,0,0,0,0,0,0,0,0,0 //MC_CARTDECORATE#Cart Decorate# 4190,2544,1,0,0,0,0,0,0,0,0,0,0 //MC_CARTDECORATE#Cart Decorate#
//Super Baby (Expanded) //Super Baby (Expanded)
@ -5540,34 +5560,54 @@
4191,408,1,0,0,0,0,0,0,0,0,0,0 //WE_BABY#Baby# 4191,408,1,0,0,0,0,0,0,0,0,0,0 //WE_BABY#Baby#
4191,409,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLPARENT#Call Parent# 4191,409,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLPARENT#Call Parent#
4191,66,5,0,0,0,0,0,0,0,0,0,0 //PR_IMPOSITIO#Impositio Manus# 4191,66,5,0,0,0,0,0,0,0,0,0,0 //PR_IMPOSITIO#Impositio Manus#
4191,68,5,31,1,66,3,0,0,0,0,0,0 //PR_ASPERSIO#Aspersio#
4191,70,10,28,1,0,0,0,0,0,0,0,0 //PR_SANCTUARY#Sanctuary# 4191,70,10,28,1,0,0,0,0,0,0,0,0 //PR_SANCTUARY#Sanctuary#
4191,72,1,0,0,0,0,0,0,0,0,0,0 //PR_STRECOVERY#Status Recovery# 4191,72,1,0,0,0,0,0,0,0,0,0,0 //PR_STRECOVERY#Status Recovery#
4191,74,5,0,0,0,0,0,0,0,0,0,0 //PR_MAGNIFICAT#Magnificat#
4191,75,5,70,7,0,0,0,0,0,0,0,0 //PR_GLORIA#Gloria# 4191,75,5,70,7,0,0,0,0,0,0,0,0 //PR_GLORIA#Gloria#
4191,80,10,18,1,0,0,0,0,0,0,0,0 //WZ_FIREPILLAR#Fire Pillar# 4191,80,10,18,1,0,0,0,0,0,0,0,0 //WZ_FIREPILLAR#Fire Pillar#
4191,81,10,20,1,10,1,0,0,0,0,0,0 //WZ_SIGHTRASHER#Sightrasher# 4191,81,10,20,1,10,1,0,0,0,0,0,0 //WZ_SIGHTRASHER#Sightrasher#
4191,83,10,81,2,21,1,0,0,0,0,0,0 //WZ_METEOR#Meteor Storm#
4191,84,10,11,1,20,1,0,0,0,0,0,0 //WZ_JUPITEL#Jupiter Thunder# 4191,84,10,11,1,20,1,0,0,0,0,0,0 //WZ_JUPITEL#Jupiter Thunder#
4191,85,10,21,1,84,5,0,0,0,0,0,0 //WZ_VERMILION#Lord of Vermilion#
4191,86,5,14,1,20,1,0,0,0,0,0,0 //WZ_WATERBALL#Water Ball# 4191,86,5,14,1,20,1,0,0,0,0,0,0 //WZ_WATERBALL#Water Ball#
4191,87,10,16,1,15,1,0,0,0,0,0,0 //WZ_ICEWALL#Ice Wall# 4191,87,10,16,1,15,1,0,0,0,0,0,0 //WZ_ICEWALL#Ice Wall#
4191,88,10,87,1,0,0,0,0,0,0,0,0 //WZ_FROSTNOVA#Frost Nova# 4191,88,10,87,1,0,0,0,0,0,0,0,0 //WZ_FROSTNOVA#Frost Nova#
4191,89,10,15,1,84,3,0,0,0,0,0,0 //WZ_STORMGUST#Storm Gust#
4191,90,5,16,1,0,0,0,0,0,0,0,0 //WZ_EARTHSPIKE#Earth Spike# 4191,90,5,16,1,0,0,0,0,0,0,0,0 //WZ_EARTHSPIKE#Earth Spike#
4191,91,5,90,3,0,0,0,0,0,0,0,0 //WZ_HEAVENDRIVE#Heaven's Drive# 4191,91,5,90,3,0,0,0,0,0,0,0,0 //WZ_HEAVENDRIVE#Heaven's Drive#
4191,92,5,91,1,0,0,0,0,0,0,0,0 //WZ_QUAGMIRE#Quagmire# 4191,92,5,91,1,0,0,0,0,0,0,0,0 //WZ_QUAGMIRE#Quagmire#
4191,93,1,0,0,0,0,0,0,0,0,0,0 //WZ_ESTIMATION#Sense# 4191,93,1,0,0,0,0,0,0,0,0,0,0 //WZ_ESTIMATION#Sense#
4191,105,1,0,0,0,0,0,0,0,0,0,0 //BS_HILTBINDING#Hilt Binding# 4191,105,1,0,0,0,0,0,0,0,0,0,0 //BS_HILTBINDING#Hilt Binding#
4191,107,10,105,1,0,0,0,0,0,0,0,0 //BS_WEAPONRESEARCH#Weaponry Research# 4191,107,10,105,1,0,0,0,0,0,0,0,0 //BS_WEAPONRESEARCH#Weaponry Research#
4191,108,1,107,1,0,0,0,0,0,0,0,0 //BS_REPAIRWEAPON#Weapon Repair#
4191,115,5,0,0,0,0,0,0,0,0,0,0 //HT_SKIDTRAP#Skid Trap# 4191,115,5,0,0,0,0,0,0,0,0,0,0 //HT_SKIDTRAP#Skid Trap#
4191,119,5,120,1,0,0,0,0,0,0,0,0 //HT_SANDMAN#Sandman# 4191,116,5,0,0,0,0,0,0,0,0,0,0 //HT_LANDMINE#Land Mine#
4191,120,5,115,1,0,0,0,0,0,0,0,0 //HT_FLASHER#Flasher# 4191,126,10,0,0,0,0,0,0,0,0,0,0 //HT_BEASTBANE#Beast Bane#
4191,121,5,120,1,0,0,0,0,0,0,0,0 //HT_FREEZINGTRAP#Freezing Trap#
4191,138,10,52,1,0,0,0,0,0,0,0,0 //AS_ENCHANTPOISON#Enchant Poison# 4191,138,10,52,1,0,0,0,0,0,0,0,0 //AS_ENCHANTPOISON#Enchant Poison#
4191,139,10,138,3,0,0,0,0,0,0,0,0 //AS_POISONREACT#Poison React#
4191,140,10,138,5,0,0,0,0,0,0,0,0 //AS_VENOMDUST#Venom Dust#
4191,141,10,139,5,140,5,0,0,0,0,0,0 //AS_SPLASHER#Venom Splasher#
4191,210,10,50,1,0,0,0,0,0,0,0,0 //RG_SNATCHER#Gank#
4191,211,10,210,4,0,0,0,0,0,0,0,0 //RG_STEALCOIN#Mug#
4191,212,10,211,4,0,0,0,0,0,0,0,0 //RG_BACKSTAP#Back Stab#
4191,213,5,51,1,0,0,0,0,0,0,0,0 //RG_TUNNELDRIVE#Stalk# 4191,213,5,51,1,0,0,0,0,0,0,0,0 //RG_TUNNELDRIVE#Stalk#
4191,214,5,212,2,213,2,0,0,0,0,0,0 //RG_RAID#Sightless Raid#
4191,226,10,0,0,0,0,0,0,0,0,0,0 //AM_AXEMASTERY#Axe Mastery# 4191,226,10,0,0,0,0,0,0,0,0,0,0 //AM_AXEMASTERY#Axe Mastery#
4191,248,10,0,0,0,0,0,0,0,0,0,0 //CR_TRUST#Faith# 4191,248,10,0,0,0,0,0,0,0,0,0,0 //CR_TRUST#Faith#
4191,249,10,0,0,0,0,0,0,0,0,0,0 //CR_AUTOGUARD#Guard#
4191,250,5,249,5,0,0,0,0,0,0,0,0 //CR_SHIELDCHARGE#Smite#
4191,251,5,250,3,0,0,0,0,0,0,0,0 //CR_SHIELDBOOMERANG#Shield Boomerang#
4191,253,10,248,7,0,0,0,0,0,0,0,0 //CR_HOLYCROSS#Holy Cross# 4191,253,10,248,7,0,0,0,0,0,0,0,0 //CR_HOLYCROSS#Holy Cross#
4191,259,10,23,10,22,10,0,0,0,0,0,0 //MO_IRONHAND#Iron Fists# 4191,259,10,23,10,22,10,0,0,0,0,0,0 //MO_IRONHAND#Iron Fists#
4191,261,5,259,2,0,0,0,0,0,0,0,0 //MO_CALLSPIRITS#Summon Spirit Sphere# 4191,261,5,259,2,0,0,0,0,0,0,0,0 //MO_CALLSPIRITS#Summon Spirit Sphere#
4191,262,1,261,5,0,0,0,0,0,0,0,0 //MO_ABSORBSPIRITS#Absorb Spirit Sphere# 4191,262,1,261,5,0,0,0,0,0,0,0,0 //MO_ABSORBSPIRITS#Absorb Spirit Sphere#
4191,270,5,262,1,0,0,0,0,0,0,0,0 //MO_EXPLOSIONSPIRITS#Fury#
4191,365,1,9,1,0,0,0,0,0,0,0,0 //HW_MAGICCRASHER#Stave Crasher# 4191,365,1,9,1,0,0,0,0,0,0,0,0 //HW_MAGICCRASHER#Stave Crasher#
4191,401,1,261,5,262,1,270,5,0,0,0,0 //CH_SOULCOLLECT#Hyper Spirit Sphere#
4191,5075,5,0,0,0,0,0,0,0,0,0,0 //NV_BREAKTHROUGH#Break Through#
4191,5076,1,0,0,0,0,0,0,0,0,0,0 //NV_HELPANGEL#Help Angel#
4191,5077,5,0,0,0,0,0,0,0,0,0,0 //NV_TRANSCENDENCE#Transcendence#
4191,2535,1,41,1,0,0,0,0,0,0,0,0 //ALL_BUYING_STORE#Open Buying Store# 4191,2535,1,41,1,0,0,0,0,0,0,0,0 //ALL_BUYING_STORE#Open Buying Store#
4191,2544,1,0,0,0,0,0,0,0,0,0,0 //MC_CARTDECORATE#Cart Decorate# 4191,2544,1,0,0,0,0,0,0,0,0,0,0 //MC_CARTDECORATE#Cart Decorate#
4191,5065,1,0,0,0,0,0,0,0,0,0,0 //WE_CHEERUP#Cheer Up# 4191,5065,1,0,0,0,0,0,0,0,0,0,0 //WE_CHEERUP#Cheer Up#

View File

@ -0,0 +1,11 @@
-- HT_SANDMAN
UPDATE `char` c, `skill` s SET `c`.skill_point = `c`.skill_point + `s`.lv WHERE (`c`.class = 4190 OR `c`.class = 4191) AND `s`.id = 119 AND `c`.char_id = `s`.char_id;
DELETE FROM `skill` USING `skill`, `char` WHERE (`char`.class = 4190 OR `char`.class = 4191) AND `skill`.id = 119 AND `char`.char_id = `skill`.char_id;
-- HT_FLASHER
UPDATE `char` c, `skill` s SET `c`.skill_point = `c`.skill_point + `s`.lv WHERE (`c`.class = 4190 OR `c`.class = 4191) AND `s`.id = 120 AND `c`.char_id = `s`.char_id;
DELETE FROM `skill` USING `skill`, `char` WHERE (`char`.class = 4190 OR `char`.class = 4191) AND `skill`.id = 120 AND `char`.char_id = `skill`.char_id;
-- HT_FREEZINGTRAP
UPDATE `char` c, `skill` s SET `c`.skill_point = `c`.skill_point + `s`.lv WHERE (`c`.class = 4190 OR `c`.class = 4191) AND `s`.id = 121 AND `c`.char_id = `s`.char_id;
DELETE FROM `skill` USING `skill`, `char` WHERE (`char`.class = 4190 OR `char`.class = 4191) AND `skill`.id = 121 AND `char`.char_id = `skill`.char_id;

View File

@ -3112,6 +3112,13 @@ static void battle_calc_attack_masteries(struct Damage* wd, struct block_list *s
#endif #endif
} }
if (skill_id == NV_BREAKTHROUGH) {
ATK_ADD(wd->damage, wd->damage2, 15 * skill_lv + (skill_lv > 4 ? 25 : 0));
#ifdef RENEWAL
ATK_ADD(wd->masteryAtk, wd->masteryAtk2, 15 * skill_lv + (skill_lv > 4 ? 25 : 0));
#endif
}
switch(skill_id) { switch(skill_id) {
case RA_WUGDASH: case RA_WUGDASH:
case RA_WUGSTRIKE: case RA_WUGSTRIKE:

View File

@ -57,8 +57,8 @@ enum sc_type : int16;
#define ACHIEVEMENTLEVEL "AchievementLevel" #define ACHIEVEMENTLEVEL "AchievementLevel"
//Update this max as necessary. 55 is the value needed for Super Baby currently //Update this max as necessary. 55 is the value needed for Super Baby currently
//Raised to 85 since Expanded Super Baby needs it. //Raised to 105 since Expanded Super Baby needs it.
#define MAX_SKILL_TREE 85 #define MAX_SKILL_TREE 105
//Total number of classes (for data storage) //Total number of classes (for data storage)
#define CLASS_COUNT (JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC) #define CLASS_COUNT (JOB_MAX - JOB_NOVICE_HIGH + JOB_MAX_BASIC)

View File

@ -1578,6 +1578,7 @@
export_constant(SC_HELLS_PLANT); export_constant(SC_HELLS_PLANT);
export_constant(SC_INCREASE_MAXHP); export_constant(SC_INCREASE_MAXHP);
export_constant(SC_INCREASE_MAXSP); export_constant(SC_INCREASE_MAXSP);
export_constant(SC_HELPANGEL);
#ifdef RENEWAL #ifdef RENEWAL
export_constant(SC_EXTREMITYFIST2); export_constant(SC_EXTREMITYFIST2);
#endif #endif

View File

@ -595,27 +595,43 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk
if( (!heal || (target && target->type == BL_MER)) && skill_id != NPC_EVILLAND ) if( (!heal || (target && target->type == BL_MER)) && skill_id != NPC_EVILLAND )
hp >>= 1; hp >>= 1;
if (sd && ((skill = pc_checkskill(sd, SU_POWEROFSEA)) > 0)) { if (sd) {
if (pc_checkskill(sd, SU_POWEROFSEA) > 0) {
#ifdef RENEWAL #ifdef RENEWAL
hp_bonus += 10; hp_bonus += 10;
#else #else
hp += hp * 10 / 100; hp += hp * 10 / 100;
#endif #endif
if (pc_checkskill(sd, SU_TUNABELLY) == 5 && pc_checkskill(sd, SU_TUNAPARTY) == 5 && pc_checkskill(sd, SU_BUNCHOFSHRIMP) == 5 && pc_checkskill(sd, SU_FRESHSHRIMP) == 5) if (pc_checkskill(sd, SU_TUNABELLY) == 5 && pc_checkskill(sd, SU_TUNAPARTY) == 5 && pc_checkskill(sd, SU_BUNCHOFSHRIMP) == 5 && pc_checkskill(sd, SU_FRESHSHRIMP) == 5)
#ifdef RENEWAL #ifdef RENEWAL
hp_bonus += 20; hp_bonus += 20;
#else #else
hp += hp * 20 / 100; hp += hp * 20 / 100;
#endif #endif
} }
if (sd && (skill = pc_skillheal_bonus(sd, skill_id))) if ((skill = pc_checkskill(sd, NV_BREAKTHROUGH)) > 0)
#ifdef RENEWAL
hp_bonus += 2;
#else
hp += hp * skill * 2 / 100;
#endif
if ((skill = pc_checkskill(sd, NV_TRANSCENDENCE)) > 0)
#ifdef RENEWAL
hp_bonus += 3;
#else
hp += hp * skill * 3 / 100;
#endif
if (skill = pc_skillheal_bonus(sd, skill_id))
#ifdef RENEWAL #ifdef RENEWAL
hp_bonus += skill; hp_bonus += skill;
#else #else
hp += hp * skill / 100; hp += hp * skill / 100;
#endif #endif
}
if (tsd && (skill = pc_skillheal2_bonus(tsd, skill_id))) if (tsd && (skill = pc_skillheal2_bonus(tsd, skill_id)))
#ifdef RENEWAL #ifdef RENEWAL
@ -7690,6 +7706,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case CASH_INCAGI: case CASH_INCAGI:
case CASH_ASSUMPTIO: case CASH_ASSUMPTIO:
case WM_FRIGG_SONG: case WM_FRIGG_SONG:
case NV_HELPANGEL:
if( sd == NULL || sd->status.party_id == 0 || (flag & 1) ) if( sd == NULL || sd->status.party_id == 0 || (flag & 1) )
clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv))); clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
else if( sd ) else if( sd )

View File

@ -1957,6 +1957,10 @@ enum e_skill {
AB_VITUPERATUM = 5072, AB_VITUPERATUM = 5072,
AB_CONVENIO, AB_CONVENIO,
ALL_LIGHTNING_STORM,
NV_BREAKTHROUGH,
NV_HELPANGEL,
NV_TRANSCENDENCE,
HLIF_HEAL = 8001, HLIF_HEAL = 8001,
HLIF_AVOID, HLIF_AVOID,

View File

@ -1099,6 +1099,10 @@ void initChangeTables(void)
set_sc( SP_SOULREAPER , SC_SOULREAPER , EFST_SOULREAPER , SCB_NONE ); set_sc( SP_SOULREAPER , SC_SOULREAPER , EFST_SOULREAPER , SCB_NONE );
set_sc( SP_SOULCOLLECT , SC_SOULCOLLECT , EFST_SOULCOLLECT , SCB_NONE ); set_sc( SP_SOULCOLLECT , SC_SOULCOLLECT , EFST_SOULCOLLECT , SCB_NONE );
#ifdef RENEWAL
set_sc( NV_HELPANGEL , SC_HELPANGEL , EFST_HELPANGEL , SCB_NONE );
#endif
/* Storing the target job rather than simply SC_SPIRIT simplifies code later on */ /* Storing the target job rather than simply SC_SPIRIT simplifies code later on */
SkillStatusChangeTable[skill_get_index(SL_ALCHEMIST)] = (sc_type)MAPID_ALCHEMIST, SkillStatusChangeTable[skill_get_index(SL_ALCHEMIST)] = (sc_type)MAPID_ALCHEMIST,
SkillStatusChangeTable[skill_get_index(SL_MONK)] = (sc_type)MAPID_MONK, SkillStatusChangeTable[skill_get_index(SL_MONK)] = (sc_type)MAPID_MONK,
@ -3299,11 +3303,11 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) {
//Only for BL_PC //Only for BL_PC
if (bl->type == BL_PC) { if (bl->type == BL_PC) {
struct map_session_data *sd = map_id2sd(bl->id); struct map_session_data *sd = map_id2sd(bl->id);
uint8 i; uint16 skill_lv;
bonus += sd->bonus.hp; bonus += sd->bonus.hp;
if ((i = pc_checkskill(sd,CR_TRUST)) > 0) if ((skill_lv = pc_checkskill(sd,CR_TRUST)) > 0)
bonus += i * 200; bonus += skill_lv * 200;
if (pc_checkskill(sd,SU_SPRITEMABLE) > 0) if (pc_checkskill(sd,SU_SPRITEMABLE) > 0)
bonus += 1000; bonus += 1000;
if (pc_checkskill(sd, SU_POWEROFSEA) > 0) { if (pc_checkskill(sd, SU_POWEROFSEA) > 0) {
@ -3312,6 +3316,10 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) {
pc_checkskill(sd, SU_GROOMING) + pc_checkskill(sd, SU_PURRING) + pc_checkskill(sd, SU_SHRIMPARTY)) > 19) pc_checkskill(sd, SU_GROOMING) + pc_checkskill(sd, SU_PURRING) + pc_checkskill(sd, SU_SHRIMPARTY)) > 19)
bonus += 2000; bonus += 2000;
} }
if ((skill_lv = pc_checkskill(sd, NV_BREAKTHROUGH)) > 0)
bonus += 350 * skill_lv + (skill_lv > 4 ? 250 : 0);
if ((skill_lv = pc_checkskill(sd, NV_TRANSCENDENCE)) > 0)
bonus += 350 * skill_lv + (skill_lv > 4 ? 250 : 0);
#ifndef HP_SP_TABLES #ifndef HP_SP_TABLES
if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 99) if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 99)
bonus += 2000; // Supernovice lvl99 hp bonus. bonus += 2000; // Supernovice lvl99 hp bonus.
@ -3467,15 +3475,15 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) {
//Only for BL_PC //Only for BL_PC
if (bl->type == BL_PC) { if (bl->type == BL_PC) {
struct map_session_data *sd = map_id2sd(bl->id); struct map_session_data *sd = map_id2sd(bl->id);
uint8 i; uint16 skill_lv;
bonus += sd->bonus.sp; bonus += sd->bonus.sp;
if ((i = pc_checkskill(sd,SL_KAINA)) > 0) if ((skill_lv = pc_checkskill(sd,SL_KAINA)) > 0)
bonus += 30 * i; bonus += 30 * skill_lv;
if ((i = pc_checkskill(sd,RA_RESEARCHTRAP)) > 0) if ((skill_lv = pc_checkskill(sd,RA_RESEARCHTRAP)) > 0)
bonus += 200 + 20 * i; bonus += 200 + 20 * skill_lv;
if ((i = pc_checkskill(sd,WM_LESSON)) > 0) if ((skill_lv = pc_checkskill(sd,WM_LESSON)) > 0)
bonus += 30 * i; bonus += 30 * skill_lv;
if (pc_checkskill(sd,SU_SPRITEMABLE) > 0) if (pc_checkskill(sd,SU_SPRITEMABLE) > 0)
bonus += 100; bonus += 100;
if (pc_checkskill(sd, SU_POWEROFSEA) > 0) { if (pc_checkskill(sd, SU_POWEROFSEA) > 0) {
@ -3484,6 +3492,10 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) {
pc_checkskill(sd, SU_GROOMING) + pc_checkskill(sd, SU_PURRING) + pc_checkskill(sd, SU_SHRIMPARTY)) > 19) pc_checkskill(sd, SU_GROOMING) + pc_checkskill(sd, SU_PURRING) + pc_checkskill(sd, SU_SHRIMPARTY)) > 19)
bonus += 200; bonus += 200;
} }
if ((skill_lv = pc_checkskill(sd, NV_BREAKTHROUGH)) > 0)
bonus += 30 * skill_lv + (skill_lv > 4 ? 50 : 0);
if ((skill_lv = pc_checkskill(sd, NV_TRANSCENDENCE)) > 0)
bonus += 30 * skill_lv + (skill_lv > 4 ? 50 : 0);
} }
//Bonus by SC //Bonus by SC
@ -5572,6 +5584,8 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
// Any +MATK you get from skills and cards, including cards in weapon, is added here. // Any +MATK you get from skills and cards, including cards in weapon, is added here.
if (sd) { if (sd) {
uint16 skill_lv;
if (sd->bonus.ematk > 0) if (sd->bonus.ematk > 0)
status->matk_min += sd->bonus.ematk; status->matk_min += sd->bonus.ematk;
if (pc_checkskill(sd, SU_POWEROFLAND) > 0) { if (pc_checkskill(sd, SU_POWEROFLAND) > 0) {
@ -5579,6 +5593,8 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag)
pc_checkskill(sd, SU_CHATTERING) + pc_checkskill(sd, SU_MEOWMEOW) + pc_checkskill(sd, SU_NYANGGRASS)) > 19) pc_checkskill(sd, SU_CHATTERING) + pc_checkskill(sd, SU_MEOWMEOW) + pc_checkskill(sd, SU_NYANGGRASS)) > 19)
status->matk_min += status->matk_min * 20 / 100; status->matk_min += status->matk_min * 20 / 100;
} }
if ((skill_lv = pc_checkskill(sd, NV_TRANSCENDENCE)) > 0)
status->matk_min += 15 * skill_lv + (skill_lv > 4 ? 25 : 0);
} }
status->matk_min = status_calc_ematk(bl, sc, status->matk_min); status->matk_min = status_calc_ematk(bl, sc, status->matk_min);
@ -11958,6 +11974,10 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
val1 = 15; // Heal Power rate bonus val1 = 15; // Heal Power rate bonus
val2 = 30; // SP Recovery rate bonus val2 = 30; // SP Recovery rate bonus
break; break;
case SC_HELPANGEL:
tick_time = 1000;
val4 = tick / tick_time;
break;
case SC_SUNSTANCE: case SC_SUNSTANCE:
val2 = 2 + val1; // ATK Increase val2 = 2 + val1; // ATK Increase
@ -14657,6 +14677,13 @@ TIMER_FUNC(status_change_timer){
return 0; return 0;
} }
break; break;
case SC_HELPANGEL:
if (--(sce->val4) >= 0) {
status_heal(bl, 1000, 350, 2);
sc_timer_next(1000 + tick);
return 0;
}
break;
} }
// If status has an interval and there is at least 100ms remaining time, wait for next interval // If status has an interval and there is at least 100ms remaining time, wait for next interval

View File

@ -924,6 +924,8 @@ enum sc_type : int16 {
SC_INCREASE_MAXHP, // EFST_ATKER_ASPD SC_INCREASE_MAXHP, // EFST_ATKER_ASPD
SC_INCREASE_MAXSP, // EFST_ATKER_MOVESPEED SC_INCREASE_MAXSP, // EFST_ATKER_MOVESPEED
SC_HELPANGEL,
#ifdef RENEWAL #ifdef RENEWAL
SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled
#endif #endif