mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
New test gm scripts to help with positioning populace npcs
This commit is contained in:
parent
214d730a58
commit
8d5f4465e3
23
Data/scripts/commands/gm/changetonpc.lua
Normal file
23
Data/scripts/commands/gm/changetonpc.lua
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
require("global");
|
||||||
|
|
||||||
|
properties = {
|
||||||
|
permissions = 0,
|
||||||
|
parameters = "",
|
||||||
|
description =
|
||||||
|
[[
|
||||||
|
Changes appearance for equipment with given parameters.
|
||||||
|
!graphic <slot> <wID> <eID> <vID> <vID>
|
||||||
|
]],
|
||||||
|
}
|
||||||
|
|
||||||
|
function onTrigger(player, argc)
|
||||||
|
local messageID = MESSAGE_TYPE_SYSTEM_ERROR;
|
||||||
|
local sender = "[changetonpc] ";
|
||||||
|
|
||||||
|
local npc = player.CurrentArea:FindActorInArea(player.currentTarget);
|
||||||
|
|
||||||
|
if npc then
|
||||||
|
player:ChangeIntoNpc(npc);
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
32
Data/scripts/commands/gm/setpopulacepos.lua
Normal file
32
Data/scripts/commands/gm/setpopulacepos.lua
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
require("global");
|
||||||
|
|
||||||
|
properties = {
|
||||||
|
permissions = 0,
|
||||||
|
parameters = "sffff",
|
||||||
|
description = "Moves an actor into a new position instantly",
|
||||||
|
}
|
||||||
|
|
||||||
|
function onTrigger(player, argc, name, posX, posY, posZ, rotation)
|
||||||
|
|
||||||
|
local actor;
|
||||||
|
|
||||||
|
if (name == nil) then
|
||||||
|
player:SendMessage(0x20, "", "No name provided.");
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
local pos = player:GetPos();
|
||||||
|
local x = posX or pos[1];
|
||||||
|
local y = posY or pos[2];
|
||||||
|
local z = posZ or pos[3];
|
||||||
|
local rot = rotation or pos[4];
|
||||||
|
|
||||||
|
actor = player.CurrentArea:FindActorInZoneByUniqueID(name);
|
||||||
|
if (actor ~= nil) then
|
||||||
|
actor:SetPos(x,y,z,rot,true);
|
||||||
|
player:SendMessage(0x20, "", string.format("Moved %s @ %f, %f, %f, %f", name, x, y, z, rot));
|
||||||
|
else
|
||||||
|
player:SendMessage(0x20, "", string.format("Could not find %s.", name));
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
40
Data/scripts/commands/gm/testpopulace.lua
Normal file
40
Data/scripts/commands/gm/testpopulace.lua
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
require("global");
|
||||||
|
|
||||||
|
properties = {
|
||||||
|
permissions = 0,
|
||||||
|
parameters = "dsdffff",
|
||||||
|
description = "Spawns an actor given the actorClassId",
|
||||||
|
}
|
||||||
|
|
||||||
|
function onTrigger(player, argc, actorClassId, name, motionPack, posX, posY, posZ, rotation)
|
||||||
|
|
||||||
|
local actor;
|
||||||
|
|
||||||
|
if (actorClassId == nil) then
|
||||||
|
player:SendMessage(0x20, "", "No actor class id provided.");
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
if (motionPack == nil) then
|
||||||
|
motionPack = 0;
|
||||||
|
end
|
||||||
|
|
||||||
|
local actorClassId = tonumber(actorClassId);
|
||||||
|
local pos = player:GetPos();
|
||||||
|
local x = x or pos[1];
|
||||||
|
local y = y or pos[2];
|
||||||
|
local z = z or pos[3];
|
||||||
|
local rot = rotation or pos[4];
|
||||||
|
|
||||||
|
if (actorClassId ~= nil and name ~= nil) then
|
||||||
|
|
||||||
|
actor = player.CurrentArea:SpawnActor(1000001, name, x, y, z, rot, 0, motionPack);
|
||||||
|
actor:ChangeNpcAppearance(actorClassId)
|
||||||
|
player:SendMessage(0x20, "", string.format("Spawned %d @ %f, %f, %f, %f", actorClassId, x, y, z, rot));
|
||||||
|
end
|
||||||
|
|
||||||
|
if (actor == nil) then
|
||||||
|
player:SendMessage(0x20, "", "This actor class id cannot be spawned.");
|
||||||
|
end
|
||||||
|
|
||||||
|
end;
|
Loading…
Reference in New Issue
Block a user