Index: mobskills/Mind_Break.lua =================================================================== --- mobskills/Mind_Break.lua (revision 0) +++ mobskills/Mind_Break.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------- +-- Mind Break +-- +-- Description: Reduces maximum MP in an area of effect. +-- Type: Enfeebling +-- Utsusemi/Blink absorb: Ignores shadows +-- Range: 15' radial +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local message = MSG_MISS; + local typeEffect = EFFECT_MAX_MP_DOWN; + if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); + if(resist > 0.1) then + message = MSG_ENFEEB_IS; + target:addStatusEffect(typeEffect,42,0,120);--power=30;tic=0;duration=120; + end + else + message = MSG_NO_EFFECT; + end + skill:setMsg(message); + return typeEffect; +end; Index: mobskills/Great_Sandstorm.lua =================================================================== --- mobskills/Great_Sandstorm.lua (revision 2261) +++ mobskills/Great_Sandstorm.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then local power = math.random(5,8); target:addStatusEffect(typeEffect,power,0,60);--tic=0;duration=60; end Index: mobskills/Level_5_Petrify.lua =================================================================== --- mobskills/Level_5_Petrify.lua (revision 0) +++ mobskills/Level_5_Petrify.lua (revision 0) @@ -0,0 +1,29 @@ +--------------------------------------------- +-- Level 5 Petrify +-- +-- Description: AOE Petrify and on multiples of 5. +-- Type: Physical +-- Utsusemi/Blink absorb: Ignore +-- Range: 15' radial +-- Notes: +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_PETRIFICATION; + if(target:getMainLvl()%5 == 0 and target:hasStatusEffect(typeEffect) == false) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,1,0,math.random(10,15));--power=1;tic=0;duration=5; + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + + return typeEffect; +end; Index: mobskills/Lethe_Arrows.lua =================================================================== --- mobskills/Lethe_Arrows.lua (revision 2261) +++ mobskills/Lethe_Arrows.lua (working copy) @@ -24,7 +24,7 @@ local statmod = MOD_INT; if(target:hasStatusEffect(typeEffect) == false) then local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; end end @@ -33,7 +33,7 @@ if(target:hasStatusEffect(typeEffect) == false) then --statmod = MOD_INT; resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,1); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; end end Index: mobskills/Soul_Drain.lua =================================================================== --- mobskills/Soul_Drain.lua (revision 2261) +++ mobskills/Soul_Drain.lua (working copy) @@ -17,11 +17,17 @@ end; function OnMobWeaponSkill(target, mob, skill) - local dmgmod = 1; + local dmgmod = math.random(1,2); local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*4,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_1_SHADOW); - target:delHP(dmg); - mob:addHP(dmg); + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + return dmg; end; Index: mobskills/Horror_Cloud.lua =================================================================== --- mobskills/Horror_Cloud.lua (revision 2261) +++ mobskills/Horror_Cloud.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.1) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,35,0,60);--power=35;tic=0;duration=60; end Index: mobskills/Plague_Breath.lua =================================================================== --- mobskills/Plague_Breath.lua (revision 0) +++ mobskills/Plague_Breath.lua (revision 0) @@ -0,0 +1,34 @@ +--------------------------------------------- +-- Plague Breath +-- +-- Description: Deals water damage to enemies within a fan-shaped area originating from the caster. Additional effect: Poison. +-- Type: Magical Water (Element) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_POISON; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.2) then + target:addStatusEffect(typeEffect,3,3,30);--tic=3;duration=30; + end + end + + local dmgmod = mob:getHP() / mob:getMaxHP(); + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*4,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Roar.lua =================================================================== --- mobskills/Roar.lua (revision 2261) +++ mobskills/Roar.lua (working copy) @@ -22,9 +22,9 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.4) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; - target:addStatusEffect(typeEffect,35,0,60);--power=35;tic=0;duration=60; + target:addStatusEffect(typeEffect,35,0,45);--power=35;tic=0;duration=60; end else message = MSG_NO_EFFECT; Index: mobskills/Ice_Break.lua =================================================================== --- mobskills/Ice_Break.lua (revision 2261) +++ mobskills/Ice_Break.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60); end end Index: mobskills/Rhino_Attack.lua =================================================================== --- mobskills/Rhino_Attack.lua (revision 2261) +++ mobskills/Rhino_Attack.lua (working copy) @@ -20,7 +20,7 @@ local numhits = 1; local accmod = 1; - local dmgmod = 2.3; + local dmgmod = 2.5; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,MOBPARAM_1_SHADOW); target:delHP(dmg); Index: mobskills/Abyss_Blast.lua =================================================================== --- mobskills/Abyss_Blast.lua (revision 2261) +++ mobskills/Abyss_Blast.lua (working copy) @@ -23,12 +23,12 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,50,0,60);--power=50;tic=0;duration=60; end end - local dmgmod = 2; + local dmgmod = 1.3; local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); Index: mobskills/Bilgestorm.lua =================================================================== --- mobskills/Bilgestorm.lua (revision 2261) +++ mobskills/Bilgestorm.lua (working copy) @@ -24,7 +24,7 @@ local resist = 1; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,power,0,60);--tic=0;duration=60; end end @@ -32,7 +32,7 @@ typeEffect = EFFECT_ATTACK_DOWN; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,power,0,60);--tic=0;duration=60; end end @@ -40,7 +40,7 @@ typeEffect = EFFECT_DEFENSE_DOWN; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,power,0,60);--tic=0;duration=60; end end Index: mobskills/Howl.lua =================================================================== --- mobskills/Howl.lua (revision 2261) +++ mobskills/Howl.lua (working copy) @@ -18,8 +18,8 @@ end; function OnMobWeaponSkill(target, mob, skill) - local power = 1; - local duration = 240; + local power = 25; + local duration = 180; local typeEffect = EFFECT_WARCRY; skill:setMsg(MSG_BUFF); Index: mobskills/Crosswind.lua =================================================================== --- mobskills/Crosswind.lua (revision 2261) +++ mobskills/Crosswind.lua (working copy) @@ -19,7 +19,7 @@ function OnMobWeaponSkill(target, mob, skill) local dmgmod = 1; local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*1.5,accmod,dmgmod,TP_NO_EFFECT); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WIND,MOBPARAM_IGNORE_SHADOWS); target:delHP(dmg); return dmg; Index: mobskills/Dispelling_Wind.lua =================================================================== --- mobskills/Dispelling_Wind.lua (revision 2261) +++ mobskills/Dispelling_Wind.lua (working copy) @@ -19,6 +19,7 @@ function OnMobWeaponSkill(target, mob, skill) - -- DISPEL + target:dispelStatusEffect(); + return target:dispelStatusEffect(); end; \ No newline at end of file Index: mobskills/Jump.lua =================================================================== --- mobskills/Jump.lua (revision 0) +++ mobskills/Jump.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------------- +-- Jump +-- Jumping Attack, only used by dragoo orcs. +-- 100% TP: ??? / 200% TP: ??? / 300% TP: ??? +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + if(mob:getMainJob() == JOB_DRG) then + return 0; + end + return 1; +end; + +function OnMobWeaponSkill(target, mob, skill) + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(2.5,3.5); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/MP_Absorption.lua =================================================================== --- mobskills/MP_Absorption.lua (revision 0) +++ mobskills/MP_Absorption.lua (revision 0) @@ -0,0 +1,47 @@ +--------------------------------------------------- +-- MP Absorption +-- Single target MP Drain. (Ignores shadows.) +-- Type: Magical +-- Range: Melee +-- Notes: If used against undead, it will simply do damage and not drain HP. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + if(target:getMP() > 0) then + return 0; + end + return 1; +end; + +function OnMobWeaponSkill(target, mob, skill) + + local dmgmod = 1; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_MAB_BONUS,1); + + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + + + skill:setMsg(MSG_DRAIN_MP); + + if(target:isUndead() == false) then + + -- can't go over limited mp + if(target:getMP() < dmg) then + dmg = target:getMP(); + end + + target:delMP(dmg); + mob:addMP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + + return dmg; +end; Index: mobskills/Infrasonics.lua =================================================================== --- mobskills/Infrasonics.lua (revision 2261) +++ mobskills/Infrasonics.lua (working copy) @@ -14,16 +14,16 @@ end; function OnMobWeaponSkill(target, mob, skill) - + isEnfeeble = true; typeEffect = EFFECT_EVASION_DOWN; statmod = MOD_INT; resist = 1;--applyPlayerResistance(mob,skill,target,isEnfeeble,typeEffect,statmod); - if(resist > 0.5) then + if(resist > 0.2) then if(target:getStatusEffect(EFFECT_EVASION_DOWN) == nil) then target:addStatusEffect(EFFECT_EVASION_DOWN,50,0,180); -- 50% end end - + end \ No newline at end of file Index: mobskills/Leaf_Dagger.lua =================================================================== --- mobskills/Leaf_Dagger.lua (revision 2261) +++ mobskills/Leaf_Dagger.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then local power = (mob:getMainLvl()/10); if (power < 1 ) then power = 1; @@ -32,7 +32,7 @@ local numhits = 2; local accmod = 1; - local dmgmod = 1.6; + local dmgmod = 1.8; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,info.hitslanded); target:delHP(dmg); Index: mobskills/Jumping_Thrust.lua =================================================================== --- mobskills/Jumping_Thrust.lua (revision 0) +++ mobskills/Jumping_Thrust.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------------- +-- Jumping Thrust +-- Jumping Attack, only used by dragoons +-- 100% TP: ??? / 200% TP: ??? / 300% TP: ??? +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + if(mob:getMainJob() == JOB_DRG) then + return 0; + end + return 1; +end; + +function OnMobWeaponSkill(target, mob, skill) + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(2.5,3.5); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Tusk.lua =================================================================== --- mobskills/Tusk.lua (revision 0) +++ mobskills/Tusk.lua (revision 0) @@ -0,0 +1,25 @@ +--------------------------------------------------- +-- Tusk +-- Deals damage to a single target. Additional effect: Knockback +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(1.8, 3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Intimidate.lua =================================================================== --- mobskills/Intimidate.lua (revision 0) +++ mobskills/Intimidate.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------------- +-- Intimidate +-- Inflicts slow on targets in a fan-shaped area of effect. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_SLOW; + if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then + target:delStatusEffect(EFFECT_HASTE) + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); + if(resist > 0.2) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,30,0,120); -- 30% ? + else + skill:setMsg(MSG_MISS); -- resist ! + end + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + return typeEffect; +end; Index: mobskills/Asthenic_Fog.lua =================================================================== --- mobskills/Asthenic_Fog.lua (revision 2261) +++ mobskills/Asthenic_Fog.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,15,3,120);--power=15;tic=3;duration=120; end Index: mobskills/Dark_Spore.lua =================================================================== --- mobskills/Dark_Spore.lua (revision 0) +++ mobskills/Dark_Spore.lua (revision 0) @@ -0,0 +1,38 @@ +--------------------------------------------- +-- Dark Spore +-- +-- Description: Unleashes a torrent of black spores in a fan-shaped area of effect, dealing dark damage to targets. Additional effect: Blind +-- Type: Magical Dark (Element) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_BLIND; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,25,0,120);--tic=3;duration=30; + end + end + + local dmgmod = mob:getHP() / mob:getMaxHP() * (mob:getMainLvl()/8); + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*math.random(2,2.5),accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + + if(dmg > 500) then + dmg = dmg * 0.7; + end + target:delHP(dmg); + return dmg; +end; Index: mobskills/Acid_Mist.lua =================================================================== --- mobskills/Acid_Mist.lua (revision 2261) +++ mobskills/Acid_Mist.lua (working copy) @@ -1,6 +1,6 @@ --------------------------------------------------- -- Acid Mist --- Deals Water damage to enemies within an area of effect. Additional effect: Attack Down +-- Deals Water damage to enemies within an area of effect. Additional effect: Attack Down --------------------------------------------------- require("/scripts/globals/settings"); @@ -18,14 +18,14 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,50,0,90); --power=50;tic=0;duration=90; end end - + local dmgmod = 1.5; local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 3,accmod,dmgmod,TP_MAB_BONUS,1); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 2,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_WIPE_SHADOWS); target:delHP(dmg); return dmg; Index: mobskills/Sonic_Wave.lua =================================================================== --- mobskills/Sonic_Wave.lua (revision 2261) +++ mobskills/Sonic_Wave.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,30,0,120);--power=30;tic=0;duration=120; else Index: mobskills/Death_Ray.lua =================================================================== --- mobskills/Death_Ray.lua (revision 2261) +++ mobskills/Death_Ray.lua (working copy) @@ -15,7 +15,7 @@ end; function OnMobWeaponSkill(target, mob, skill) - local dmgmod = 2.3; + local dmgmod = 1.5; local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); Index: mobskills/Fluid_Spread.lua =================================================================== --- mobskills/Fluid_Spread.lua (revision 2261) +++ mobskills/Fluid_Spread.lua (working copy) @@ -18,7 +18,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = math.random(2,3); local accmod = 1; - local dmgmod = 1; + local dmgmod = .7; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); target:delHP(dmg); Index: mobskills/Dark_Wave.lua =================================================================== --- mobskills/Dark_Wave.lua (revision 2261) +++ mobskills/Dark_Wave.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then local cTime = VanadielHour(); if(12 <= cTime) then local power = 8 + (cTime - 11); Index: mobskills/Magnetite_Cloud.lua =================================================================== --- mobskills/Magnetite_Cloud.lua (revision 2261) +++ mobskills/Magnetite_Cloud.lua (working copy) @@ -18,14 +18,14 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,30,0,180); -- Not sure if it works correctly end end - local dmgmod = 1; + local dmgmod = math.random(2, 3); local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 3,accmod,dmgmod,TP_MAB_BONUS,1); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 2.5,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_EARTH,MOBPARAM_WIPE_SHADOWS); target:delHP(dmg); return dmg; Index: mobskills/Uppercut.lua =================================================================== --- mobskills/Uppercut.lua (revision 0) +++ mobskills/Uppercut.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------------- +-- Uppercut +-- Deals damage to a single target. +-- Type: Physical +-- Can be dispelled: N/A +-- Utsusemi/Blink absorb: 1 shadow +-- Range: Melee +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local numhits = 1; + local accmod = 1; + local dmgmod = 2; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Rime_Spray.lua =================================================================== --- mobskills/Rime_Spray.lua (revision 2261) +++ mobskills/Rime_Spray.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(EFFECT_FROST,15,3,120);--power=15;tic=3;duration=120; end end Index: mobskills/Claw_Storm.lua =================================================================== --- mobskills/Claw_Storm.lua (revision 2241) +++ mobskills/Claw_Storm.lua (working copy) @@ -0,0 +1,36 @@ +--------------------------------------------- +-- Claw Storm +-- +-- Description: Slashes a single target in a threefold attack. Additional effect: Poison +-- Type: Physical +-- Utsusemi/Blink absorb: 1 shadow +-- Range: Melee +-- Notes: +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_POISON; + if(target:hasStatusEffect(typeEffect) == false) + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.2) then + target:addStatusEffect(typeEffect,7,3,30);--tic=3;duration=18; + end + end + + local numhits = 3; + local accmod = 1; + local dmgmod = 1; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Scream.lua =================================================================== --- mobskills/Scream.lua (revision 0) +++ mobskills/Scream.lua (revision 0) @@ -0,0 +1,31 @@ +--------------------------------------------------- +-- Scream +-- 15' Reduces MND of players in area of effect. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_MND_DOWN; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); + if(resist > 0.2) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,50,0,120); + else + skill:setMsg(MSG_MISS); -- resist ! + end + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + return typeEffect; +end; Index: mobskills/Sweet_Breath.lua =================================================================== --- mobskills/Sweet_Breath.lua (revision 0) +++ mobskills/Sweet_Breath.lua (revision 0) @@ -0,0 +1,35 @@ +--------------------------------------------- +-- Poison Breath +-- +-- Description: Deals water damage to enemies within a fan-shaped area originating from the caster. Additional effect: Poison. +-- Type: Magical Water (Element) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + -- local typeEffect = EFFECT_SLEEP; + -- if(target:hasStatusEffect(typeEffect) == false) then + -- local statmod = MOD_INT; + -- local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + -- if(resist > 0.2) then + -- local power = mob:getHP()/100; + -- target:addStatusEffect(typeEffect,power,3,30);--tic=3;duration=30; + -- end + -- end + + local dmgmod = mob:getHP() / mob:getMaxHP() * 2; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3.5,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Sand_Shield.lua =================================================================== --- mobskills/Sand_Shield.lua (revision 0) +++ mobskills/Sand_Shield.lua (revision 0) @@ -0,0 +1,23 @@ +--------------------------------------------------- +-- Sand Shield +-- Enhances defense. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + skill:setMsg(MSG_BUFF); + local typeEffect = EFFECT_DEFENSE_BOOST; + mob:delStatusEffect(EFFECT_DEFENSE_DOWN); + mob:delStatusEffect(typeEffect); + mob:addStatusEffect(typeEffect,50,0,60); + return typeEffect; +end; Index: mobskills/Viscid_Nectar.lua =================================================================== --- mobskills/Viscid_Nectar.lua (revision 2261) +++ mobskills/Viscid_Nectar.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,30,0,120);--power=30;tic=0;duration=120; else Index: mobskills/Cross_Attack.lua =================================================================== --- mobskills/Cross_Attack.lua (revision 0) +++ mobskills/Cross_Attack.lua (revision 0) @@ -0,0 +1,25 @@ +--------------------------------------------------- +-- Cross Attack +-- Single target attack, 2-hits. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + -- Needs Knockback added + local numhits = 2; + local accmod = 1; + local dmgmod = math.random(1,3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_2_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Spiral_Spin.lua =================================================================== --- mobskills/Spiral_Spin.lua (revision 2261) +++ mobskills/Spiral_Spin.lua (working copy) @@ -20,19 +20,19 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then local mobTP = mob:getTP(); - if(mobTP <= 100) then + if(mobTP <= 100) then local accDownTime = 30; - elseif(mobTP <= 200) then + elseif(mobTP <= 200) then local accDownTime = 60; - else - local accDownTime = 90; + else + local accDownTime = 90; end target:addStatusEffect(typeEffect,50,0,accDownTime); end end - + local numhits = 1; local accmod = 2; local dmgmod = 3; Index: mobskills/Call_of_the_Grave.lua =================================================================== --- mobskills/Call_of_the_Grave.lua (revision 2261) +++ mobskills/Call_of_the_Grave.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,1); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,50,0,180);--power=50;tic=0;duration=180; else Index: mobskills/Hard_Membrane.lua =================================================================== --- mobskills/Hard_Membrane.lua (revision 0) +++ mobskills/Hard_Membrane.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------- +-- Hard Membrane +-- +-- Description: Enhances evasion. +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes: Very sharp evasion increase. +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_EVASION_BOOST; + if(mob:hasStatusEffect(typeEffect) == true) then + skill:setMsg(MSG_NO_EFFECT); + else + mob:addStatusEffect(typeEffect,25,0,60);--power=25;tic=0;duration=60; + skill:setMsg(MSG_BUFF); + end + return typeEffect; +end; Index: mobskills/Dread_Dive.lua =================================================================== --- mobskills/Dread_Dive.lua (revision 2261) +++ mobskills/Dread_Dive.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,6);--power=1;tic=0;duration=6; end end Index: mobskills/Spoil.lua =================================================================== --- mobskills/Spoil.lua (revision 0) +++ mobskills/Spoil.lua (revision 0) @@ -0,0 +1,34 @@ +--------------------------------------------- +-- Spoil +-- +-- Description: Lowers the strength of target. +-- Type: Enhancing +-- Utsusemi/Blink absorb: Ignore +-- Range: Self +-- Notes: Very sharp evasion increase. +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local message = MSG_MISS; + local typeEffect = EFFECT_STR_DOWN; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); + if(resist > 0.2) then + message = MSG_ENFEEB_IS; + target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; + end + else + message = MSG_NO_EFFECT; + end + skill:setMsg(message); + return typeEffect; +end; Index: mobskills/Rock_Smash.lua =================================================================== --- mobskills/Rock_Smash.lua (revision 2261) +++ mobskills/Rock_Smash.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Arm_Block.lua =================================================================== --- mobskills/Arm_Block.lua (revision 0) +++ mobskills/Arm_Block.lua (revision 0) @@ -0,0 +1,23 @@ +--------------------------------------------------- +-- Arm Block +-- Enhances defense. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + skill:setMsg(MSG_BUFF); + local typeEffect = EFFECT_DEFENSE_BOOST; + mob:delStatusEffect(EFFECT_DEFENSE_DOWN); + mob:delStatusEffect(typeEffect); + mob:addStatusEffect(typeEffect,15,0,900); + return typeEffect; +end; Index: mobskills/TP_Drainkiss.lua =================================================================== --- mobskills/TP_Drainkiss.lua (revision 0) +++ mobskills/TP_Drainkiss.lua (revision 0) @@ -0,0 +1,46 @@ +--------------------------------------------------- +-- Drainkiss +-- Deals dark damage to a single target. Additional effect: TP Drain +-- Type: Magical +-- Utsusemi/Blink absorb: 1 shadow +-- Range: Melee +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + if(target:getTP() >= 50) then + return 0; + end + return 1; +end; + +function OnMobWeaponSkill(target, mob, skill) + + local dmgmod = 1; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + + + skill:setMsg(MSG_DRAIN_TP); + + if(target:isUndead() == false) then + -- can't go over limited mp + if(target:getTP() < dmg) then + dmg = target:getTP(); + end + + target:delTP(dmg); + mob:addTP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + + + return dmg; +end; Index: mobskills/Shadow_Claw.lua =================================================================== --- mobskills/Shadow_Claw.lua (revision 0) +++ mobskills/Shadow_Claw.lua (revision 0) @@ -0,0 +1,33 @@ +--------------------------------------------------- +-- Shadow Claw +-- Deals damage to a single target. Additional effect: Blindness +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_BLIND; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,20,0,120);--tic=3;duration=30; + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(1.5,2.5); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Blindeye.lua =================================================================== --- mobskills/Blindeye.lua (revision 2261) +++ mobskills/Blindeye.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.3) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,8,0,60);--power=8;tic=0;duration=60; end end Index: mobskills/Gates_of_Hades.lua =================================================================== --- mobskills/Gates_of_Hades.lua (revision 2261) +++ mobskills/Gates_of_Hades.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,1); - if(resist > 0.5) then + if(resist > 0.2) then if(resist >= 1) then -- Added just incase resist number retuns a value higher then .9. resist = .9; end Index: mobskills/Helldive.lua =================================================================== --- mobskills/Helldive.lua (revision 2261) +++ mobskills/Helldive.lua (working copy) @@ -18,7 +18,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 1; local accmod = 1; - local dmgmod = 3; + local dmgmod = math.random(2,3); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); target:delHP(dmg); Index: mobskills/Shell_Bash.lua =================================================================== --- mobskills/Shell_Bash.lua (revision 2261) +++ mobskills/Shell_Bash.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,5);--power=1;tic=0;duration=5; end end Index: mobskills/Body_Slam.lua =================================================================== --- mobskills/Body_Slam.lua (revision 2261) +++ mobskills/Body_Slam.lua (working copy) @@ -3,8 +3,8 @@ -- -- Description: Delivers an area attack. Damage varies with TP. -- Type: Physical (Blunt) --- --- +-- +-- --------------------------------------------- require("/scripts/globals/settings"); require("/scripts/globals/status"); @@ -18,7 +18,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 1; local accmod = 1; - local dmgmod = 1; + local dmgmod = 1.6; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); target:delHP(dmg); Index: mobskills/Infernal_Pestilence.lua =================================================================== --- mobskills/Infernal_Pestilence.lua (revision 2261) +++ mobskills/Infernal_Pestilence.lua (working copy) @@ -19,6 +19,21 @@ end; function OnMobWeaponSkill(target, mob, skill) + + local typeEffect = EFFECT_DISEASE; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); + if(resist > 0.2) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; + else + skill:setMsg(MSG_MISS); + end + else + skill:setMsg(MSG_NO_EFFECT); + end + local dmgmod = 1; local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); Index: mobskills/Fluid_Toss.lua =================================================================== --- mobskills/Fluid_Toss.lua (revision 2261) +++ mobskills/Fluid_Toss.lua (working copy) @@ -24,7 +24,7 @@ local numhits = 1; local accmod = 1; - local dmgmod = 2.2; + local dmgmod = math.random(2,3); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_1_SHADOW); target:delHP(dmg); Index: mobskills/Sand_Trap.lua =================================================================== --- mobskills/Sand_Trap.lua (revision 0) +++ mobskills/Sand_Trap.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------- +-- Sand Trap +-- +-- Description: AOE Petrify and resets hate. +-- Type: Physical +-- Utsusemi/Blink absorb: Ignore +-- Range: 15' radial +-- Notes: +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_PETRIFICATION; + if(target:hasStatusEffect(typeEffect) == false) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,1,0,math.random(10,15));--power=1;tic=0;duration=5; + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + + -- reset everyones enmity + mob:resetEnmity(target); + + return typeEffect; +end; Index: mobskills/Frost_Breath.lua =================================================================== --- mobskills/Frost_Breath.lua (revision 2261) +++ mobskills/Frost_Breath.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then --Let's first see if it's worth the time to do this math, since there's no messages to handle local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,25,0,30);--power=25;tic=0;duration=30; end end Index: mobskills/Gorgon_Dance.lua =================================================================== --- mobskills/Gorgon_Dance.lua (revision 2261) +++ mobskills/Gorgon_Dance.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; else Index: mobskills/Spore.lua =================================================================== --- mobskills/Spore.lua (revision 2261) +++ mobskills/Spore.lua (working copy) @@ -21,9 +21,9 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); - target:addStatusEffect(typeEffect,30,0,540); -- 30% ? --power=30;tic=0;duration=540; + target:addStatusEffect(typeEffect,25,0,120); -- 30% ? --power=30;tic=0;duration=540; else skill:setMsg(MSG_MISS); -- resist ! end Index: mobskills/Drop_Hammer.lua =================================================================== --- mobskills/Drop_Hammer.lua (revision 2261) +++ mobskills/Drop_Hammer.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; end end Index: mobskills/Entangle.lua =================================================================== --- mobskills/Entangle.lua (revision 2261) +++ mobskills/Entangle.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,1,0,30);--power=1;tic=0;duration=30; end Index: mobskills/Delta_Thrust.lua =================================================================== --- mobskills/Delta_Thrust.lua (revision 2261) +++ mobskills/Delta_Thrust.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,300);--power=1;tic=0;duration=300; end end Index: mobskills/Vertical_Slash.lua =================================================================== --- mobskills/Vertical_Slash.lua (revision 2261) +++ mobskills/Vertical_Slash.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; else Index: mobskills/Tidal_Dive.lua =================================================================== --- mobskills/Tidal_Dive.lua (revision 2261) +++ mobskills/Tidal_Dive.lua (working copy) @@ -23,7 +23,7 @@ local resist = 0 if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then duration = skill:getTP()/100 * math.random(3,5) + 18; target:addStatusEffect(typeEffect,1,0,duration);--power=1;tic=0; end @@ -32,7 +32,7 @@ typeEffect = EFFECT_WEIGHT; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then duration = skill:getTP()/100 * math.random(3,5) + 18; target:addStatusEffect(typeEffect,1,0,duration);--power=1;tic=0; end Index: mobskills/Hurricane_Wing.lua =================================================================== --- mobskills/Hurricane_Wing.lua (revision 2261) +++ mobskills/Hurricane_Wing.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,60,0,20); end end Index: mobskills/Vampiric_Root.lua =================================================================== --- mobskills/Vampiric_Root.lua (revision 0) +++ mobskills/Vampiric_Root.lua (revision 0) @@ -0,0 +1,35 @@ +--------------------------------------------------- +-- Vampiric Root +-- Deals dark damage to a single target. Additional effect: Drain +-- Type: Magical +-- Utsusemi/Blink absorb: 1 shadow +-- Range: Melee +-- Notes: If used against undead, it will simply do damage and not drain HP. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + + local dmgmod = 1.4; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_1_SHADOW); + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + + return dmg; +end; Index: mobskills/Digest.lua =================================================================== --- mobskills/Digest.lua (revision 0) +++ mobskills/Digest.lua (revision 0) @@ -0,0 +1,35 @@ +--------------------------------------------------- +-- Drainkiss +-- Deals dark damage to a single target. Additional effect: Drain +-- Type: Magical +-- Utsusemi/Blink absorb: 1 shadow +-- Range: Melee +-- Notes: If used against undead, it will simply do damage and not drain HP. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + + local dmgmod = 2; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*1.5,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + + return dmg; +end; Index: mobskills/Stinking_Gas.lua =================================================================== --- mobskills/Stinking_Gas.lua (revision 2261) +++ mobskills/Stinking_Gas.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; end Index: mobskills/Actinic_Burst.lua =================================================================== --- mobskills/Actinic_Burst.lua (revision 2261) +++ mobskills/Actinic_Burst.lua (working copy) @@ -3,8 +3,8 @@ -- -- Description: Greatly lowers the accuracy of enemies within range for a brief period of time. -- Type: Magical (Light) --- --- +-- +-- --------------------------------------------- require("/scripts/globals/settings"); require("/scripts/globals/status"); @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,7); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,50,0,30);--power=50;tic=0;duration=30; else Index: mobskills/Parry.lua =================================================================== --- mobskills/Parry.lua (revision 0) +++ mobskills/Parry.lua (revision 0) @@ -0,0 +1,23 @@ +--------------------------------------------------- +-- Parry +-- Enhances defense. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + skill:setMsg(MSG_BUFF); + local typeEffect = EFFECT_DEFENSE_BOOST; + mob:delStatusEffect(EFFECT_DEFENSE_DOWN); + mob:delStatusEffect(typeEffect); + mob:addStatusEffect(typeEffect,15,0,900); + return typeEffect; +end; Index: mobskills/Sledgehammer.lua =================================================================== --- mobskills/Sledgehammer.lua (revision 2261) +++ mobskills/Sledgehammer.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Maelstrom.lua =================================================================== --- mobskills/Maelstrom.lua (revision 2261) +++ mobskills/Maelstrom.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.3) then + if(resist > 0.1) then message = MSG_ENFEEB; target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120 end @@ -29,9 +29,9 @@ end skill:setMsg(message); - local dmgmod = 1; + local dmgmod = 1.7; local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); target:delHP(dmg); return dmg; Index: mobskills/Miasma.lua =================================================================== --- mobskills/Miasma.lua (revision 2261) +++ mobskills/Miasma.lua (working copy) @@ -23,7 +23,7 @@ local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then if(target:hasStatusEffect(EFFECT_POISON) == false) then target:addStatusEffect(EFFECT_POISON,1,10,duration); end Index: mobskills/Radiant_Breath.lua =================================================================== --- mobskills/Radiant_Breath.lua (revision 2261) +++ mobskills/Radiant_Breath.lua (working copy) @@ -20,7 +20,7 @@ local resist = 1; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,20,0,60);--power=12;tic=0;duration=60; end end @@ -28,7 +28,7 @@ typeEffect = EFFECT_SILENCE; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,12,0,60);--power=12;tic=0;duration=60; end end Index: mobskills/Double_Kick.lua =================================================================== --- mobskills/Double_Kick.lua (revision 2261) +++ mobskills/Double_Kick.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.7) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,3,math.random(2,6));--power=1;tic=3;duration=60; end end Index: mobskills/Poison_Sting.lua =================================================================== --- mobskills/Poison_Sting.lua (revision 0) +++ mobskills/Poison_Sting.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------------- +-- Poison Sting +-- Deals Water damage to targets in a fan-shaped area of effect. Additional effect: Poison +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_POISON; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.2) then + target:addStatusEffect(typeEffect,1,1,180); + end + end + + local dmgmod = 2.5; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 3,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Tail_Blow.lua =================================================================== --- mobskills/Tail_Blow.lua (revision 2261) +++ mobskills/Tail_Blow.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,math.random(2,6));--power=1;tic=0;duration=4; end end Index: mobskills/Filamented_Hold.lua =================================================================== --- mobskills/Filamented_Hold.lua (revision 2261) +++ mobskills/Filamented_Hold.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false and target:hasStatusEffect(EFFECT_HASTE) == false) then local statmod = MOD_MND; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,30,0,90); end end Index: mobskills/Cyclonic_Torrent.lua =================================================================== --- mobskills/Cyclonic_Torrent.lua (revision 2261) +++ mobskills/Cyclonic_Torrent.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Sharp_Sting.lua =================================================================== --- mobskills/Sharp_Sting.lua (revision 2261) +++ mobskills/Sharp_Sting.lua (working copy) @@ -20,8 +20,8 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 1; - local accmod = 3; - local dmgmod = 4; + local accmod = .7; + local dmgmod = math.random(3,4); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_RANGED,MOBPARAM_NONE,info.hitslanded); target:delHP(dmg); Index: mobskills/Hex_Eye.lua =================================================================== --- mobskills/Hex_Eye.lua (revision 2261) +++ mobskills/Hex_Eye.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,25,0,60); end Index: mobskills/Glacier_Splitter.lua =================================================================== --- mobskills/Glacier_Splitter.lua (revision 2261) +++ mobskills/Glacier_Splitter.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,15,3,60); end end Index: mobskills/Binding_Wave.lua =================================================================== --- mobskills/Binding_Wave.lua (revision 0) +++ mobskills/Binding_Wave.lua (revision 0) @@ -0,0 +1,31 @@ +--------------------------------------------------- +-- Binding Wave +-- Additional effect: bind +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_BIND; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,1,0, 30); + else + skill:setMsg(MSG_MISS); -- resist ! + end + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + + return typeEffect; +end; Index: mobskills/Poison_Breath.lua =================================================================== --- mobskills/Poison_Breath.lua (revision 2261) +++ mobskills/Poison_Breath.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.4) then + if(resist > 0.2) then local power = mob:getHP()/100; target:addStatusEffect(typeEffect,power,3,30);--tic=3;duration=30; end Index: mobskills/Acrid_Stream.lua =================================================================== --- mobskills/Acrid_Stream.lua (revision 2261) +++ mobskills/Acrid_Stream.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,20,0,60);--power=20;tic=0;duration=60; end end Index: mobskills/Shoulder_Slam.lua =================================================================== --- mobskills/Shoulder_Slam.lua (revision 0) +++ mobskills/Shoulder_Slam.lua (revision 0) @@ -0,0 +1,27 @@ +--------------------------------------------------- +-- Shoulder Attack +-- Deals damage to a single target. Additional effect: knockback +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + + -- KNOCKBACK ------------------- + + local numhits = 1; + local accmod = 1; + local dmgmod = 3; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Black_Cloud.lua =================================================================== --- mobskills/Black_Cloud.lua (revision 2261) +++ mobskills/Black_Cloud.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end @@ -31,7 +31,7 @@ end skill:setMsg(message); - local dmgmod = 1.2; + local dmgmod = 1.5; local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_WIPE_SHADOWS); Index: mobskills/Dust_Cloud.lua =================================================================== --- mobskills/Dust_Cloud.lua (revision 2261) +++ mobskills/Dust_Cloud.lua (working copy) @@ -1,7 +1,7 @@ --------------------------------------------------- -- Dust Cloud -- Deals Earth damage to targets in a fan-shaped area of effect. Additional effect: Blind --- Range: 10' cone +-- Range: 10' cone --------------------------------------------------- require("/scripts/globals/settings"); @@ -19,15 +19,15 @@ if(target:hasStatusEffect(typeEffect) == false) then --Let's first see if it's worth the time to do this math, since there's no messages to handle local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then - target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; + if(resist > 0.2) then + target:addStatusEffect(typeEffect,20,0,60);--power=1;tic=0;duration=60; end end local dmgmod = 1; local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); - local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_EARTH,MOBPARAM_IGNORE_SHADOWS); target:delHP(dmg); return dmg; end; Index: mobskills/Abrasive_Tantara.lua =================================================================== --- mobskills/Abrasive_Tantara.lua (revision 2261) +++ mobskills/Abrasive_Tantara.lua (working copy) @@ -23,7 +23,7 @@ local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,1); - if(resist > 0.3) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,1,0,30); --power=1;tic=0;duration=30; end Index: mobskills/Whirlwind.lua =================================================================== --- mobskills/Whirlwind.lua (revision 0) +++ mobskills/Whirlwind.lua (revision 0) @@ -0,0 +1,38 @@ +--------------------------------------------- +-- Whirlwind +-- +-- Description: Deals wind damage to enemies within range. Additional effect: VIT Down. +-- Type: Magical (Wind) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local message = MSG_MISS; + local typeEffect = EFFECT_VIT_DOWN; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.1) then + message = MSG_ENFEEB; + target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120 + end + else + message = MSG_NO_EFFECT; + end + skill:setMsg(message); + + local dmgmod = 1.7; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Great_Bleat.lua =================================================================== --- mobskills/Great_Bleat.lua (revision 2261) +++ mobskills/Great_Bleat.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,30,0,60); else Index: mobskills/Silence_Gas.lua =================================================================== --- mobskills/Silence_Gas.lua (revision 0) +++ mobskills/Silence_Gas.lua (revision 0) @@ -0,0 +1,40 @@ +--------------------------------------------- +-- Silence Gas +-- +-- Description: Emits a noxious cloud in a fan-shaped area of effect, dealing Wind damage to all targets. Additional effect: silence +-- Type: Magical Wind (Element) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_SILENCE; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,1,0,45);--tic=3;duration=30; + end + end + + local dmgmod = mob:getHP() / mob:getMaxHP() * (mob:getMainLvl()/9); + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*math.random(1.5,2.5),accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WIND,MOBPARAM_IGNORE_SHADOWS); + + -- most breaths cap off at 500 + if(dmg > 500) then + dmg = dmg * 0.7; + end + + target:delHP(dmg); + return dmg; +end; Index: mobskills/Blood_Drain.lua =================================================================== --- mobskills/Blood_Drain.lua (revision 2261) +++ mobskills/Blood_Drain.lua (working copy) @@ -14,11 +14,18 @@ end; function OnMobWeaponSkill(target, mob, skill) - local dmgmod = 1; + local dmgmod = 1.4; local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); - target:delHP(dmg); - mob:addHP(dmg); + + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + return dmg; end; Index: mobskills/Acid_Spray.lua =================================================================== --- mobskills/Acid_Spray.lua (revision 2261) +++ mobskills/Acid_Spray.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.3) then + if(resist > 0.2) then local poison = mob:getMainLvl() / 2; target:addStatusEffect(typeEffect,1,poison,180); end Index: mobskills/Rage.lua =================================================================== --- mobskills/Rage.lua (revision 2261) +++ mobskills/Rage.lua (working copy) @@ -5,7 +5,7 @@ -- Type: Enhancing -- Utsusemi/Blink absorb: N/A -- Range: Self --- Notes: 50% Attack Boost. +-- Notes: 25% Attack UP, -25% defense DOWN --------------------------------------------- require("/scripts/globals/settings"); require("/scripts/globals/status"); @@ -17,17 +17,16 @@ end; function OnMobWeaponSkill(target, mob, skill) - local power = 50; local duration = 60; - local typeEffect = EFFECT_ATTACK_BOOST; + local typeEffect = EFFECT_BERSERK; skill:setMsg(MSG_BUFF); if(mob:hasStatusEffect(typeEffect) == true) then local oldEffect = mob:getStatusEffect(typeEffect); oldEffect:setPower(power); oldEffect:setDuration(duration); else - mob:addStatusEffect(typeEffect,power,0,duration);--tic=0; + mob:addStatusEffect(typeEffect,1,0,duration);--tic=0; end return typeEffect; end; Index: mobskills/Arrow_Deluge.lua =================================================================== --- mobskills/Arrow_Deluge.lua (revision 2261) +++ mobskills/Arrow_Deluge.lua (working copy) @@ -20,7 +20,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = math.random(2,3); local accmod = 1; - local dmgmod = 1; + local dmgmod = 1.2; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_3_SHADOW); target:delHP(dmg); Index: mobskills/Water_Bomb.lua =================================================================== --- mobskills/Water_Bomb.lua (revision 2261) +++ mobskills/Water_Bomb.lua (working copy) @@ -3,8 +3,8 @@ -- -- Description: Deals water damage to enemies within area of effect. Additional effect: Silence. -- Type: Magical (Water) --- --- +-- +-- --------------------------------------------- require("/scripts/globals/settings"); require("/scripts/globals/status"); @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Axial_Bloom.lua =================================================================== --- mobskills/Axial_Bloom.lua (revision 2261) +++ mobskills/Axial_Bloom.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then local mobTP = skill:getTP(); local duration = 25; if(mobTP <= 100) then Index: mobskills/Gastric_Bomb.lua =================================================================== --- mobskills/Gastric_Bomb.lua (revision 2261) +++ mobskills/Gastric_Bomb.lua (working copy) @@ -1,9 +1,9 @@ --------------------------------------------------- -- Gastric Bomb --- Deals Water damage with a long-range acid bomb. Additional effect: Attack Down +-- Deals Water damage with a long-range acid bomb. Additional effect: Attack Down -- Range: Long range -- Notes: Attack Down effect is 50%. --- Duration: Three minutes +-- Duration: Three minutes --------------------------------------------------- require("/scripts/globals/settings"); @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,50,0,180);--power=50;tic=0;duration=180; end end Index: mobskills/Jet_Stream.lua =================================================================== --- mobskills/Jet_Stream.lua (revision 2261) +++ mobskills/Jet_Stream.lua (working copy) @@ -17,7 +17,7 @@ local numhits = 3; local accmod = 1; local dmgmod = math.random(1,3); - local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_ACC_VARIES,1,2,3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_ACC_VARIES,1,1.5,2); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); target:delHP(dmg); return dmg; Index: mobskills/Head_Butt_Turtle.lua =================================================================== --- mobskills/Head_Butt_Turtle.lua (revision 2261) +++ mobskills/Head_Butt_Turtle.lua (working copy) @@ -20,13 +20,13 @@ local mobTP = mob:getTP(); local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then - if(mobTP <= 100) then + if(resist > 0.2) then + if(mobTP <= 100) then local duration = 60; - elseif(mobTP <= 200) then + elseif(mobTP <= 200) then local duration = 90; - else - local duration = 120; + else + local duration = 120; end target:addStatusEffect(typeEffect,50,0,duration); end @@ -36,7 +36,7 @@ local numhits = 1; local accmod = 1; - local dmgmod = 1; + local dmgmod = 2.5; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,MOBPARAM_1_SHADOW); target:delHP(dmg); Index: mobskills/Queasyshroom.lua =================================================================== --- mobskills/Queasyshroom.lua (revision 2261) +++ mobskills/Queasyshroom.lua (working copy) @@ -24,7 +24,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.4) then + if(resist > 0.2) then local mobTP = mob:getTP(); if(mobTP <= 100) then local poisontime = 60; @@ -39,7 +39,7 @@ local numhits = 1; local accmod = 1; - local dmgmod = .7; + local dmgmod = .8; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,MOBPARAM_WIPE_SHADOWS); target:delHP(dmg); Index: mobskills/Thundris_Shriek.lua =================================================================== --- mobskills/Thundris_Shriek.lua (revision 2261) +++ mobskills/Thundris_Shriek.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Undead_Mold.lua =================================================================== --- mobskills/Undead_Mold.lua (revision 2261) +++ mobskills/Undead_Mold.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.3) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; else Index: mobskills/Circle_of_Flames.lua =================================================================== --- mobskills/Circle_of_Flames.lua (revision 2261) +++ mobskills/Circle_of_Flames.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == true) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.3) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Lateral_Slash.lua =================================================================== --- mobskills/Lateral_Slash.lua (revision 2261) +++ mobskills/Lateral_Slash.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,75,0,60); else Index: mobskills/Drill_Branch.lua =================================================================== --- mobskills/Drill_Branch.lua (revision 2261) +++ mobskills/Drill_Branch.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,15,0,60);--power=15;tic=0;duration=60; end Index: mobskills/Light_of_Penance.lua =================================================================== --- mobskills/Light_of_Penance.lua (revision 2261) +++ mobskills/Light_of_Penance.lua (working copy) @@ -22,7 +22,7 @@ local typeEffect = EFFECT_BLINDNESS; if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,40,0,60);--power=40;tic=0;duration=60; end end @@ -31,7 +31,7 @@ if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then --statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; else Index: mobskills/Meltdown.lua =================================================================== --- mobskills/Meltdown.lua (revision 0) +++ mobskills/Meltdown.lua (revision 0) @@ -0,0 +1,25 @@ +--------------------------------------------------- +-- Meltdown +-- Reactor failure causes self-destruct, dealing magic damage to targets in an area of effect. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local dmgmod = 1; + local accmod = 1; + + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*30,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_NONE,MOBPARAM_IGNORE_SHADOWS); + mob:setHP(0); + target:delHP(dmg); + return dmg; +end \ No newline at end of file Index: mobskills/Cursed_Sphere.lua =================================================================== --- mobskills/Cursed_Sphere.lua (revision 2261) +++ mobskills/Cursed_Sphere.lua (working copy) @@ -15,7 +15,7 @@ end; function OnMobWeaponSkill(target, mob, skill) - local dmgmod = .8; + local dmgmod = 1; local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); Index: mobskills/Blaster.lua =================================================================== --- mobskills/Blaster.lua (revision 2261) +++ mobskills/Blaster.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.3) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,50,0,60);--power=50;tic=0;duration=60; end Index: mobskills/Sharp_Strike.lua =================================================================== --- mobskills/Sharp_Strike.lua (revision 0) +++ mobskills/Sharp_Strike.lua (revision 0) @@ -0,0 +1,33 @@ +--------------------------------------------- +-- Sharp Strike +-- +-- Description: Scorpion goes crazy +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes: 50% Attack Boost. +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local power = 50; + local duration = 255; + + local typeEffect = EFFECT_ATTACK_BOOST; + skill:setMsg(MSG_BUFF); + if(mob:hasStatusEffect(typeEffect) == true) then + local oldEffect = mob:getStatusEffect(typeEffect); + oldEffect:setPower(power); + oldEffect:setDuration(duration); + else + mob:addStatusEffect(typeEffect,power,0,duration);--tic=0; + end + return typeEffect; +end; Index: mobskills/Pinning_Shot.lua =================================================================== --- mobskills/Pinning_Shot.lua (revision 2261) +++ mobskills/Pinning_Shot.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Feather_Storm.lua =================================================================== --- mobskills/Feather_Storm.lua (revision 2261) +++ mobskills/Feather_Storm.lua (working copy) @@ -19,7 +19,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then local power = math.random(1,3); target:addStatusEffect(typeEffect,power,3,120);--tic=0;duration=120; end Index: mobskills/Bloodrake.lua =================================================================== --- mobskills/Bloodrake.lua (revision 2261) +++ mobskills/Bloodrake.lua (working copy) @@ -22,8 +22,14 @@ local dmgmod = .8; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,info.hitslanded); - target:delHP(dmg); - mob:addHP(dmg); + skill:setMsg(MSG_DRAIN_HP); + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + return dmg; end; Index: mobskills/Riddle.lua =================================================================== --- mobskills/Riddle.lua (revision 2261) +++ mobskills/Riddle.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.3) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,42,0,120);--power=30;tic=0;duration=120; end Index: mobskills/Hecatomb_Wave.lua =================================================================== --- mobskills/Hecatomb_Wave.lua (revision 2261) +++ mobskills/Hecatomb_Wave.lua (working copy) @@ -19,7 +19,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,15,0,60); end end Index: mobskills/Ultrasonics.lua =================================================================== --- mobskills/Ultrasonics.lua (revision 2261) +++ mobskills/Ultrasonics.lua (working copy) @@ -18,8 +18,8 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then - target:addStatusEffect(typeEffect,50,0,180); -- 50% + if(resist > 0.2) then + target:addStatusEffect(typeEffect,25,0,180); -- 25% end end end; Index: mobskills/Words_of_Bane.lua =================================================================== --- mobskills/Words_of_Bane.lua (revision 2261) +++ mobskills/Words_of_Bane.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,1,0,360);--power=1;tic=0;duration=360; else Index: mobskills/Chomp_Rush.lua =================================================================== --- mobskills/Chomp_Rush.lua (revision 2261) +++ mobskills/Chomp_Rush.lua (working copy) @@ -22,14 +22,14 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.3) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,25,0,30);--power=25;tic=0;duration=30; end end local numhits = 3; local accmod = 1; - local dmgmod = 1; + local dmgmod = math.random(1,2); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); target:delHP(dmg); Index: mobskills/Frightful_Roar.lua =================================================================== --- mobskills/Frightful_Roar.lua (revision 2261) +++ mobskills/Frightful_Roar.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,10,0,60);--power=10;tic=0;duration=60; else Index: mobskills/Death_Scissors.lua =================================================================== --- mobskills/Death_Scissors.lua (revision 2261) +++ mobskills/Death_Scissors.lua (working copy) @@ -17,9 +17,15 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 1; local accmod = 1; - local dmgmod = math.random(5,8); + local dmgmod = math.random(4,9); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,info.hitslanded); + + -- keep damage around 800 + if(dmg > 700) then + dmg = dmg * 0.8; + end + target:delHP(dmg); return dmg; end Index: mobskills/Frigid_Shuffle.lua =================================================================== --- mobskills/Frigid_Shuffle.lua (revision 2261) +++ mobskills/Frigid_Shuffle.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,50,0,60);--power=50;tic=0;duration=60; else Index: mobskills/Aqua_Ball.lua =================================================================== --- mobskills/Aqua_Ball.lua (revision 2261) +++ mobskills/Aqua_Ball.lua (working copy) @@ -18,14 +18,14 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,50,0,180); --power=50;tic=0;duration=180 end end - local dmgmod = 1; + local dmgmod = 1.8; local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 4,accmod,dmgmod,TP_MAB_BONUS,1); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 3,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_EARTH,MOBPARAM_WIPE_SHADOWS); target:delHP(dmg); return dmg; Index: mobskills/Eyes_on_Me.lua =================================================================== --- mobskills/Eyes_on_Me.lua (revision 2261) +++ mobskills/Eyes_on_Me.lua (working copy) @@ -16,10 +16,11 @@ end; function OnMobWeaponSkill(target, mob, skill) - local dmgmod = 1.5; - local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 4,accmod,dmgmod,TP_MAB_BONUS,1); - local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_WIPE_SHADOWS); + local dmgmod = mob:getWeaponDmg() * 7; + + local dmg = MobFinalAdjustments(,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; end; Index: mobskills/Dark_Sphere.lua =================================================================== --- mobskills/Dark_Sphere.lua (revision 0) +++ mobskills/Dark_Sphere.lua (revision 0) @@ -0,0 +1,33 @@ +--------------------------------------------------- +-- Dark Sphere +-- Deals Dark damage to targets in a fan-shaped area of effect. Additional effect: Blind +-- Range: 15' cone +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_BLINDNESS; + if(target:hasStatusEffect(typeEffect) == false) then --Let's first see if it's worth the time to do this math, since there's no messages to handle + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); + if(resist > 0.2) then + target:addStatusEffect(typeEffect,25,0,60);--power=1;tic=0;duration=60; + end + end + + local dmgmod = 1; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Scratch.lua =================================================================== --- mobskills/Scratch.lua (revision 2261) +++ mobskills/Scratch.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,18,0,60);--power=18;tic=0;duration=60; end end Index: mobskills/Gravity_Field.lua =================================================================== --- mobskills/Gravity_Field.lua (revision 0) +++ mobskills/Gravity_Field.lua (revision 0) @@ -0,0 +1,34 @@ +--------------------------------------------------- +-- Gravity Field +-- Entangles all targets in an area of effect. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + if(target:hasStatusEffect(EFFECT_SLOW) == false) then + return 0; + end + return 1; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_SLOW; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); + if(resist > 0.1) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,20,0,120);--power=20;tic=0;duration=120; + else + skill:setMsg(MSG_MISS); -- resist ! + end + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + return typeEffect; +end; Index: mobskills/Harden_Shell.lua =================================================================== --- mobskills/Harden_Shell.lua (revision 2261) +++ mobskills/Harden_Shell.lua (working copy) @@ -3,8 +3,8 @@ -- -- Description: Enhances defense. -- Type: Magical (Earth) --- --- +-- +-- --------------------------------------------- require("/scripts/globals/settings"); require("/scripts/globals/status"); @@ -19,6 +19,8 @@ if(mob:hasStatusEffect(typeEffect) == true) then skill:setMsg(MSG_NO_EFFECT); else + mob:delStatusEffect(typeEffect); + mob:delStatusEffect(EFFECT_DEFENSE_DOWN); mob:addStatusEffect(typeEffect,100,0,60);--power=100;tic=0;duration=60; skill:setMsg(MSG_BUFF); end Index: mobskills/Secretion.lua =================================================================== --- mobskills/Secretion.lua (revision 0) +++ mobskills/Secretion.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------- +-- Secretion +-- +-- Description: Enhances evasion. +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes: evasion increase. +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_EVASION_BOOST; + if(mob:hasStatusEffect(typeEffect) == true) then + skill:setMsg(MSG_NO_EFFECT); + else + mob:addStatusEffect(typeEffect,20,0,30);--power=25;tic=0;duration=60; + skill:setMsg(MSG_BUFF); + end + return typeEffect; +end; Index: mobskills/Brain_Crush.lua =================================================================== --- mobskills/Brain_Crush.lua (revision 2261) +++ mobskills/Brain_Crush.lua (working copy) @@ -19,7 +19,7 @@ local statmod = MOD_INT; local mobTP = mob:getTP(); local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then local silenceTime = 60; if(mobTP <= 100) then silenceTime = 30; Index: mobskills/Water_Wall.lua =================================================================== --- mobskills/Water_Wall.lua (revision 2261) +++ mobskills/Water_Wall.lua (working copy) @@ -16,6 +16,7 @@ function OnMobWeaponSkill(target, mob, skill) skill:setMsg(MSG_BUFF); local typeEffect = EFFECT_DEFENSE_BOOST; + mob:delStatusEffect(EFFECT_DEFENSE_DOWN); mob:delStatusEffect(typeEffect); mob:addStatusEffect(typeEffect,100,0,60); return typeEffect; Index: mobskills/Double_Down.lua =================================================================== --- mobskills/Double_Down.lua (revision 0) +++ mobskills/Double_Down.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------------- +-- Double Down +-- Deals damage to a single target. +-- Type: Physical +-- Can be dispelled: N/A +-- Utsusemi/Blink absorb: Ignore shadows +-- Range: Melee +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(2, 3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Blow.lua =================================================================== --- mobskills/Blow.lua (revision 0) +++ mobskills/Blow.lua (revision 0) @@ -0,0 +1,34 @@ +--------------------------------------------- +-- Blow +-- +-- Description: Damage varies with TP. Additional effect: "Stun." +-- Type: Physical (Blunt) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_STUN; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); + if(resist > 0.2) then + target:addStatusEffect(typeEffect,1,0,math.random(2,6));--power=1;tic=0;duration=5; + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = 1.3; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Sickle_Slash.lua =================================================================== --- mobskills/Sickle_Slash.lua (revision 2261) +++ mobskills/Sickle_Slash.lua (working copy) @@ -17,8 +17,13 @@ local numhits = 1; local accmod = 1; local dmgmod = math.random(2,5); - local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_CRIT_VARIES,2,3,4); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_CRIT_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); + + -- cap off damage around 600 + if(dmg > 600) then + dmg = dmg * 0.8; + end target:delHP(dmg); return dmg; end; Index: mobskills/Pelagic_Tempest.lua =================================================================== --- mobskills/Pelagic_Tempest.lua (revision 2261) +++ mobskills/Pelagic_Tempest.lua (working copy) @@ -24,7 +24,7 @@ local resist = 1; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,28,3,180); end end @@ -33,7 +33,7 @@ if(target:hasStatusEffect(typeEffect) == false) then statmod = MOD_INT; resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,180); end end Index: mobskills/Spikeball.lua =================================================================== --- mobskills/Spikeball.lua (revision 0) +++ mobskills/Spikeball.lua (revision 0) @@ -0,0 +1,37 @@ +--------------------------------------------------- +-- Spikeball +-- Additional effect: Poison. +-- Range is 13.5 yalms. +-- Additional Effect: Poison is 3 HP/tick. +-- Poison effect may not always process. +-- Removes all Shadow Images on the target. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_POISON; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.2) then + target:addStatusEffect(typeEffect,3,3,160); + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(2,3.5); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_RANGED,MOBPARAM_PIERCE,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Impale.lua =================================================================== --- mobskills/Impale.lua (revision 2261) +++ mobskills/Impale.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,15,0,60);--power=15;tic=0;duration=60; end end Index: mobskills/Ink_Cloud.lua =================================================================== --- mobskills/Ink_Cloud.lua (revision 2261) +++ mobskills/Ink_Cloud.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.6) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,12,0,60);--power=12;tic=0;duration=60; end Index: mobskills/Mortal_Ray.lua =================================================================== --- mobskills/Mortal_Ray.lua (revision 2261) +++ mobskills/Mortal_Ray.lua (working copy) @@ -2,7 +2,7 @@ -- Mortal Ray -- -- Description: Inflicts Doom upon an enemy. --- Type: Magical (Dark) +-- Type: Magical (Dark) --------------------------------------------- require("/scripts/globals/settings"); @@ -20,9 +20,9 @@ if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); - target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; + target:addStatusEffect(typeEffect,1,3,30);--power=1;tic=0;duration=60; else skill:setMsg(MSG_MISS); end Index: mobskills/Blood_Saber.lua =================================================================== --- mobskills/Blood_Saber.lua (revision 2261) +++ mobskills/Blood_Saber.lua (working copy) @@ -18,7 +18,12 @@ local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); - target:delHP(dmg); - mob:addHP(dmg); + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end return dmg; end; Index: mobskills/Chaotic_Eye.lua =================================================================== --- mobskills/Chaotic_Eye.lua (revision 2261) +++ mobskills/Chaotic_Eye.lua (working copy) @@ -21,9 +21,9 @@ if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.3) then + if(resist > 0.1) then message = MSG_ENFEEB_IS; - target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; + target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=60; end else message = MSG_NO_EFFECT; Index: mobskills/Sound_Blast.lua =================================================================== --- mobskills/Sound_Blast.lua (revision 0) +++ mobskills/Sound_Blast.lua (revision 0) @@ -0,0 +1,31 @@ +--------------------------------------------------- +-- Sound Blast +-- 15' Reduces INT of players in area of effect. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_INT_DOWN; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); + if(resist > 0.2) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,50,0,120); + else + skill:setMsg(MSG_MISS); -- resist ! + end + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + return typeEffect; +end; Index: mobskills/Hydro_Ball.lua =================================================================== --- mobskills/Hydro_Ball.lua (revision 0) +++ mobskills/Hydro_Ball.lua (revision 0) @@ -0,0 +1,35 @@ +--------------------------------------------- +-- Hydroball +-- Deals Water damage to targets in a fan-shaped area of effect. Additional effect: STR Down +-- Type: Breath +-- Utsusemi/Blink absorb: Ignores shadows +-- Notes: STR reduced by 15%. +--------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_STR_DOWN; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.2) then + target:addStatusEffect(typeEffect,40,0,180);--power=40;tic=0;duration=180; + end + end + + local dmgmod = 1; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg() * 5,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Vampiric_Lash.lua =================================================================== --- mobskills/Vampiric_Lash.lua (revision 2261) +++ mobskills/Vampiric_Lash.lua (working copy) @@ -21,7 +21,13 @@ local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_1_SHADOW); - target:delHP(dmg); - mob:addHP(dmg); + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + return dmg; end; Index: mobskills/Mandibular_Bite.lua =================================================================== --- mobskills/Mandibular_Bite.lua (revision 0) +++ mobskills/Mandibular_Bite.lua (revision 0) @@ -0,0 +1,27 @@ +--------------------------------------------- +-- Mandibular Bite +-- +-- Description: Deals damage to a single target. +-- Type: Physical +-- Utsusemi/Blink absorb: 1 shadow +-- Range: Melee +-- Notes: +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(2,3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Bubble_Shower.lua =================================================================== --- mobskills/Bubble_Shower.lua (revision 2261) +++ mobskills/Bubble_Shower.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,30,0,180); --power=-30;tic=0;duration=180; end end @@ -27,7 +27,7 @@ local accmod = 1; local cMobHp = mob:getHP(); local mMobHp = mob:getMaxHP(); - local dmgmod = cMobHp/mMobHp; + local dmgmod = cMobHp/mMobHp * 1.5; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WATER,MOBPARAM_IGNORE_SHADOWS); target:delHP(dmg); Index: mobskills/Spider_Web.lua =================================================================== --- mobskills/Spider_Web.lua (revision 2261) +++ mobskills/Spider_Web.lua (working copy) @@ -10,7 +10,10 @@ --------------------------------------------------- function OnMobSkillCheck(target,mob,skill) - return 0; + if(target:hasStatusEffect(EFFECT_SLOW) == false) then + return 0; + end + return 1; end; function OnMobWeaponSkill(target, mob, skill) @@ -18,9 +21,10 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.1) then skill:setMsg(MSG_ENFEEB_IS); - target:addStatusEffect(typeEffect,20,0,120);--power=20;tic=0;duration=120; + target:delStatusEffect(EFFECT_HASTE) + target:addStatusEffect(typeEffect,25,0,120);--power=20;tic=0;duration=120; else skill:setMsg(MSG_MISS); -- resist ! end Index: mobskills/MP_Drainkiss.lua =================================================================== --- mobskills/MP_Drainkiss.lua (revision 0) +++ mobskills/MP_Drainkiss.lua (revision 0) @@ -0,0 +1,46 @@ +--------------------------------------------------- +-- MP Drainkiss +-- Deals dark damage to a single target. Additional effect: Aspir +-- Type: Magical +-- Utsusemi/Blink absorb: 1 shadow +-- Range: Melee +-- Notes: If used against undead, it will simply do damage and not drain MP. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + if(target:getMP() > 0) then + return 0; + end + return 1; +end; + +function OnMobWeaponSkill(target, mob, skill) + + local dmgmod = 1; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + + skill:setMsg(MSG_DRAIN_MP); + + if(target:isUndead() == false) then + + -- can't go over limited mp + if(target:getMP() < dmg) then + dmg = target:getMP(); + end + + target:delMP(dmg); + mob:addMP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + + return dmg; +end; Index: mobskills/Venom.lua =================================================================== --- mobskills/Venom.lua (revision 2261) +++ mobskills/Venom.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.3) then + if(resist > 0.2) then local power = mob:getMainLvl()/8 + 3; target:addStatusEffect(typeEffect,power,3,60);--tic=3;duration=60; end Index: mobskills/Wild_Oats.lua =================================================================== --- mobskills/Wild_Oats.lua (revision 2261) +++ mobskills/Wild_Oats.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.3) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; end Index: mobskills/Bomb_Toss.lua =================================================================== --- mobskills/Bomb_Toss.lua (revision 2261) +++ mobskills/Bomb_Toss.lua (working copy) @@ -10,7 +10,7 @@ function OnMobWeaponSkill(target, mob, skill) local dmgmod = 1; local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*math.random(3,5),accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_FIRE,MOBPARAM_IGNORE_SHADOWS); target:delHP(dmg); return dmg; Index: mobskills/Foul_Breath.lua =================================================================== --- mobskills/Foul_Breath.lua (revision 0) +++ mobskills/Foul_Breath.lua (revision 0) @@ -0,0 +1,40 @@ +--------------------------------------------- +-- Foul Breath +-- +-- Description: Deals fire damage to enemies within a fan-shaped area originating from the caster. +-- Type: Magical (Fire) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + + local typeEffect = EFFECT_DISEASE; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,1,0,540);--power=1;tic=0;duration=120; + end + end + + local dmgmod = mob:getHP() / mob:getMaxHP() * 5; + local accmod = 1; + + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_FIRE,MOBPARAM_IGNORE_SHADOWS); + + if(dmg > 500) then + dmg = 500; + end + + target:delHP(dmg); + return dmg; +end; Index: mobskills/Zephyr_Arrow.lua =================================================================== --- mobskills/Zephyr_Arrow.lua (revision 2261) +++ mobskills/Zephyr_Arrow.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; end end Index: mobskills/Wings_of_Gehenna.lua =================================================================== --- mobskills/Wings_of_Gehenna.lua (revision 2261) +++ mobskills/Wings_of_Gehenna.lua (working copy) @@ -26,7 +26,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,6);--power=1;tic=0;duration=6; end end Index: mobskills/Mow.lua =================================================================== --- mobskills/Mow.lua (revision 2261) +++ mobskills/Mow.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then local power = math.random(1,4) + 6; target:addStatusEffect(typeEffect,power,3,60);--tic=3;duration=60; end Index: mobskills/Mantle_Pierce.lua =================================================================== --- mobskills/Mantle_Pierce.lua (revision 2261) +++ mobskills/Mantle_Pierce.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,300);--power=1;tic=0;duration=300; end end Index: mobskills/Tail_Slap.lua =================================================================== --- mobskills/Tail_Slap.lua (revision 2261) +++ mobskills/Tail_Slap.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,math.random(2,6));--power=1;tic=0;duration=4; end end Index: mobskills/Grave_Reel.lua =================================================================== --- mobskills/Grave_Reel.lua (revision 0) +++ mobskills/Grave_Reel.lua (revision 0) @@ -0,0 +1,24 @@ +--------------------------------------------------- +-- Blood Drain +-- Steals an enemy's HP. Ineffective against undead. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local dmgmod = 1.5; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_WIPE_SHADOWS); + target:delHP(dmg); + mob:addHP(dmg); + return dmg; +end; Index: mobskills/Goblin_Rush.lua =================================================================== --- mobskills/Goblin_Rush.lua (revision 2261) +++ mobskills/Goblin_Rush.lua (working copy) @@ -10,8 +10,8 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 3; local accmod = 1; - local dmgmod = 1; - local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); + local dmgmod = math.random(1.5,2.5); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,1.5,2); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,info.hitslanded); target:delHP(dmg); return dmg; Index: mobskills/Slam_Dunk.lua =================================================================== --- mobskills/Slam_Dunk.lua (revision 2261) +++ mobskills/Slam_Dunk.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then local mobTP = mob:getTP(); local duration = mob:getMainLvl()/3.75; if(mobTP <= 100) then Index: mobskills/Hydro_Shot.lua =================================================================== --- mobskills/Hydro_Shot.lua (revision 2261) +++ mobskills/Hydro_Shot.lua (working copy) @@ -18,14 +18,14 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_MND; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,7); - if(resist > 0.5) then + if(resist > 0.2) then local mobTP = mob:getTP(); - if(mobTP <= 100) then + if(mobTP <= 100) then local duration = 15; - elseif(mobTP <= 200) then + elseif(mobTP <= 200) then local duration = 30; - else - local duration = 45; + else + local duration = 45; end target:addStatusEffect(typeEffect,30,0,duration); end @@ -33,9 +33,9 @@ local numhits = 1; local accmod = 1; - local dmgmod = 1; - local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); - local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); + local dmgmod = math.random(2.5,3.5); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_H2H,info.hitslanded); target:delHP(dmg); return dmg; end; Index: mobskills/Shakeshroom.lua =================================================================== --- mobskills/Shakeshroom.lua (revision 0) +++ mobskills/Shakeshroom.lua (revision 0) @@ -0,0 +1,36 @@ +--------------------------------------------------- +-- Shakeshroom +-- Additional effect: Fires a mushroom cap, dealing damage to a single target. Additional effect: disease +-- Range is 14.7 yalms. +-- Piercing damage Ranged Attack. +-- Secondary modifiers: INT: 20%. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_DISEASE; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,1,0,540);--power=1;tic=0;duration=120; + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = 1.3; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Suction.lua =================================================================== --- mobskills/Suction.lua (revision 2261) +++ mobskills/Suction.lua (working copy) @@ -21,16 +21,16 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,math.random(2,6));--power=1;tic=0;duration=4; end end local numhits = 1; local accmod = 1; - local dmgmod = 3; + local dmgmod = math.random(2.5, 3); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); - local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_1_SHADOW); target:delHP(dmg); return dmg; end; Index: mobskills/Great_Whirlwind.lua =================================================================== --- mobskills/Great_Whirlwind.lua (revision 2261) +++ mobskills/Great_Whirlwind.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then local power = mob:getMainLvl()/4*.6 + 4; target:addStatusEffect(typeEffect,power,3,60);--tic=3;duration=60; end Index: mobskills/Earth_Pounder.lua =================================================================== --- mobskills/Earth_Pounder.lua (revision 2261) +++ mobskills/Earth_Pounder.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; end end Index: mobskills/Blitzstrahl.lua =================================================================== --- mobskills/Blitzstrahl.lua (revision 2261) +++ mobskills/Blitzstrahl.lua (working copy) @@ -19,7 +19,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.3) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,4);--power=1;tic=0;duration=4; end end Index: mobskills/Beatdown.lua =================================================================== --- mobskills/Beatdown.lua (revision 0) +++ mobskills/Beatdown.lua (revision 0) @@ -0,0 +1,42 @@ +--------------------------------------------------- +-- Beatdown +-- Deals damage to a single target. Additional effect: bind +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_BIND; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); + if(resist > 0.2) then + local mobTP = mob:getTP(); + local duration = mob:getMainLvl()/3.75; + if(mobTP <= 100) then + local duration = 5 + duration; + elseif(mobTP <= 200) then + local duration = 10 + duration; + else + local duration = 15 + duration; + end + target:addStatusEffect(typeEffect,1,0,duration); + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = 2.8; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Sand_Veil.lua =================================================================== --- mobskills/Sand_Veil.lua (revision 0) +++ mobskills/Sand_Veil.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------- +-- Sand Veil +-- +-- Description: Enhances evasion. +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes: Very sharp evasion increase. +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_EVASION_BOOST; + if(mob:hasStatusEffect(typeEffect) == true) then + skill:setMsg(MSG_NO_EFFECT); + else + mob:addStatusEffect(typeEffect,20,0,60);--power=25;tic=0;duration=60; + skill:setMsg(MSG_BUFF); + end + return typeEffect; +end; Index: mobskills/Cold_Breath.lua =================================================================== --- mobskills/Cold_Breath.lua (revision 0) +++ mobskills/Cold_Breath.lua (revision 0) @@ -0,0 +1,43 @@ +--------------------------------------------- +-- Cold Breath +-- +-- Description: Deals ice damage to enemies within a fan-shaped area originating from the caster. Additional effect: Bind. +-- Type: Magical Ice (Element) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_BIND; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); + if(resist > 0.2) then + local mobTP = mob:getTP(); + local duration = mob:getMainLvl()/3.75; + if(mobTP <= 100) then + local duration = 10 + duration; + elseif(mobTP <= 200) then + local duration = 15 + duration; + else + local duration = 20 + duration; + end + target:addStatusEffect(typeEffect,1,0,duration); + end + end + + local dmgmod = mob:getHP() / mob:getMaxHP() * 2.5; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_ICE,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Wind_Shear_ZNM.lua =================================================================== --- mobskills/Wind_Shear_ZNM.lua (revision 2261) +++ mobskills/Wind_Shear_ZNM.lua (working copy) @@ -26,7 +26,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,180);--power=1;tic=0;duration=180; end end Index: mobskills/Scythe_Tail.lua =================================================================== --- mobskills/Scythe_Tail.lua (revision 2261) +++ mobskills/Scythe_Tail.lua (working copy) @@ -21,9 +21,9 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 1; local accmod = 1; - local dmgmod = 2.3; + local dmgmod = math.random(2,3); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); - local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_1_SHADOW); target:delHP(dmg); return dmg; end; Index: mobskills/Disseverment.lua =================================================================== --- mobskills/Disseverment.lua (revision 2261) +++ mobskills/Disseverment.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then local power = (mob:getMainLvl()/15) + math.random(2,4) ; target:addStatusEffect(typeEffect,power,3,60);--tic=3;duration=60; end Index: mobskills/Throat_Stab.lua =================================================================== --- mobskills/Throat_Stab.lua (revision 2261) +++ mobskills/Throat_Stab.lua (working copy) @@ -18,20 +18,21 @@ end; function OnMobWeaponSkill(target, mob, skill) - local numhits = 1; - local accmod = 1; - local dmgmod = 1; - local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); - local fivePercent = ((target:getMaxHP()/100)*5); + local currentHP = target:getHP(); - if(currentHP > fivePercent and info.dmg > 0) then - local dmg = currentHP - fivePercent; + -- remove all by 5% + local stab = currentHP * .95; + + -- if have more hp then 30%, then reduce to 5% + if(currentHP / target:getMaxHP() > 0.3) then + local dmg = stab; else - local dmg = 0; + -- else you die + local dmg = currentHP; end local dmg = MobFinalAdjustments(dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_IGNORE_SHADOWS); target:delHP(dmg); - mob:updateEnmity(target,-300,1); -- no way to remove entity from enmity table currently as Clear() does not work. + mob:resetEnmity(target); return dmg; end; Index: mobskills/Sprout_Smack.lua =================================================================== --- mobskills/Sprout_Smack.lua (revision 2261) +++ mobskills/Sprout_Smack.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false and target:hasStatusEffect(EFFECT_HASTE) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then local duration = 30 + (skill:getTP()/100) * math.random(7,10); if(resist >.7) then duration = duration - ((resist -.7)* 10) * math.random(1,5); @@ -31,7 +31,7 @@ local numhits = 1; local accmod = 1; - local dmgmod = 1.3; + local dmgmod = 1.8; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); target:delHP(dmg); Index: mobskills/Poison_Pick.lua =================================================================== --- mobskills/Poison_Pick.lua (revision 2261) +++ mobskills/Poison_Pick.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.4) then + if(resist > 0.2) then local power = mob:getMainLvl()/5 + 5; target:addStatusEffect(typeEffect,power,3,60);--tic=3;duration=60; end Index: mobskills/Spinning_Fin.lua =================================================================== --- mobskills/Spinning_Fin.lua (revision 0) +++ mobskills/Spinning_Fin.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------- +-- Spinning Fin +-- +-- Description: Damages enemies in an area of effect. Additional effect: Stun +-- Type: Physical +-- Utsusemi/Blink absorb: 2-3 shadows +-- Range: 10' radial +-- Notes: +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_STUN; + if(target:hasStatusEffect(typeEffect) == false) then + target:addStatusEffect(typeEffect,1,0,math.random(2,6));--power=1;tic=0;duration=5; + end + + local numhits = math.random(2,3); + local accmod = 1; + local dmgmod = .7; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Wing_Slap.lua =================================================================== --- mobskills/Wing_Slap.lua (revision 2261) +++ mobskills/Wing_Slap.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,5);--power=1;tic=0;duration=5; end end Index: mobskills/Rumble.lua =================================================================== --- mobskills/Rumble.lua (revision 2261) +++ mobskills/Rumble.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,50,0,120); end Index: mobskills/Tail_Crush.lua =================================================================== --- mobskills/Tail_Crush.lua (revision 2261) +++ mobskills/Tail_Crush.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then local power = mob:getMainLvl()/10 + 10; target:addStatusEffect(typeEffect,power,3,60);--tic=3;duration=60; end Index: mobskills/Head_Butt.lua =================================================================== --- mobskills/Head_Butt.lua (revision 2261) +++ mobskills/Head_Butt.lua (working copy) @@ -19,14 +19,14 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.3) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,math.random(2,5));--power=1;tic=0;duration=5; end end local numhits = 1; local accmod = 1; - local dmgmod = 2.6; + local dmgmod = 2.5; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); target:delHP(dmg); Index: mobskills/Frogkick.lua =================================================================== --- mobskills/Frogkick.lua (revision 2261) +++ mobskills/Frogkick.lua (working copy) @@ -20,7 +20,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 1; local accmod = 1; - local dmgmod = 2.5; + local dmgmod = math.random(2, 2.5); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,MOBPARAM_1_SHADOW); target:delHP(dmg); Index: mobskills/Dirty_Claw.lua =================================================================== --- mobskills/Dirty_Claw.lua (revision 0) +++ mobskills/Dirty_Claw.lua (revision 0) @@ -0,0 +1,24 @@ +--------------------------------------------------- +-- Dirty Claw +-- Deals damage to a single target. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(2,3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Sandstorm.lua =================================================================== --- mobskills/Sandstorm.lua (revision 2261) +++ mobskills/Sandstorm.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,30,0,60); -- 30% ? else Index: mobskills/Primal_Drill.lua =================================================================== --- mobskills/Primal_Drill.lua (revision 2261) +++ mobskills/Primal_Drill.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.4) then + if(resist > 0.2) then local duration = ((skill:getTP()/100) * 5 )+ 15; if(resist > .7) then duration = duration - (resist * 10 )- 7; Index: mobskills/Water_Shield.lua =================================================================== --- mobskills/Water_Shield.lua (revision 0) +++ mobskills/Water_Shield.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------- +-- Water Shield +-- +-- Description: Enhances evasion. +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes: Very sharp evasion increase. +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_EVASION_BOOST; + if(mob:hasStatusEffect(typeEffect) == true) then + skill:setMsg(MSG_NO_EFFECT); + else + mob:addStatusEffect(typeEffect,20,0,30);--power=25;tic=0;duration=60; + skill:setMsg(MSG_BUFF); + end + return typeEffect; +end; Index: mobskills/Bad_Breath.lua =================================================================== --- mobskills/Bad_Breath.lua (revision 2261) +++ mobskills/Bad_Breath.lua (working copy) @@ -19,7 +19,7 @@ local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); if(target:hasStatusEffect(typeEffect) == false) then - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,15,0,60);--power=15;tic=0;duration=60; else @@ -32,7 +32,7 @@ typeEffect = EFFECT_POISON; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,mob:getMainLvl()/10 + 10,3,60);--power=(moblvl/10)+10;tic=3;duration=60; else @@ -45,7 +45,7 @@ typeEffect = EFFECT_SILENCE; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; else @@ -58,7 +58,7 @@ typeEffect = EFFECT_PARALYSIS; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,18,0,60);--power=18;tic=0;duration=60; else @@ -71,7 +71,7 @@ typeEffect = EFFECT_BIND; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,1,0,30);--power=1;tic=0;duration=30; else @@ -84,7 +84,7 @@ typeEffect = EFFECT_BLINDNESS; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,15,0,60);--power=15;tic=0;duration=60; else @@ -97,7 +97,7 @@ typeEffect = EFFECT_WEIGHT; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,30,0,60);--power=30;tic=0;duration=60; else Index: mobskills/Ululation.lua =================================================================== --- mobskills/Ululation.lua (revision 2261) +++ mobskills/Ululation.lua (working copy) @@ -13,7 +13,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); local randy = math.random(40,70); target:addStatusEffect(typeEffect,randy,0,120); -- 40-60% Index: mobskills/Sandspin.lua =================================================================== --- mobskills/Sandspin.lua (revision 2261) +++ mobskills/Sandspin.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; end end Index: mobskills/Fear_Touch.lua =================================================================== --- mobskills/Fear_Touch.lua (revision 2261) +++ mobskills/Fear_Touch.lua (working copy) @@ -19,13 +19,13 @@ local statmod = MOD_INT; local mobTP = mob:getTP(); local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then - if(mobTP <= 100) then + if(resist > 0.2) then + if(mobTP <= 100) then local duration = 60; - elseif(mobTP <= 200) then + elseif(mobTP <= 200) then local duration = 90; - else - local duration = 120; + else + local duration = 120; end target:addStatusEffect(typeEffect,30,0,duration); end @@ -33,7 +33,7 @@ local numhits = 1; local accmod = 1; - local dmgmod = 1; + local dmgmod = 2.3; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,MOBPARAM_1_SHADOW); target:delHP(dmg); Index: mobskills/Cold_Stare.lua =================================================================== --- mobskills/Cold_Stare.lua (revision 2261) +++ mobskills/Cold_Stare.lua (working copy) @@ -1,7 +1,7 @@ --------------------------------------------------- -- Cold Stare -- Silences enemies in a line area of effect. --- Notes: Only applies when face-to-face with the dhalmel. +-- Notes: Only applies when face-to-face with the dhalmel. --------------------------------------------------- require("/scripts/globals/settings"); @@ -19,7 +19,7 @@ if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,1,0,120); else Index: mobskills/Regeneration.lua =================================================================== --- mobskills/Regeneration.lua (revision 0) +++ mobskills/Regeneration.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------- +-- Regeneration +-- +-- Description: Adds a Regen effect. +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local power = mob:getMainLvl()/10 * 7 + 5; + local duration = 60; + + local typeEffect = EFFECT_REGEN; + skill:setMsg(MSG_BUFF); + if(mob:hasStatusEffect(typeEffect) == true) then + local oldEffect = mob:getStatusEffect(typeEffect); + oldEffect:setPower(power); + oldEffect:setDuration(duration); + else + mob:addStatusEffect(typeEffect,power,3,duration);--tic=3; + end + return typeEffect; +end; Index: mobskills/Regurgitation.lua =================================================================== --- mobskills/Regurgitation.lua (revision 2261) +++ mobskills/Regurgitation.lua (working copy) @@ -18,9 +18,9 @@ function OnMobWeaponSkill(target, mob, skill) local typeEffect = EFFECT_BIND; if(target:hasStatusEffect(typeEffect) == false) then - local statmod = MOD_INT; + local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Razor_Fang.lua =================================================================== --- mobskills/Razor_Fang.lua (revision 2261) +++ mobskills/Razor_Fang.lua (working copy) @@ -19,7 +19,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 2; local accmod = 1; - local dmgmod = 1; + local dmgmod = 1.5; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); target:delHP(dmg); Index: mobskills/Ripper_Fang.lua =================================================================== --- mobskills/Ripper_Fang.lua (revision 0) +++ mobskills/Ripper_Fang.lua (revision 0) @@ -0,0 +1,39 @@ +--------------------------------------------- +-- Sprout Smack +-- +-- Description: Additional effect: Slow. Duration of effect varies with TP. +-- Type: Physical (Blunt) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_SLOW; + if(target:hasStatusEffect(typeEffect) == false and target:hasStatusEffect(EFFECT_HASTE) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); + if(resist > 0.2) then + local duration = 30 + (skill:getTP()/100) * math.random(7,10); + if(resist >.7) then + duration = duration - ((resist -.7)* 10) * math.random(1,5); + end + target:addStatusEffect(typeEffect,25,0,duration);--power=10;tic=0; + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = 2.5; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Grim_Reaper.lua =================================================================== --- mobskills/Grim_Reaper.lua (revision 2261) +++ mobskills/Grim_Reaper.lua (working copy) @@ -29,7 +29,7 @@ statmod = MOD_INT; resist = applyPlayerResistance(mob,skill,target,isEnfeeble,typeEffect,statmod); - if(resist > 0.5) then + if(resist > 0.2) then if(target:hasStatusEffect(typeEffect) == false) then target:addStatusEffect(typeEffect,power,tic,duration); end Index: mobskills/Benthic_Typhoon.lua =================================================================== --- mobskills/Benthic_Typhoon.lua (revision 2261) +++ mobskills/Benthic_Typhoon.lua (working copy) @@ -21,7 +21,7 @@ local resist = ; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,30,0,60);--power=30;tic=0;duration=60; end end @@ -30,7 +30,7 @@ if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,30,0,60);--power=30;tic=0;duration=60; end end Index: mobskills/Hi-Freq_Field.lua =================================================================== --- mobskills/Hi-Freq_Field.lua (revision 2261) +++ mobskills/Hi-Freq_Field.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,50,0,120); -- 50% else Index: mobskills/Gas_Shell.lua =================================================================== --- mobskills/Gas_Shell.lua (revision 2261) +++ mobskills/Gas_Shell.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then local power = math.random(23,24); message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,power,0,60); Index: mobskills/Belly_Dance.lua =================================================================== --- mobskills/Belly_Dance.lua (revision 2261) +++ mobskills/Belly_Dance.lua (working copy) @@ -23,9 +23,9 @@ isEnfeeble = true; typeEffect = EFFECT_NAME; statmod = MOD_INT; - + resist = applyPlayerResistance(mob,skill,target,isEnfeeble,typeEffect,statmod); - if(resist > 0.5) then + if(resist > 0.2) then if(target:getStatusEffect(typeEffect) == nil) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,power,tic,duration); Index: mobskills/Tackle.lua =================================================================== --- mobskills/Tackle.lua (revision 2261) +++ mobskills/Tackle.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,math.random(2,6));--power=1;tic=0;duration=4; end end Index: mobskills/Jamming_Wave.lua =================================================================== --- mobskills/Jamming_Wave.lua (revision 0) +++ mobskills/Jamming_Wave.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------- +-- Jamming Wave +-- +-- Description: Silence Area of Effect (16.0') +-- Type: Enfeebling +-- Utsusemi/Blink absorb: Ignores shadows +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local message = MSG_MISS; + local typeEffect = EFFECT_SILENCE; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); + if(resist > 0.05) then + message = MSG_ENFEEB_IS; + target:addStatusEffect(typeEffect,1,0,math.random(30, 60));--power=1;tic=0;duration=30; + end + else + message = MSG_NO_EFFECT; + end + skill:setMsg(message); + return typeEffect; +end; Index: mobskills/Methane_Breath.lua =================================================================== --- mobskills/Methane_Breath.lua (revision 0) +++ mobskills/Methane_Breath.lua (revision 0) @@ -0,0 +1,30 @@ +--------------------------------------------- +-- Methane Breath +-- +-- Description: Deals fire damage to enemies within a fan-shaped area originating from the caster. +-- Type: Magical (Fire) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local dmgmod = mob:getHP() / mob:getMaxHP() * 5; + local accmod = 1; + + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_FIRE,MOBPARAM_IGNORE_SHADOWS); + + if(dmg > 500) then + dmg = 500; + end + + target:delHP(dmg); + return dmg; +end; Index: mobskills/Howling.lua =================================================================== --- mobskills/Howling.lua (revision 2261) +++ mobskills/Howling.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,20,0,30);--power=18;tic=0;duration=30; end Index: mobskills/Sand_Breath.lua =================================================================== --- mobskills/Sand_Breath.lua (revision 2261) +++ mobskills/Sand_Breath.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,30,0,180); -- -30% power=30;tic=0;duration=180; end end Index: mobskills/Mysterious_Light.lua =================================================================== --- mobskills/Mysterious_Light.lua (revision 2261) +++ mobskills/Mysterious_Light.lua (working copy) @@ -19,15 +19,15 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.3) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60 end end - local dmgmod = 1.2; + local dmgmod = 1.5; local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); - local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WIND,MOBPARAM_IGNORE_SHADOWS); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_WIND,MOBPARAM_WIPE_SHADOWS); target:delHP(dmg); return dmg; end; Index: mobskills/Optic_Induration.lua =================================================================== --- mobskills/Optic_Induration.lua (revision 2261) +++ mobskills/Optic_Induration.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,180);--power=1;tic=0;duration=180; end end @@ -31,6 +31,6 @@ local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*4,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); target:delHP(dmg); - mob:updateEnmity(target,-300,1); + mob:resetEnmity(target); return dmg; end; Index: mobskills/Baleful_Gaze.lua =================================================================== --- mobskills/Baleful_Gaze.lua (revision 2261) +++ mobskills/Baleful_Gaze.lua (working copy) @@ -22,9 +22,9 @@ if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); - target:addStatusEffect(typeEffect,1,0,180);--power=1;tic=0;duration=180; + target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=180; else skill:setMsg(MSG_MISS); -- resist ! end Index: mobskills/Curse.lua =================================================================== --- mobskills/Curse.lua (revision 2261) +++ mobskills/Curse.lua (working copy) @@ -23,10 +23,10 @@ local statmod = MOD_INT; local duration = 360; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.7) then + if(resist > 0.2) then duration = duration - (duration/3); end - if(resist > 0.5) then + if(resist > 0.1) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,1,0,duration);--power=1;tic=0; end Index: mobskills/Shuffle.lua =================================================================== --- mobskills/Shuffle.lua (revision 0) +++ mobskills/Shuffle.lua (revision 0) @@ -0,0 +1,17 @@ +--------------------------------------------------- +-- Shuffle +-- Dispels a single buff at random which could be food. It does not reset hate. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobWeaponSkill(target, mob, skill) + + local effect = target:dispelStatusEffect(); + return effect; + +end \ No newline at end of file Index: mobskills/Bomb_Toss_Suicide.lua =================================================================== --- mobskills/Bomb_Toss_Suicide.lua (revision 2261) +++ mobskills/Bomb_Toss_Suicide.lua (working copy) @@ -14,7 +14,14 @@ BOMB_TOSS_HPP = mob:getHP()/mob:getMaxHP(); end - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*15*BOMB_TOSS_HPP,accmod,dmgmod,TP_MAB_BONUS,1); + local power = math.random(15,20); + + -- did I drop it in my face? + if(math.random() < 0.4) then + power = 3; + end + + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*power*BOMB_TOSS_HPP,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_FIRE,MOBPARAM_IGNORE_SHADOWS); mob:setHP(0); target:delHP(dmg); Index: mobskills/Heavy_Stomp.lua =================================================================== --- mobskills/Heavy_Stomp.lua (revision 2261) +++ mobskills/Heavy_Stomp.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,10,3,360);--power=8;tic=3;duration=60; end end Index: mobskills/Tentacle.lua =================================================================== --- mobskills/Tentacle.lua (revision 0) +++ mobskills/Tentacle.lua (revision 0) @@ -0,0 +1,24 @@ +--------------------------------------------------- +-- Tentable +-- Deals damage to a single target. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(1,2.3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Haymaker.lua =================================================================== --- mobskills/Haymaker.lua (revision 2261) +++ mobskills/Haymaker.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,1); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,60);--power=1;tic=0;duration=60; end end Index: mobskills/Triclip.lua =================================================================== --- mobskills/Triclip.lua (revision 2261) +++ mobskills/Triclip.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; end Index: mobskills/Scissor_Guard.lua =================================================================== --- mobskills/Scissor_Guard.lua (revision 0) +++ mobskills/Scissor_Guard.lua (revision 0) @@ -0,0 +1,23 @@ +--------------------------------------------------- +-- Scissor Guard +-- Enhances defense 100%. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + skill:setMsg(MSG_BUFF); + local typeEffect = EFFECT_DEFENSE_BOOST; + mob:delStatusEffect(typeEffect); + mob:delStatusEffect(EFFECT_DEFENSE_DOWN); + mob:addStatusEffect(typeEffect,100,0,60); -- 100% + return typeEffect; +end; Index: mobskills/Sound_Vacuum.lua =================================================================== --- mobskills/Sound_Vacuum.lua (revision 2261) +++ mobskills/Sound_Vacuum.lua (working copy) @@ -22,9 +22,9 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.1) then message = MSG_ENFEEB_IS; - target:addStatusEffect(typeEffect,1,0,30);--power=1;tic=0;duration=30; + target:addStatusEffect(typeEffect,1,0,math.random(30,60));--power=1;tic=0;duration=30; end else message = MSG_NO_EFFECT; Index: mobskills/Brain_Drain.lua =================================================================== --- mobskills/Brain_Drain.lua (revision 0) +++ mobskills/Brain_Drain.lua (revision 0) @@ -0,0 +1,35 @@ +--------------------------------------------------- +-- Brain Drain +-- Deals damage to a single target. Additional effect: INT Down +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_INT_DOWN; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,50,0,120); + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = math.random(2, 3); + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,info.hitslanded); + + target:delHP(dmg); + + return dmg; +end; Index: mobskills/Frenetic_Rip.lua =================================================================== --- mobskills/Frenetic_Rip.lua (revision 2261) +++ mobskills/Frenetic_Rip.lua (working copy) @@ -18,7 +18,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 3; local accmod = 1; - local dmgmod = 1; + local dmgmod = 1.2; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_BLUNT,info.hitslanded); target:delHP(dmg); Index: mobskills/Obfuscate.lua =================================================================== --- mobskills/Obfuscate.lua (revision 2261) +++ mobskills/Obfuscate.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.3) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,16,0,60);--power=16;tic=0;duration=60; else Index: mobskills/Concussive_Oscillation.lua =================================================================== --- mobskills/Concussive_Oscillation.lua (revision 2261) +++ mobskills/Concussive_Oscillation.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,300); end end Index: mobskills/Ink_Jet.lua =================================================================== --- mobskills/Ink_Jet.lua (revision 0) +++ mobskills/Ink_Jet.lua (revision 0) @@ -0,0 +1,35 @@ +--------------------------------------------- +-- Ink Jet +-- +-- Description: Unleashes a torrent of black spores in a fan-shaped area of effect, dealing dark damage to targets. Additional effect: Blind +-- Type: Magical Dark (Element) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_BLIND; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.1) then + target:addStatusEffect(typeEffect,25,0,360);--tic=3;duration=30; + end + end + + local dmgmod = 2; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); + + target:delHP(dmg); + return dmg; +end; Index: mobskills/Acid_Breath.lua =================================================================== --- mobskills/Acid_Breath.lua (revision 2261) +++ mobskills/Acid_Breath.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,50,0,120);--power=50;tic=0;duration=120; else Index: mobskills/Thunderbolt.lua =================================================================== --- mobskills/Thunderbolt.lua (revision 2261) +++ mobskills/Thunderbolt.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,3);--power=1;tic=0;duration=3; end end Index: mobskills/Bubble_Armor.lua =================================================================== --- mobskills/Bubble_Armor.lua (revision 0) +++ mobskills/Bubble_Armor.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------- +-- Bubble Armor +-- +-- Description: Reduces magical damage received by 50% +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes:Nightmare Crabs use an enhanced version that applies a Magic Defense Boost that cannot be dispelled. +--------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_SHELL; + skill:setMsg(MSG_BUFF); + if(mob:hasStatusEffect(typeEffect) == true) then + local oldEffect = mob:getStatusEffect(typeEffect); + oldEffect:setPower(-128); + oldEffect:setDuration(60); + else + mob:addStatusEffect(typeEffect,-128,0,60);--power=-128;tic=0;duration=60; + end + return typeEffect; +end; Index: mobskills/Blank_Gaze.lua =================================================================== --- mobskills/Blank_Gaze.lua (revision 2261) +++ mobskills/Blank_Gaze.lua (working copy) @@ -0,0 +1,33 @@ +--------------------------------------------------- +-- Blank Gaze +-- Powerful Paralyze Gaze Attack. +-- Utsusemi/Blink absorb: Ignores shadows +-- Range: Melee? +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_PARALYSIS; + if(target:hasStatusEffect(typeEffect) == false and target:isFacing(mob)) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); + if(resist > 0.1) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,35,0,60); -- 30% ? --power=30;tic=0;duration=540; + else + skill:setMsg(MSG_MISS); -- resist ! + end + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + return typeEffect; +end Index: mobskills/Claw_Cyclone.lua =================================================================== --- mobskills/Claw_Cyclone.lua (revision 2261) +++ mobskills/Claw_Cyclone.lua (working copy) @@ -17,7 +17,7 @@ function OnMobWeaponSkill(target, mob, skill) local numhits = 2; local accmod = 1; - local dmgmod = .7; + local dmgmod = .8; local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_SLASH,info.hitslanded); target:delHP(dmg); Index: mobskills/Battle_Dance.lua =================================================================== --- mobskills/Battle_Dance.lua (revision 2261) +++ mobskills/Battle_Dance.lua (working copy) @@ -19,7 +19,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then local duration = ((skill:getTP()/100) * 15) + 75; -- TP changes duration length target:addStatusEffect(typeEffect,50,0,duration);--power=50;tic=0; end Index: mobskills/Petribreath.lua =================================================================== --- mobskills/Petribreath.lua (revision 2261) +++ mobskills/Petribreath.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.6) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,1,0,30);--power=1;tic=0;duration=30; end Index: mobskills/Enervation.lua =================================================================== --- mobskills/Enervation.lua (revision 2261) +++ mobskills/Enervation.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,20,0,120);--power=20;tic=0;duration=120; if(target:hasStatusEffect(EFFECT_MAGIC_DEF_DOWN) == false) then Index: mobskills/Ion_Shower.lua =================================================================== --- mobskills/Ion_Shower.lua (revision 2261) +++ mobskills/Ion_Shower.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then local duration = skill:getTP()/100 + 3; target:addStatusEffect(typeEffect,1,0,duration);--power=1;tic=0; end Index: mobskills/Blockhead.lua =================================================================== --- mobskills/Blockhead.lua (revision 2261) +++ mobskills/Blockhead.lua (working copy) @@ -17,7 +17,7 @@ -- Needs Knockback added local numhits = 1; local accmod = 1; - local dmgmod = 2; + local dmgmod = math.random(2,3); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,info.hitslanded); target:delHP(dmg); Index: mobskills/Thunder_Break.lua =================================================================== --- mobskills/Thunder_Break.lua (revision 2261) +++ mobskills/Thunder_Break.lua (working copy) @@ -19,7 +19,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,5);--power=1;tic=0;duration=5; end end Index: mobskills/Cocoon.lua =================================================================== --- mobskills/Cocoon.lua (revision 2261) +++ mobskills/Cocoon.lua (working copy) @@ -16,6 +16,7 @@ function OnMobWeaponSkill(target, mob, skill) skill:setMsg(MSG_BUFF); local typeEffect = EFFECT_DEFENSE_BOOST; + mob:delStatusEffect(EFFECT_DEFENSE_DOWN); mob:delStatusEffect(typeEffect); mob:addStatusEffect(typeEffect,50,0,30); -- 50% return typeEffect; Index: mobskills/Dread_Shriek.lua =================================================================== --- mobskills/Dread_Shriek.lua (revision 2261) +++ mobskills/Dread_Shriek.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,30,0,60);--power=30;tic=0;duration=60; end Index: mobskills/Numbing_Breath.lua =================================================================== --- mobskills/Numbing_Breath.lua (revision 0) +++ mobskills/Numbing_Breath.lua (revision 0) @@ -0,0 +1,43 @@ +--------------------------------------------- +-- Numbing Breath +-- +-- Description: Deals ice damage to enemies within a fan-shaped area originating from the caster. Additional effect: Paralyze. +-- Type: Magical Ice (Element) +-- +-- +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); +--------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_PARALYSIS; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); + if(resist > 0.1) then + local mobTP = mob:getTP(); + local duration = mob:getMainLvl()/3.75; + if(mobTP <= 100) then + local duration = 30 + duration; + elseif(mobTP <= 200) then + local duration = 45 + duration; + else + local duration = 60 + duration; + end + target:addStatusEffect(typeEffect,25,0,duration); + end + end + + local dmgmod = mob:getHP() / mob:getMaxHP() * 2.5; + local accmod = 1; + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_NO_EFFECT); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_ICE,MOBPARAM_IGNORE_SHADOWS); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Sonic_Boom.lua =================================================================== --- mobskills/Sonic_Boom.lua (revision 2261) +++ mobskills/Sonic_Boom.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,50,0,180);--power=50;tic=0;duration=180; end end Index: mobskills/Drainkiss.lua =================================================================== --- mobskills/Drainkiss.lua (revision 2261) +++ mobskills/Drainkiss.lua (working copy) @@ -18,20 +18,19 @@ end; function OnMobWeaponSkill(target, mob, skill) - local typeEffect = EFFECT_STR_DOWN; - if(target:hasStatusEffect(typeEffect) == false) then - local statmod = MOD_INT; - local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then - target:addStatusEffect(typeEffect,20,0,60); --power=20;tic=0;duration=60; - end - end - local dmgmod = 1; + local dmgmod = 1.5; local accmod = 1; - local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*3,accmod,dmgmod,TP_MAB_BONUS,1); + local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*2,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_1_SHADOW); - target:delHP(dmg); - mob:addHP(dmg); + + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + return dmg; end; Index: mobskills/Whip_Tongue.lua =================================================================== --- mobskills/Whip_Tongue.lua (revision 2261) +++ mobskills/Whip_Tongue.lua (working copy) @@ -23,14 +23,14 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,5);--power=1;tic=0;duration=5; end end local numhits = 1; local accmod = 1; - local dmgmod = 2.6; + local dmgmod = math.random(2.5, 3); local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_NO_EFFECT); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_NONE,MOBPARAM_1_SHADOW); target:delHP(dmg); Index: mobskills/Numbshroom.lua =================================================================== --- mobskills/Numbshroom.lua (revision 0) +++ mobskills/Numbshroom.lua (revision 0) @@ -0,0 +1,44 @@ +--------------------------------------------------- +-- Queasyshroom +-- Additional effect: Fires a mushroom cap, dealing damage to a single target. Additional effect: paralysis. +-- Range is 14.7 yalms. +-- Piercing damage Ranged Attack. +-- Secondary modifiers: INT: 20%. +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_PARALYSIS; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); + if(resist > 0.1) then + local mobTP = mob:getTP(); + if(mobTP <= 100) then + local duration = 100; + elseif(mobTP <= 200) then + local duration = 140; + else + local duration = 200; + end + target:addStatusEffect(typeEffect,35,0,duration); + end + end + + local numhits = 1; + local accmod = 1; + local dmgmod = .9; + local info = MobPhysicalMove(mob,target,skill,numhits,accmod,dmgmod,TP_DMG_VARIES,1,2,3); + local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_PHYSICAL,MOBPARAM_PIERCE,MOBPARAM_1_SHADOW); + target:delHP(dmg); + return dmg; +end; Index: mobskills/Deafening_Tantara.lua =================================================================== --- mobskills/Deafening_Tantara.lua (revision 2261) +++ mobskills/Deafening_Tantara.lua (working copy) @@ -22,7 +22,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,1,0,30);--power=1;tic=0;duration=30; end Index: mobskills/Tremors.lua =================================================================== --- mobskills/Tremors.lua (revision 2261) +++ mobskills/Tremors.lua (working copy) @@ -1,8 +1,8 @@ --------------------------------------------------- -- Tremors --- Deals Earth damage with a seismic disturbance. Additional effect: DEX Down +-- Deals Earth damage with a seismic disturbance. Additional effect: DEX Down -- Area of Effect is centered around caster. --- Utsusemi/Blink absorb: Wipes shadows +-- Utsusemi/Blink absorb: Wipes shadows -- Duration: Three minutes ? --------------------------------------------------- @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,20,0,180); -- -20 power=20;tic=0;duration=180; end end Index: mobskills/Earthshock.lua =================================================================== --- mobskills/Earthshock.lua (revision 2261) +++ mobskills/Earthshock.lua (working copy) @@ -1,6 +1,6 @@ --------------------------------------------- -- Earthshock --- Creates a seismic wave to damage targets in an area of effect. Additional effect: Stun +-- Creates a seismic wave to damage targets in an area of effect. Additional effect: Stun -- Type: Physical -- Utsusemi/Blink absorb: 2-3 shadows --------------------------------------------- @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,7);--power=1;tic=0;duration=7; end end Index: mobskills/Osmosis.lua =================================================================== --- mobskills/Osmosis.lua (revision 2261) +++ mobskills/Osmosis.lua (working copy) @@ -23,7 +23,14 @@ local accmod = 1; local info = MobMagicalMove(mob,target,skill,mob:getWeaponDmg()*7,accmod,dmgmod,TP_MAB_BONUS,1); local dmg = MobFinalAdjustments(info.dmg,mob,skill,target,MOBSKILL_MAGICAL,MOBPARAM_DARK,MOBPARAM_IGNORE_SHADOWS); - target:delHP(dmg); - mob:addHP(dmg); + + + if(target:isUndead() == false) then + target:delHP(dmg); + mob:addHP(dmg); + else + skill:setMsg(MSG_NO_EFFECT); + end + return dmg; end; Index: mobskills/Sticky_Thread.lua =================================================================== --- mobskills/Sticky_Thread.lua (revision 2261) +++ mobskills/Sticky_Thread.lua (working copy) @@ -18,7 +18,8 @@ if(target:hasStatusEffect(typeEffect) == false and target:hasStatusEffect(EFFECT_HASTE) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then + target:delStatusEffect(EFFECT_HASTE) skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,30,0,120); -- 30% ? else Index: mobskills/Calcifying_Deluge.lua =================================================================== --- mobskills/Calcifying_Deluge.lua (revision 2261) +++ mobskills/Calcifying_Deluge.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; end end Index: mobskills/Rot_Gas.lua =================================================================== --- mobskills/Rot_Gas.lua (revision 2261) +++ mobskills/Rot_Gas.lua (working copy) @@ -23,7 +23,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.4) then + if(resist > 0.2) then message = MSG_ENFEEB_IS; target:addStatusEffect(typeEffect,1,0,120);--power=1;tic=0;duration=120; end Index: mobskills/Pleiades_Ray.lua =================================================================== --- mobskills/Pleiades_Ray.lua (revision 2261) +++ mobskills/Pleiades_Ray.lua (working copy) @@ -25,7 +25,7 @@ local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,7); - if(resist > 0.5) then + if(resist > 0.2) then if(target:hasStatusEffect(EFFECT_PARALYSIS) == false) then target:addStatusEffect(EFFECT_PARALYSIS,40,tic,duration); end Index: mobskills/Rhino_Guard.lua =================================================================== --- mobskills/Rhino_Guard.lua (revision 0) +++ mobskills/Rhino_Guard.lua (revision 0) @@ -0,0 +1,28 @@ +--------------------------------------------- +-- Rhino Guard +-- +-- Description: Enhances evasion. +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes: Very sharp evasion increase. +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_EVASION_BOOST; + if(mob:hasStatusEffect(typeEffect) == true) then + skill:setMsg(MSG_NO_EFFECT); + else + mob:addStatusEffect(typeEffect,30,0,30);--power=25;tic=0;duration=60; + skill:setMsg(MSG_BUFF); + end + return typeEffect; +end; Index: mobskills/Fevered_Pitch.lua =================================================================== --- mobskills/Fevered_Pitch.lua (revision 2261) +++ mobskills/Fevered_Pitch.lua (working copy) @@ -20,7 +20,7 @@ local resist = 1; if(target:hasStatusEffect(typeEffect) == false) then resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,30,0,90);--power=30;tic=0;duration=90; end end @@ -29,7 +29,7 @@ if(target:hasStatusEffect(typeEffect) == true) then --statmod = MOD_INT; resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,7); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,7);--power=1;tic=0;duration=7; end end Index: mobskills/Whirl_of_Rage.lua =================================================================== --- mobskills/Whirl_of_Rage.lua (revision 2261) +++ mobskills/Whirl_of_Rage.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,6); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,math.random(2,6));--power=1;tic=0;duration=5; end end Index: mobskills/Demonic_Howl.lua =================================================================== --- mobskills/Demonic_Howl.lua (revision 0) +++ mobskills/Demonic_Howl.lua (revision 0) @@ -0,0 +1,31 @@ +--------------------------------------------------- +-- Demonic Howl +-- 10' AoE +50%. Slow (weaker than Haste) +--------------------------------------------------- + +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------------- + +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local typeEffect = EFFECT_SLOW; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); + if(resist > 0.1) then + skill:setMsg(MSG_ENFEEB_IS); + target:addStatusEffect(typeEffect,50,0,120); + else + skill:setMsg(MSG_MISS); -- resist ! + end + else + skill:setMsg(MSG_NO_EFFECT); -- no effect + end + return typeEffect; +end; Index: mobskills/Sheep_Bleat.lua =================================================================== --- mobskills/Sheep_Bleat.lua (revision 2261) +++ mobskills/Sheep_Bleat.lua (working copy) @@ -20,7 +20,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,2); - if(resist > 0.5) then + if(resist > 0.2) then skill:setMsg(MSG_ENFEEB_IS); target:addStatusEffect(typeEffect,30,0,120); -- 30% ? power=30;tic=0;duration=120; else Index: mobskills/Antiphase.lua =================================================================== --- mobskills/Antiphase.lua (revision 0) +++ mobskills/Antiphase.lua (revision 0) @@ -0,0 +1,32 @@ +--------------------------------------------- +-- Antiphase +-- +-- Description: Silence Area of Effect (15.0') +-- Type: Enfeebling +-- Utsusemi/Blink absorb: Ignores shadows +--------------------------------------------- +require("/scripts/globals/settings"); +require("/scripts/globals/status"); +require("/scripts/globals/monstertpmoves"); + +--------------------------------------------- +function OnMobSkillCheck(target,mob,skill) + return 0; +end; + +function OnMobWeaponSkill(target, mob, skill) + local message = MSG_MISS; + local typeEffect = EFFECT_SILENCE; + if(target:hasStatusEffect(typeEffect) == false) then + local statmod = MOD_INT; + local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); + if(resist > 0.1) then + message = MSG_ENFEEB_IS; + target:addStatusEffect(typeEffect,1,0,30);--power=1;tic=0;duration=30; + end + else + message = MSG_NO_EFFECT; + end + skill:setMsg(message); + return typeEffect; +end; Index: mobskills/Terror_Touch.lua =================================================================== --- mobskills/Terror_Touch.lua (revision 2261) +++ mobskills/Terror_Touch.lua (working copy) @@ -18,8 +18,8 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,3); - if(resist > 0.5) then - target:addStatusEffect(typeEffect,50,0,60);--power=50;tic=0;duration=60; + if(resist > 0.2) then + target:addStatusEffect(typeEffect,75,0,20);--power=50;tic=0;duration=60; end end Index: mobskills/Aerial_Wheel.lua =================================================================== --- mobskills/Aerial_Wheel.lua (revision 2261) +++ mobskills/Aerial_Wheel.lua (working copy) @@ -18,7 +18,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,4); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,math.random(2, 6));--power=1;tic=0;duration=5; end end Index: mobskills/Battery_Charge.lua =================================================================== --- mobskills/Battery_Charge.lua (revision 2261) +++ mobskills/Battery_Charge.lua (working copy) @@ -11,7 +11,10 @@ --------------------------------------------- function OnMobSkillCheck(target,mob,skill) - return 0; + if(mob:getMP() < mob:getMaxMP()) then + return 0; + end + return 1; end; function OnMobWeaponSkill(target, mob, skill) Index: mobskills/Tail_Smash.lua =================================================================== --- mobskills/Tail_Smash.lua (revision 2261) +++ mobskills/Tail_Smash.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,5); - if(resist > 0.5) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,1,0,30);--power=1;tic=0;duration=30 end end Index: mobskills/Eye_Scratch.lua =================================================================== --- mobskills/Eye_Scratch.lua (revision 2261) +++ mobskills/Eye_Scratch.lua (working copy) @@ -21,7 +21,7 @@ if(target:hasStatusEffect(typeEffect) == false) then local statmod = MOD_INT; local resist = applyPlayerResistance(mob,skill,target,mob:getMod(statmod)-target:getMod(statmod),0,8); - if(resist > 0.3) then + if(resist > 0.2) then target:addStatusEffect(typeEffect,12,0,60);--power=12;tic=0;duration=60; end end Index: spells/paralyze.lua =================================================================== --- spells/paralyze.lua (revision 2261) +++ spells/paralyze.lua (working copy) @@ -72,4 +72,4 @@ end return EFFECT_PARALYSIS; -end; \ No newline at end of file +end; Index: spells/bio_ii.lua =================================================================== --- spells/bio_ii.lua (revision 2261) +++ spells/bio_ii.lua (working copy) @@ -60,4 +60,4 @@ return final; -end; \ No newline at end of file +end; Index: spells/bio.lua =================================================================== --- spells/bio.lua (revision 2261) +++ spells/bio.lua (working copy) @@ -61,4 +61,4 @@ return final; -end; \ No newline at end of file +end; Index: spells/blind.lua =================================================================== --- spells/blind.lua (revision 2261) +++ spells/blind.lua (working copy) @@ -10,27 +10,30 @@ ----------------------------------------- function onSpellCast(caster,target,spell) - + -- Pull base stats. dINT = (caster:getStat(MOD_INT) - target:getStat(MOD_INT)); bonus = AffinityBonus(caster,spell); - + -- Base power. May need more research. power = math.floor((dINT + 60) / 4); if(power < 5) then power = 5; end - + if(power > 20) then + power = 20; + end + -- Duration, including resistance. Unconfirmed. duration = 180 * applyResistance(caster,spell,target,dINT,35,bonus); - + if(100 * math.random() >= target:getMod(MOD_BLINDRES)) then if(duration >= 90) then --Do it! -- Try to erase a weaker blind. blind = target:getStatusEffect(EFFECT_BLINDNESS) if(blind ~= nil) then if(blind:getPower() < power) then - target:delStatusEffect(EFFECT_BLINDNESS); + target:delStatusEffect(EFFECT_BLINDNESS); target:addStatusEffect(EFFECT_BLINDNESS,power,0,duration); -- if(spell:isAOE() == false) then -- spell:setMsg(237); Index: spells/dia.lua =================================================================== --- spells/dia.lua (revision 2261) +++ spells/dia.lua (working copy) @@ -59,4 +59,4 @@ return final; -end; \ No newline at end of file +end; Index: spells/bio_iii.lua =================================================================== --- spells/bio_iii.lua (revision 2261) +++ spells/bio_iii.lua (working copy) @@ -12,7 +12,7 @@ ----------------------------------------- function onSpellCast(caster,target,spell) - + --calculate raw damage basedmg = caster:getSkillLevel(DARK_MAGIC_SKILL) / 4; dmg = calculateMagicDamage(basedmg,3,caster,spell,target,DARK_MAGIC_SKILL,MOD_INT,false); @@ -35,29 +35,29 @@ dmg = adjustForTarget(target,dmg); --add in final adjustments including the actual damage dealt final = finalMagicAdjustments(caster,target,spell,dmg); - + -- Calculate duration. duration = 30; -- +30 sec by merit - + -- Check for Dia. dia = target:getStatusEffect(EFFECT_DIA); -- Calculate DoT (rough, though fairly accurate) dotdmg = 4 + math.floor(caster:getSkillLevel(DARK_MAGIC_SKILL) / 60); - + -- Do it! if(dia == nil or (BIO_OVERWRITE == 0 and dia:getPower() <= 3) or (BIO_OVERWRITE == 1 and dia:getPower() < 3)) then target:delStatusEffect(EFFECT_BIO); -- delete old bio target:addStatusEffect(EFFECT_BIO,dotdmg,3,duration,FLAG_ERASABLE); end - + --Try to kill same tier Dia (default behavior) if(DIA_OVERWRITE == 1 and dia ~= nil) then if(dia:getPower() <= 3) then target:delStatusEffect(EFFECT_DIA); end end - + return final; - + end; \ No newline at end of file Index: spells/stun.lua =================================================================== --- spells/stun.lua (revision 2261) +++ spells/stun.lua (working copy) @@ -9,20 +9,22 @@ function onSpellCast(caster,target,spell) duration = 5; - + taff = AffinityBonus(caster,spell); dINT = caster:getStat(MOD_INT) - target:getStat(MOD_INT); resist = applyResistance(caster,spell,target,dINT,37,bonus); if(resist <= (1/16)) then - --TODO: Set resist msg + -- resisted! + spell:setMsg(85); return 0; end - + if(target:hasStatusEffect(EFFECT_STUN)) then - --TODO: Set no effect + -- no effect + spell:setMsg(75); else target:addStatusEffect(EFFECT_STUN,1,0,duration); end - + return 0; end; \ No newline at end of file Index: monstertpmoves.lua =================================================================== --- monstertpmoves.lua (revision 2261) +++ monstertpmoves.lua (working copy) @@ -6,6 +6,30 @@ -- What is known is that they roughly follow player Weaponskill calculations (pDIF, dMOD, ratio, etc) so this is what -- this set of functions emulates. +-- jobs +-- some tp moves are only used by certain jobs +JOB_NON = 0; +JOB_WAR = 1; +JOB_MNK = 2; +JOB_WHM = 3; +JOB_BLM = 4; +JOB_RDM = 5; +JOB_THF = 6; +JOB_PLD = 7; +JOB_DRK = 8; +JOB_BST = 9; +JOB_BRD = 10; +JOB_RNG = 11; +JOB_SAM = 12; +JOB_NIN = 13; +JOB_DRG = 14; +JOB_SMN = 15; +JOB_BLU = 16; +JOB_COR = 17; +JOB_PUP = 18; +JOB_DNC = 19; +JOB_SCH = 20; + --skilltype MOBSKILL_PHYSICAL = 0; MOBSKILL_MAGICAL = 1; @@ -70,11 +94,11 @@ -- mtp100/200/300 are the three values for 100% TP, 200% TP, 300% TP just like weaponskills.lua -- if TP_ACC_VARIES -> three values are acc %s (1.0 is 100% acc, 0.8 is 80% acc, 1.2 is 120% acc) -- if TP_ATK_VARIES -> three values are attack multiplier (1.5x 0.5x etc) --- if TP_DMG_VARIES -> three values are +-- if TP_DMG_VARIES -> three values are function MobPhysicalMove(mob,target,skill,numberofhits,accmod,dmgmod,tpeffect,mtp100,mtp200,mtp300) returninfo = {}; - + --get dstr (bias to monsters, so no fSTR) dstr = mob:getStat(MOD_STR) - target:getStat(MOD_VIT); if(dstr < -10) then @@ -89,7 +113,7 @@ if(base < 1) then base = 1; end - + --work out and cap ratio ratio = mob:getStat(MOD_ATT)/target:getStat(MOD_DEF); if (ratio>5) then @@ -98,15 +122,15 @@ if (ratio < 0) then ratio = 0; end - + lvldiff = lvluser - lvltarget; --work out hit rate for mobs (bias towards them) hitrate = (acc*accmod) - eva; - if (lvluser > lvltarget) then + if (lvluser > lvltarget) then hitrate = hitrate + ((lvluser-lvltarget)*5); end - if (lvltarget > lvluser) then + if (lvltarget > lvluser) then hitrate = hitrate + ((lvltarget-lvluser)*3); end if (hitrate > 95) then @@ -115,7 +139,7 @@ if (hitrate < 20) then hitrate = 20; end - + --work out the base damage for a single hit hitdamage = (base + lvldiff); if(hitdamage < 1) then @@ -136,11 +160,11 @@ if(tpeffect==TP_DMG_BONUS) then hitdamage = hitdamage * fTP(skill:getTP(), mtp100, mtp200, mtp300); end - + --Applying pDIF - local double pdif = 0; + local double pdif = 0; - + -- start the hits local double hitchance = math.random(); finaldmg = 0; @@ -151,31 +175,35 @@ if ((chance*100)<=95) then pdif = math.random((minRatio*1000),(maxRatio*1000)) --generate random PDIF pdif = pdif/1000; --multiplier set. - finaldmg = finaldmg + hitdamage * pdif; + finaldmg = finaldmg + hitdamage * pdif; hitslanded = hitslanded + 1; end - while (hitsdone < numberofhits) do + while (hitsdone < numberofhits) do chance = math.random(); if ((chance*100)<=hitrate) then --it hit pdif = math.random((minRatio*1000),(maxRatio*1000)) --generate random PDIF pdif = pdif/1000; --multiplier set. - finaldmg = finaldmg + hitdamage * pdif; + finaldmg = finaldmg + hitdamage * pdif; hitslanded = hitslanded + 1; end hitsdone = hitsdone + 1; end - + + if(hitslanded >= 1 and finaldmg < 1) then + finaldmg = 1; + end + returninfo.dmg = finaldmg; returninfo.hitslanded = hitslanded; - - return returninfo; + return returninfo; + end -- MAGICAL MOVE -- Call this on every magical move! --- mob/target/skill should be passed from OnMobWeaponSkill. --- dmg is the base damage (V value), accmod is a multiplier for accuracy (1 default, more than 1 = higher macc for mob), +-- mob/target/skill should be passed from OnMobWeaponSkill. +-- dmg is the base damage (V value), accmod is a multiplier for accuracy (1 default, more than 1 = higher macc for mob), -- ditto for dmg mod but more damage >1 (equivalent of M value) -- tpeffect is an enum from one of: -- 0 = TP_NO_EFFECT @@ -203,22 +231,22 @@ meva = target:getMod(MOD_MEVA); lvluser = mob:getMainLvl(); lvltarget = target:getMainLvl(); - + if(dint < -10) then dint = -10; end - + damage = dmg + dint; if(damage<1)then damage = 1; end - + if(tpeffect==TP_DMG_BONUS) then damage = damage * ((skill:getTP()*tpvalue)/100); end - + base = damage * mab * dmgmod; - + acc = (macc*accmod) - meva; if(lvluser > lvltarget) then --bonus to acc @@ -228,7 +256,7 @@ --acc penalty acc = acc - 5*(lvltarget-lvluser); end - + --cap acc if(acc>95) then acc = 95; @@ -237,17 +265,17 @@ acc = 5; end acc = acc/100; --between 0-1 - + --account for resistances --TODO: acc = acc + (1 - (elementalres/100)) - + --thresholds half = 0.4; --(1-acc); quart = 0.2; --((1-acc)^2); eighth = 0.095; --((1-acc)^3); sixteenth = 0.0325; --((1-acc)^4); resvar = math.random(); - --random resists atm! + --random resists atm! --will this spell resist? if (resvar <= sixteenth) then @@ -261,11 +289,16 @@ elseif (resvar <= acc) then resist = 1.0; end - + finaldmg = base * resist; + + if(finaldmg < 1) then + finaldmg = 1; + end + returninfo.dmg = finaldmg; return returninfo; - + end --mob version @@ -279,8 +312,8 @@ magicaccbonus = 0; --get the base acc (just skill plus magic acc mod) magicacc = getSkillLvl(1, mob:getMainLvl()); - - --difference in int/mnd + + --difference in int/mnd if diff > 10 then magicacc = magicacc + 10 + (diff - 10)/2; else @@ -292,16 +325,16 @@ elseif(mob:hasStatusEffect(EFFECT_DARK_SEAL) == true and skill == DARK_MAGIC_SKILL) then magicaccbonus = magicaccbonus + 256; end - + local skillchainTier, skillchainCount = MobFormMagicBurst(element, target); --add acc for skillchains if(skillchainTier > 0) then magicaccbonus = magicaccbonus + 25; end - + --base magic evasion (base magic evasion plus resistances(players), plus elemental defense(mobs) magiceva = target:getMod(MOD_MEVA) + target:getMod(resistMod[element]) + target:getMod(defenseMod[element])/10; - + --get the difference of acc and eva, scale with level (3.33 at 10 to 0.44 at 75) multiplier = 0; if mob:getMainLvl() < 40 then @@ -317,12 +350,12 @@ -- print(magiceva); -- print(magicaccbonus); - + --double any acc over 50 if it's over 50 if p > 5 then p = 5 + (p - 5) * 2; end - + --add a flat bonus that won't get doubled in the previous step p = p + 45; @@ -353,7 +386,7 @@ -- print("SIXTEENTH:",sixteenth); resvar = math.random(); - + -- Determine final resist based on which thresholds have been crossed. if(resvar <= sixteenth) then resist = 0.0625; @@ -372,17 +405,17 @@ --printf("1.0"); end return resist; - + end; function mobAddBonuses(caster, spell, target, dmg, ele) - + speciesReduction = target:getMod(defenseMod[ele]); speciesReduction = 1.00 - (speciesReduction/1000); dmg = math.floor(dmg * speciesReduction); - + dayWeatherBonus = 1.00; - + if caster:getWeather() == singleWeatherStrong[ele] then if math.random() < 0.33 or caster:getEquipID(SLOT_WAIST) == elementalObi[ele] then dayWeatherBonus = dayWeatherBonus + 0.10; @@ -400,7 +433,7 @@ dayWeatherBonus = dayWeatherBonus - 0.25; end end - + if VanadielDayElement() == dayStrong[ele] then if math.random() < 0.33 or caster:getEquipID(SLOT_WAIST) == elementalObi[ele] then dayWeatherBonus = dayWeatherBonus + 0.10; @@ -410,46 +443,46 @@ dayWeatherBonus = dayWeatherBonus + 0.10; end end - + if dayWeatherBonus > 1.35 then dayWeatherBonus = 1.35; end - + dmg = math.floor(dmg * dayWeatherBonus); - + burst, burstBonus = calculateMobMagicBurstAndBonus(caster, ele, target); - + -- not sure what to do for this yet -- if(burst > 1.0) then -- spell:setMsg(spell:getMagicBurstMessage()); -- "Magic Burst!" -- end - + dmg = math.floor(dmg * burst); - + mab = (100 + caster:getMod(MOD_MATT)) / (100 + target:getMod(MOD_MDEF)) ; - + dmg = math.floor(dmg * mab); - + magicDmgMod = (256 + target:getMod(MOD_DMGMAGIC)) / 256; - + dmg = math.floor(dmg * magicDmgMod); - + -- print(affinityBonus); -- print(speciesReduction); -- print(dayWeatherBonus); -- print(burst); -- print(mab); -- print(magicDmgMod); - + return dmg; end function calculateMobMagicBurstAndBonus(caster, ele, target) local burst = 1.0; - + local skillchainTier, skillchainCount = MobFormMagicBurst(ele, target); - + if(skillchainTier > 0) then if(skillchainCount == 1) then burst = 1.3; @@ -463,7 +496,7 @@ burst = 1.50; else -- Something strange is going on if this occurs. - burst = 1.0; + burst = 1.0; end end @@ -472,14 +505,14 @@ function MobFinalAdjustments(dmg,mob,skill,target,skilltype,skillparam,shadowbehav) --Handle shadows depending on shadow behaviour / skilltype - if(shadowbehav < 5 and shadowbehav ~= MOBPARAM_IGNORE_SHADOWS) then --remove 'shadowbehav' shadows. + if(shadowbehav < 5 and shadowbehav ~= MOBPARAM_IGNORE_SHADOWS) then --remove 'shadowbehav' shadows. targShadows = target:getMod(MOD_UTSUSEMI); shadowType = MOD_UTSUSEMI; if(targShadows==0)then --try blink, as utsusemi always overwrites blink this is okay targShadows = target:getMod(MOD_BLINK); shadowType = MOD_BLINK; end - + if(targShadows>0)then --Blink has a VERY high chance of blocking tp moves, so im assuming its 100% because its easier! if(targShadows >= shadowbehav) then --no damage, just suck the shadows @@ -515,7 +548,7 @@ target:delStatusEffect(EFFECT_COPY_IMAGE); target:delStatusEffect(EFFECT_BLINK); end - + --handle Third Eye using shadowbehav as a guide teye = target:getStatusEffect(EFFECT_THIRD_EYE); if(teye ~= nil and skilltype==MOBSKILL_PHYSICAL) then --T.Eye only procs when active with PHYSICAL stuff @@ -540,16 +573,16 @@ target:delStatusEffect(EFFECT_THIRD_EYE); end end - - + + --TODO: Handle anything else (e.g. if you have Magic Shield and its a Magic skill, then do 0 damage. - + --handling phalanx dmg = dmg - target:getMod(MOD_PHALANX); if(dmg<0) then return 0; end - + --handle invincible if(target:hasStatusEffect(EFFECT_INVINCIBLE) and skilltype==MOBSKILL_PHYSICAL)then return 0; @@ -558,7 +591,7 @@ if(target:hasStatusEffect(EFFECT_PERFECT_DODGE) and skilltype==MOBSKILL_PHYSICAL)then return 0; end - + --handling stoneskin skin = target:getMod(MOD_STONESKIN); if(skin>0) then @@ -574,7 +607,7 @@ return dmg - skin; end end - + return dmg; end Index: lua/lua_baseentity.cpp =================================================================== --- lua/lua_baseentity.cpp (revision 2261) +++ lua/lua_baseentity.cpp (working copy) @@ -175,7 +175,7 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); int32 result = ((CBattleEntity*)m_PBaseEntity)->addHP(-lua_tointeger(L,-1)); - + if( result != 0 && m_PBaseEntity->objtype == TYPE_PC && m_PBaseEntity->status != STATUS_DISAPPEAR) { charutils::UpdateHealth((CCharEntity*)m_PBaseEntity); @@ -244,7 +244,7 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); - + int32 result = ((CBattleEntity*)m_PBaseEntity)->addMP(lua_tointeger(L,-1)); if( result != 0 && m_PBaseEntity->objtype == TYPE_PC && m_PBaseEntity->status != STATUS_DISAPPEAR) @@ -455,8 +455,8 @@ ((CCharEntity*)m_PBaseEntity)->clearPacketList(); ((CCharEntity*)m_PBaseEntity)->pushPacket(new CServerIPPacket((CCharEntity*)m_PBaseEntity,2)); //((CCharEntity*)m_PBaseEntity)->loc.zone->DecreaseZoneCounter(((CCharEntity*)m_PBaseEntity)); - } - else + } + else { ((CCharEntity*)m_PBaseEntity)->pushPacket(new CPositionPacket((CCharEntity*)m_PBaseEntity)); } @@ -484,7 +484,7 @@ if( !lua_isnil(L,2) && lua_isnumber(L,2) ) quantity = (uint32)lua_tointeger(L,2); - + uint8 SlotID = charutils::AddItem((CCharEntity*)m_PBaseEntity, LOC_INVENTORY, itemID, quantity); lua_pushboolean( L, (SlotID != 0xFF) ); @@ -496,7 +496,7 @@ { DSP_DEBUG_BREAK_IF(lua_isnil(L,1)); - const int8* charName = lua_tostring(L, -1); + const int8* charName = lua_tostring(L, -1); uint32 id = 0; @@ -505,7 +505,7 @@ int32 ret = Sql_Query(SqlHandle,Query,charName); if (ret != SQL_ERROR && Sql_NumRows(SqlHandle) != 0 && Sql_NextRow(SqlHandle) == SQL_SUCCESS) - id = (int32)Sql_GetIntData(SqlHandle,0); + id = (int32)Sql_GetIntData(SqlHandle,0); // could not get player from database @@ -521,7 +521,7 @@ // send the player to lower jeuno - Query = + Query = "UPDATE chars " "SET " "pos_zone = %u," @@ -583,7 +583,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; uint16 ItemID = (uint16)lua_tointeger(L,1); - + if( !lua_isnil(L,2) && lua_isnumber(L,2) ) { uint8 locationID = LOC_INVENTORY; @@ -606,7 +606,7 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); uint8 locationID = LOC_INVENTORY; - + if( !lua_isnil(L,1) && lua_isnumber(L,1) ) { locationID = (uint8)lua_tointeger(L,1); @@ -692,7 +692,7 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - + lua_pushboolean( L, hasBit((uint8)lua_tointeger(L,-1), PChar->m_ZonesList, sizeof(PChar->m_ZonesList))); return 1; } @@ -711,7 +711,7 @@ WEATHER weather = PZone->GetWeather(); - switch(weather) + switch(weather) { case WEATHER_NONE: lua_pushinteger(L, 0); break; case WEATHER_SUNSHINE: lua_pushinteger(L, 1); break; @@ -771,9 +771,9 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); - + CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; PChar->profile.nation = (uint8)lua_tointeger(L,-1); @@ -798,13 +798,13 @@ { if( m_PBaseEntity != NULL ) { - if( m_PBaseEntity->objtype == TYPE_PC ) + if( m_PBaseEntity->objtype == TYPE_PC ) { if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) { int32 rankPoints = (int32)lua_tointeger(L, -1); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - PChar->profile.rankpoints = rankPoints; + PChar->profile.rankpoints = rankPoints; charutils::SaveMissionsList(PChar); return 0; } @@ -820,13 +820,13 @@ { if( m_PBaseEntity != NULL ) { - if( m_PBaseEntity->objtype == TYPE_PC ) + if( m_PBaseEntity->objtype == TYPE_PC ) { if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) { int32 rankPoints = (int32)lua_tointeger(L, -1); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - PChar->profile.rankpoints += rankPoints; + PChar->profile.rankpoints += rankPoints; charutils::SaveMissionsList(PChar); return 0; } @@ -862,13 +862,13 @@ { if( m_PBaseEntity != NULL ) { - if( m_PBaseEntity->objtype == TYPE_PC ) + if( m_PBaseEntity->objtype == TYPE_PC ) { if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) { int32 rank = (int32)lua_tointeger(L, -1); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - PChar->profile.rank[PChar->profile.nation] = rank; + PChar->profile.rank[PChar->profile.nation] = rank; charutils::SaveMissionsList(PChar); return 0; } @@ -902,7 +902,7 @@ { PChar->m_questLog[logID].current [questID/8] |= (1 << (questID % 8)); PChar->pushPacket(new CQuestMissionLogPacket(PChar, logID, 1)); - + } }else{ ShowError(CL_RED"Lua::addQuest: LogID %i or QuestID %i is invalid\n" CL_RESET, logID, questID); @@ -946,7 +946,7 @@ }else{ ShowError(CL_RED"Lua::delQuest: LogID %i or QuestID %i is invalid\n" CL_RESET, logID, questID); } - + lua_pushnil(L); return 1; } @@ -968,13 +968,13 @@ { uint8 current = ((CCharEntity*)m_PBaseEntity)->m_questLog[logID].current [questID/8] & (1 << (questID % 8)); uint8 complete = ((CCharEntity*)m_PBaseEntity)->m_questLog[logID].complete[questID/8] & (1 << (questID % 8)); - + lua_pushinteger( L, (complete != 0 ? 2 : (current != 0 ? 1 : 0)) ); return 1; }else{ ShowError(CL_RED"Lua::getQuestStatus: LogID %i or QuestID %i is invalid\n" CL_RESET, logID, questID); } - + lua_pushnil(L); return 1; } @@ -993,7 +993,7 @@ uint8 questID = (uint8)lua_tointeger(L,-1); uint8 logID = (uint8)lua_tointeger(L,-2); - + if(logID < MAX_QUESTAREA && questID < MAX_QUESTID) { uint8 complete = PChar->m_questLog[logID].complete[questID/8] & (1 << (questID % 8)); @@ -1010,7 +1010,7 @@ }else{ ShowError(CL_RED"Lua::completeQuest: LogID %i or QuestID %i is invalid\n" CL_RESET, logID, questID); } - + lua_pushnil(L); return 1; } @@ -1035,7 +1035,7 @@ if(logID < MAX_QUESTAREA && questID < MAX_QUESTID) { uint8 complete = ((CCharEntity*)m_PBaseEntity)->m_questLog[logID].complete[questID/8] & (1 << (questID % 8)); - + lua_pushboolean( L, (complete != 0) ); return 1; } @@ -1111,9 +1111,9 @@ PChar->m_missionLog[LogID].current = LogID > 2 ? 0 : -1; PChar->pushPacket(new CQuestMissionLogPacket(PChar, LogID+10, 1)); } - if (complete != 0) + if (complete != 0) { - PChar->m_missionLog[LogID].complete[MissionID] = false; + PChar->m_missionLog[LogID].complete[MissionID] = false; PChar->pushPacket(new CQuestMissionLogPacket(PChar, LogID+10, 2)); } charutils::SaveMissionsList(PChar); @@ -1213,7 +1213,7 @@ PChar->m_missionLog[LogID].complete[MissionID] = true; PChar->pushPacket(new CQuestMissionLogPacket(PChar, LogID+10, 1)); PChar->pushPacket(new CQuestMissionLogPacket(PChar, LogID+10, 2)); - + charutils::SaveMissionsList(PChar); } else @@ -1260,7 +1260,7 @@ uint16 KeyItemID = (uint16)lua_tointeger(L, -1); - if( charutils::delKeyItem(PChar,KeyItemID) ) + if( charutils::delKeyItem(PChar,KeyItemID) ) { PChar->pushPacket(new CKeyItemsPacket(PChar,(KEYS_TABLE)(KeyItemID >> 9))); @@ -1304,11 +1304,11 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); - + uint16 KeyItemID = (uint16)lua_tointeger(L, -1); lua_pushboolean( L, (charutils::seenKeyItem((CCharEntity*)m_PBaseEntity,KeyItemID) != 0)); - return 1; + return 1; } /************************************************************************ @@ -1329,7 +1329,7 @@ uint16 KeyItemID = (uint16)lua_tointeger(L, -1); - if( charutils::unseenKeyItem(PChar,KeyItemID) ) + if( charutils::unseenKeyItem(PChar,KeyItemID) ) { PChar->pushPacket(new CKeyItemsPacket(PChar,(KEYS_TABLE)(KeyItemID >> 9))); @@ -1371,7 +1371,7 @@ CBattleEntity* PEntity = (CBattleEntity*)m_PBaseEntity; - switch(lua_tointeger(L,-1)) + switch(lua_tointeger(L,-1)) { case MOD_STR: lua_pushinteger(L, PEntity->STR()); break; case MOD_DEX: lua_pushinteger(L, PEntity->DEX()); break; @@ -1454,7 +1454,7 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); - + uint16 SpellID = (uint16)lua_tointeger(L,-1); lua_pushboolean(L, (charutils::hasSpell((CCharEntity*)m_PBaseEntity, SpellID) != 0)); @@ -1505,7 +1505,7 @@ uint16 SpellID = (uint16)lua_tointeger(L,-1); - if (charutils::delSpell(PChar,SpellID)) + if (charutils::delSpell(PChar,SpellID)) { charutils::SaveSpells(PChar); PChar->pushPacket(new CCharSpellsPacket(PChar)); @@ -1582,10 +1582,10 @@ if (JobID < MAX_JOBTYPE) { PChar->jobs.unlocked |= (1 << JobID); - + if (JobID == JOB_NON) JobID = JOB_WAR; if (PChar->jobs.job[JobID] == 0) PChar->jobs.job[JobID] = 1; - + charutils::SaveCharJob(PChar, JobID); PChar->pushPacket(new CCharJobsPacket(PChar)); } @@ -1638,7 +1638,7 @@ if( m_PBaseEntity->objtype == TYPE_PC ) { CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - + if( !lua_isnil(L,1) && lua_isnumber(L,1) ) { PChar->m_LevelRestriction = (uint32)lua_tointeger(L,1); @@ -1691,7 +1691,7 @@ if( m_PBaseEntity->objtype == TYPE_PC ) { CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - + RELEASE_TYPE releaseType = RELEASE_STANDARD; if (PChar->m_event.EventID != -1) @@ -1721,10 +1721,10 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - + int32 n = lua_gettop(L); - if (n > 10) + if (n > 10) { ShowError("CLuaBaseEntity::startEvent: Could not start event, Lack of arguments.\n"); lua_settop(L,-n); @@ -1762,7 +1762,7 @@ param6 = (uint32)lua_tointeger(L,8); if( !lua_isnil(L,9) && lua_isnumber(L,9) ) param7 = (uint32)lua_tointeger(L,9); - + ((CCharEntity*)m_PBaseEntity)->pushPacket( new CEventPacket( (CCharEntity*)m_PBaseEntity, @@ -1775,7 +1775,7 @@ param4, param5, param6, - param7)); + param7)); // если требуется вернуть фиктивный результат, то делаем это if( !lua_isnil(L,10) && lua_isnumber(L,10) ) @@ -1795,13 +1795,13 @@ { int32 n = lua_gettop(L); - if ( n > 8 ) + if ( n > 8 ) { ShowError("CLuaBaseEntity::updateEvent: Could not update event, Lack of arguments.\n"); lua_settop(L,-n); return 0; } - + uint32 param0 = 0; uint32 param1 = 0; uint32 param2 = 0; @@ -1837,7 +1837,7 @@ param4, param5, param6, - param7)); + param7)); return 0; } @@ -1884,14 +1884,14 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isuserdata(L,1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,2) || !lua_isnumber(L,2)); - + uint16 messageID = (uint16)lua_tointeger(L,2); CLuaBaseEntity* PLuaBaseEntity = Lunar::check(L,1); if(PLuaBaseEntity != NULL) { - CBaseEntity* PBaseEntity = PLuaBaseEntity->GetBaseEntity(); + CBaseEntity* PBaseEntity = PLuaBaseEntity->GetBaseEntity(); if (PBaseEntity->objtype == TYPE_NPC) { PBaseEntity->m_TargID = m_PBaseEntity->targid; @@ -1940,7 +1940,7 @@ { uint32 menu = (uint32)lua_tointeger(L, -1); - switch(menu) + switch(menu) { case 1: PChar->pushPacket(new CMenuMogPacket()); @@ -1992,11 +1992,11 @@ GUILDSTATUS status = GUILD_OPEN; - if(VanadielDay == holiday) - { + if(VanadielDay == holiday) + { status = GUILD_HOLYDAY; - } - else if ((VanadielHour < open) || (VanadielHour >= close)) + } + else if ((VanadielHour < open) || (VanadielHour >= close)) { status = GUILD_CLOSE; } @@ -2023,16 +2023,16 @@ int32 value = 0; - const int8* varname = lua_tostring(L, -1); + const int8* varname = lua_tostring(L, -1); const int8* fmtQuery = "SELECT value FROM char_vars WHERE charid = %u AND varname = '%s' LIMIT 1;"; int32 ret = Sql_Query(SqlHandle,fmtQuery,m_PBaseEntity->id, varname); - if (ret != SQL_ERROR && + if (ret != SQL_ERROR && Sql_NumRows(SqlHandle) != 0 && Sql_NextRow(SqlHandle) == SQL_SUCCESS) { - value = (int32)Sql_GetIntData(SqlHandle,0); + value = (int32)Sql_GetIntData(SqlHandle,0); } lua_pushinteger(L, value); @@ -2053,9 +2053,9 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,-2) || !lua_isstring(L,-2)); - const int8* varname = lua_tostring(L,-2); - int32 value = (int32)lua_tointeger(L,-1); - + const int8* varname = lua_tostring(L,-2); + int32 value = (int32)lua_tointeger(L,-1); + if (value == 0) { Sql_Query(SqlHandle,"DELETE FROM char_vars WHERE charid = %u AND varname = '%s' LIMIT 1;",m_PBaseEntity->id, varname); @@ -2063,9 +2063,9 @@ } const int8* fmtQuery = "INSERT INTO char_vars SET charid = %u, varname = '%s', value = %i ON DUPLICATE KEY UPDATE value = %i;"; - + Sql_Query(SqlHandle,fmtQuery,m_PBaseEntity->id, varname, value, value); - + lua_pushnil(L); return 1; } @@ -2084,17 +2084,17 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,-2) || !lua_isstring(L,-2)); - const int8* varname = lua_tostring(L,-2); - int32 value = (int32)lua_tointeger(L,-1); + const int8* varname = lua_tostring(L,-2); + int32 value = (int32)lua_tointeger(L,-1); const int8* Query = "INSERT INTO char_vars SET charid = %u, varname = '%s', value = %i ON DUPLICATE KEY UPDATE value = value + %i;"; - + Sql_Query(SqlHandle, Query, - m_PBaseEntity->id, - varname, - value, + m_PBaseEntity->id, + varname, + value, value); - + return 0; } @@ -2116,9 +2116,9 @@ const int8* varname = lua_tostring(L,-3); int32 bit = (int32)lua_tointeger(L,-2); bool state = ( lua_toboolean(L,-1) == 0 ? false : true ); - + int32 value = (int32)lua_tointeger(L,-4); - + if(state == true) { value |= (1<id, varname, value, value); - + lua_pushinteger(L, value); return 1; } @@ -2174,7 +2174,7 @@ uint8 count = 0; uint32 value = (uint32)lua_tointeger(L,-1); - for (uint8 bit = 0; bit < 32; bit++) + for (uint8 bit = 0; bit < 32; bit++) { if (value & (1 << bit)) count++; } @@ -2197,12 +2197,12 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,-2) || !lua_isnumber(L,-2)); bool condition = false; - + int32 value = (int32)lua_tointeger(L,-2); int16 size = (int16)lua_tointeger(L,-1); - + condition = (value == intpow32(2, size)-1); - + lua_pushboolean(L, condition); return 1; } @@ -2210,7 +2210,7 @@ //==========================================================// -inline int32 CLuaBaseEntity::setHomePoint(lua_State *L) +inline int32 CLuaBaseEntity::setHomePoint(lua_State *L) { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); @@ -2219,17 +2219,17 @@ PChar->profile.home_point.p = PChar->loc.p; PChar->profile.home_point.destination = PChar->getZone(); - + const int8 *fmtQuery = "UPDATE chars \ SET home_zone = %u, home_rot = %u, home_x = %.3f, home_y = %.3f, home_z = %.3f \ WHERE charid = %u;"; - Sql_Query(SqlHandle, fmtQuery, - PChar->profile.home_point.destination, + Sql_Query(SqlHandle, fmtQuery, + PChar->profile.home_point.destination, PChar->profile.home_point.p.rotation, - PChar->profile.home_point.p.x, - PChar->profile.home_point.p.y, - PChar->profile.home_point.p.z, + PChar->profile.home_point.p.x, + PChar->profile.home_point.p.y, + PChar->profile.home_point.p.z, PChar->id); return 0; } @@ -2244,9 +2244,9 @@ { CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - for (uint8 slotID = 0; slotID < TRADE_CONTAINER_SIZE; ++slotID) + for (uint8 slotID = 0; slotID < TRADE_CONTAINER_SIZE; ++slotID) { - if(PChar->Container->getInvSlotID(slotID) != 0xFF) + if(PChar->Container->getInvSlotID(slotID) != 0xFF) { uint8 invSlotID = PChar->Container->getInvSlotID(slotID); int32 quantity = PChar->Container->getQuantity(slotID); @@ -2275,7 +2275,7 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); - + uint16 TitleID = (uint16)lua_tointeger(L,-1); lua_pushboolean(L, (charutils::hasTitle((CCharEntity*)m_PBaseEntity, TitleID) != 0)); @@ -2292,7 +2292,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + lua_pushinteger( L, ((CCharEntity*)m_PBaseEntity)->profile.title ); return 1; } @@ -2307,7 +2307,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; @@ -2370,7 +2370,7 @@ uint16 TitleID = (uint16)lua_tointeger(L,-1); - if (charutils::delTitle(PChar, TitleID)) + if (charutils::delTitle(PChar, TitleID)) { if (PChar->profile.title == TitleID) { @@ -2392,8 +2392,8 @@ if( m_PBaseEntity->objtype == TYPE_PC ) { CItem * item = ((CCharEntity*)m_PBaseEntity)->getStorage(LOC_INVENTORY)->GetItem(0); - - if(item == NULL || !(item->getType() & ITEM_CURRENCY)) + + if(item == NULL || !(item->getType() & ITEM_CURRENCY)) { ShowFatalError(CL_RED"lua::getGil : No Gil in currency slot\n" CL_RESET); return 0; @@ -2427,8 +2427,8 @@ if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) { CItem * item = ((CCharEntity*)m_PBaseEntity)->getStorage(LOC_INVENTORY)->GetItem(0); - - if(item == NULL || !(item->getType() & ITEM_CURRENCY)) + + if(item == NULL || !(item->getType() & ITEM_CURRENCY)) { ShowFatalError(CL_RED"lua::addGil : No Gil in currency slot\n" CL_RESET); return 0; @@ -2455,13 +2455,13 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); bool result = false; CItem* PItem = ((CCharEntity*)m_PBaseEntity)->getStorage(LOC_INVENTORY)->GetItem(0); - + if (PItem != NULL && (PItem->getType() & ITEM_CURRENCY)) { int32 gil = (int32)lua_tointeger(L, -1); @@ -2486,8 +2486,8 @@ if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) { CItem * item = ((CCharEntity*)m_PBaseEntity)->getStorage(LOC_INVENTORY)->GetItem(0); - - if(item == NULL || !(item->getType() & ITEM_CURRENCY)) + + if(item == NULL || !(item->getType() & ITEM_CURRENCY)) { ShowFatalError(CL_RED"lua::setGil : No Gil in currency slot\n" CL_RESET); return 0; @@ -2520,7 +2520,7 @@ uint32 param1 = 0; uint32 param2 = 0; uint32 param3 = 0; - + bool showName = 0; if( !lua_isnil(L,2) && lua_isnumber(L,2) ) @@ -2534,7 +2534,7 @@ if( !lua_isnil(L,6) && lua_isboolean(L,6) ) showName = ( lua_toboolean(L,6) == 0 ? false : true ); - + ((CCharEntity*)m_PBaseEntity)->pushPacket( new CMessageSpecialPacket( m_PBaseEntity, @@ -2543,7 +2543,7 @@ param1, param2, param3, - showName)); + showName)); return 0; } } @@ -2573,7 +2573,7 @@ param0 = (uint32)lua_tointeger(L,2); if( !lua_isnil(L,3) && lua_isnumber(L,3) ) param1 = (uint32)lua_tointeger(L,3); - + if(m_PBaseEntity->objtype == TYPE_PC){ ((CCharEntity*)m_PBaseEntity)->pushPacket(new CMessageBasicPacket(m_PBaseEntity, m_PBaseEntity, param0, param1, messageID)); } @@ -2691,7 +2691,7 @@ param0 = (uint32)lua_tointeger(L,2); if( !lua_isnil(L,3) && lua_isnumber(L,3) ) param1 = (uint32)lua_tointeger(L,3); - + ((CCharEntity*)m_PBaseEntity)->pushPacket(new CMessageSystemPacket(param0,param1,messageID)); return 0; } @@ -2730,7 +2730,7 @@ { if( m_PBaseEntity->objtype == TYPE_PC ) { - if (lua_gettop(L) < 2) + if (lua_gettop(L) < 2) { ShowDebug("lua:addShopItem : Not enough information for addItem[itemID,price]\n"); lua_pushnil(L); @@ -2768,13 +2768,13 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); - - uint8 fameArea = (uint8)lua_tointeger(L, -1); + + uint8 fameArea = (uint8)lua_tointeger(L, -1); uint16 fame = 0; CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - switch (fameArea) + switch (fameArea) { case 0: // San d'Oria case 1: // Bastock @@ -2808,7 +2808,7 @@ this->getFame(L); - uint16 fame = (uint16)lua_tointeger(L, -1); + uint16 fame = (uint16)lua_tointeger(L, -1); uint8 fameLevel = 1; if (fame >= 2450) @@ -2846,10 +2846,10 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,-2) || !lua_isnumber(L,-2)); - uint8 fameArea = (uint8) lua_tointeger(L,-2); + uint8 fameArea = (uint8) lua_tointeger(L,-2); uint16 fame = (uint16)lua_tointeger(L,-1); - - switch(fameArea) + + switch(fameArea) { case 0: // San d'Oria case 1: // Bastock @@ -2886,10 +2886,10 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,-1) || !lua_isnumber(L,-1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,-2) || !lua_isnumber(L,-2)); - uint8 fameArea = (uint8) lua_tointeger(L,-2); + uint8 fameArea = (uint8) lua_tointeger(L,-2); uint16 fame = (uint16)lua_tointeger(L,-1); - - switch(fameArea) + + switch(fameArea) { case 0: // San d'Oria case 1: // Bastock @@ -2910,14 +2910,14 @@ break; } return 0; -} +} //==========================================================// inline int32 CLuaBaseEntity::getAnimation(lua_State *L) { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); - + lua_pushinteger(L, m_PBaseEntity->animation); return 1; } @@ -2959,7 +2959,7 @@ inline int32 CLuaBaseEntity::speed(lua_State *L) { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); - + if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) { uint8 speed = (uint8)dsp_min(lua_tointeger(L,-1), 255); @@ -2990,7 +2990,7 @@ inline int32 CLuaBaseEntity::AnimationSub(lua_State *L) { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); - + if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) { uint8 animationsub = (uint8)lua_tointeger(L,-1); @@ -3022,7 +3022,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; if( !lua_isnil(L,-1) && lua_isnumber(L,-1) ) @@ -3122,7 +3122,7 @@ if( m_PBaseEntity != NULL ) { if( m_PBaseEntity->objtype == TYPE_PC ) - { + { // недостаточно условий, tractor можно читать только на мертвую цель if( !lua_isnil(L,-1) && lua_isnumber(L,-1) && @@ -3139,8 +3139,8 @@ ((CCharEntity*)m_PBaseEntity)->m_StartActionPos.y = (float)lua_tonumber(L, -2); ((CCharEntity*)m_PBaseEntity)->m_StartActionPos.z = (float)lua_tonumber(L, -3); ((CCharEntity*)m_PBaseEntity)->m_StartActionPos.rotation = (int8)lua_tonumber(L, -4); - - ((CCharEntity*)m_PBaseEntity)->pushPacket(new CRaiseTractorMenuPacket((CCharEntity*)m_PBaseEntity, TYPE_TRACTOR)); + + ((CCharEntity*)m_PBaseEntity)->pushPacket(new CRaiseTractorMenuPacket((CCharEntity*)m_PBaseEntity, TYPE_TRACTOR)); } return 0; } @@ -3160,7 +3160,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; @@ -3174,7 +3174,7 @@ else if(PChar->m_hasRaise == 0) { PChar->m_hasRaise = RaiseLevel; - PChar->pushPacket(new CRaiseTractorMenuPacket(PChar, TYPE_RAISE)); + PChar->pushPacket(new CRaiseTractorMenuPacket(PChar, TYPE_RAISE)); } return 0; } @@ -3189,12 +3189,12 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,2) || !lua_isnumber(L,2)); DSP_DEBUG_BREAK_IF(lua_isnil(L,3) || !lua_isnumber(L,3)); DSP_DEBUG_BREAK_IF(lua_isnil(L,4) || !lua_isnumber(L,4)); - + int32 n = lua_gettop(L); CStatusEffect * PEffect = new CStatusEffect( @@ -3221,13 +3221,13 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,2) || !lua_isnumber(L,2)); DSP_DEBUG_BREAK_IF(lua_isnil(L,3) || !lua_isnumber(L,3)); DSP_DEBUG_BREAK_IF(lua_isnil(L,4) || !lua_isnumber(L,4)); DSP_DEBUG_BREAK_IF(lua_isnil(L,5) || !lua_isnumber(L,5)); - + int32 n = lua_gettop(L); CStatusEffect * PEffect = new CStatusEffect( @@ -3250,7 +3250,7 @@ * * ************************************************************************/ -inline int32 CLuaBaseEntity::getPartyMember(lua_State* L) +inline int32 CLuaBaseEntity::getPartyMember(lua_State* L) { if( m_PBaseEntity != NULL ) { @@ -3259,7 +3259,7 @@ uint8 member = (uint8)lua_tonumber(L,-1); uint8 allianceparty = (uint8)lua_tonumber(L,-2); CBattleEntity* PTargetChar = NULL; - + if(allianceparty == 0 && member == 0) PTargetChar =((CBattleEntity*)m_PBaseEntity); else if(((CBattleEntity*)m_PBaseEntity)->PParty != NULL) @@ -3287,7 +3287,7 @@ return 1; } -inline int32 CLuaBaseEntity::getPartySize(lua_State* L) +inline int32 CLuaBaseEntity::getPartySize(lua_State* L) { if( m_PBaseEntity != NULL ) { @@ -3302,7 +3302,7 @@ else if( ((CBattleEntity*)m_PBaseEntity)->PParty->m_PAlliance != NULL) partysize = ((CBattleEntity*)m_PBaseEntity)->PParty->m_PAlliance->partyList.at(allianceparty)->members.size(); } - + lua_pushnumber( L,partysize ); return 1; } @@ -3311,7 +3311,7 @@ return 1; } -inline int32 CLuaBaseEntity::getAllianceSize(lua_State* L) +inline int32 CLuaBaseEntity::getAllianceSize(lua_State* L) { if( m_PBaseEntity != NULL ) { @@ -3338,7 +3338,7 @@ { if( !lua_isnil(L,1) && lua_isnumber(L,1) && !lua_isnil(L,2) && lua_isnumber(L,2) && - !lua_isnil(L,3) && lua_isnumber(L,3) && + !lua_isnil(L,3) && lua_isnumber(L,3) && !lua_isnil(L,4) && lua_isnumber(L,4) ) { int32 n = lua_gettop(L); @@ -3353,10 +3353,10 @@ (n >= 7 ? (uint16)lua_tointeger(L,7) : 0)); CCharEntity* PChar = ((CCharEntity*)m_PBaseEntity); - + for (int i=0; i< PChar->PParty->members.size(); ++i) { - if (PChar->PParty->members[i]->loc.zone == PChar->loc.zone) + if (PChar->PParty->members[i]->loc.zone == PChar->loc.zone) { PChar->PParty->members[i]->StatusEffectContainer->AddStatusEffect(PEffect); } @@ -3383,14 +3383,14 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); uint8 n = lua_gettop(L); - + CStatusEffect* PStatusEffect = ((CBattleEntity*)m_PBaseEntity)->StatusEffectContainer->GetStatusEffect( - (EFFECT)lua_tointeger(L,1), + (EFFECT)lua_tointeger(L,1), (n >= 2) ? (uint16)lua_tointeger(L,2) : 0); - + if (PStatusEffect == NULL) lua_pushnil(L); - else + else { lua_pop(L,1); lua_pushstring(L, CLuaStatusEffect::className); @@ -3425,9 +3425,9 @@ if (lua_gettop(L) >= 2) { hasEffect = ((CBattleEntity*)m_PBaseEntity)->StatusEffectContainer->HasStatusEffect( - (EFFECT)lua_tointeger(L,1), + (EFFECT)lua_tointeger(L,1), (uint16)lua_tointeger(L,2)); - } else { + } else { hasEffect = ((CBattleEntity*)m_PBaseEntity)->StatusEffectContainer->HasStatusEffect( (EFFECT)lua_tointeger(L,1)); } @@ -3462,7 +3462,7 @@ { /* Delete matching status effect any power */ result = ((CBattleEntity*)m_PBaseEntity)->StatusEffectContainer->DelStatusEffect((EFFECT)lua_tointeger(L,1)); - } + } } lua_pushboolean(L, result); @@ -3482,10 +3482,10 @@ int32 n = lua_gettop(L); CCharEntity* PChar = ((CCharEntity*)m_PBaseEntity); - + for (int i=0; i< PChar->PParty->members.size(); ++i) { - if (PChar->PParty->members[i]->loc.zone == PChar->loc.zone) + if (PChar->PParty->members[i]->loc.zone == PChar->loc.zone) { PChar->PParty->members[i]->StatusEffectContainer->DelStatusEffect((EFFECT)lua_tointeger(L,1)); } @@ -3505,16 +3505,16 @@ { if( m_PBaseEntity->objtype != TYPE_NPC ) { - + int32 n = lua_gettop(L); CCharEntity* PChar = ((CCharEntity*)m_PBaseEntity); if (PChar->PParty != NULL) { for (int i=0; i< PChar->PParty->members.size(); ++i) - { - if (PChar->PParty->members[i]->loc.zone == PChar->loc.zone) + { + if (PChar->PParty->members[i]->loc.zone == PChar->loc.zone) { - PChar->PParty->members[i]->StatusEffectContainer->HasStatusEffect((EFFECT)lua_tointeger(L,1)); + PChar->PParty->members[i]->StatusEffectContainer->HasStatusEffect((EFFECT)lua_tointeger(L,1)); } } return 1; @@ -3561,10 +3561,10 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,2) || !lua_isnumber(L,2)); - + ((CBattleEntity*)m_PBaseEntity)->addModifier( lua_tointeger(L,1), lua_tointeger(L,2)); @@ -3577,10 +3577,10 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - lua_pushinteger(L,((CBattleEntity*)m_PBaseEntity)->getMod(lua_tointeger(L,1))); + lua_pushinteger(L,((CBattleEntity*)m_PBaseEntity)->getMod(lua_tointeger(L,1))); return 1; } @@ -3590,15 +3590,15 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,2) || !lua_isnumber(L,2)); - + ((CBattleEntity*)m_PBaseEntity)->delModifier( lua_tointeger(L,1), lua_tointeger(L,2)); return 0; -} +} //==========================================================// @@ -3606,7 +3606,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); DSP_DEBUG_BREAK_IF(lua_isnil(L,2) || !lua_isnumber(L,2)); @@ -3614,7 +3614,7 @@ lua_tointeger(L,1), lua_tointeger(L,2)); return 0; -} +} /************************************************************************ * * @@ -3742,7 +3742,7 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); DSP_DEBUG_BREAK_IF(lua_tointeger(L,1) > 99); - + CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; //PChar->jobs.exp[PChar->GetSJob()] = 0; @@ -3789,7 +3789,7 @@ DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); DSP_DEBUG_BREAK_IF(lua_tointeger(L,1) > 99); - + CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; PChar->SetMLevel((uint8)lua_tointeger(L,1)); @@ -3852,7 +3852,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + ((CCharEntity*)m_PBaseEntity)->pushPacket(new CMessageStandardPacket( m_PBaseEntity->loc.p.x, m_PBaseEntity->loc.p.y, @@ -3919,7 +3919,7 @@ if (File) { CBasicPacket * PPacket = new CBasicPacket(); - + fseek(File,1,SEEK_SET); fread(&size,1,1,File); @@ -3965,13 +3965,13 @@ CItem* PItem = PChar->getStorage(LOC_INVENTORY)->GetItem(PChar->equip[SLOT]); - if((PItem != NULL) && (PItem->getType() & ITEM_ARMOR)) + if((PItem != NULL) && (PItem->getType() & ITEM_ARMOR)) { - lua_pushinteger(L,PItem->getID()); + lua_pushinteger(L,PItem->getID()); return 1; } } - lua_pushinteger(L,0); + lua_pushinteger(L,0); return 1; } @@ -3985,7 +3985,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); uint8 SLOT = (uint8)lua_tointeger(L,1); @@ -3995,7 +3995,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; charutils::EquipItem(PChar, 0, SLOT); - + PChar->m_EquipBlock |= 1 << SLOT; PChar->pushPacket(new CCharAppearancePacket(PChar)); PChar->pushPacket(new CEquipPacket(0, SLOT)); @@ -4015,7 +4015,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); uint8 SLOT = (uint8)lua_tointeger(L,1); @@ -4162,36 +4162,60 @@ inline int32 CLuaBaseEntity::updateEnmity(lua_State *L) { - DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); - DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_MOB); + DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); + DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_MOB); //DSP_DEBUG_BREAK_IF(lua_gettop(L) > 1); - DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isuserdata(L,1)); + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isuserdata(L,1)); - CLuaBaseEntity* PEntity = Lunar::check(L,1); + CLuaBaseEntity* PEntity = Lunar::check(L,1); - if (PEntity != NULL && + if (PEntity != NULL && PEntity->GetBaseEntity()->objtype != TYPE_NPC) - { + { ((CMobEntity*)m_PBaseEntity)->PEnmityContainer->AddBaseEnmity((CBattleEntity*)PEntity->GetBaseEntity()); - } - return 0; + } + return 0; } /************************************************************************ - Check if the mob has immunity for this type of spell - list at mobentity.h - return true if he has immunity, else false + Resets all enmity of player on mob. + Example: + mob:resetEnmity(target) ************************************************************************/ +inline int32 CLuaBaseEntity::resetEnmity(lua_State *L) +{ + DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); + DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_MOB); + + //DSP_DEBUG_BREAK_IF(lua_gettop(L) > 1); + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isuserdata(L,1)); + + CLuaBaseEntity* PEntity = Lunar::check(L,1); + + if (PEntity != NULL && + PEntity->GetBaseEntity()->objtype != TYPE_NPC) + { + ((CMobEntity*)m_PBaseEntity)->PEnmityContainer->LowerEnmityByPercent((CBattleEntity*)PEntity->GetBaseEntity(), 100, NULL); + } + return 0; +} + +/************************************************************************ + Check if the mob has immunity for this type of spell + list at mobentity.h + return true if he has immunity, else false +************************************************************************/ + inline int32 CLuaBaseEntity::hasImmunity(lua_State *L) { - DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); - DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_MOB); - DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); + DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); + DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_MOB); + DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - lua_pushboolean(L, ((CBattleEntity*)m_PBaseEntity)->hasImmunity((uint32)lua_tointeger(L,1))); - return 1; + lua_pushboolean(L, ((CBattleEntity*)m_PBaseEntity)->hasImmunity((uint32)lua_tointeger(L,1))); + return 1; } /************************************************************************ @@ -4202,11 +4226,11 @@ inline int32 CLuaBaseEntity::getBattleTime(lua_State *L) { - DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); - DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); + DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); + DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); lua_pushinteger(L, ((CBattleEntity*)m_PBaseEntity)->PBattleAI->GetBattleTime()); - return 1; + return 1; } /************************************************************************ @@ -4263,7 +4287,7 @@ CLuaBaseEntity* PEntity = Lunar::check(L,1); uint32 amount = lua_tointeger(L,2); - if (PEntity != NULL && + if (PEntity != NULL && PEntity->GetBaseEntity()->objtype == TYPE_PC)//TODO: Handle people curing skeletons { battleutils::GenerateCureEnmity((CBattleEntity*)m_PBaseEntity, (CBattleEntity*)PEntity->GetBaseEntity(), amount); @@ -4290,7 +4314,7 @@ CLuaBaseEntity* PEntity = Lunar::check(L,1); uint32 damage = lua_tointeger(L,2); - if (PEntity != NULL && + if (PEntity != NULL && PEntity->GetBaseEntity()->objtype != TYPE_NPC) { ((CMobEntity*)m_PBaseEntity)->PEnmityContainer->UpdateEnmityFromDamage((CBattleEntity*)PEntity->GetBaseEntity(),damage); @@ -4313,7 +4337,7 @@ if (!lua_isnil(L,-1) && lua_isboolean(L,-1)) { - m_PBaseEntity->loc.zoning = lua_toboolean(L,-1); + m_PBaseEntity->loc.zoning = lua_toboolean(L,-1); return 0; } lua_pushboolean( L, m_PBaseEntity->loc.zoning ); @@ -4332,7 +4356,7 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - + CCharEntity* PChar = ((CCharEntity*)m_PBaseEntity); lua_pushinteger(L, PChar->getStorage(lua_tointeger(L,1))->GetSize()); return 1; @@ -4348,7 +4372,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); - + if( !lua_isnil(L,1) && lua_isnumber(L,1) && !lua_isnil(L,2) && lua_isnumber(L,2)) { @@ -4367,13 +4391,13 @@ ShowError(CL_RED"CLuaBaseEntity::changeContainerSize: bad container id (%u)\n", LocationID); } } - return 0; + return 0; } /************************************************************************ * * * * -* * +* * ************************************************************************/ inline int32 CLuaBaseEntity::takeMagicDamage(lua_State *L) @@ -4397,7 +4421,7 @@ /************************************************************************ * * * Get Entity's id * -* * +* * ************************************************************************/ inline int32 CLuaBaseEntity::getID(lua_State *L) @@ -4411,7 +4435,7 @@ /************************************************************************ * * * Get Entity's name * -* * +* * ************************************************************************/ inline int32 CLuaBaseEntity::getName(lua_State *L) @@ -4425,7 +4449,7 @@ /************************************************************************ * * * Gets the current weapon's base DMG; used for WS calcs * -* * +* * ************************************************************************/ inline int32 CLuaBaseEntity::getWeaponDmg(lua_State *L) @@ -4434,8 +4458,8 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT_MAIN]; - - if(weapon == NULL) + + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getWeaponDmg weapon in main slot is null!\n" CL_RESET); return 0; @@ -4448,7 +4472,7 @@ /************************************************************************ * * * Gets the current offhand weapon's base DMG; used for WS calcs * -* * +* * ************************************************************************/ inline int32 CLuaBaseEntity::getOffhandDmg(lua_State *L) @@ -4457,8 +4481,8 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT_SUB]; - - if(weapon == NULL) + + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getOffhandDmg weapon in main slot is null!\n" CL_RESET); return 0; @@ -4470,7 +4494,7 @@ /************************************************************************ * * * Gets the skill type of weapon in slot * -* * +* * ************************************************************************/ inline int32 CLuaBaseEntity::getWeaponSkillType(lua_State *L) { @@ -4480,13 +4504,13 @@ if( !lua_isnil(L,1) && lua_isstring(L,1) ) { uint8 SLOT = (uint8)lua_tointeger(L,1); - if (SLOT > 1) + if (SLOT > 1) { lua_pushinteger(L,0); return 1; } CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT]; - if(weapon == NULL) + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getOffhandDmg weapon in main slot is null!\n" CL_RESET); return 0; @@ -4504,8 +4528,8 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT_RANGED]; - - if(weapon == NULL) + + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getRangedDmg weapon in ranged slot is null!\n" CL_RESET); return 0; @@ -4522,8 +4546,8 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT_AMMO]; - - if(weapon == NULL) + + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getAmmoDmg weapon in ammo slot is null!\n" CL_RESET); return 0; @@ -4540,8 +4564,8 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT_RANGED]; - - if(weapon == NULL) + + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getRATT weapon in ranged slot is null!\n" CL_RESET); return 0; @@ -4559,8 +4583,8 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT_RANGED]; - - if(weapon == NULL) + + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getRACC weapon in ranged slot is null!\n" CL_RESET); return 0; @@ -4572,7 +4596,7 @@ if(skill>200){ acc = 200 + (skill-200)*0.9;} acc += PChar->getMod(MOD_RACC); acc += PChar->AGI()/2; - acc = ((100 + PChar->getMod(MOD_RACCP)) * acc)/100 + + acc = ((100 + PChar->getMod(MOD_RACCP)) * acc)/100 + dsp_min(((100 + PChar->getMod(MOD_FOOD_RACCP)) * acc)/100, PChar->getMod(MOD_FOOD_RACC_CAP)); lua_pushinteger( L, acc); @@ -4587,8 +4611,8 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype == TYPE_NPC); CItemWeapon* weapon = ((CBattleEntity*)m_PBaseEntity)->m_Weapons[SLOT_MAIN]; - - if(weapon == NULL) + + if(weapon == NULL) { ShowDebug(CL_CYAN"lua::getWeaponDmg weapon in main slot is null!\n" CL_RESET); return 0; @@ -4621,8 +4645,8 @@ } if(rand()%100 < hitrate){ - float DamageRatio = battleutils::GetDamageRatio(PAttacker, PDefender, false, 0); - int damage = (uint16)((PAttacker->m_Weapons[SLOT_MAIN]->getDamage() + battleutils::GetFSTR(PAttacker,PDefender,SLOT_MAIN)) * DamageRatio); + float DamageRatio = battleutils::GetDamageRatio(PAttacker, PDefender, false, 0); + int damage = (uint16)((PAttacker->m_Weapons[SLOT_MAIN]->getDamage() + battleutils::GetFSTR(PAttacker,PDefender,SLOT_MAIN)) * DamageRatio); lua_pushinteger( L,damage ); return 1; } @@ -4660,9 +4684,9 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; int instance = 0; - + DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); - + if(PChar->loc.zone->m_InstanceHandler->hasFreeInstance()){ int Pzone = PChar->getZone(); if(Pzone > 184 && Pzone < 189 || Pzone > 133 && Pzone < 136){ @@ -4673,7 +4697,7 @@ ShowDebug("Free BCNM Instance found for BCNMID %i \n",lua_tointeger(L,1)); instance = PChar->loc.zone->m_InstanceHandler->registerBcnm(lua_tointeger(L,1),PChar); } - + if(instance!=-1){ ShowDebug("Registration successful!\n"); lua_pushinteger( L,instance); @@ -4703,7 +4727,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); - + int Pzone = PChar->getZone(); if(Pzone > 184 && Pzone < 189 || Pzone > 133 && Pzone < 136){ if(PChar->StatusEffectContainer->HasStatusEffect(EFFECT_DYNAMIS)){ @@ -4768,7 +4792,7 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - + if(PChar->m_insideBCNM){ lua_pushinteger( L,1); return 1; @@ -4785,7 +4809,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); - + uint8 inst = 255; if(PChar->loc.zone != NULL && PChar->loc.zone->m_InstanceHandler != NULL){ @@ -4805,7 +4829,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); - + uint8 inst = 255; if(PChar->loc.zone != NULL && PChar->loc.zone->m_InstanceHandler != NULL){ @@ -4827,7 +4851,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); - + uint8 full = 1; if(PChar->loc.zone!=NULL && PChar->loc.zone->m_InstanceHandler!=NULL && @@ -4843,7 +4867,7 @@ { DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - + CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); @@ -4860,7 +4884,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); - + PChar->loc.zone->m_InstanceHandler->dynamisMessage(448,lua_tointeger(L,1)); return 1; @@ -4873,7 +4897,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; DSP_DEBUG_BREAK_IF(PChar->loc.zone->m_InstanceHandler == NULL); - + PChar->loc.zone->m_InstanceHandler->launchDynamisSecondPart(); return 1; @@ -4919,7 +4943,7 @@ /************************************************************************ * * * Открываем дверь и автоматически закрываем через 7 секунд * -* * +* * ************************************************************************/ inline int32 CLuaBaseEntity::openDoor(lua_State *L) @@ -4930,7 +4954,7 @@ if (m_PBaseEntity->animation == ANIMATION_CLOSE_DOOR) { uint32 OpenTime = (!lua_isnil(L,1) && lua_isnumber(L,1)) ? (uint32)lua_tointeger(L,1) * 1000 : 7000; - + m_PBaseEntity->animation = ANIMATION_OPEN_DOOR; m_PBaseEntity->loc.zone->PushPacket(m_PBaseEntity, CHAR_INRANGE, new CEntityUpdatePacket(m_PBaseEntity, ENTITY_UPDATE)); @@ -4953,7 +4977,7 @@ if (m_PBaseEntity->status == STATUS_NORMAL) { uint32 OpenTime = (!lua_isnil(L,1) && lua_isnumber(L,1)) ? (uint32)lua_tointeger(L,1) * 1000 : 15000; - + m_PBaseEntity->status = STATUS_DISAPPEAR; m_PBaseEntity->loc.zone->PushPacket(m_PBaseEntity, CHAR_INRANGE, new CEntityUpdatePacket(m_PBaseEntity, ENTITY_DESPAWN)); @@ -4970,7 +4994,7 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - + lua_pushinteger( L, PChar->RegionPoints[PChar->profile.nation] ); return 1; } @@ -4982,14 +5006,14 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - + int32 cp = (int32)lua_tointeger(L,1); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; PChar->RegionPoints[PChar->profile.nation] += cp; charutils::SaveCharPoints(PChar); PChar->pushPacket(new CConquestPacket(PChar)); - + return 0; } @@ -5000,14 +5024,14 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - + int32 cp = (int32)lua_tointeger(L,1); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; PChar->RegionPoints[PChar->profile.nation] -= cp; charutils::SaveCharPoints(PChar); PChar->pushPacket(new CConquestPacket(PChar)); - + return 0; } @@ -5025,7 +5049,7 @@ int32 point = (int32)lua_tointeger(L,1); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - + lua_pushinteger( L, PChar->RegionPoints[point] ); return 1; } @@ -5041,14 +5065,14 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1) || lua_isnil(L,2) || !lua_isnumber(L,2)); - + int32 type = (int32)lua_tointeger(L,1); int32 point = (int32)lua_tointeger(L,2); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; PChar->RegionPoints[type] += point; charutils::SaveCharPoints(PChar); - + return 0; } @@ -5063,14 +5087,14 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1) || lua_isnil(L,2) || !lua_isnumber(L,2)); - + int32 type = (int32)lua_tointeger(L,1); int32 point = (int32)lua_tointeger(L,2); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; PChar->RegionPoints[type] -= point; charutils::SaveCharPoints(PChar); - + return 0; } @@ -5085,11 +5109,11 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1)); - + int32 nation = (int32)lua_tointeger(L,1); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - - switch(nation) + + switch(nation) { case 0: lua_pushinteger( L, PChar->nationtp.sandoria ); return 1; break; case 1: lua_pushinteger( L, PChar->nationtp.bastok ); return 1; break; @@ -5099,7 +5123,7 @@ case 5: lua_pushinteger( L, PChar->nationtp.pastsandoria ); return 1; break; case 6: lua_pushinteger( L, PChar->nationtp.pastbastok ); return 1; break; case 7: lua_pushinteger( L, PChar->nationtp.pastwindurst ); return 1; break; - default : + default : ShowDebug(CL_CYAN"lua::getNationTeleport no region with this number!\n" CL_RESET); return 0; } @@ -5117,12 +5141,12 @@ DSP_DEBUG_BREAK_IF(m_PBaseEntity == NULL); DSP_DEBUG_BREAK_IF(m_PBaseEntity->objtype != TYPE_PC); DSP_DEBUG_BREAK_IF(lua_isnil(L,1) || !lua_isnumber(L,1) || lua_isnil(L,2) || !lua_isnumber(L,2)); - + uint16 nation = (uint16)lua_tointeger(L,1); uint32 newTP = (uint32)lua_tointeger(L,2); CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; - - switch(nation) + + switch(nation) { case 0: PChar->nationtp.sandoria += newTP; break; case 1: PChar->nationtp.bastok += newTP; break; @@ -5132,7 +5156,7 @@ case 5: PChar->nationtp.pastsandoria += newTP; break; case 6: PChar->nationtp.pastbastok += newTP; break; case 7: PChar->nationtp.pastwindurst += newTP; break; - default : + default : ShowDebug(CL_CYAN"lua::addNationTeleport no region with this number!\n" CL_RESET); return 0; } @@ -5238,7 +5262,7 @@ CCharEntity* PChar = (CCharEntity*)m_PBaseEntity; uint8 SoloPartyAlliance = 0; - if (PChar->PParty != NULL) + if (PChar->PParty != NULL) { SoloPartyAlliance = 1; if (PChar->PParty->m_PAlliance != NULL) SoloPartyAlliance = 2; @@ -5261,7 +5285,7 @@ CMobEntity* PMob = (CMobEntity*)PLuaBaseEntity->GetBaseEntity(); uint8 charlvl = PChar->GetMLevel(); uint8 maxlevel = PMob->m_HiPCLvl; - + if (map_config.fov_party_gap_penalties == 1) { if (maxlevel > 50 || maxlevel > (charlvl+7)) @@ -5337,13 +5361,13 @@ const int8 CLuaBaseEntity::className[] = "CBaseEntity"; -Lunar::Register_t CLuaBaseEntity::methods[] = +Lunar::Register_t CLuaBaseEntity::methods[] = { LUNAR_DECLARE_METHOD(CLuaBaseEntity,warp), LUNAR_DECLARE_METHOD(CLuaBaseEntity,leavegame), - LUNAR_DECLARE_METHOD(CLuaBaseEntity,getID), - LUNAR_DECLARE_METHOD(CLuaBaseEntity,getName), - LUNAR_DECLARE_METHOD(CLuaBaseEntity,getHP), + LUNAR_DECLARE_METHOD(CLuaBaseEntity,getID), + LUNAR_DECLARE_METHOD(CLuaBaseEntity,getName), + LUNAR_DECLARE_METHOD(CLuaBaseEntity,getHP), LUNAR_DECLARE_METHOD(CLuaBaseEntity,addHP), LUNAR_DECLARE_METHOD(CLuaBaseEntity,delHP), LUNAR_DECLARE_METHOD(CLuaBaseEntity,setHP), @@ -5437,7 +5461,7 @@ LUNAR_DECLARE_METHOD(CLuaBaseEntity,delGil), LUNAR_DECLARE_METHOD(CLuaBaseEntity,setGil), LUNAR_DECLARE_METHOD(CLuaBaseEntity,addExp), - LUNAR_DECLARE_METHOD(CLuaBaseEntity,createShop), + LUNAR_DECLARE_METHOD(CLuaBaseEntity,createShop), LUNAR_DECLARE_METHOD(CLuaBaseEntity,addShopItem), LUNAR_DECLARE_METHOD(CLuaBaseEntity,getFame), LUNAR_DECLARE_METHOD(CLuaBaseEntity,setFame), @@ -5470,7 +5494,8 @@ LUNAR_DECLARE_METHOD(CLuaBaseEntity,moghouseFlag), LUNAR_DECLARE_METHOD(CLuaBaseEntity,injectPacket), LUNAR_DECLARE_METHOD(CLuaBaseEntity,showPosition), - LUNAR_DECLARE_METHOD(CLuaBaseEntity,updateEnmity), + LUNAR_DECLARE_METHOD(CLuaBaseEntity,updateEnmity), + LUNAR_DECLARE_METHOD(CLuaBaseEntity,resetEnmity), LUNAR_DECLARE_METHOD(CLuaBaseEntity,updateEnmityFromDamage), LUNAR_DECLARE_METHOD(CLuaBaseEntity,getEquipID), LUNAR_DECLARE_METHOD(CLuaBaseEntity,lockEquipSlot), Index: lua/lua_baseentity.h =================================================================== --- lua/lua_baseentity.h (revision 2261) +++ lua/lua_baseentity.h (working copy) @@ -117,12 +117,12 @@ int32 getMaxMP(lua_State*); // Get max mp of entity int32 getStat(lua_State*); // STR,DEX,VIT,AGI,INT,MND,CHR,ATT,DEF - + int32 getXPos(lua_State*); // Get Entity X position int32 getYPos(lua_State*); // Get Entity Y position int32 getZPos(lua_State*); // Get Entity Z position int32 setPos(lua_State*); // Set Entity position (zone,x,y,z) - int32 getZone(lua_State*); // Get Entity zone + int32 getZone(lua_State*); // Get Entity zone int32 getZoneName(lua_State*); // Get Entity zone name int32 getCurrentRegion(lua_State*); // Get Entity conquest region int32 getPreviousZone(lua_State*); // Get Entity previous zone @@ -162,12 +162,12 @@ int32 getRank(lua_State*); // Get Current Rank int32 setRank(lua_State*); // Set Rank - - int32 getRankPoints(lua_State*); // Get Current Rank points + + int32 getRankPoints(lua_State*); // Get Current Rank points int32 setRankPoints(lua_State*); // Set Current Rank points int32 addRankPoints(lua_State*); // Add rank points to existing rank point total - int32 addKeyItem(lua_State*); // Add key item to Entity Key Item collection + int32 addKeyItem(lua_State*); // Add key item to Entity Key Item collection int32 seenKeyItem(lua_State*); // If Key Item is viewed, add it to the seen key item collection int32 unseenKeyItem(lua_State*); // Attempt to remove the keyitem from the seen key item collection, only works on logout int32 hasKeyItem(lua_State*); // Checks Entity key item collection to see if Entity has the key item @@ -180,12 +180,12 @@ int32 canLearnSpell(lua_State*); // Check to see if character can learn spell, 0 if so int32 delSpell(lua_State*); // Remove spell from Entity spell list - int32 addWeaponSkill(lua_State*); // + int32 addWeaponSkill(lua_State*); // int32 delWeaponSkill(lua_State*); // int32 getMainJob(lua_State*); // Returns Entity Main Job int32 getMainLvl(lua_State*); // Gets Entity Main Job Level - int32 getSubJob(lua_State*); // Get Entity Sub Job + int32 getSubJob(lua_State*); // Get Entity Sub Job int32 getSubLvl(lua_State*); // Get Entity Sub Job Level int32 unlockJob(lua_State*); // Unlocks a job for the entity, sets job level to 1 int32 levelCap(lua_State*); // genkai @@ -198,7 +198,7 @@ int32 release(lua_State*); // Stops event int32 startEvent(lua_State*); // Begins Event - int32 updateEvent(lua_State*); // Updates event + int32 updateEvent(lua_State*); // Updates event int32 getEventTarget(lua_State*); // int32 sendMenu(lua_State*); // Displays a menu (AH,Raise,Tractor,MH etc) @@ -221,13 +221,13 @@ int32 getVar(lua_State*); // Returns a character variable int32 setVar(lua_State*); // Sets a character variable int32 addVar(lua_State*); // Increments/decriments/sets a character variable - + int32 setMaskBit(lua_State*); // Sets a single bit in a character variable int32 getMaskBit(lua_State*); // Retrieves a single bit in a character variable int32 countMaskBits(lua_State*); // Retrieves number of true bits in a character variable int32 isMaskFull(lua_State*); // Checks if a bitmask stored in a character varable of a specified size contains all set bits - int32 setHomePoint(lua_State*); // Sets character's homepoint + int32 setHomePoint(lua_State*); // Sets character's homepoint int32 tradeComplete(lua_State*); // Complete trade with an npc int32 hasTitle(lua_State*); @@ -262,6 +262,7 @@ int32 updateEnmity(lua_State*); // Adds Enmity to player for specified mob int32 updateEnmityFromDamage(lua_State*);// Adds Enmity to player for specified mob for the damage specified int32 updateEnmityFromCure(lua_State*); + int32 resetEnmity(lua_State*); //resets enmity to player for specificed mob int32 hasImmunity(lua_State*); // Check if the mob has immunity for a type of spell (list at mobentity.h) int32 getBattleTime(lua_State*); // Get the time in second of the battle @@ -271,9 +272,9 @@ int32 addStatusEffect(lua_State*); // Adds status effect to character int32 addStatusEffectEx(lua_State*); // Adds status effect to character int32 hasStatusEffect(lua_State*); // Checks to see if character has specified effect - int32 getStatusEffect(lua_State*); // - int32 delStatusEffect(lua_State*); // Removes Status Effect - int32 eraseStatusEffect(lua_State*); // Used with "Erase" spell + int32 getStatusEffect(lua_State*); // + int32 delStatusEffect(lua_State*); // Removes Status Effect + int32 eraseStatusEffect(lua_State*); // Used with "Erase" spell int32 dispelStatusEffect(lua_State*); // Used with "Dispel" spell int32 getPartyMember(lua_State* L); // Get a character entity from another entity's party or alliance int32 getPartySize(lua_State* L); // Get the size of a party in an entity's alliance @@ -306,8 +307,8 @@ int32 setFlag(lua_State*); int32 moghouseFlag(lua_State*); int32 showPosition(lua_State*); // Display current position of character - int32 injectPacket(lua_State*); // Send the character a packet kept in a file - + int32 injectPacket(lua_State*); // Send the character a packet kept in a file + int32 getContainerSize(lua_State*); // Gets the current capacity of a container int32 changeContainerSize(lua_State*); // Increase/Decreases container size int32 resetPlayer(lua_State*); // if player is stuck, GM command @resetPlayer name @@ -332,7 +333,7 @@ int32 addCP(lua_State*); // Add CP int32 getCP(lua_State*); // Get CP int32 delCP(lua_State*); // Delete CP - + int32 addPoint(lua_State*); // Add other point int32 getPoint(lua_State*); // Get other point int32 delPoint(lua_State*); // Delete other point Index: mob_skill.sql =================================================================== --- mob_skill.sql (revision 2261) +++ mob_skill.sql (working copy) @@ -42,50 +42,50 @@ -- -- Contenu de la table `mob_skill` --- +-- -- ------------------------------------------ -- Normal Monster -- ------------------------------------------ --- Rabbits +-- Rabbits -- Base (206) INSERT INTO `mob_skill` VALUES (1,206,1,'Foot_Kick', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (2,206,2,'Dust_Cloud', 4, 10.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (3,206,3,'Whirl_Claws', 1, 5.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (3,206,3,'Whirl_Claws', 1, 5.0, 2000, 1000, 4, 0); -- With Cure (317) INSERT INTO `mob_skill` VALUES (1,317,1,'Foot_Kick', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (2,317,2,'Dust_Cloud', 4, 10.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (3,317,3,'Whirl_Claws', 1, 5.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (3,317,3,'Whirl_Claws', 1, 5.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES(67, 317, 67, 'Wild_Carrot', 1, 20.0, 2000, 1500, 2, 0); -- Snowy Area (318) -INSERT INTO `mob_skill` VALUES (3,318,3,'Whirl_Claws', 1, 5.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (3,318,3,'Whirl_Claws', 1, 5.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES(67, 318, 67, 'Wild_Carrot', 1, 20.0, 2000, 1500, 2, 0); -- INSERT INTO `mob_skill` VALUES(405, 318, 0, 'Snow_Cloud', 4, 10.0, 2000, 1500, 4, 0); -- Sheep -INSERT INTO `mob_skill` VALUES (4,226,4,'Lamb_Chop', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (4,226,4,'Lamb_Chop', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (5,226,5,'Rage', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (6,226,6,'Sheep_Charge', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (8,226,8,'Sheep_Song', 1, 10.0, 2000, 1500, 4, 0); -- Karakul INSERT INTO `mob_skill` VALUES (1581,167,1275,'Feeble_Bleat', 1, 18.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (4,167,4,'Lamb_Chop', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (4,167,4,'Lamb_Chop', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (5,167,5,'Rage', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (6,167,6,'Sheep_Charge', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (8,167,8,'Sheep_Song', 1, 10.0, 2000, 1500, 4, 0); -- Ram INSERT INTO `mob_skill` VALUES (9,208,9,'Rage', 0, 7.0, 2000, 1500, 1, 0); -INSERT INTO `mob_skill` VALUES (10,208,10,'Ram_Charge', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (10,208,10,'Ram_Charge', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (11,208,11,'Rumble', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (12,208,12,'Great_Bleat', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (13,208,13,'Petribreath', 4, 10.0, 2000, 1500, 4, 0); -- -------------------- -- Tiger INSERT INTO `mob_skill` VALUES (14,242,14,'Roar', 1, 10.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (15,242,15,'Razor_Fang', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (15,242,15,'Razor_Fang', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (17,242,17,'Claw_Cyclone', 4, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,242,0,'Crossthrash', 0, 7.0, 2000, 1500, 4, 0); -- NM/Dyna/einherjar -- INSERT INTO `mob_skill` VALUES (0,242,0,'Predatory_Glare', 4, 16.0, 2000, 1500, 4, 0); -- NM/Dyna/einherjar @@ -93,96 +93,94 @@ -- Dhalmel INSERT INTO `mob_skill` VALUES (24,80,24,'Sonic_Wave', 4, 10.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (25,80,25,'Stomping', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (28,80,28,'Cold_Stare', 4, 16.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (25,80,25,'Stomping', 0, 7.0, 2000, 1800, 4, 0); +INSERT INTO `mob_skill` VALUES (28,80,28,'Cold_Stare', 4, 16.0, 2000, 3000, 4, 0); INSERT INTO `mob_skill` VALUES (29,80,29,'Whistle', 1, 20.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (30,80,30,'Berserk', 0, 7.0, 2000, 1500, 1, 0); -INSERT INTO `mob_skill` VALUES (31,80,31,'Healing_Breeze', 1, 15.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (31,80,31,'Healing_Breeze', 1, 15.0, 2000, 2000, 1, 0); -- Opo-opo INSERT INTO `mob_skill` VALUES (38,188,38,'Eye_Scratch', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (32,188,32,'Vicious_Claw', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (34,188,34,'Spinning_Claw', 1, 15.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (34,188,34,'Spinning_Claw', 1, 15.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (39,188,39,'Magic_Fruit', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES(35, 188, 35, 'Claw_Storm', 0, 7.0, 2000, 1500, 4, 0); -- 7hp/tick INSERT INTO `mob_skill` VALUES(33, 188, 33, 'Stone_Throw', 0, 25.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES(36, 188, 36, 'Blank_Gaze', 0, 16.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES(36, 188, 36, 'Blank_Gaze', 0, 16.0, 2000, 3000, 4, 0); -- Mandragora --- INSERT INTO `mob_skill` VALUES (45,178,45,'Dream_Flower', 1, 15.0, 2000, 1500, 4, 0); -- Not used by Lycopodia +-- INSERT INTO `mob_skill` VALUES (45,178,45,'Dream_Flower', 1, 15.0, 2000, 1800, 4, 0); -- Not used by Lycopodia INSERT INTO `mob_skill` VALUES (46,178,46,'Wild_Oats', 0, 12.5, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (48,178,48,'Photosynthesis', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (49,178,49,'Leaf_Dagger', 0, 7.0, 2000, 1500, 4, 0); -- 1hp/tick INSERT INTO `mob_skill` VALUES(44, 178, 44, 'Head_Butt', 0, 7.0, 1500, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES(50, 178, 50, 'Scream', 1, 15.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES(50, 178, 50, 'Scream', 1, 15.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES(0, 178, 0, 'Petal_Pirouette', 0, 15.0, 2000, 1500, 4, 0); -- Only used by certain NM -- INSERT INTO `mob_skill` VALUES(0, 178, 0, 'Demonic_Flower', 0, 7.0, 2000, 1500, 4, 0); -- Only used by certain NM -- Morbol INSERT INTO `mob_skill` VALUES (60,186,60,'Impale', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (61,186,61,'Vampiric_Lash', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (63,186,63,'Bad_Breath', 4, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Sweet Breath', 4, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Impale', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Vampiric Root', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (63,186,63,'Bad_Breath', 4, 7.0, 2000, 2500, 4, 0); +INSERT INTO `mob_skill` VALUES (64,186,64,'Sweet_Breath', 4, 7.0, 2000, 2500, 4, 0); -- sleep -- INSERT INTO `mob_skill` VALUES (0,0,0,'Vampiric Lash', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Drain Whip', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Extremely_Bad_Breath', 4, 7.0, 2000, 1500, 4, 0); -- used only by Evil Oscar, Cirrate Christelle, Lividroot Amooshah, Eccentric Eve and Melancholic Moira. -- Sabotenders (cactuars) INSERT INTO `mob_skill` VALUES (65,212,65,'Needleshot', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (66,212,66,'1000_Needles', 1, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (66,212,66,'1000_Needles', 1, 10.0, 2000, 2500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'2000_Needles', 1, 10.0, 2000, 1500, 4, 0); -- Only used by Nightmare Sabotender -- INSERT INTO `mob_skill` VALUES (0,0,0,'4000_Needles', 1, 10.0, 2000, 1500, 4, 0); -- Only used by Nightmare Sabotender -- INSERT INTO `mob_skill` VALUES (0,0,0,'10000_Needles', 1, 10.0, 2000, 1500, 4, 0); -- Only used by certain Notorious Monsters -- INSERT INTO `mob_skill` VALUES (0,0,0,'Photosynthesis', 0, 7.0, 2000, 1500, 2, 0); -- Funguar -INSERT INTO `mob_skill` VALUES (52,116,52,'Frogkick', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (52,116,52,'Frogkick', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (53,116,53,'Spore', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (54,116,54,'Queasyshroom', 0, 13.5, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Silence_Gas', 4, 13.5, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Dark_Spore', 4, 13.5, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Numbshroom', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Shakeshroom', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (58,116,58,'Silence_Gas', 4, 13.5, 2000, 2500, 4, 0); +INSERT INTO `mob_skill` VALUES (59,116,59,'Dark_Spore', 4, 13.5, 2000, 2500, 4, 0); +INSERT INTO `mob_skill` VALUES (55,116,55,'Numbshroom', 0, 14.7, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (56,116,56,'Shakeshroom', 0, 14.7, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Microspores', 1, 10.0, 2000, 1500, 4, 0); -- Only used by certain Notorious Monsters -- Treant INSERT INTO `mob_skill` VALUES (72,245,72,'Drill_Branch', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (73,245,73,'Pinecone_Bomb', 0, 23.5, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (73,245,73,'Pinecone_Bomb', 0, 23.5, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (75,245,75,'Leafstorm', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (76,245,76,'Entangle', 0, 7.0, 2000, 1500, 4, 0); -- Bee -INSERT INTO `mob_skill` VALUES (80,48,80,'Final_Sting', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (80,48,80,'Final_Sting', 0, 7.0, 2000, 2500, 4, 0); INSERT INTO `mob_skill` VALUES (79,48,79,'Pollen', 0, 7.0, 2000, 1500, 1, 0); -INSERT INTO `mob_skill` VALUES (78,48,78,'Sharp_Sting', 0, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Frenzy_Pollen', 0, 7.0, 2000, 1500, 2, 0); -- Only used by Nightmare Hornets and Chasmic Hornet. +INSERT INTO `mob_skill` VALUES (78,48,78,'Sharp_Sting', 0, 10.0, 2000, 1800, 4, 0); +-- INSERT INTO `mob_skill` VALUES (0,0,0,'Frenzy_Pollen', 0, 7.0, 2000, 1500, 2, 0); -- Only used by Nightmare Hornets and Chasmic Hornet. --- Beetle -INSERT INTO `mob_skill` VALUES (82,49,82,'Power_Attack', 0, 7.0, 2000, 1500, 4, 0); +-- Beetle +INSERT INTO `mob_skill` VALUES (82,49,82,'Power_Attack', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (83,49,83,'Hi-Freq_Field', 4, 16.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (84,50,84,'Rhino_Attack', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Spoil', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Rhino Guard', 0, 7.0, 2000, 1500, 2, 0); +INSERT INTO `mob_skill` VALUES (84,49,84,'Rhino_Attack', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (87,49,87,'Spoil', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (85,49,85,'Rhino_Guard', 0, 7.0, 2000, 1500, 2, 0); -- Crawler -INSERT INTO `mob_skill` VALUES (90,79,90,'Cocoon', 0, 7.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (90,79,90,'Cocoon', 0, 7.0, 2000, 1800, 1, 0); INSERT INTO `mob_skill` VALUES (89,79,89,'Poison_Breath', 4, 10.0, 2000, 1500, 4, 0); -- Not used by Eruca INSERT INTO `mob_skill` VALUES (88,79,88,'Sticky_Thread', 4, 10.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Incinerate', 4, 10.0, 2000, 1500, 4, 0); -- only used by Eruca -- Scorpion -INSERT INTO `mob_skill` VALUES (94,217,94,'Mandible_Bite', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (97,217,97,'Death_Scissors', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (94,217,94,'Mandible_Bite', 0, 7.0, 2000, 1800, 4, 0); +INSERT INTO `mob_skill` VALUES (97,217,97,'Death_Scissors', 0, 7.0, 2000, 2500, 4, 0); INSERT INTO `mob_skill` VALUES (98,217,98,'Wild_Rage', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (99,217,99,'Earth_Pounder', 1, 15.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Poison Sting', 0, 7.0, 2000, 1500, 4, 0); -- 1hp/tick --- INSERT INTO `mob_skill` VALUES (0,0,0,'Cold_Breath', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Numbing_Breath', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Sharp Strike', 0, 7.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (95,217,95,'Poison_Sting', 0, 7.0, 2000, 1500, 4, 0); -- 1hp/tick +INSERT INTO `mob_skill` VALUES (93,217,93,'Cold_Breath', 4, 10.0, 2000, 1800, 4, 0); +INSERT INTO `mob_skill` VALUES (92,217,92,'Numbing_Breath', 4, 10.0, 2000, 1800, 4, 0); +INSERT INTO `mob_skill` VALUES (100,217,100,'Sharp_Strike', 0, 7.0, 2000, 2000, 1, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Earthbreaker', 1, 40.0, 2000, 1500, 4, 0); -- NM/HNM only -- INSERT INTO `mob_skill` VALUES (0,0,0,'Critical_Bite', 0, 7.0, 2000, 1500, 4, 0); -- NM/HNM only -- INSERT INTO `mob_skill` VALUES (0,0,0,'Venom_Sting', 0, 7.0, 2000, 1500, 4, 0); -- NM/HNM only @@ -204,32 +202,32 @@ INSERT INTO `mob_skill` VALUES (111,174,111,'Fireball', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (112,174,112,'Blockhead', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (113,174,113,'Brain_Crush', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (114,174,114,'Infrasonics', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Secretion', 0, 7.0, 2000, 1500, 1, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Baleful_Gaze', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (116,174,116,'Infrasonics', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (117,174,117,'Secretion', 0, 7.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (114,174,114,'Baleful_Gaze', 4, 10.0, 2000, 3000, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Snowball', 1, 10.0, 2000, 1500, 4, 0); -- only in colder regions --- INSERT INTO `mob_skill` VALUES (0,0,0,'Plague_Breath', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (115,174,115,'Plague_Breath', 4, 10.0, 2000, 1500, 4, 0); -- Raptor INSERT INTO `mob_skill` VALUES (123,210,123,'Chomp_Rush', 0, 7.0, 2000, 1500, 4, 0); -- para 25% -INSERT INTO `mob_skill` VALUES (121,210,121,'Frost_Breath', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (121,210,121,'Frost_Breath', 4, 10.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (124,210,124,'Scythe_Tail', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Foul_Breath', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Thunderbolt', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Ripper_Fang', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (120,210,120,'Foul_Breath', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (122,210,122,'Thunderbolt', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (118,210,118,'Ripper_Fang', 0, 7.0, 2000, 1500, 4, 0); -- Bugard --- INSERT INTO `mob_skill` VALUES (127,50,0,'Tusk', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (130,50,0,'Awful_Eye', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (131,50,0,'Heavy_Bellow', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Scutum', 0, 7.0, 2000, 1500, 1, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Tail-Roll', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Bone_Crunch', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (127,58,127,'Tusk', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (130,58,130,'Awful_Eye', 4, 10.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (131,58,131,'Heavy_Bellow', 4, 10.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (128,58,128,'Scutum', 0, 7.0, 2000, 1500, 1, 0); +-- INSERT INTO `mob_skill` VALUES (126,58,126,'Tail_Roll', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (129,58,129,'Bone_Crunch', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Hungry_Crunch', 0, 7.0, 2000, 1500, 4, 0); -- Only used by the Boggelmann -- Giant Bat INSERT INTO `mob_skill` VALUES (138,46,138,'Blood_Drain', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Ultrasonics', 1, 16.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (136,46,136,'Ultrasonics', 1, 16.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Marrow_Drain', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Subsonics', 1, 16.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Supersonics', 1, 16.0, 2000, 1500, 4, 0); -- Aht Urhgan only @@ -237,7 +235,7 @@ -- Bats INSERT INTO `mob_skill` VALUES (137,47,137,'Sonic_Boom', 1, 16.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (139,47,139,'Jet_Stream', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (139,47,139,'Jet_Stream', 0, 7.0, 2000, 1800, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Turbulence', 1, 16.0, 2000, 1500, 4, 0); -- Not used in original zone -- INSERT INTO `mob_skill` VALUES (0,0,0,'Slipstream', 1, 16.0, 2000, 1500, 4, 0); -- Not used in original zone @@ -248,41 +246,41 @@ -- INSERT INTO `mob_skill` VALUES (0,0,0,'Scratch', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Triple_Attack', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Dread_Dive', 0, 7.0, 2000, 1500, 4, 0); -- Used instead of Gliding Spike by certain NM --- INSERT INTO `mob_skill` VALUES (0,0,0,'Blind_Vortex', 0, 7.0, 2000, 1500, 4, 0); -- Used in place of Triple Attack by certain NM +-- INSERT INTO `mob_skill` VALUES (0,0,0,'Blind_Vortex', 0, 7.0, 2000, 1500, 4, 0); -- Used in place of Triple Attack by certain NM -- INSERT INTO `mob_skill` VALUES (0,0,0,'Giga Scream', 0, 7.0, 2000, 1500, 4, 0); -- Used by some NM in place of Triple Attack -- Cockatrice -INSERT INTO `mob_skill` VALUES (150,70,150,'Hammer_Beak', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (150,70,150,'Hammer_Beak', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (151,70,151,'Poison_Pick', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (152,70,152,'Sound_Vacuum', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Baleful_Gaze', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Sound_Blast', 1, 16.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (155,70,155,'Baleful_Gaze', 0, 7.0, 2000, 3000, 4, 0); +INSERT INTO `mob_skill` VALUES (154,70,154,'Sound_Blast', 1, 16.0, 2000, 1500, 4, 0); -- Leech -INSERT INTO `mob_skill` VALUES (158,172,158,'Suction', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (158,172,158,'Suction', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (159,172,159,'Acid_Mist', 1, 16.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (160,172,160,'Sand_Breath', 4, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (161,172,161,'Drainkiss', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Brain_Drain', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Regeneration', 0, 7.0, 2000, 1500, 1, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'MP_Drainkiss', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'TP_Drainkiss', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (167,172,167,'Brain_Drain', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (162,172,162,'Regeneration', 0, 7.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (165,172,165,'MP_Drainkiss', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (164,172,164,'TP_Drainkiss', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Absorbing_Kiss', 0, 7.0, 2000, 1500, 4, 0); -- Only used by certain NM -- INSERT INTO `mob_skill` VALUES (0,0,0,'Deep_Kiss', 0, 7.0, 2000, 1500, 4, 0); -- Only used by certain NM -- INSERT INTO `mob_skill` VALUES (0,0,0,'Random_Kiss', 0, 7.0, 2000, 1500, 4, 0); -- Only used by certain NM -- Worm -INSERT INTO `mob_skill` VALUES (168,258,168,'Full-Force_Blow', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (168,258,168,'Full-Force_Blow', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (169,258,169,'Gastric_Bomb', 0, 20.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (170,258,170,'Sandspin', 1, 16.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (171,258,171,'Tremors', 1, 18.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Sound_Vacuum', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'MP Absorption', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (173,258,173,'Sound_Vacuum', 0, 16.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (172,258,172,'MP_Absorption', 0, 7.0, 2000, 1500, 4, 0); --- Slime +-- Slime INSERT INTO `mob_skill` VALUES (175,228,175,'Fluid_Spread', 1, 10.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (176,228,176,'Fluid_Toss', 0, 18.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Digest', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (176,228,176,'Fluid_Toss', 0, 18.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (177,228,177,'Digest', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'HP Drain', 0, 7.0, 2000, 1500, 4, 0); -- TOAU/WOTG? -- INSERT INTO `mob_skill` VALUES (0,0,0,'Epoxy Spread', 1, 10.0, 2000, 1500, 4, 0); -- TOAU/WOTG -- INSERT INTO `mob_skill` VALUES (0,0,0,'Mucus Spread', 1, 10.0, 2000, 1500, 4, 0); -- WOTG @@ -290,43 +288,47 @@ -- INSERT INTO `mob_skill` VALUES (0,0,0,'Cytokinesis', 0, 7.0, 2000, 1500, 4, 0); -- Only used by certain NM INSERT INTO `mob_skill` VALUES (175,229,175,'Fluid_Spread', 1, 10.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (176,229,176,'Fluid_Toss', 0, 18.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (176,229,176,'Fluid_Toss', 0, 18.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (177,229,177,'Digest', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (175,230,175,'Fluid_Spread', 1, 10.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (176,230,176,'Fluid_Toss', 0, 18.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (176,230,176,'Fluid_Toss', 0, 18.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (177,230,177,'Digest', 0, 7.0, 2000, 1500, 4, 0); -- Hecteyes -INSERT INTO `mob_skill` VALUES (181,139,181,'Death_Ray', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (182,139,182,'Hex_Eye', 4, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (181,139,181,'Death_Ray', 0, 7.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (182,139,182,'Hex_Eye', 4, 7.0, 2000, 3000, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Catharsis', 0, 7.0, 2000, 1500, 2, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Petro Gaze', 4, 7.0, 2000, 1500, 4, 0); -- Crab -INSERT INTO `mob_skill` VALUES (188,75,188,'Big_Scissors', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (188,75,188,'Big_Scissors', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (187,75,187,'Bubble_Curtain', 0, 7.0, 2000, 1500, 1, 0); -- Shell -50% magic damage taken -INSERT INTO `mob_skill` VALUES (186,75,186,'Bubble_Shower', 1, 12.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (186,75,186,'Bubble_Shower', 1, 12.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES (192,75,192,'Metallic_Body', 0, 7.0, 2000, 1500, 1, 0); -- 25HP Stoneskin --- INSERT INTO `mob_skill` VALUES (0,0,0,'Scissor_Guard', 0, 7.0, 2000, 1500, 1, 0); -- +100% defense boost +INSERT INTO `mob_skill` VALUES (189,75,189,'Scissor_Guard', 0, 7.0, 2000, 1500, 1, 0); -- +100% defense boost -- INSERT INTO `mob_skill` VALUES (0,0,0,'Mega_Scissors', 4, 10.0, 2000, 1500, 4, 0); -- Only used by certain NM -- INSERT INTO `mob_skill` VALUES (0,0,0,'Venom_Shower', 1, 20.0, 2000, 1500, 4, 0); -- Only used by certain NM -INSERT INTO `mob_skill` VALUES (188,76,188,'Big_Scissors', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (188,76,188,'Big_Scissors', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (187,76,187,'Bubble_Curtain', 0, 7.0, 2000, 1500, 1, 0); -INSERT INTO `mob_skill` VALUES (186,76,186,'Bubble_Shower', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (186,76,186,'Bubble_Shower', 1, 7.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES (192,76,192,'Metallic_Body', 0, 7.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (189,76,189,'Scissor_Guard', 0, 7.0, 2000, 1500, 1, 0); -- +100% defense boost -INSERT INTO `mob_skill` VALUES (188,77,188,'Big_Scissors', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (188,77,188,'Big_Scissors', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (187,77,187,'Bubble_Curtain', 0, 7.0, 2000, 1500, 1, 0); -INSERT INTO `mob_skill` VALUES (186,77,186,'Bubble_Shower', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (186,77,186,'Bubble_Shower', 1, 7.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES (192,77,192,'Metallic_Body', 0, 7.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (189,77,189,'Scissor_Guard', 0, 7.0, 2000, 1500, 1, 0); -- +100% defense boost -- Pugil INSERT INTO `mob_skill` VALUES (195,197,195,'Splash_Breath', 4, 12.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (196,197,196,'Screwdriver', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (197,197,197,'Water_Wall', 0, 7.0, 2000, 1500, 1, 0); -- 100% Defense Boost. 1 minute duration --- INSERT INTO `mob_skill` VALUES (0,0,0,'Water Shield', 0, 7.0, 2000, 1500, 1, 0); -- Eva boost --- INSERT INTO `mob_skill` VALUES (0,0,0,'Aqua Ball', 1, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Intimidate', 4, 12.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (196,197,196,'Screwdriver', 0, 7.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (197,197,197,'Water_Wall', 0, 7.0, 2000, 1000, 1, 0); -- 100% Defense Boost. 1 minute duration +INSERT INTO `mob_skill` VALUES (198,197,198,'Water Shield', 0, 7.0, 2000, 1000, 1, 0); -- Eva boost +INSERT INTO `mob_skill` VALUES (194,197,194,'Aqua Ball', 1, 10.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (190,197,190,'Intimidate', 4, 12.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Recoil Dive', 4, 12.0, 2000, 1500, 4, 0); -- Used by Jagils instead of Screwdriver -- Sea Monks (Kraken) @@ -336,7 +338,7 @@ INSERT INTO `mob_skill` VALUES (205,218,205,'Regeneration', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (206,218,206,'Maelstrom', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (207,218,207,'Whirlwind', 1, 15.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Tentacle', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (200,218,200,'Tentacle', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (202,219,202,'Ink_Jet', 4, 12.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (203,219,203,'Hard_Membrane', 0, 7.0, 2000, 1500, 1, 0); @@ -344,40 +346,44 @@ INSERT INTO `mob_skill` VALUES (205,219,205,'Regeneration', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (206,219,206,'Maelstrom', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (207,219,207,'Whirlwind', 1, 15.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (200,219,200,'Tentacle', 0, 7.0, 2000, 1500, 4, 0); -- Hound 142,143 INSERT INTO `mob_skill` VALUES (209,142,209,'Howling', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (210,142,210,'Poison_Breath', 4, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (211,142,211,'Rot_Gas', 1, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Dirty Claw', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Shadow Claw', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Methane Breath', 4, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (212,142,212,'Dirty_Claw', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (213,142,213,'Shadow_Claw', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (214,142,214,'Methane_Breath', 4, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (209,143,209,'Howling', 1, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (210,143,210,'Poison_Breath', 4, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (211,143,211,'Rot_Gas', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (212,143,212,'Dirty_Claw', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (213,143,213,'Shadow_Claw', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (214,143,214,'Methane_Breath', 4, 7.0, 2000, 1500, 4, 0); -- Ghost INSERT INTO `mob_skill` VALUES (220,121,220,'Curse', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (218,121,218,'Fear_Touch', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (219,121,219,'Terror_Touch', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (217,121,217,'Ectosmash', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Dark_Sphere', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Grave_Reel', 1, 15.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (221,121,221,'Dark_Sphere', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (216,121,216,'Grave_Reel', 1, 15.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Perdition', 0, 7.0, 2000, 1500, 4, 0); -- Bhoot only -- Skeleton -INSERT INTO `mob_skill` VALUES (222,227,222,'Hell_Slash', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (222,227,222,'Hell_Slash', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (223,227,223,'Horror_Cloud', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (228,227,228,'Black_Cloud', 1, 15.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (229,227,229,'Blood_Saber', 1, 15.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (229,227,229,'Blood_Saber', 1, 15.0, 2000, 2000, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Marrow Drain', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Malediction', 1, 15.0, 2000, 1500, 4, 0); -- Drain (~300). Only used by draugar -- INSERT INTO `mob_skill` VALUES (0,0,0,'Dereliction', 1, 20.0, 2000, 1500, 4, 0); -- Only used by draugar NM -- Coeurls INSERT INTO `mob_skill` VALUES (396,71,396,'Blaster', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (397,71,397,'Chaotic_Eye', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (397,71,397,'Chaotic_Eye', 4, 10.0, 2000, 3000, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Petrifactive_Breath', 4, 10.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Frenzied_Rage', 0, 7.0, 2000, 1500, 1, 0); -- Attack Boost (20%) -- INSERT INTO `mob_skill` VALUES (0,0,0,'Pounce', 0, 7.0, 2000, 1500, 4, 0); @@ -388,19 +394,19 @@ INSERT INTO `mob_skill` VALUES (233,86,233,'Stinking_Gas', 1, 16.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (234,86,234,'Undead_Mold', 4, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (236,86,236,'Abyss_Blast', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Acid_Breath', 4, 10.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Call_of_the_Grave', 1, 16.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'Whip_Tongue', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (232,86,232,'Acid_Breath', 4, 10.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (235,86,235,'Call_of_the_Grave', 1, 16.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (230,86,230,'Whip_Tongue', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Infernal_Pestilence', 4, 10.0, 2000, 1500, 4, 0); -- Only used by certain NM -- Bombs -INSERT INTO `mob_skill` VALUES (253,56,253,'Self-Destruct', 1, 15.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (253,56,253,'Self-Destruct', 1, 15.0, 2000, 3000, 4, 0); INSERT INTO `mob_skill` VALUES (254,56,254,'Berserk', 0, 7.0, 2000, 1500, 1, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Heat_Wave', 1, 15.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Vulcanian_Impact', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Hellstorm', 1, 15.0, 2000, 1500, 4, 0); --- Evil Weapon +-- Evil Weapon INSERT INTO `mob_skill` VALUES (257,110,257,'Smite_of_Rage', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (258,110,258,'Whirl_of_Rage', 1, 10.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Smite_of_Fury', 0, 7.0, 2000, 1500, 4, 0); @@ -423,40 +429,62 @@ INSERT INTO `mob_skill` VALUES (279,83,279,'Blitzstrahl', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (280,83,280,'Panzerfaust', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (283,83,283,'Typhoon', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (287,83,287,'Meltdown', 1, 15.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (285,83,285,'Gravity_Field', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (281,83,281,'Berserk', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'', 0, 7.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (279,84,279,'Blitzstrahl', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (280,84,280,'Panzerfaust', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (283,84,283,'Typhoon', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (287,84,287,'Meltdown', 1, 15.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (285,84,285,'Gravity_Field', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (281,84,281,'Berserk', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (279,85,279,'Blitzstrahl', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (280,85,280,'Panzerfaust', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (283,85,283,'Typhoon', 1, 7.0, 2000, 1500, 4, 0); - +INSERT INTO `mob_skill` VALUES (287,85,287,'Meltdown', 1, 15.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (285,85,285,'Gravity_Field', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (281,85,281,'Berserk', 0, 7.0, 2000, 1500, 4, 0); -- Ahriman -INSERT INTO `mob_skill` VALUES (293,4,293,'Eyes_on_Me', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (293,4,293,'Eyes_on_Me', 0, 13.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (292,4,292,'Blindeye', 0, 7.0, 2000, 1500, 4, 0); --- INSERT INTO `mob_skill` VALUES (0,0,0,'', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (292,4,292,'Airy_Shield', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (292,4,292,'Magic_Barrier', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (295,4,295,'Mind_Break', 4, 15.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (292,4,292,'Hypnosis', 4, 10.0, 2000, 1500, 4, 0); -- sleep not working yet +INSERT INTO `mob_skill` VALUES (296,4,296,'Binding_Wave', 1, 15.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (301,4,301,'Level_5_Petrify', 1, 15.0, 2000, 1500, 4, 0); -- Demon -INSERT INTO `mob_skill` VALUES (303,169,303,'Soul_Drain', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (303,169,303,'Soul_Drain', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (304,169,304,'Hecatomb_Wave', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (307,169,307,'Demonic_Howl', 1, 10.0, 2000, 1200, 4, 0); +-- Goobbue +INSERT INTO `mob_skill` VALUES (325,136,325,'Blow', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (327,136,327,'Beatdown', 0, 7.0, 2000, 1800, 4, 0); +INSERT INTO `mob_skill` VALUES (328,136,328,'Uppercut', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (330,136,330,'Blank_Gaze', 0, 7.0, 2000, 3000, 4, 0); +INSERT INTO `mob_skill` VALUES (331,136,331,'Antiphase', 1, 15.0, 2000, 1500, 4, 0); -- Goblin INSERT INTO `mob_skill` VALUES(334, 133, 334, 'Goblin_Rush', 0, 6.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES(335, 133, 335, 'Bomb_Toss', 2, 8.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES(336, 133, 336, 'Bomb_Toss_Suicide', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES(336, 133, 336, 'Bomb_Toss_Suicide', 1, 7.0, 2000, 1200, 4, 0); -- INSERT INTO `mob_skill` VALUES(0, 0, 0, 'Goblin-Dice', 0, 7.0, 2000, 1500, 4, 0); -- Only by Vanguard NM and Moblin Fantocciniman. -- INSERT INTO `mob_skill` VALUES(0, 0, 0, 'Saucepan', 4, 7.0, 2000, 1500, 4, 0); -- Only by NM -- Orc INSERT INTO `mob_skill` VALUES (353,189,353,'Battle_Dance', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (352,189,352,'Arm_Block', 0, 7.0, 2000, 1200, 4, 0); +-- INSERT INTO `mob_skill` VALUES (510,189,510,'Howl', 1, 20.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES (351,189,351,'Slam_Dunk', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (349,189,349,'Aerial_Wheel', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (350,189,350,'Shoulder_Attack', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (350,189,350,'Shoulder_Attack', 0, 7.0, 2000, 1700, 4, 0); +-- INSERT INTO `mob_skill` VALUES (512,189,512,'Jump', 0, 9.5, 2000, 1000, 4, 0); -- Quadav INSERT INTO `mob_skill` VALUES (355,200,355,'Ore_Toss', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (377,200,377,'Howl', 1, 20.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES (356,200,356,'Head_Butt', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (357,200,357,'Shell_Bash', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (358,200,358,'Shell_Guard', 0, 7.0, 2000, 1500, 1, 0); @@ -472,11 +500,12 @@ INSERT INTO `mob_skill` VALUES (358,202,358,'Shell_Guard', 0, 7.0, 2000, 1500, 1, 0); -- Yagudo INSERT INTO `mob_skill` VALUES (361,270,361,'Feather_Storm', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (377,270,377,'Howl', 1, 20.0, 2000, 1000, 4, 0); INSERT INTO `mob_skill` VALUES (362,270,362,'Double_Kick', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (363,270,363,'Parry', 0, 7.0, 2000, 1500, 1, 0); -INSERT INTO `mob_skill` VALUES (364,270,364,'Sweep', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (363,270,363,'Parry', 0, 7.0, 2000, 1300, 1, 0); +INSERT INTO `mob_skill` VALUES (364,270,364,'Sweep', 1, 7.0, 2000, 1000, 4, 0); -- Bird -INSERT INTO `mob_skill` VALUES (366,55,366,'Helldive', 0, 9.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (366,55,366,'Helldive', 0, 9.0, 2000, 1700, 4, 0); INSERT INTO `mob_skill` VALUES (367,55,367,'Wing_Cutter', 4, 7.0, 2000, 1500, 4, 0); -- Behemoth INSERT INTO `mob_skill` VALUES (372,51,372,'Wild_Horn', 0, 7.0, 2000, 1500, 4, 0); @@ -495,63 +524,81 @@ -- Gigas INSERT INTO `mob_skill` VALUES (408,126,408,'Impact_Roar', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (409,126,409,'Grand_Slam', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (410,126,410,'Power_Attack', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (408,127,408,'Impact_Roar', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (409,127,409,'Grand_Slam', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (410,127,410,'Power_Attack', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (408,128,408,'Impact_Roar', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (409,128,409,'Grand_Slam', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (410,128,410,'Power_Attack', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (408,129,408,'Impact_Roar', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (409,129,409,'Grand_Slam', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (410,129,410,'Power_Attack', 0, 7.0, 2000, 1800, 4, 0); INSERT INTO `mob_skill` VALUES (408,130,408,'Impact_Roar', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (409,130,409,'Grand_Slam', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (410,130,410,'Power_Attack', 0, 7.0, 2000, 1800, 4, 0); -- Golem -INSERT INTO `mob_skill` VALUES (419,135,419,'Heavy_Strike', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (419,135,419,'Heavy_Strike', 0, 7.0, 2000, 1700, 4, 0); INSERT INTO `mob_skill` VALUES (420,135,420,'Ice_Break', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (421,135,421,'Thunder_Break', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (422,135,422,'Crystal_Rain', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (423,135,423,'Crystal_Weapon', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (425,135,425,'Crystal_Weapon', 0, 7.0, 2000, 1500, 4, 0); -- Sapling -INSERT INTO `mob_skill` VALUES (429,216,429,'Sprout_Spin', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (429,216,429,'Sprout_Spin', 1, 7.0, 2000, 1300, 4, 0); INSERT INTO `mob_skill` VALUES (430,216,430,'Slumber_Powder', 1, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (431,216,431,'Sprout_Smack', 0, 7.0, 2000, 1500, 4, 0); -- Cardian INSERT INTO `mob_skill` VALUES (427,61,427,'Bludgeon', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (428,61,428,'Deal_Out', 4, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (72,61,72,'Double_Down', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (74,61,74,'Shuffle', 4, 7.0, 2000, 1500, 4, 0); -- anim 432 = 2h cloud -- now they dont start matching up.... -- Sahagin (-72 for anim id) -INSERT INTO `mob_skill` VALUES (515,213,443,'Hydroball', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (521,213,449,'Hydro_Shot', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (515,213,443,'Hydro_Ball', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (521,213,449,'Hydro_Shot', 0, 10.0, 2000, 3500, 4, 0); +INSERT INTO `mob_skill` VALUES (524,213,452,'Spinning_Fin', 1, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (518,213,446,'Bubble_Armor', 0, 7.0, 2000, 1500, 4, 0); +-- INSERT INTO `mob_skill` VALUES (514,213,442,'Jumping_Thrust', 0, 9.5, 2000, 1500, 4, 0); -- Tonberry INSERT INTO `mob_skill` VALUES (527,243,455,'Words_of_Bane', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (529,243,457,'Light_of_Penance', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (530,243,458,'Lateral_Slash', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (531,243,459,'Vertical_Slash', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (532,243,460,'Throat_Stab', 0, 7.0, 2000, 4500, 4, 0); +INSERT INTO `mob_skill` VALUES (532,243,460,'Throat_Stab', 0, 3.4, 2000, 4500, 4, 0); INSERT INTO `mob_skill` VALUES (664,243,503,'Everyones_Grudge', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (527,244,455,'Words_of_Bane', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (529,244,457,'Light_of_Penance', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (530,244,458,'Lateral_Slash', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (531,244,459,'Vertical_Slash', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (532,244,460,'Throat_Stab', 0, 7.0, 2000, 4500, 4, 0); +INSERT INTO `mob_skill` VALUES (532,244,460,'Throat_Stab', 0, 3.4, 2000, 4500, 4, 0); INSERT INTO `mob_skill` VALUES (664,244,503,'Everyones_Grudge', 0, 7.0, 2000, 1500, 4, 0); -- Antica -INSERT INTO `mob_skill` VALUES (535,25,463,'Magnetite_Cloud', 4, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (536,25,464,'Sandstorm', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (535,25,463,'Magnetite_Cloud', 4, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (536,25,464,'Sandstorm', 1, 10.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (540,25,468,'Jamming_Wave', 1, 16.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (537,25,465,'Sand_Veil', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (538,25,466,'Sand_Shield', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (534,25,462,'Shoulder_Slam', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (539,25,467,'Sand_Trap', 1, 15.0, 2000, 500, 4, 0); +INSERT INTO `mob_skill` VALUES (533,25,461,'Spikeball', 0, 13.5, 2000, 3000, 4, 0); +-- Antlion +-- INSERT INTO `mob_skill` VALUES (23,26,23,'Mandibular_Bite', 0, 7.0, 2000, 1500, 4, 0); -- Manticore -INSERT INTO `mob_skill` VALUES (541,179,469,'Deadly_Hold', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (541,179,469,'Deadly_Hold', 0, 7.0, 2000, 3000, 4, 0); INSERT INTO `mob_skill` VALUES (542,179,470,'Tail_Swing', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (543,179,471,'Tail_Smash', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (544,179,472,'Heat_Breath', 4, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (545,179,473,'Riddle', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (543,179,471,'Tail_Smash', 0, 7.0, 2000, 2000, 4, 0); +INSERT INTO `mob_skill` VALUES (544,179,472,'Heat_Breath', 4, 7.0, 2000, 1800, 4, 0); +INSERT INTO `mob_skill` VALUES (545,179,473,'Riddle', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (546,179,474,'Great_Sandstorm', 4, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (547,179,475,'Great_Whirlwind', 4, 7.0, 2000, 1500, 4, 0); -- Adamantoise @@ -561,16 +608,16 @@ INSERT INTO `mob_skill` VALUES (552,2,480,'Earth_Breath', 4, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (553,2,481,'Aqua_Breath', 4, 7.0, 2000, 1500, 4, 0); -- Spider -INSERT INTO `mob_skill` VALUES (554,235,482,'Sickle_Slash', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (554,235,482,'Sickle_Slash', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (555,235,483,'Acid_Spray', 4, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (556,235,484,'Spider_Web', 1, 7.0, 2000, 1500, 4, 0); --- Wyvern +INSERT INTO `mob_skill` VALUES (556,235,484,'Spider_Web', 1, 7.0, 2000, 1200, 4, 0); +-- Wyvern INSERT INTO `mob_skill` VALUES (557,265,485,'Dispelling_Wind', 1, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (558,265,486,'Deadly_Drive', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (559,265,487,'Wind_Wall', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (560,265,488,'Fang_Rush', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (561,265,489,'Dread_Shriek', 1, 15.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (562,265,490,'Tail_Crush', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (562,265,490,'Tail_Crush', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (565,265,493,'Radiant_Breath', 4, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (557,266,485,'Dispelling_Wind', 1, 15.0, 2000, 1500, 4, 0); @@ -578,7 +625,7 @@ INSERT INTO `mob_skill` VALUES (559,266,487,'Wind_Wall', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (560,266,488,'Fang_Rush', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (561,266,489,'Dread_Shriek', 1, 15.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (562,266,490,'Tail_Crush', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (562,266,490,'Tail_Crush', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (565,266,493,'Radiant_Breath', 4, 15.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (557,267,485,'Dispelling_Wind', 1, 15.0, 2000, 1500, 4, 0); @@ -586,7 +633,7 @@ INSERT INTO `mob_skill` VALUES (559,267,487,'Wind_Wall', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (560,267,488,'Fang_Rush', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (561,267,489,'Dread_Shriek', 1, 15.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (562,267,490,'Tail_Crush', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (562,267,490,'Tail_Crush', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (565,267,493,'Radiant_Breath', 4, 15.0, 2000, 1500, 4, 0); -- Genbu @@ -617,11 +664,11 @@ -- bugbear INSERT INTO `mob_skill` VALUES (105,59,828,'Earthshock', 1, 7.0, 2000, 1500, 4, 0); -- taurus -INSERT INTO `mob_skill` VALUES (242,240,851,'Triclip', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (242,240,851,'Triclip', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (243,240,852,'Back_Swish', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (244,240,853,'Mow', 1, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (245,240,854,'Frightful_Roar', 1, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (246,240,855,'Mortal_Ray', 4, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (246,240,855,'Mortal_Ray', 4, 7.0, 2000, 2000, 4, 0); -- cluster INSERT INTO `mob_skill` VALUES (313,68,868,'Refueling', 0, 7.0, 2000, 1500, 1, 0); INSERT INTO `mob_skill` VALUES (314,68,869,'Circle_of_Flames', 1, 7.0, 2000, 1500, 4, 0); @@ -633,18 +680,18 @@ -- snoll INSERT INTO `mob_skill` VALUES (1389,232,876,'Freeze_Rush', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1390,232,877,'Cold_Wave', 4, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (1388,232,878,'Hypothermal_Combustion', 1, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (1388,232,878,'Hypothermal_Combustion', 1, 7.0, 2000, 3000, 4, 0); -- corse INSERT INTO `mob_skill` VALUES (276,74,902,'Envoutement', 0, 7.0, 2000, 1500, 4, 0); --- -------------------- +-- -------------------- -- VALUES POST 1024 -- Take tpid and +256 then -1024 to find the correct param for the packet -- Take animid and -1024 to find the correct param -- REMEMBER TO SET BOTH ANIM AND TPID TO THE CORRECT 0X01 -- Mamool Ja -INSERT INTO `mob_skill` VALUES (1475,176,1265,'Forceful_Blow', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (1475,176,1265,'Forceful_Blow', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (1476,176,1266,'Somersault_Kick', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1477,176,1267,'Firespit', 0, 30.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1478,176,1268,'Warm-Up', 0, 7.0, 2000, 1500, 1, 0); @@ -662,14 +709,14 @@ INSERT INTO `mob_skill` VALUES (1460,27,1162,'Frigid_Shuffle', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1461,27,1163,'Wing_Whirl', 1, 10.0, 2000, 1500, 4, 0); --- Imp -INSERT INTO `mob_skill` VALUES (1455,165,1180,'Frenetic_Rip', 0, 7.0, 2000, 1500, 4, 0); +-- Imp +INSERT INTO `mob_skill` VALUES (1455,165,1180,'Frenetic_Rip', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (1453,165,1181,'Abrasive_Tantara', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1454,165,1182,'Deafening_Tantara', 1, 10.0, 2000, 1500, 4, 0); -- INSERT INTO `mob_skill` VALUES (0,0,0,'Grating_Tantara', 1, 10.0, 2000, 1500, 4, 0); -- Used by NM -- INSERT INTO `mob_skill` VALUES (0,0,0,'Stifling_Tantara', 1, 10.0, 2000, 1500, 4, 0); -- Used by NM -INSERT INTO `mob_skill` VALUES (1455,166,1180,'Frenetic_Rip', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (1455,166,1180,'Frenetic_Rip', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (1453,166,1181,'Abrasive_Tantara', 1, 10.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1454,166,1182,'Deafening_Tantara', 1, 10.0, 2000, 1500, 4, 0); @@ -727,7 +774,7 @@ INSERT INTO `mob_skill` VALUES (1960,82,1597,'Nocturnal_Combustion', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1962,82,1599,'Penumbral_Impact', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1963,82,1600,'Dark_Wave', 0, 7.0, 2000, 1500, 4, 0); --- Ghrah +-- Ghrah INSERT INTO `mob_skill` VALUES (1187,122,1061,'Hexidiscs', 0, 7.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1185,122,1065,'Actinic_Burst', 0, 7.0, 2000, 1500, 4, 0); @@ -759,11 +806,11 @@ INSERT INTO `mob_skill` VALUES (1093,269,1004,'Mantle_Pierce', 0, 7.0, 2000, 1500, 4, 0); -- Troll INSERT INTO `mob_skill` VALUES (1487,246,1232,'Rock_Smash', 0, 7.0, 2000, 1500, 4, 0); -INSERT INTO `mob_skill` VALUES (1488,246,1233,'Diamondhide', 1, 16.0, 2000, 1500, 1, 0); +INSERT INTO `mob_skill` VALUES (1488,246,1233,'Diamondhide', 1, 16.0, 2000, 1800, 1, 0); INSERT INTO `mob_skill` VALUES (1489,246,1234,'Enervation', 1, 18.0, 2000, 1500, 4, 0); INSERT INTO `mob_skill` VALUES (1490,246,1235,'Quake_Stomp', 0, 7.0, 2000, 1500, 1, 0); -- Lamia = 171 Merrow = 182 -INSERT INTO `mob_skill` VALUES (1510,171,1253,'Hysteric_Barrage', 0, 7.0, 2000, 1500, 4, 0); +INSERT INTO `mob_skill` VALUES (1510,171,1253,'Hysteric_Barrage', 0, 7.0, 2000, 2000, 4, 0); INSERT INTO `mob_skill` VALUES (1515,182,1258,'Tail_Slap', 4, 16.0, 2000, 1500, 4, 0); -- Poroggo INSERT INTO `mob_skill` VALUES (1703,196,1361,'Water_Bomb', 1, 16.0, 2000, 1500, 4, 0);