mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-20 11:47:48 +00:00

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
175 lines
No EOL
7.3 KiB
Lua
175 lines
No EOL
7.3 KiB
Lua
local initClassItems, initRaceItems;
|
|
|
|
function onBeginLogin(player)
|
|
--New character, set the initial quest
|
|
if (player:GetPlayTime(false) == 0) then
|
|
initialTown = player:GetInitialTown();
|
|
|
|
if (initialTown == 1 and player:HasQuest(110001) == false) then
|
|
player:AddQuest(110001);
|
|
player:SetHomePoint(1280001);
|
|
elseif (initialTown == 2 and player:HasQuest(110005) == false) then
|
|
player:AddQuest(110005);
|
|
player:SetHomePoint(1280061);
|
|
elseif (initialTown == 3 and player:HasQuest(110009) == false) then
|
|
player:AddQuest(110009);
|
|
player:SetHomePoint(1280031);
|
|
end
|
|
|
|
end
|
|
|
|
--For Opening. Set Director and reset position incase d/c
|
|
if (player:HasQuest(110001) == true and player:GetZoneID() == 193) then
|
|
director = player:GetZone():CreateDirector("OpeningDirector", false);
|
|
player:AddDirector(director);
|
|
director:StartDirector(true);
|
|
player:SetLoginDirector(director);
|
|
player:KickEvent(director, "noticeEvent", true);
|
|
|
|
player.positionX = 0.016;
|
|
player.positionY = 10.35;
|
|
player.positionZ = -36.91;
|
|
player.rotation = 0.025;
|
|
player:GetQuest(110001):ClearQuestData();
|
|
player:GetQuest(110001):ClearQuestFlags();
|
|
elseif (player:HasQuest(110005) == true and player:GetZoneID() == 166) then
|
|
director = player:GetZone():CreateDirector("OpeningDirector", false);
|
|
player:AddDirector(director);
|
|
director:StartDirector(false);
|
|
player:SetLoginDirector(director);
|
|
player:KickEvent(director, "noticeEvent", true);
|
|
|
|
player.positionX = 369.5434;
|
|
player.positionY = 4.21;
|
|
player.positionZ = -706.1074;
|
|
player.rotation = -1.26721;
|
|
player:GetQuest(110005):ClearQuestData();
|
|
player:GetQuest(110005):ClearQuestFlags();
|
|
elseif (player:HasQuest(110009) == true and player:GetZoneID() == 184) then
|
|
--director = player:GetZone():CreateDirector("OpeningDirector", false);
|
|
--player:AddDirector(director);
|
|
--director:StartDirector(false);
|
|
--player:SetLoginDirector(director);
|
|
--player:KickEvent(director, "noticeEvent", true);
|
|
--
|
|
player.positionX = 5.364327;
|
|
player.positionY = 196.0;
|
|
player.positionZ = 133.6561;
|
|
player.rotation = -2.849384;
|
|
player:GetQuest(110009):ClearQuestData();
|
|
player:GetQuest(110009):ClearQuestFlags();
|
|
end
|
|
end
|
|
|
|
function onLogin(player)
|
|
|
|
if (player:GetPlayTime(false) == 0) then
|
|
player:SendMessage(0x1D,"",">PlayTime == 0, new player!");
|
|
|
|
initClassItems(player);
|
|
initRaceItems(player);
|
|
|
|
player:SavePlayTime();
|
|
end
|
|
|
|
end
|
|
|
|
function initClassItems(player)
|
|
|
|
local slotTable;
|
|
local invSlotTable;
|
|
|
|
--DoW
|
|
if (player.charaWork.parameterSave.state_mainSkill[0] == 2) then --PUG
|
|
player:GetInventory(0):AddItem({4020001, 8030701, 8050728, 8080601, 8090307});
|
|
player:GetEquipment():SetEquipment({0, 10, 12, 14, 15},{0, 1, 2, 3, 4});
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 3) then --GLA
|
|
player:GetInventory(0):AddItem({4030010, 8031120, 8050245, 8080601, 8090307});
|
|
player:GetEquipment():SetEquipment({0, 10, 12, 14, 15},{0, 1, 2, 3, 4});
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 4) then --MRD
|
|
player:GetInventory(0):AddItem({4040001, 8011001, 8050621, 8070346, 8090307});
|
|
player:GetEquipment():SetEquipment({0, 8, 12, 13, 15},{0, 1, 2, 3, 4});
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 7) then --ARC
|
|
player:GetInventory(0):AddItem({4070001, 8030601, 8050622, 8080601, 8090307});
|
|
player:GetEquipment():SetEquipment({0, 10, 12, 14, 15},{0, 1, 2, 3, 4});
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 8) then --LNC
|
|
player:GetInventory(0):AddItem({4080201, 8030801, 8051015, 8080501, 8090307});
|
|
player:GetEquipment():SetEquipment({0, 10, 12, 14, 15},{0, 1, 2, 3, 4});
|
|
--DoM
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 22) then --THM
|
|
player:GetInventory(0):AddItem({5020001, 8030245, 8050346, 8080346, 8090208});
|
|
player:GetEquipment():SetEquipment({0, 10, 12, 14, 15},{0, 1, 2, 3, 4});
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 23) then --CNJ
|
|
player:GetInventory(0):AddItem({5030101, 8030445, 8050031, 8080246, 8090208});
|
|
player:GetEquipment():SetEquipment({0, 10, 12, 14, 15},{0, 1, 2, 3, 4});
|
|
|
|
--DoH
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 29) then --
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 30) then --
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 31) then --
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 32) then --
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 33) then --
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 34) then --
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 35) then --
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 36) then --
|
|
|
|
--DoL
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 39) then --MIN
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 40) then --BTN
|
|
elseif (player.charaWork.parameterSave.state_mainSkill[0] == 41) then --FSH
|
|
end
|
|
|
|
end
|
|
|
|
function initRaceItems(player)
|
|
|
|
if (player.playerWork.tribe == 1) then --Hyur Midlander Male
|
|
player:GetInventory(0):AddItem(8040001);
|
|
player:GetInventory(0):AddItem(8060001);
|
|
elseif (player.playerWork.tribe == 2) then --Hyur Midlander Female
|
|
player:GetInventory(0):AddItem(8040002);
|
|
player:GetInventory(0):AddItem(8060002);
|
|
elseif (player.playerWork.tribe == 3) then --Hyur Highlander Male
|
|
player:GetInventory(0):AddItem(8040003);
|
|
player:GetInventory(0):AddItem(8060003);
|
|
elseif (player.playerWork.tribe == 4) then --Elezen Wildwood Male
|
|
player:GetInventory(0):AddItem(8040004);
|
|
player:GetInventory(0):AddItem(8060004);
|
|
elseif (player.playerWork.tribe == 5) then --Elezen Wildwood Female
|
|
player:GetInventory(0):AddItem(8040006);
|
|
player:GetInventory(0):AddItem(8060006);
|
|
elseif (player.playerWork.tribe == 6) then --Elezen Duskwight Male
|
|
player:GetInventory(0):AddItem(8040005);
|
|
player:GetInventory(0):AddItem(8060005);
|
|
elseif (player.playerWork.tribe == 7) then --Elezen Duskwight Female
|
|
player:GetInventory(0):AddItem(8040007);
|
|
player:GetInventory(0):AddItem(8060007);
|
|
elseif (player.playerWork.tribe == 8) then --Lalafell Plainsfolk Male
|
|
player:GetInventory(0):AddItem(8040008);
|
|
player:GetInventory(0):AddItem(8060008);
|
|
elseif (player.playerWork.tribe == 9) then --Lalafell Plainsfolk Female
|
|
player:GetInventory(0):AddItem(8040010);
|
|
player:GetInventory(0):AddItem(8060010);
|
|
elseif (player.playerWork.tribe == 10) then --Lalafell Dunesfolk Male
|
|
player:GetInventory(0):AddItem(8040009);
|
|
player:GetInventory(0):AddItem(8060009);
|
|
elseif (player.playerWork.tribe == 11) then --Lalafell Dunesfolk Female
|
|
player:GetInventory(0):AddItem(8040011);
|
|
player:GetInventory(0):AddItem(8060011);
|
|
elseif (player.playerWork.tribe == 12) then --Miqo'te Seekers of the Sun
|
|
player:GetInventory(0):AddItem(8040012);
|
|
player:GetInventory(0):AddItem(8060012);
|
|
elseif (player.playerWork.tribe == 13) then --Miqo'te Seekers of the Moon
|
|
player:GetInventory(0):AddItem(8040013);
|
|
player:GetInventory(0):AddItem(8060013);
|
|
elseif (player.playerWork.tribe == 14) then --Roegadyn Sea Wolf
|
|
player:GetInventory(0):AddItem(8040014);
|
|
player:GetInventory(0):AddItem(8060014);
|
|
elseif (player.playerWork.tribe == 15) then --Roegadyn Hellsguard
|
|
player:GetInventory(0):AddItem(8040015);
|
|
player:GetInventory(0):AddItem(8060015);
|
|
end
|
|
|
|
player:GetEquipment():SetEquipment({9, 11},{5,6});
|
|
|
|
end |