mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-08 21:44:35 +02:00
Overhaul of the director system and opening quests. Private Areas further implemented as well.
This commit is contained in:
parent
dcaad5729d
commit
e898c045f7
69 changed files with 2602 additions and 1816 deletions
35
data/scripts/commands/gm/endevent.lua
Normal file
35
data/scripts/commands/gm/endevent.lua
Normal file
|
@ -0,0 +1,35 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "ss",
|
||||
description =
|
||||
[[
|
||||
Passes endEvent() to player or <targetname> to close a script.
|
||||
!endevent |
|
||||
!endevent <targetname> |
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, name, lastName)
|
||||
local sender = "[endevent] ";
|
||||
|
||||
if name then
|
||||
if lastName then
|
||||
player = GetWorldManager():GetPCInWorld(name.." "..lastName) or nil;
|
||||
else
|
||||
player = GetWorldManager():GetPCInWorld(name) or nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local message = "Sending endEvent()";
|
||||
|
||||
if player then
|
||||
player:endEvent();
|
||||
player:SendMessage(messageID, sender, message);
|
||||
print(message);
|
||||
else
|
||||
print(sender.."Sending Event.");
|
||||
end;
|
||||
end;
|
42
data/scripts/commands/gm/givegil.lua
Normal file
42
data/scripts/commands/gm/givegil.lua
Normal file
|
@ -0,0 +1,42 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "sss",
|
||||
description =
|
||||
[[
|
||||
Adds gil <qty> to player or <targetname>.
|
||||
!givegil <qty> |
|
||||
!givegil <qty> <targetname> |
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, qty, name, lastName)
|
||||
local sender = "[givegil] ";
|
||||
|
||||
if name then
|
||||
if lastName then
|
||||
player = GetWorldManager():GetPCInWorld(name.." "..lastName) or nil;
|
||||
else
|
||||
player = GetWorldManager():GetPCInWorld(name) or nil;
|
||||
end;
|
||||
end;
|
||||
|
||||
if player then
|
||||
currency = 1000001;
|
||||
qty = tonumber(qty) or 1;
|
||||
location = INVENTORY_CURRENCY;
|
||||
|
||||
local added = player:GetInventory(location):AddItem(currency, qty, 1);
|
||||
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local message = "unable to add gil";
|
||||
|
||||
if currency and added then
|
||||
message = string.format("added %u gil to %s", qty, player:GetName());
|
||||
end
|
||||
player:SendMessage(messageID, sender, message);
|
||||
print(message);
|
||||
else
|
||||
print(sender.."unable to add gil, ensure player name is valid.");
|
||||
end;
|
||||
end;
|
57
data/scripts/commands/gm/nudge.lua
Normal file
57
data/scripts/commands/gm/nudge.lua
Normal file
|
@ -0,0 +1,57 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "ss",
|
||||
description =
|
||||
[[
|
||||
Positions your character forward a set <distance>, defaults to 5 yalms.
|
||||
!nudge |
|
||||
!nudge <distance> |
|
||||
!nudge <distance> <up/down> |
|
||||
]],
|
||||
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, distance, vertical)
|
||||
local pos = player:GetPos();
|
||||
local x = pos[0];
|
||||
local y = pos[1];
|
||||
local z = pos[2];
|
||||
local rot = pos[3];
|
||||
local zone = pos[4];
|
||||
local angle = rot + (math.pi/2);
|
||||
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local sender = "[nudge] ";
|
||||
|
||||
if distance == nil then
|
||||
distance = 5
|
||||
end;
|
||||
|
||||
local px = x - distance * math.cos(angle);
|
||||
local pz = z + distance * math.sin(angle);
|
||||
local message = string.format("Positioning forward %u yalms.", distance);
|
||||
local worldManager = GetWorldManager();
|
||||
|
||||
if argc == 1 then
|
||||
worldManager:DoPlayerMoveInZone(player, px, y, pz, rot, 0x0);
|
||||
player:SendMessage(messageID, sender, message);
|
||||
elseif argc == 2 then
|
||||
if vertical == "up" or vertical == "u" or vertical == "+" then
|
||||
y = y + distance;
|
||||
message = string.format("Positioning up %u yalms.", distance);
|
||||
worldManager:DoPlayerMoveInZone(player, x, y, z, rot, 0x0);
|
||||
player:SendMessage(messageID, sender, message);
|
||||
elseif vertical == "down" or vertical == "d" or vertical == "-" then
|
||||
y = y - distance;
|
||||
message = string.format("Positioning down %u yalms.", distance);
|
||||
worldManager:DoPlayerMoveInZone(player, x, y, z, rot, 0x0);
|
||||
player:SendMessage(messageID, sender, message);
|
||||
else
|
||||
player:SendMessage(messageID, sender, "Unknown parameters! Usage: \n"..properties.description);
|
||||
end;
|
||||
else
|
||||
worldManager:DoPlayerMoveInZone(player, px, y, pz, rot, 0x0);
|
||||
player:SendMessage(messageID, sender, message);
|
||||
end;
|
||||
end;
|
28
data/scripts/commands/gm/test.lua
Normal file
28
data/scripts/commands/gm/test.lua
Normal file
|
@ -0,0 +1,28 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "ss",
|
||||
description =
|
||||
[[
|
||||
Positions your character forward a set <distance>, defaults to 5 yalms.
|
||||
!nudge |
|
||||
!nudge <distance> |
|
||||
!nudge <distance> <up/down> |
|
||||
]],
|
||||
|
||||
}
|
||||
|
||||
function onTrigger(player, argc)
|
||||
worldMaster = GetWorldMaster();
|
||||
player:SendGameMessage(player, worldMaster, 34108, 0x20);
|
||||
player:SendGameMessage(player, worldMaster, 50011, 0x20);
|
||||
|
||||
director = player:GetZone():CreateDirector("Quest/QuestDirectorMan0l001");
|
||||
player:AddDirector(director);
|
||||
player:SetLoginDirector(director);
|
||||
|
||||
player:KickEvent(director, "noticeEvent", true);
|
||||
|
||||
GetWorldManager():DoZoneChange(player, 9);
|
||||
end;
|
49
data/scripts/commands/gm/workvalue.lua
Normal file
49
data/scripts/commands/gm/workvalue.lua
Normal file
|
@ -0,0 +1,49 @@
|
|||
require("global");
|
||||
|
||||
properties = {
|
||||
permissions = 0,
|
||||
parameters = "ssss",
|
||||
description =
|
||||
[[
|
||||
<actorName> <workName> <uiFunc> <value>
|
||||
]],
|
||||
}
|
||||
|
||||
function onTrigger(player, argc, target, workName, uiFunc, value)
|
||||
|
||||
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||
local sender = "[workvalue] ";
|
||||
|
||||
if (argc != 4) then
|
||||
player:SendMessage(messageID, sender, "Invalid args");
|
||||
return;
|
||||
end
|
||||
|
||||
if (target == "@t") then
|
||||
targetActor = GetWorldManager():GetActorInWorld(player.currentTarget) or nil;
|
||||
else
|
||||
targetActor = GetWorldManager():GetActorInWorld(target) or nil;
|
||||
end
|
||||
|
||||
if not targetActor then
|
||||
player:SendMessage(messageID, sender, "Error finding target...");
|
||||
return
|
||||
end
|
||||
|
||||
if (tonumber(value) ~= nil) then
|
||||
result = targetActor:SetWorkValue(player, workName, uiFunc, tonumber(value));
|
||||
elseif (value == "true") then
|
||||
result = targetActor:SetWorkValue(player, workName, uiFunc, true);
|
||||
elseif (value == "false") then
|
||||
result = targetActor:SetWorkValue(player, workName, uiFunc, false);
|
||||
else
|
||||
result = targetActor:SetWorkValue(player, workName, uiFunc, value);
|
||||
end
|
||||
|
||||
if (result) then
|
||||
player:SendMessage(messageID, sender, workName .. " changed to " .. value);
|
||||
else
|
||||
player:SendMessage(messageID, sender, "Could not changed workvalue. Is the name and datatype correct?");
|
||||
end
|
||||
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue