mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-09 05:54:50 +02:00
Merge remote-tracking branch 'origin/ioncannon/quest_system' into Jorge/quest_system
This commit is contained in:
commit
594e08f990
84 changed files with 2660 additions and 1279 deletions
58
Data/scripts/commands/gm/completedQuest.lua
Normal file
58
Data/scripts/commands/gm/completedQuest.lua
Normal file
|
@ -0,0 +1,58 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "dd",
|
||||
description =
|
||||
[[
|
||||
Sets if a quest is completed.
|
||||
!completedQuest <questId> true/false
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, questId, flag)
|
||||
|
||||
print("HEY");
|
||||
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local sender = "[completedQuest] ";
|
||||
local message = "Error";
|
||||
|
||||
if (argc < 1) then
|
||||
return;
|
||||
end
|
||||
|
||||
local questId = tonumber(questId);
|
||||
local flag = flag or nil;
|
||||
|
||||
-- Fail if not valid questId
|
||||
if (questId < 110001 or questId > 110001 + 2048) then
|
||||
player:SendMessage(messageID, sender, "Invalid questId entered");
|
||||
return;
|
||||
end
|
||||
|
||||
-- Getting
|
||||
if (arc == 1) then
|
||||
player:SendMessage(messageID, sender, string.format("Quest %d completion is set to: %s", questId, tostring(player:IsQuestCompleted(questId))));
|
||||
return;
|
||||
-- Setting
|
||||
else
|
||||
-- Fail if not valid flag
|
||||
if (not flag == nil) then
|
||||
player:SendMessage(messageID, sender, "Invalid flag entered");
|
||||
else
|
||||
local boolFlag = false;
|
||||
|
||||
if (flag == "true" or flag == "1" or flag == "on" or flag == "O") then
|
||||
boolFlag = true;
|
||||
elseif (flag == "false" or flag == "0" or flag == "off" or flag == "X") then
|
||||
boolFlag = false;
|
||||
elseif flag == "flip" or flag == "toggle" then
|
||||
boolFlag = not player:IsQuestCompleted(questId);
|
||||
end
|
||||
|
||||
player:SetQuestComplete(questId, boolFlag);
|
||||
player:SendMessage(messageID, sender, string.format("Quest %d completion set to: %s", questId, tostring(player:IsQuestCompleted(questId))));
|
||||
return;
|
||||
end
|
||||
end
|
||||
end
|
|
@ -66,7 +66,7 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
|
||||
local flagStr = "";
|
||||
for i=0,31,1 do
|
||||
if (quest:GetFlag(i)) then
|
||||
if (quest:GetData():GetFlag(i)) then
|
||||
flagStr = flagStr .. "O";
|
||||
else
|
||||
flagStr = flagStr .. "X";
|
||||
|
@ -76,10 +76,12 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
end
|
||||
end
|
||||
|
||||
local data = quest:GetData();
|
||||
|
||||
message = string.format("\nInfo for quest %s [%d]\n", quest.Name, quest:GetQuestId());
|
||||
message = message .. string.format("Current Sequence: %d\n", quest:getSequence());
|
||||
message = message .. string.format("Flags: \n%s\n", flagStr)
|
||||
message = message .. string.format("Counters: %d,%d,%d,%d", quest:getCounter(0), quest:getCounter(1), quest:getCounter(2), quest:getCounter(3));
|
||||
message = message .. string.format("Counters: %d,%d,%d,%d", data:getCounter(0), data:getCounter(1), data:getCounter(2), data:getCounter(3));
|
||||
else
|
||||
message = ("Quest not active: "..var1);
|
||||
end
|
||||
|
@ -118,7 +120,7 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
boolvar = false;
|
||||
elseif var3 == "flip" or var3 == "toggle" then
|
||||
if player:HasQuest(questvar) == true then
|
||||
boolvar = not player:GetQuest(questvar):GetFlag(flagvar);
|
||||
boolvar = not player:GetQuest(questvar):GetData():GetFlag(flagvar);
|
||||
end
|
||||
else
|
||||
message = ("error: flag: boolean not recognized");
|
||||
|
@ -126,13 +128,13 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
return;
|
||||
end
|
||||
|
||||
var4 = player:GetQuest(questvar):GetFlag(flagvar);
|
||||
var4 = player:GetQuest(questvar):GetData():GetFlag(flagvar);
|
||||
|
||||
if var4 ~= boolvar then
|
||||
if (boolvar == true) then
|
||||
player:GetQuest(questvar):SetFlag(flagvar);
|
||||
player:GetQuest(questvar):GetData():SetFlag(flagvar);
|
||||
else
|
||||
player:GetQuest(questvar):ClearFlag(flagvar);
|
||||
player:GetQuest(questvar):GetData():ClearFlag(flagvar);
|
||||
end
|
||||
player:GetQuest(questvar):UpdateENPCs();
|
||||
player:GetQuest(questvar):SaveData();
|
||||
|
@ -152,7 +154,7 @@ function onTrigger(player, argc, command, var1, var2, var3)
|
|||
questvar = tonumber(var1);
|
||||
index = (tonumber(var2));
|
||||
|
||||
player:GetQuest(questvar):SetCounter(index, tonumber(var3));
|
||||
player:GetQuest(questvar):GetData():SetCounter(index, tonumber(var3));
|
||||
player:GetQuest(questvar):UpdateENPCs();
|
||||
player:GetQuest(questvar):SaveData();
|
||||
message = ("changing counter "..tonumber(var2).." to "..var3);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue