mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-22 12:47:46 +00:00
New test gm scripts to help with positioning populace npcs
This commit is contained in:
parent
214d730a58
commit
8d5f4465e3
3 changed files with 95 additions and 0 deletions
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…
Add table
Reference in a new issue