mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-09 05:54:50 +02:00
Add equip ability functions
Fix EquipAbility SQL query
This commit is contained in:
parent
247b5ca709
commit
efdec5e472
239 changed files with 3474 additions and 1086 deletions
43
data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua
Normal file
43
data/scripts/base/chara/npc/object/GuildleveWarpPoint.lua
Normal file
|
@ -0,0 +1,43 @@
|
|||
--[[
|
||||
|
||||
GuildleveWarpPoint Script
|
||||
|
||||
Functions:
|
||||
|
||||
eventGuildleveReward(glId, completionTimeSec, completeReward, difficultyBonus, faction, gil???, factionBonus, RewardId1, RewardAmount1, RewardId2, RewardAmount2, difficulty) - Open Reward Dialog
|
||||
eventTalkGuildleveWarp(returnAetheryteID1, returnAetheryte2) - Opens choice menu
|
||||
--]]
|
||||
|
||||
require ("global")
|
||||
require ("aetheryte")
|
||||
require ("utils")
|
||||
|
||||
function init(npc)
|
||||
return false, false, 0, 0;
|
||||
end
|
||||
|
||||
function onEventStarted(player, npc, triggerName)
|
||||
local currentGLDirector = player:GetGuildleveDirector();
|
||||
local glData = currentGLDirector.guildleveData;
|
||||
|
||||
callClientFunction(player, "eventGuildleveReward", currentGLDirector.guildleveId, currentGLDirector.completionTime, 24, 24, 0, 0, 0, 0, 0, 0, 0, currentGLDirector.selectedDifficulty);
|
||||
|
||||
local choice = callClientFunction(player, "eventTalkGuildleveWarp", glData.aetheryte, 0);
|
||||
|
||||
if (choice == 3) then
|
||||
local destination = aetheryteTeleportPositions[glData.aetheryte];
|
||||
if (destination ~= nil) then
|
||||
randoPos = getRandomPointInBand(destination[2], destination[4], 3, 5);
|
||||
rotation = getAngleFacing(randoPos.x, randoPos.y, destination[2], destination[4]);
|
||||
GetWorldManager():DoZoneChange(player, destination[1], nil, 0, 2, randoPos.x, destination[3], randoPos.y, rotation);
|
||||
currentGLDirector:EndDirector();
|
||||
end
|
||||
elseif (choice == 4) then
|
||||
currentGLDirector:EndDirector();
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
end
|
||||
|
||||
--50023: GL COMPLETE!
|
||||
--50132: You earn faction credits from X
|
|
@ -22,16 +22,40 @@ eventGLJoin () - Ask to join party leader's leve
|
|||
require ("global")
|
||||
require ("aetheryte")
|
||||
require ("utils")
|
||||
require ("guildleve")
|
||||
|
||||
function init(npc)
|
||||
return false, false, 0, 0;
|
||||
end
|
||||
|
||||
function onEventStarted(player, aetheryte, triggerName)
|
||||
function onEventStarted(player, aetheryte, triggerName)
|
||||
|
||||
if (player:GetGuildleveDirector() ~= nil) then
|
||||
doGuildleveMenu(player, aetheryte);
|
||||
else
|
||||
doNormalMenu(player, aetheryte);
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
end
|
||||
|
||||
aetheryteId = aetheryte:GetActorClassId();
|
||||
parentNode = aetheryteChildLinks[aetheryteId];
|
||||
menuChoice = callClientFunction(player, "eventAetheryteChildSelect", true, parentNode, 100, 1);
|
||||
function doGuildleveMenu(player, aetheryte)
|
||||
|
||||
local currentGLDirector = player:GetGuildleveDirector();
|
||||
local choice = callClientFunction(player, "eventGLPlay", currentGLDirector.guildleveId, true, 1, 500, 400, guardian, 8, currentGLDirector.selectedDifficulty, 2);
|
||||
|
||||
--Abandon
|
||||
if (choice == 6) then
|
||||
currentGLDirector:AbandonGuildleve();
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function doNormalMenu(player, aetheryte)
|
||||
|
||||
local aetheryteId = aetheryte:GetActorClassId();
|
||||
local parentNode = aetheryteChildLinks[aetheryteId];
|
||||
local menuChoice = callClientFunction(player, "eventAetheryteChildSelect", true, parentNode, 100, 1);
|
||||
|
||||
--Teleport
|
||||
if (menuChoice == 2) then
|
||||
|
@ -57,22 +81,36 @@ function onEventStarted(player, aetheryte, triggerName)
|
|||
player:SendGameMessage(player, aetheryte, 29, 0x20, 2, 10);
|
||||
player:SendGameMessage(player, aetheryte, 30, 0x20, 3, 5);
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
end
|
||||
|
||||
function doLevequestInit(player, aetheryte)
|
||||
local worldMaster = GetWorldMaster();
|
||||
::SELECT_LOOP::
|
||||
unknown, glId = callClientFunction(player, "eventGLSelect", 0x0);
|
||||
if (glId ~= 0) then
|
||||
::SELECT_DETAIL::
|
||||
unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false);
|
||||
guildleveData = GetGuildleveGamedata(glId);
|
||||
|
||||
if (guildleveData == nil) then
|
||||
player:SendMessage(0x20, "", "An error has occured... aborting.");
|
||||
return;
|
||||
end
|
||||
|
||||
unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false);
|
||||
if (begin) then
|
||||
::SELECT_DIFFICULTY::
|
||||
player:SendGameMessage(worldMaster, 50014, 0x20); --"Please select a difficulty level. This may be lowered later."
|
||||
difficulty = callClientFunction(player, "eventGLDifficulty", glId);
|
||||
if (difficulty == nil) then goto SELECT_DETAIL; end
|
||||
confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, 10, 20, 0, 0, 0, 0);
|
||||
if (confirmResult == nil) then goto SELECT_DIFFICULTY; else
|
||||
|
||||
player:SendGameMessage(worldMaster, 50036, 0x20, glId, player);
|
||||
player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true));
|
||||
director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player);
|
||||
player:AddDirector(director);
|
||||
director:StartDirector(true, glId)
|
||||
|
||||
end
|
||||
else
|
||||
goto SELECT_LOOP;
|
||||
|
|
|
@ -11,9 +11,8 @@ eventGLSelect(?) - Open GL selector
|
|||
eventGLSelectDetail(glid, ?, reward, rewardQuantity, subreward, subrewardQuantity, faction, ?, completed) - Show GL details
|
||||
eventGLDifficulty() - Open difficulty selector
|
||||
eventGLStart(glId, difficulty, evaluatingFaction, areaFactionStanding, factionReward, warningBoundByDuty, warningTooFar, warningYouCannotRecieve, warningChangingClass) - Confirmation dialog
|
||||
|
||||
eventGLBoost(currentFavor, minNeeded) - Ask player for Guardian Aspect
|
||||
eventGLPlay(??) - Open Menu (GL active version)
|
||||
eventGLPlay(glId, showLeveLink, leveLinkFaction, leveLinkFactionStanding, leveLinkReward, guardianFavorAmount, guardianFavorNeeded, currentDifficulty, jobNameForChange) - Open Menu (GL active version)
|
||||
eventGLReward (glId, clearTime, missionBonus, difficultyBonus, factionNumber, factionBonus, factionCredit, reward, rewardQuantity, subreward, subrewardQuantity, difficulty) - Open reward window
|
||||
eventGLJoin () - Ask to join party leader's leve
|
||||
|
||||
|
@ -26,13 +25,37 @@ eventGLJoin () - Ask to join party leader's leve
|
|||
require ("global")
|
||||
require ("aetheryte")
|
||||
require ("utils")
|
||||
require ("guildleve")
|
||||
|
||||
function init(npc)
|
||||
return false, false, 0, 0;
|
||||
end
|
||||
|
||||
function onEventStarted(player, aetheryte, triggerName)
|
||||
|
||||
|
||||
if (player:GetGuildleveDirector() ~= nil) then
|
||||
doGuildleveMenu(player, aetheryte);
|
||||
else
|
||||
doNormalMenu(player, aetheryte);
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
|
||||
end
|
||||
|
||||
function doGuildleveMenu(player, aetheryte)
|
||||
|
||||
local currentGLDirector = player:GetGuildleveDirector();
|
||||
local choice = callClientFunction(player, "eventGLPlay", currentGLDirector.guildleveId, true, 1, 500, 400, guardian, 8, currentGLDirector.selectedDifficulty, 2);
|
||||
|
||||
--Abandon
|
||||
if (choice == 6) then
|
||||
currentGLDirector:AbandonGuildleve();
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function doNormalMenu(player, aetheryte)
|
||||
local aetheryteId = aetheryte:GetActorClassId();
|
||||
local childNodes = aetheryteParentLinks[aetheryteId];
|
||||
|
||||
|
@ -93,23 +116,36 @@ function onEventStarted(player, aetheryte, triggerName)
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
player:EndEvent();
|
||||
|
||||
end
|
||||
|
||||
function doLevequestInit(player, aetheryte)
|
||||
local worldMaster = GetWorldMaster();
|
||||
::SELECT_LOOP::
|
||||
unknown, glId = callClientFunction(player, "eventGLSelect", 0x0);
|
||||
if (glId ~= 0) then
|
||||
::SELECT_DETAIL::
|
||||
guildleveData = GetGuildleveGamedata(glId);
|
||||
|
||||
if (guildleveData == nil) then
|
||||
player:SendMessage(0x20, "", "An error has occured... aborting.");
|
||||
return;
|
||||
end
|
||||
|
||||
unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false);
|
||||
if (begin) then
|
||||
::SELECT_DIFFICULTY::
|
||||
player:SendGameMessage(worldMaster, 50014, 0x20); --"Please select a difficulty level. This may be lowered later."
|
||||
difficulty = callClientFunction(player, "eventGLDifficulty", glId);
|
||||
if (difficulty == nil) then goto SELECT_DETAIL; end
|
||||
confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, 10, 20, 0, 0, 0, 0);
|
||||
confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, guildleveData.favorCount, 20, 0, 0, 0, 0);
|
||||
if (confirmResult == nil) then goto SELECT_DIFFICULTY; else
|
||||
|
||||
player:SendGameMessage(worldMaster, 50036, 0x20, glId, player);
|
||||
player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true));
|
||||
director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player);
|
||||
player:AddDirector(director);
|
||||
director:StartDirector(true, glId)
|
||||
|
||||
end
|
||||
else
|
||||
goto SELECT_LOOP;
|
||||
|
|
|
@ -14,12 +14,10 @@ function onEventStarted(player, actor, triggerName, isGoobbue)
|
|||
|
||||
if (isGoobbue ~= true) then
|
||||
player:ChangeMusic(83);
|
||||
player:SendChocoboAppearance();
|
||||
player:SendGameMessage(player, worldMaster, 26001, 0x20);
|
||||
player:SetMountState(1);
|
||||
else
|
||||
player:ChangeMusic(98);
|
||||
player:SendGoobbueAppearance();
|
||||
player:SendGameMessage(player, worldMaster, 26019, 0x20);
|
||||
player:SetMountState(2);
|
||||
end
|
||||
|
|
14
data/scripts/commands/EquipAbilityCommand.lua
Normal file
14
data/scripts/commands/EquipAbilityCommand.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
require ("global")
|
||||
--player: Player that called this command
|
||||
--equipAbilityWidget: Widget that calls this command
|
||||
--triggername: Event Starter ?
|
||||
--slot: Which slot the ability will go into
|
||||
--ability: Ability being equipped
|
||||
|
||||
|
||||
function onEventStarted(player, equipAbilityWidget, triggername, slot, ability, unkown, arg1, arg2, arg3, arg4, arg5, arg6)
|
||||
if ability then
|
||||
player:EquipAbility(slot, ability, 1);
|
||||
end
|
||||
player:endEvent();
|
||||
end
|
15
data/scripts/commands/gm/addguildleve.lua
Normal file
15
data/scripts/commands/gm/addguildleve.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "s",
|
||||
description = "Adds a guildleve by <id>.",
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, glId)
|
||||
if player then
|
||||
player:AddGuildleve(tonumber(glId));
|
||||
else
|
||||
print(sender.."unable to add guildleve, ensure player name is valid.");
|
||||
end;
|
||||
end;
|
15
data/scripts/commands/gm/removeguildleve.lua
Normal file
15
data/scripts/commands/gm/removeguildleve.lua
Normal file
|
@ -0,0 +1,15 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "s",
|
||||
description = "Adds a guildleve by <id>.",
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, glId)
|
||||
if player then
|
||||
player:RemoveGuildleve(tonumber(glId));
|
||||
else
|
||||
print(sender.."unable to add guildleve, ensure player name is valid.");
|
||||
end;
|
||||
end;
|
54
data/scripts/directors/Guildleve/GuildleveCommon.lua
Normal file
54
data/scripts/directors/Guildleve/GuildleveCommon.lua
Normal file
|
@ -0,0 +1,54 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleSweepNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
guildleveData = GetGuildleveGamedata(thisDirector.guildleveId);
|
||||
members = thisDirector:GetPlayerMembers();
|
||||
|
||||
if (members ~= nil and #members ~= 0) then
|
||||
player = members[0];
|
||||
player:SendGameMessage(GetWorldMaster(), 50036, 0x20, thisDirector.guildleveId, player, 0); --"You have started the leve..."
|
||||
player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, false));
|
||||
end
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
if (members ~= nil and #members ~= 0) then
|
||||
player = members[0];
|
||||
|
||||
player:ChangeMusic(22);
|
||||
attentionMessage(player, 50022, thisDirector.guildleveId, thisDirector.selectedDifficulty, 0);
|
||||
player:SendGameMessage(GetWorldMaster(), 50026, 0x20, guildleveData.timeLimit);
|
||||
end
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
end
|
||||
|
||||
function attentionMessage(player, textId, ...)
|
||||
player:SendGameMessage(GetWorldMaster(), textId, 0x20, ...);
|
||||
player:SendDataPacket("attention", GetWorldMaster(), "", textId, ...);
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleChaseNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleDetectNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
end
|
|
@ -0,0 +1,26 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId
|
||||
|
||||
function init()
|
||||
return "/Director/Guildleve/PrivateGLBattleGatherNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleHuntNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
end
|
|
@ -0,0 +1,42 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleOrbNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 4);
|
||||
|
||||
wait(2);
|
||||
|
||||
thisDirector:EndGuildleve(true);
|
||||
|
||||
wait(30);
|
||||
player:SendGameMessage(GetWorldMaster(), 50033, 0x20);
|
||||
thisDirector:EndDirector();
|
||||
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleRoundNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleSurviveNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
end
|
|
@ -0,0 +1,35 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleSweepNormal", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
wait(3);
|
||||
thisDirector:EndGuildleve(true);
|
||||
|
||||
end
|
48
data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua
Normal file
48
data/scripts/directors/Guildleve/PrivateGLBattleTutorial.lua
Normal file
|
@ -0,0 +1,48 @@
|
|||
require ("global")
|
||||
require ("guildleve")
|
||||
|
||||
--DirectorId, GuildleveId, Aetheryte Location (6 or ~6), exMarkerX, exMarkerY, exMarkerZ
|
||||
|
||||
--50101: This is a tutorial covering regional levequests for Disciples of War and Disciples of Magic.
|
||||
--50102: The general location of your target can be determined by using the minimap.
|
||||
--50105: Your target is nearby. Proceed with the levequest objectives.
|
||||
--50107: This levequest asks that you exterminate a total of [@VALUE($E8(1))] targets. Try finding the next one.
|
||||
--50110: Defeating targets will sometimes earn you experience points.
|
||||
--50112: An aetherial node will appear when levequest objectives have been met. Try approaching it.
|
||||
--50114: Use the node to collect your reward and teleport back to the starting location of the levequest.
|
||||
|
||||
--22: Limsa Battle Leve
|
||||
--14: Gridania Battle Leve
|
||||
--26: Uldah Battle Leve
|
||||
--16: Coerthas Faction Leve
|
||||
--72: Harvest Leve
|
||||
|
||||
function init(thisDirector)
|
||||
return "/Director/Guildleve/PrivateGLBattleTutorial", 0x4e25, thisDirector.guildleveId, 6, 0, 0, 0;
|
||||
end
|
||||
|
||||
function main(thisDirector)
|
||||
|
||||
wait(3);
|
||||
|
||||
thisDirector:StartGuildleve();
|
||||
thisDirector:SyncAllInfo();
|
||||
thisDirector:UpdateMarkers(0, 59.0, 44.0, -163.0);
|
||||
|
||||
wait(5);
|
||||
|
||||
thisDirector:UpdateAimNumNow(0, 1);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 2);
|
||||
wait(3);
|
||||
thisDirector:UpdateAimNumNow(0, 3);
|
||||
|
||||
wait(3);
|
||||
thisDirector:EndGuildleve(true);
|
||||
|
||||
end
|
||||
|
||||
function attentionMessage(player, textId, ...)
|
||||
player:SendGameMessage(GetWorldMaster(), textId, 0x20, args);
|
||||
player:SendDataPacket("attention", GetWorldMaster(), "", textId, args);
|
||||
end
|
32
data/scripts/guildleve.lua
Normal file
32
data/scripts/guildleve.lua
Normal file
|
@ -0,0 +1,32 @@
|
|||
--[[
|
||||
|
||||
Guildleve constants and functions
|
||||
|
||||
--]]
|
||||
|
||||
--Helper functions
|
||||
|
||||
function glBorderIconIDToAnimID(iconId)
|
||||
return iconId - 20000;
|
||||
end
|
||||
|
||||
function glPlateIconIDToAnimID(iconId)
|
||||
return iconId - 20020;
|
||||
end
|
||||
|
||||
function getGLStartAnimationFromSheet(border, plate, isBoost)
|
||||
return getGLStartAnimation(glBorderIconIDToAnimID(border), glPlateIconIDToAnimID(plate), isBoost);
|
||||
end
|
||||
|
||||
function getGLStartAnimation(border, plate, isBoost)
|
||||
borderBits = border;
|
||||
plateBits = bit32.lshift(plate, 7);
|
||||
|
||||
if (isBoost) then
|
||||
boostBits = 0x8000; --1 shifted 15 left
|
||||
else
|
||||
boostBits = 0x0;
|
||||
end
|
||||
|
||||
return bit32.bor(0x0B000000, boostBits, plateBits, borderBits);
|
||||
end
|
|
@ -1,7 +1,6 @@
|
|||
local initClassItems, initRaceItems;
|
||||
|
||||
function onBeginLogin(player)
|
||||
|
||||
function onBeginLogin(player)
|
||||
--New character, set the initial quest
|
||||
if (player:GetPlayTime(false) == 0) then
|
||||
initialTown = player:GetInitialTown();
|
||||
|
@ -54,7 +53,6 @@ function onBeginLogin(player)
|
|||
player:GetQuest(110009):ClearQuestData();
|
||||
player:GetQuest(110009):ClearQuestFlags();
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function onLogin(player)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue