mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-08 21:44:35 +02: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:
parent
837c7a9223
commit
b8d6a943aa
175 changed files with 4361 additions and 1213 deletions
|
@ -14,14 +14,6 @@ local attackMagicHandlers = {
|
|||
}
|
||||
|
||||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
print(command.actorId)
|
||||
--Are they in active mode?
|
||||
if (player:GetState() != 2) then
|
||||
player:SendGameMessage(GetWorldMaster(), 32503, 0x20);
|
||||
player:endEvent();
|
||||
return;
|
||||
end
|
||||
|
||||
player.Ability(command.actorId, targetActor);
|
||||
player:endEvent();
|
||||
|
||||
|
|
5
data/scripts/commands/AbilityCure.lua
Normal file
5
data/scripts/commands/AbilityCure.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
require("global")
|
||||
|
||||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
|
||||
end
|
20
data/scripts/commands/AttackAbility.lua
Normal file
20
data/scripts/commands/AttackAbility.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require ("global")
|
||||
require ("utils")
|
||||
|
||||
--[[
|
||||
|
||||
AttackWeaponSkill Script
|
||||
|
||||
Finds the correct weaponskill subscript to fire when a weaponskill actor is activated.
|
||||
|
||||
--]]
|
||||
|
||||
local attackMagicHandlers = {
|
||||
|
||||
}
|
||||
|
||||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
player.Ability(command.actorId, targetActor);
|
||||
player:endEvent();
|
||||
|
||||
end
|
5
data/scripts/commands/CureMagic.lua
Normal file
5
data/scripts/commands/CureMagic.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
player.Cast(command.actorId, targetActor);
|
||||
|
||||
player:endEvent();
|
||||
end
|
5
data/scripts/commands/CuregaMagic.lua
Normal file
5
data/scripts/commands/CuregaMagic.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
player.Cast(command.actorId, targetActor);
|
||||
|
||||
player:endEvent();
|
||||
end
|
26
data/scripts/commands/DevideAttackWeaponSkill.lua
Normal file
26
data/scripts/commands/DevideAttackWeaponSkill.lua
Normal file
|
@ -0,0 +1,26 @@
|
|||
require ("global")
|
||||
require ("utils")
|
||||
|
||||
--[[
|
||||
|
||||
AttackWeaponSkill Script
|
||||
|
||||
Finds the correct weaponskill subscript to fire when a weaponskill actor is activated.
|
||||
|
||||
--]]
|
||||
|
||||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
|
||||
--Are they in active mode?
|
||||
if (player:GetState() != 2) then
|
||||
player:SendGameMessage(GetWorldMaster(), 32503, 0x20);
|
||||
player:endEvent();
|
||||
return;
|
||||
end
|
||||
|
||||
if not player.aiContainer.IsEngaged() then
|
||||
player.Engage(targetActor);
|
||||
end;
|
||||
player.WeaponSkill(command.actorId, targetActor);
|
||||
player:endEvent();
|
||||
end;
|
5
data/scripts/commands/EffectMagic.lua
Normal file
5
data/scripts/commands/EffectMagic.lua
Normal file
|
@ -0,0 +1,5 @@
|
|||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
player.Cast(command.actorId, targetActor);
|
||||
|
||||
player:endEvent();
|
||||
end
|
|
@ -61,7 +61,7 @@ function onEventStarted(player, equipAbilityWidget, triggername, slot, commandid
|
|||
player:SwapAbilities(oldSlot, slot + player.charaWork.commandBorder);
|
||||
else
|
||||
local tslot = slot + player.charaWork.commandBorder;
|
||||
player:EquipAbility(player.GetJob(), commandid, tslot, true);
|
||||
player:EquipAbility(player.GetCurrentClassOrJob(), commandid, tslot, true);
|
||||
end
|
||||
|
||||
--Unequip
|
||||
|
@ -70,7 +70,7 @@ function onEventStarted(player, equipAbilityWidget, triggername, slot, commandid
|
|||
ability = worldManager.GetBattleCommand(commandid);
|
||||
--Is the ability a part of the player's current class?
|
||||
--This check isn't correct because of jobs having different ids
|
||||
local classId = player:GetJob();
|
||||
local classId = player:GetClass();
|
||||
local jobId = player:ConvertClassIdToJobId(classId);
|
||||
|
||||
if(ability.job == classId or ability.job == jobId) then
|
||||
|
|
|
@ -145,6 +145,12 @@ function equipItem(player, equipSlot, item)
|
|||
--Item Equipped message
|
||||
player:SendGameMessage(player, worldMaster, 30601, 0x20, equipSlot+1, item.itemId, item.quality, 0, 0, 1);
|
||||
|
||||
--Load gearset for new class and begin class change
|
||||
if (classId ~= nil) then
|
||||
loadGearset(player, classId);
|
||||
player:DoClassChange(classId);
|
||||
end
|
||||
|
||||
player:GetEquipment():Equip(equipSlot, item);
|
||||
|
||||
if (equipSlot == EQUIPSLOT_MAINHAND and gItem:IsNailWeapon() == false) then graphicSlot = GRAPHICSLOT_MAINHAND;
|
||||
|
@ -170,14 +176,7 @@ function equipItem(player, equipSlot, item)
|
|||
elseif (equipSlot == EQUIPSLOT_EARS) then
|
||||
player:GraphicChange(GRAPHICSLOT_R_EAR, item);
|
||||
player:GraphicChange(GRAPHICSLOT_L_EAR, item);
|
||||
end
|
||||
|
||||
--Load gearset for new class and begin class change
|
||||
if (classId ~= nil) then
|
||||
loadGearset(player, classId);
|
||||
player:DoClassChange(classId);
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
15
data/scripts/commands/ShotCommand.lua
Normal file
15
data/scripts/commands/ShotCommand.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
require ("global")
|
||||
require ("utils")
|
||||
|
||||
--[[
|
||||
|
||||
AttackWeaponSkill Script
|
||||
|
||||
Finds the correct weaponskill subscript to fire when a weaponskill actor is activated.
|
||||
|
||||
--]]
|
||||
|
||||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
player.Ability(command.actorId, targetActor);
|
||||
player:endEvent();
|
||||
end;
|
19
data/scripts/commands/SongMagic.lua
Normal file
19
data/scripts/commands/SongMagic.lua
Normal file
|
@ -0,0 +1,19 @@
|
|||
require ("global")
|
||||
require ("utils")
|
||||
|
||||
--[[
|
||||
|
||||
AttackWeaponSkill Script
|
||||
|
||||
Finds the correct weaponskill subscript to fire when a weaponskill actor is activated.
|
||||
|
||||
--]]
|
||||
|
||||
local attackMagicHandlers = {
|
||||
|
||||
}
|
||||
|
||||
function onEventStarted(player, command, triggerName, arg1, arg2, arg3, arg4, targetActor, arg5, arg6, arg7, arg8)
|
||||
player.Cast(command.actorId, targetActor);
|
||||
player:endEvent();
|
||||
end;
|
14
data/scripts/commands/ability/default.lua
Normal file
14
data/scripts/commands/ability/default.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, skill)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityFinish(caster, target, skill, action)
|
||||
return onStatusAbilityFinish(caster, target, skill, action);
|
||||
end;
|
14
data/scripts/commands/ability/dragonfire_dive.lua
Normal file
14
data/scripts/commands/ability/dragonfire_dive.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityFinish(caster, target, skill, action)
|
||||
return onAttackAbilityFinish(caster, target, skill, action);
|
||||
end;
|
14
data/scripts/commands/ability/invigorate.lua
Normal file
14
data/scripts/commands/ability/invigorate.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("Ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityFinish(caster, target, ability, action)
|
||||
return onStatusAbilityFinish(caster, target, ability, action)
|
||||
end;
|
14
data/scripts/commands/ability/jump.lua
Normal file
14
data/scripts/commands/ability/jump.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityFinish(caster, target, skill, action)
|
||||
return onAttackAbilityFinish(caster, target, skill, action);
|
||||
end;
|
14
data/scripts/commands/ability/light_shot.lua
Normal file
14
data/scripts/commands/ability/light_shot.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityFinish(caster, target, skill, action)
|
||||
return onAttackAbilityFinish(caster, target, skill, action);
|
||||
end;
|
14
data/scripts/commands/ability/second_wind.lua
Normal file
14
data/scripts/commands/ability/second_wind.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("ability");
|
||||
|
||||
function onAbilityPrepare(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityStart(caster, target, ability)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onAbilityFinish(caster, target, ability, action)
|
||||
return onHealAbilityFinish(caster, target, ability, action)
|
||||
end;
|
29
data/scripts/commands/gm/addtoparty.lua
Normal file
29
data/scripts/commands/gm/addtoparty.lua
Normal file
|
@ -0,0 +1,29 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "sss",
|
||||
description =
|
||||
[[
|
||||
Adds target to party
|
||||
]]
|
||||
}
|
||||
|
||||
function onTrigger(player, argc)
|
||||
local sender = "[addtoparty] ";
|
||||
|
||||
if player then
|
||||
if player.target then
|
||||
print("hi")
|
||||
local id = player.target.actorId
|
||||
print("hi")
|
||||
player.currentParty:AddMember(id);
|
||||
player.target.currentParty = player.currentParty;
|
||||
print("hi")
|
||||
else
|
||||
print(sender.." no target")
|
||||
end
|
||||
else
|
||||
print(sender.." no player");
|
||||
end;
|
||||
end;
|
|
@ -11,7 +11,7 @@ Equips <commandid> in the first open slot without checking if you can.
|
|||
}
|
||||
|
||||
function onTrigger(player, argc, commandid)
|
||||
local sender = "[givegil] ";
|
||||
local sender = "[eaction] ";
|
||||
|
||||
print(commandid);
|
||||
if name then
|
||||
|
|
|
@ -21,11 +21,14 @@ function onTrigger(player, argc, slot, wId, eId, vId, cId)
|
|||
cId = tonumber(cId) or 0;
|
||||
|
||||
if player and argc > 0 then
|
||||
player:GraphicChange(slot, wId, eId, vId, cId);
|
||||
if argc > 2 then
|
||||
player:GraphicChange(slot, wId, eId, vId, cId);
|
||||
player:SendMessage(messageID, sender, string.format("Changing appearance on slot %u", slot));
|
||||
else
|
||||
player:GraphicChange(slot, wId);
|
||||
end
|
||||
player:SendAppearance();
|
||||
player:SendMessage(messageID, sender, string.format("Changing appearance on slot %u", slot));
|
||||
else
|
||||
player:SendMessage(messageID, sender, "No parameters sent! Usage: "..properties.description);
|
||||
end;
|
||||
|
||||
end;
|
25
data/scripts/commands/gm/setappearance.lua
Normal file
25
data/scripts/commands/gm/setappearance.lua
Normal file
|
@ -0,0 +1,25 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "s",
|
||||
description =
|
||||
[[
|
||||
Changes appearance for equipment with given parameters.
|
||||
!graphic <slot> <wID> <eID> <vID> <vID>
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, appearanceId)
|
||||
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local sender = "[setappearance] ";
|
||||
|
||||
app = tonumber(appearanceId) or 0;
|
||||
player:SendMessage(messageID, sender, string.format("appearance %u", app));
|
||||
|
||||
if player and player.target then
|
||||
player.target.ChangeNpcAppearance(app);
|
||||
player:SendMessage(messageID, sender, string.format("appearance %u", app));
|
||||
end;
|
||||
|
||||
end;
|
21
data/scripts/commands/gm/setjob.lua
Normal file
21
data/scripts/commands/gm/setjob.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "sss",
|
||||
description =
|
||||
[[
|
||||
Adds experience <qty> to player or <targetname>.
|
||||
!giveexp <qty> |
|
||||
!giveexp <qty> <targetname> |
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, jobId)
|
||||
local sender = "[setjob] ";
|
||||
|
||||
jobId = tonumber(jobId)
|
||||
if player then
|
||||
player:SetCurrentJob(jobId);
|
||||
end;
|
||||
end;
|
18
data/scripts/commands/gm/setproc.lua
Normal file
18
data/scripts/commands/gm/setproc.lua
Normal file
|
@ -0,0 +1,18 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "sss",
|
||||
description =
|
||||
[[
|
||||
Adds experience <qty> to player or <targetname>.
|
||||
!giveexp <qty> |
|
||||
!giveexp <qty> <targetname> |
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, procid)
|
||||
local sender = "[giveexp] ";
|
||||
local pid = tonumber(procid)
|
||||
player:SetProc(pid, true);
|
||||
end;
|
27
data/scripts/commands/gm/settp.lua
Normal file
27
data/scripts/commands/gm/settp.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "sss",
|
||||
description =
|
||||
[[
|
||||
Sets player or <targetname>'s maximum tp to <tp> and heals them to full.
|
||||
!setmaxtp <tp> |
|
||||
!setmaxtp <tp> <targetname>
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, tp)
|
||||
local sender = "[setmaxtp] ";
|
||||
|
||||
|
||||
|
||||
if player then
|
||||
tp = tonumber(tp) or 0;
|
||||
location = INVENTORY_CURRENCY;
|
||||
|
||||
player:SetTP(tp);
|
||||
else
|
||||
print(sender.."unable to add experience, ensure player name is valid.");
|
||||
end;
|
||||
end;
|
|
@ -6,7 +6,7 @@ properties = {
|
|||
description = "Spawns a actor",
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, actorClassId)
|
||||
function onTrigger(player, argc, actorClassId, width, height)
|
||||
|
||||
if (actorClassId == nil) then
|
||||
player:SendMessage(0x20, "", "No actor class id provided.");
|
||||
|
@ -24,7 +24,16 @@ function onTrigger(player, argc, actorClassId)
|
|||
|
||||
if (actorClassId ~= nil) then
|
||||
zone = player:GetZone();
|
||||
actor = zone:SpawnActor(actorClassId, "test", pos[0], pos[1], pos[2], pos[3]);
|
||||
local w = tonumber(width) or 0;
|
||||
local h = tonumber(height) or 0;
|
||||
printf("%f %f %f", x, y, z);
|
||||
--local x, y, z = player.GetPos();
|
||||
for i = 0, w do
|
||||
for j = 0, h do
|
||||
actor = zone:SpawnActor(actorClassId, "test", pos[0] + (i - (w / 2) * 3), pos[1], pos[2] + (j - (h / 2) * 3), pos[3]);
|
||||
actor.SetAppearance(1001149)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (actor == nil) then
|
||||
|
|
|
@ -128,7 +128,7 @@ function onTrigger(player, argc, id, level, weight)
|
|||
end;
|
||||
]]
|
||||
|
||||
function onTrigger(player, argc, skillName, level)
|
||||
function onTrigger(player, argc, width, height, blockCount)
|
||||
local messageId = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local sender = "yolo";
|
||||
|
||||
|
@ -147,24 +147,24 @@ function onTrigger(player, argc, skillName, level)
|
|||
local z = tonumber(pos[2]);
|
||||
local rot = tonumber(pos[3]);
|
||||
local zone = pos[4];
|
||||
|
||||
local w = tonumber(width) or 0;
|
||||
local h = tonumber(height) or 0;
|
||||
printf("%f %f %f", x, y, z);
|
||||
--local x, y, z = player.GetPos();
|
||||
for i = 1, 1 do
|
||||
|
||||
local actor = player.GetZone().SpawnActor(2104001, 'ass', x, y, z, rot, 0, 0, true );
|
||||
|
||||
if player.currentContentGroup then
|
||||
player.currentContentGroup:AddMember(actor.actorId)
|
||||
for i = 0, blockCount do
|
||||
for i = 0, w do
|
||||
for j = 0, h do
|
||||
local actor = player.GetZone().SpawnActor(2104001, 'ass', x + (i - (w / 2) * 3), y, z + (j - (h / 2) * 3), rot, 0, 0, true);
|
||||
actor.ChangeNpcAppearance(1001149)
|
||||
actor.SetLevel(50);
|
||||
end
|
||||
--actor.FollowTarget(player, 3.2);
|
||||
end
|
||||
|
||||
x = x + 500
|
||||
end
|
||||
--actor.FollowTarget(player, 3.2);
|
||||
end;
|
||||
return;
|
||||
end
|
||||
level = tonumber(level) or 1;
|
||||
if player then
|
||||
player.SendMessage(messageId, sender, string.format("name %s | cost %d | level %u", skillName, calculateCommandCost(player, skillName, level), level));
|
||||
end;
|
||||
end;
|
||||
|
||||
function calculateCommandCost(player, skillName, level)
|
||||
|
|
21
data/scripts/commands/gm/zonecount.lua
Normal file
21
data/scripts/commands/gm/zonecount.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "sss",
|
||||
description =
|
||||
[[
|
||||
Set movement speed for player. Enter no value to reset to default.
|
||||
!speed <run> |
|
||||
!speed <stop> <walk> <run> |
|
||||
]]
|
||||
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, stop, walk, run)
|
||||
|
||||
local message = tostring(player.zone.GetAllActors().Count);
|
||||
|
||||
player.SendMessage(0x20, "", message);
|
||||
|
||||
end
|
14
data/scripts/commands/magic/aero.lua
Normal file
14
data/scripts/commands/magic/aero.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
27
data/scripts/commands/magic/aerora.lua
Normal file
27
data/scripts/commands/magic/aerora.lua
Normal file
|
@ -0,0 +1,27 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage and conversion to single target
|
||||
function onCombo(caster, target, spell)
|
||||
spell.aoeType = 0;
|
||||
spell.potency = spell.potency * 1.5;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(10, 100);
|
||||
|
||||
--Dispels an effect on each target.
|
||||
local effects = target.statusEffects.GetStatusEffectsByFlag(16); --lose on dispel
|
||||
if effects != nil then
|
||||
target.statusEffects.RemoveStatusEffect(effects[0]);
|
||||
end;
|
||||
return damage;
|
||||
end;
|
14
data/scripts/commands/magic/ballad_of_magi.lua
Normal file
14
data/scripts/commands/magic/ballad_of_magi.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onBuffMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -10,15 +10,5 @@ function onMagicStart(caster, target, spell)
|
|||
end;
|
||||
|
||||
function onMagicFinish(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.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
return damage;
|
||||
return magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -9,13 +9,5 @@ function onMagicStart(caster, target, spell)
|
|||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(10, 100);
|
||||
|
||||
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);
|
||||
|
||||
return damage;
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -9,16 +9,11 @@ function onMagicStart(caster, target, spell)
|
|||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage with lesser current hp
|
||||
function onCombo(caster, target, spell)
|
||||
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(1000, 2500);
|
||||
|
||||
-- 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);
|
||||
|
||||
return damage;
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/cura.lua
Normal file
14
data/scripts/commands/magic/cura.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onCureMagicFinish(caster, target, spell, action)
|
||||
end;
|
15
data/scripts/commands/magic/curaga.lua
Normal file
15
data/scripts/commands/magic/curaga.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--http://forum.square-enix.com/ffxiv/threads/41900-White-Mage-A-Guide read
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onCureMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/cure.lua
Normal file
14
data/scripts/commands/magic/cure.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onCureMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/default.lua
Normal file
14
data/scripts/commands/magic/default.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onCureMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -9,16 +9,11 @@ function onMagicStart(caster, target, spell)
|
|||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(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.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
--Increased Damage and reduced recast time in place of stun
|
||||
function onCombo(caster, target, spell)
|
||||
spell.castTimeMs = spell.castTimeMs / 2;
|
||||
end;
|
||||
|
||||
return damage;
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -9,16 +9,11 @@ function onMagicStart(caster, target, spell)
|
|||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(1000, 2500);
|
||||
|
||||
-- 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);
|
||||
--Increased critical damage
|
||||
function onCombo(caster, target, spell)
|
||||
spell.castTimeMs = spell.castTimeMs / 2;
|
||||
end;
|
||||
|
||||
return damage;
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -10,18 +10,5 @@ function onMagicStart(caster, target, spell)
|
|||
end;
|
||||
|
||||
function onMagicFinish(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.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;
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -10,15 +10,7 @@ function onMagicStart(caster, target, spell)
|
|||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(1000, 2500);
|
||||
|
||||
-- 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);
|
||||
|
||||
return damage;
|
||||
--increase potency based on proximity to target
|
||||
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -10,15 +10,5 @@ function onMagicStart(caster, target, spell)
|
|||
end;
|
||||
|
||||
function onMagicFinish(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.HandleAttackMagic(caster, target, spell, action)
|
||||
-- action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
action.effectId = bit32.bxor(0x8000000, spell.effectAnimation, 15636);
|
||||
|
||||
return damage;
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -10,15 +10,5 @@ function onMagicStart(caster, target, spell)
|
|||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(1000, 2500);
|
||||
|
||||
-- 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);
|
||||
|
||||
return damage;
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
21
data/scripts/commands/magic/holy_succor.lua
Normal file
21
data/scripts/commands/magic/holy_succor.lua
Normal file
|
@ -0,0 +1,21 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
spell.statusId = 228011;
|
||||
spell.statusDuration = 25;
|
||||
spell.statusChance = 1.0;
|
||||
magic.onCureMagicFinish(caster, target, spell, action)
|
||||
|
||||
if caster != target then
|
||||
action.AddHealAction(caster.actorId, (action.amount / 2));
|
||||
end
|
||||
end;
|
14
data/scripts/commands/magic/minuet_of_rigor.lua
Normal file
14
data/scripts/commands/magic/minuet_of_rigor.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onBuffMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/paeon_of_war.lua
Normal file
14
data/scripts/commands/magic/paeon_of_war.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onBuffMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/protect.lua
Normal file
14
data/scripts/commands/magic/protect.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onStatusMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/repose.lua
Normal file
14
data/scripts/commands/magic/repose.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/sanguine_rite.lua
Normal file
14
data/scripts/commands/magic/sanguine_rite.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onStatusMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/sleep.lua
Normal file
14
data/scripts/commands/magic/sleep.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onStatusMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/stone.lua
Normal file
14
data/scripts/commands/magic/stone.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
20
data/scripts/commands/magic/stonera.lua
Normal file
20
data/scripts/commands/magic/stonera.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
--Increased damage and conversion to single target
|
||||
function onCombo(caster, target, spell)
|
||||
spell.aoeType = 0;
|
||||
spell.potency = spell.potency * 1.5;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
14
data/scripts/commands/magic/stoneskin.lua
Normal file
14
data/scripts/commands/magic/stoneskin.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require("global");
|
||||
require("magic");
|
||||
|
||||
function onMagicPrepare(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicStart(caster, target, spell)
|
||||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onStatusMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -8,14 +8,11 @@ function onMagicStart(caster, target, spell)
|
|||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(10, 100);
|
||||
|
||||
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 critical damage
|
||||
function onCombo(caster, target, spell)
|
||||
spell.critDamageModifier = 1.5;
|
||||
end;
|
||||
|
||||
return damage;
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -8,14 +8,13 @@ function onMagicStart(caster, target, spell)
|
|||
return 0;
|
||||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(10, 100);
|
||||
|
||||
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 Damage and reduced recast time in place of stun
|
||||
function onCombo(caster, target, spell)
|
||||
spell.statusChance = 0;
|
||||
spell.basePotency = spell.basePotency * 1.5;
|
||||
spell.recastTimeMs = spell.recastTimeMs / 2;
|
||||
end;
|
||||
|
||||
return damage;
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
|
@ -9,13 +9,5 @@ function onMagicStart(caster, target, spell)
|
|||
end;
|
||||
|
||||
function onMagicFinish(caster, target, spell, action)
|
||||
local damage = math.random(10, 100);
|
||||
|
||||
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);
|
||||
|
||||
return damage;
|
||||
magic.onMagicFinish(caster, target, spell, action)
|
||||
end;
|
19
data/scripts/commands/weaponskill/aura_pulse.lua
Normal file
19
data/scripts/commands/weaponskill/aura_pulse.lua
Normal file
|
@ -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;
|
20
data/scripts/commands/weaponskill/bloodletter.lua
Normal file
20
data/scripts/commands/weaponskill/bloodletter.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/brutal_swing.lua
Normal file
19
data/scripts/commands/weaponskill/brutal_swing.lua
Normal file
|
@ -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;
|
25
data/scripts/commands/weaponskill/concussive_blow.lua
Normal file
25
data/scripts/commands/weaponskill/concussive_blow.lua
Normal file
|
@ -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;
|
23
data/scripts/commands/weaponskill/demolish.lua
Normal file
23
data/scripts/commands/weaponskill/demolish.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/disembowel.lua
Normal file
19
data/scripts/commands/weaponskill/disembowel.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/dragon_kick.lua
Normal file
19
data/scripts/commands/weaponskill/dragon_kick.lua
Normal file
|
@ -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;
|
14
data/scripts/commands/weaponskill/fracture.lua
Normal file
14
data/scripts/commands/weaponskill/fracture.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/gloom_arrow.lua
Normal file
19
data/scripts/commands/weaponskill/gloom_arrow.lua
Normal file
|
@ -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;
|
20
data/scripts/commands/weaponskill/godsbane.lua
Normal file
20
data/scripts/commands/weaponskill/godsbane.lua
Normal file
|
@ -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;
|
24
data/scripts/commands/weaponskill/goring_blade.lua
Normal file
24
data/scripts/commands/weaponskill/goring_blade.lua
Normal file
|
@ -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;
|
14
data/scripts/commands/weaponskill/haymaker.lua
Normal file
14
data/scripts/commands/weaponskill/haymaker.lua
Normal file
|
@ -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;
|
14
data/scripts/commands/weaponskill/heavy_shot.lua
Normal file
14
data/scripts/commands/weaponskill/heavy_shot.lua
Normal file
|
@ -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;
|
20
data/scripts/commands/weaponskill/heavy_swing.lua
Normal file
20
data/scripts/commands/weaponskill/heavy_swing.lua
Normal file
|
@ -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;
|
24
data/scripts/commands/weaponskill/howling_fist.lua
Normal file
24
data/scripts/commands/weaponskill/howling_fist.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/leaden_arrow.lua
Normal file
19
data/scripts/commands/weaponskill/leaden_arrow.lua
Normal file
|
@ -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;
|
18
data/scripts/commands/weaponskill/maim.lua
Normal file
18
data/scripts/commands/weaponskill/maim.lua
Normal file
|
@ -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;
|
20
data/scripts/commands/weaponskill/path_of_the_storm.lua
Normal file
20
data/scripts/commands/weaponskill/path_of_the_storm.lua
Normal file
|
@ -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;
|
14
data/scripts/commands/weaponskill/piercing_arrow.lua
Normal file
14
data/scripts/commands/weaponskill/piercing_arrow.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/pounce.lua
Normal file
19
data/scripts/commands/weaponskill/pounce.lua
Normal file
|
@ -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;
|
22
data/scripts/commands/weaponskill/quick_nock.lua
Normal file
22
data/scripts/commands/weaponskill/quick_nock.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/rage_of_halone.lua
Normal file
19
data/scripts/commands/weaponskill/rage_of_halone.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/rain_of_death.lua
Normal file
19
data/scripts/commands/weaponskill/rain_of_death.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/ring_of_talons.lua
Normal file
19
data/scripts/commands/weaponskill/ring_of_talons.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/riot_blade.lua
Normal file
19
data/scripts/commands/weaponskill/riot_blade.lua
Normal file
|
@ -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;
|
19
data/scripts/commands/weaponskill/savage_blade.lua
Normal file
19
data/scripts/commands/weaponskill/savage_blade.lua
Normal file
|
@ -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;
|
20
data/scripts/commands/weaponskill/shadowbind.lua
Normal file
20
data/scripts/commands/weaponskill/shadowbind.lua
Normal file
|
@ -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;
|
15
data/scripts/commands/weaponskill/shield_bash.lua
Normal file
15
data/scripts/commands/weaponskill/shield_bash.lua
Normal file
|
@ -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;
|
18
data/scripts/commands/weaponskill/shoulder_tackle.lua
Normal file
18
data/scripts/commands/weaponskill/shoulder_tackle.lua
Normal file
|
@ -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;
|
23
data/scripts/commands/weaponskill/spirits_within.lua
Normal file
23
data/scripts/commands/weaponskill/spirits_within.lua
Normal file
|
@ -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;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue