These are the scripts used to implement most of the essential server logic in TES3MP, including gameplay adjustments for multiplayer as well as state saving and loading.
- TES3MP version: 0.8.1
The serverside Lua scripts used to implement core functionality in TES3MP.
License: MIT License
Like mentioned in #5
Hi, I'm working on a mod manager for OpenMW called Portmod, and want to include support for installing tes3mp scripts.
At the moment there doesn't seem to be an easy way of including custom scripts without touching the tes3mp installation, which a user program such as Portmod may not have permission to modify, depending on how tes3mp was installed. There is a way of specifying the location of CoreScripts in tes3mp-server.cfg
, however making use of that on a system where the original CoreScripts has been installed without user write permissions would require copying or cloning an entirely new CoreScripts directory. This may not be what the user expects and could be confusing, in addition to being a largely unnecessary copy as we only actually need to modify scripts/customScripts.lua
.
Would it be possible to support including custom scripts (or more particularly, the customScripts.lua
file) in a location specified in tes3mp-server.cfg
, or in some fixed directory in ~/.local/share
?
Because of a missing numerical conversion, using the /kick command after commit af0ec05 causes a server crash.
Add teleport commands to teleport the player to another player or vice versa.
This is a very common feature in multiplayer games and it is extremely useful, especially in times of bug hunting.
PS: These commands should be limited to Moderators and Admins.
I have tried calling tes3mp.SetPos() from the lua scripts without any noticeable effects, there is no debug information in either the openmw or the openmw-mp server console output.
Example of a call:
tes3mp.SetPos(0, 4092, 4092, 1000), should put player pid0 at Z1000 above the spawn point but nothing happens.
This line of code causes the server to crash
CoreScripts/scripts/eventHandler.lua
Line 1166 in e02ece5
I think it can be fixed this way:
local actors = packetReader.GetActorPacketTables("ActorDeath").actors
I think it would be better than a monkey's work (tp 1, tp 2, tp 3)
tes3mp.GetCell() should return "" when the player is on the exterior, instead it now returns the last interior cell the user visited, since commit TES3MP/TES3MP@7bf08e5
This line, used in so many places, doesn't really work at all:
for i = 0, #Players do
Imagine you have a server that players 0, 1, 2 and 3 have joined. That means #Players is 4 and the loop will go up to 4.
Now imagine players 1 and 2 leave. Suddenly, #Players has a value of 2. That means the loop only goes up to 2, and it's as if player 3 doesn't even exist.
For that reason, something like printing the list of players like this is very wrong:
for i=0,#Players do
if i == #Players then
divider = ""
else
divider = "\n"
end
if Players[i] ~= nil and Players[i]:IsLoggedIn() then
list = list .. tostring(Players[i].name)
list = list .. " (ID: " .. tostring(Players[i].pid)
list = list .. ", Ping: " .. tostring(tes3mp.GetAvgPing(Players[i].pid)) .. ")"
list = list .. divider
end
end
In the above-mentioned scenario, it will only be able to find player 0.
Here's a screenshot as proof:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.