mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-05-20 08:26:59 -04:00
Combat changes and bug fixes
Added the combo and proc systems Added scripts for most weaponskill and spells as well as some abilities and status effects Added support for multihit attacks Added AbilityState for abilities Added hiteffects that change based on an attack's parameters Added positionals Changed how targeting works for battlecommands Fixed bug that occurred when moving or swapping hotbar commands Fixed bug that occurred when losing status effects
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to inflict slow
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusChance = 0.50;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,20 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Inflicts additional damage when bleed ends
|
||||
--Note for later, going to set bleed tier to 2, when bleed get scripted, check if tier is 2 and add additional damage at the end
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusTier = 2;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage
|
||||
function onPositional(caster, target, skill)
|
||||
skill.basePotency = skill.basePotency * 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased crit hit rating
|
||||
function onCombo(caster, target, skill)
|
||||
skill.critRateModifier = 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,25 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to inflict blind on flank
|
||||
function onPositional(caster, target, skill)
|
||||
skill.statusChance = 0.50;
|
||||
skill.statusDuration = 10;
|
||||
end;
|
||||
|
||||
function onCombo(caster, target, skill)
|
||||
skill.basePotency = skill.basePotency * 1.5;
|
||||
end;
|
||||
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -9,18 +10,5 @@ function onSkillStart(caster, target, skill)
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, skill.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,23 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Dispel
|
||||
--Does dispel have a text id?
|
||||
function onCombo(caster, target, skill)
|
||||
local effects = target.statusEffects.GetStatusEffectsByFlag(16); --lose on dispel
|
||||
if effects != nil then
|
||||
target.statusEffects.RemoveStatusEffect(effects[0]);
|
||||
end;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased paralysis duration
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusDuration = skill.statusDuration * 2;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased accuracy
|
||||
function onCombo(caster, target, skill)
|
||||
skill.accuracyModifier = 1.25;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to render target unable to use weaponskills (pacification)
|
||||
function onPositional(caster, target, skill)
|
||||
skill.statusChance = 0.50;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -9,18 +10,5 @@ function onSkillStart(caster, target, skill)
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,27 +1,18 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, spell)
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, spell)
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, spell, action)
|
||||
local damage = math.random(10, 100);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackSkill(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
function onPositional(caster, target, skill)
|
||||
skill.basePotency = skill.basePotency * 1.25;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -9,18 +10,5 @@ function onSkillStart(caster, target, skill)
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,10 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onCombo(caster, target, skill)
|
||||
skill.enmityModifier = skill.enmityModifier * 2
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,14 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,7 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
caster.AddTP(1000);
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to inflict blind
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusChance = 0.90;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,20 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased crit rate
|
||||
function onCombo(caster, target, skill)
|
||||
--Get Berserk statuseffect
|
||||
skill.critRateModifier = 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,24 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to increase defense when executed from behind the target
|
||||
function onPositional(caster, target, skill)
|
||||
skill.statusChance = 0.90;
|
||||
end;
|
||||
|
||||
--Increases bleed damage
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusTier = 2;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,14 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,14 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,20 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased accuracy
|
||||
function onCombo(caster, target, skill)
|
||||
skill.accuracyModifier = 1.5;
|
||||
end;
|
||||
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,20 +9,11 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--Increased stun duration
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusDuration = 10;
|
||||
end;
|
||||
|
||||
action.effectId = bit32.bxor(0x8000000, skill.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,24 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased accuracy
|
||||
function onCombo(caster, target, skill)
|
||||
skill.accuracyModifier = 1;
|
||||
end;
|
||||
|
||||
--Increased damage
|
||||
function onCombo(caster, target, skill)
|
||||
skill.potency = skill.potency * 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,16 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage
|
||||
function onPositional(caster, target, skill)
|
||||
skill.potency = skill.potency * 1.25
|
||||
end;
|
||||
|
||||
--Increased crit hit rating
|
||||
function onCombo(caster, target, skill)
|
||||
skill.critRateModifier = 1.25;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased Heavy duration, becomes 60 seconds
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusDuration = 60;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to inflict stun
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusChance = 0.50;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,18 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onCombo(caster, target, skill)
|
||||
skill.accuracyModifier = 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,20 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to inflict heavy when executed from behind
|
||||
function onPositional(caster, target, skill)
|
||||
skill.statusChance = 0.50;
|
||||
skill.statusDuration = 5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,14 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onPositional(caster, target, skill)
|
||||
skill.statusChance = 0.50;
|
||||
skill.statusDuration = 5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,10 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onPositional(caster, target, skill)
|
||||
skill.basePotency = skill.basePotency * 1.25;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action)
|
||||
end;
|
||||
@@ -0,0 +1,22 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--fivefold attack/conversion
|
||||
function onCombo(caster, target, skill)
|
||||
skill.numHits = 5;
|
||||
skill.aoeType = 0;
|
||||
skill.aoeTarget = 2;
|
||||
--animation change?
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Accuracy increase
|
||||
function onCombo(caster, target, skill)
|
||||
skill.accuracyModifier = 1;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to inflict stun
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusChance = 0.90
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased critical hit rate
|
||||
function onCombo(caster, target, skill)
|
||||
skill.critRateModifier = 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Chance to decrease defense when executed from behind the target
|
||||
function onPositional(caster, target, skill)
|
||||
skill.statusChance = 0.75;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onCombo(caster, target, skill)
|
||||
skill.basePotency = skill.basePotency * 1.25;
|
||||
end;
|
||||
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,20 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased Bind duration
|
||||
function onCombo(caster, target, skill)
|
||||
skill.statusDuration = 10;
|
||||
end;
|
||||
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,15 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,18 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
--chance to influct stun only when target has no enmity towards you
|
||||
if !(target.hateContainer.HasHateForTarget(caster)) then
|
||||
skill.statusChance = 0.50;
|
||||
end
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased accuracy
|
||||
function onCombo(caster, target, skill)
|
||||
skill.basePotency = skill.basePotency * 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(0, 0);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -9,19 +9,11 @@ function onSkillStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, spell, action)
|
||||
local damage = math.random(10, 100);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackSkill(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
--Increased enmity
|
||||
function onCombo(caster, target, skill)
|
||||
skill.enmityModifier = 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,23 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased enmity
|
||||
function onCombo(caster, target, skill)
|
||||
skill.enmityModifier = 1.5;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(10, 100);
|
||||
--Increased damage with higher hp
|
||||
local potencyModifier = caster:GetHPP() + 25;
|
||||
skill.basePotency = skill.basePotency * (potencyModifier / 100);
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action)
|
||||
end;
|
||||
@@ -0,0 +1,20 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased critical hit rate
|
||||
function onCombo(caster, target, skill)
|
||||
skill.critRateModifier = 1.5;
|
||||
end;
|
||||
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased accuracy from in front
|
||||
function onPositional(caster, target, skill)
|
||||
skill.accuracyModifier = 1.25;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, skill.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -1,4 +1,5 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
@@ -8,19 +9,11 @@ function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased crit rating from behind
|
||||
function onPositional(caster, target, skill)
|
||||
skill.critRateModifier = 1.25;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
local damage = math.random(100, 200);
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
action.worldMasterTextId = 0x765D;
|
||||
|
||||
-- todo: populate a global script with statuses and modifiers
|
||||
-- magic.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
if target.hateContainer then
|
||||
target.hateContainer.UpdateHate(caster, damage);
|
||||
end;
|
||||
return damage;
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,28 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Reset Berserk effect, increase damage?
|
||||
function onCombo(caster, target, skill)
|
||||
--Get Berserk statuseffect
|
||||
local berserk = caster.statusEffects.GetStatusEffectById(223160);
|
||||
|
||||
--if it isn't nil
|
||||
if berserk != nil then
|
||||
berserk.SetTier(1);
|
||||
skill.basePotency = skill.basePotency * 1.5;
|
||||
end;
|
||||
|
||||
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
@@ -0,0 +1,19 @@
|
||||
require("global");
|
||||
require("weaponskill");
|
||||
|
||||
function onSkillPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onSkillStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased Accuracy
|
||||
function onCombo(caster, target, skill)
|
||||
skill.accuracyModifier = 1.25;
|
||||
end;
|
||||
|
||||
function onSkillFinish(caster, target, skill, action)
|
||||
return weaponskill.onSkillFinish(caster, target, skill, action);
|
||||
end;
|
||||
Reference in New Issue
Block a user