Commit graph

727 commits

Author SHA1 Message Date
Koncord
e7a5919477 [Server] Fix path to native libs 2017-10-27 20:58:02 +08:00
David Cernat
413893aa51 [General] Implement PlayerAnimPlay packet 2017-10-27 09:10:29 +03:00
Koncord
1aa630e4a9 [Server] Add StackWalker for Windows 2017-10-27 05:27:07 +08:00
Koncord
14fdec2478 [Server] Add forgotten stacktrace.cpp 2017-10-26 23:24:35 +08:00
David Cernat
878294e4fe Merge branch 'new-script-api' of https://github.com/TES3MP/openmw-tes3mp into new-script-api 2017-10-26 17:25:53 +03:00
Koncord
d44848ecbb [Server] Fix build 2017-10-25 16:05:45 +08:00
Koncord
05abb8ace3 [Server] Add Log level constants to lua 2017-10-25 15:22:07 +08:00
Koncord
04a844a9c0 [Server] Use sol's default_handler 2017-10-25 15:21:11 +08:00
Koncord
dad0b38f25 [Server] Add custom terminate handler with stacktrace 2017-10-25 14:45:36 +08:00
Koncord
a3d5fbbdcd [Server] Add stacktrace 2017-10-25 14:45:36 +08:00
Koncord
916ada108f [General] Modernize Log utility
* Reverse Log levels
* Add LOG_TRACE
* Spawn instance of Log in Get() function
2017-10-25 14:45:36 +08:00
David Cernat
50d5fffb7f [General] Add and implement PlayerQuickKeys packet 2017-10-25 07:21:00 +03:00
David Cernat
bece095579 [Server] Add getCaseInsensitiveFilename script function back in 2017-10-24 20:25:02 +03:00
David Cernat
76a4abd7c0 Merge pull request #325 from TES3MP/master while resolving conflicts
# Conflicts:
#	apps/openmw-mp/processors/player/ProcessorPlayerTopic.hpp
2017-10-24 19:45:11 +03:00
David Cernat
a94d4ce6f5 Merge pull request #323 from TES3MP/0.6.1
Add hotfix commit for 0.6.1 from 23 Oct 2017
2017-10-24 19:34:34 +03:00
David Cernat
3aedc2e5bc [Server] Don't automatically share PlayerTopic packets between players 2017-10-23 19:39:35 +03:00
David Cernat
fb67180809 [Server] Fix build in Visual Studio 2017-10-19 13:04:37 +03:00
Koncord
4530370e52 [Server] Use old style of Server Plugins location 2017-10-19 11:55:49 +08:00
Koncord
ce6a4e4032 [Server] Fix indents 2017-10-19 10:26:03 +08:00
Koncord
fc3f2483ee [Server] Add manual Server Plugins sort 2017-10-19 10:24:17 +08:00
Koncord
dffd3bfa7d [Server] Add customData to Player
example:
counter = 0

Event.register(Events.ON_PLAYER_CONNECT, function(player)
    player.customData.counter = counter
    counter = counter + 1
    return true
end)

CommandController.registerCommand("test", function(player, args)
    player:message(player.customData.counter, false)
    return true
end, "")
2017-10-18 22:32:03 +08:00
Koncord
7a0b45d456 [Server] Load mods in dependencies order 2017-10-18 21:30:36 +08:00
David Cernat
bbac26294f [Server] Fix typos and make all files end with newlines 2017-10-17 07:44:10 +03:00
Koncord
62588ce088 [Server] Minor fixes 2017-10-11 06:26:09 +08:00
David Cernat
fe9a3088bd Merge pull request #312 from TES3MP/master
Add master commits up to 10 Oct 2017
2017-10-10 06:27:35 +03:00
David Cernat
ec2c964ae1 Merge pull request #311 from TES3MP/0.6.1
Add hotfix commit for 0.6.1 from 10 Oct 2017
2017-10-10 06:26:33 +03:00
David Cernat
f532ab241d [Server] Avoid duplicates of the same player in a cell's loaders 2017-10-10 05:48:56 +03:00
David Cernat
4845599bda Merge pull request #308 from TES3MP/master while resolving conflicts
# Conflicts:
#	apps/openmw-mp/main.cpp
2017-10-08 06:50:15 +03:00
David Cernat
3d38da0e85 [Server] Put includes in a specific order 2017-10-08 05:17:14 +03:00
David Cernat
61b1a59814 [General] Move server's version printing method to Utils 2017-10-08 04:16:30 +03:00
Koncord
cbabc91b06 [Server] Stop MasterClient thread and inform server owner on ban 2017-10-03 03:17:25 +08:00
David Cernat
3284769fef [Server] Add getModFolder() script function and Config environment 2017-09-23 13:52:51 +03:00
David Cernat
d591180e99 [Server] Clean up logAppend and add new message for server shutdown 2017-09-20 16:30:12 +03:00
David Cernat
9838cc680a [Server] Enable Lua debugging for RelWithDebInfo builds 2017-09-15 08:19:15 +03:00
Koncord
6decd148e5 [Server] Fix build on Windows 2017-09-13 11:06:53 +08:00
Koncord
510e657c93 Merge branch 'master' into new-script-api 2017-09-02 19:48:44 +08:00
Koncord
060ebe3d4a [Server] Init isWerewolf variable
Comment unused code
2017-09-02 19:45:19 +08:00
Koncord
74c9a26d16 [Server] Fix "wrong packet with id: 14" 2017-09-02 14:01:11 +08:00
David Cernat
ac3254d85f [General] Don't send PlayerAttribute and PlayerSkill packets as werewolf
This will prevent the server from overwriting a player's human form stats with their werewolf form stats.

Additionally, share PlayerShapeshift packets last when exchanging data with another player.
2017-08-31 18:21:38 +03:00
Koncord
1c0adc47ee [Server] Fix [get/set]MajorSkills and [get/set]MinorSkills 2017-08-31 20:51:05 +08:00
David Cernat
98a7769b91 Merge branch 'master' into 0.6.0 2017-08-31 15:44:27 +03:00
David Cernat
499c7db121 [Server] Initialize interiors correctly if exterior 0, 0 has been loaded 2017-08-31 14:48:23 +03:00
Koncord
66fdba957b [Server] Add getDataFolder() to Script API 2017-08-31 16:25:43 +08:00
Koncord
1d16958910 [Server] Fix multiple calls of ON_POST_INIT 2017-08-31 16:20:50 +08:00
Koncord
b18c6dec9d [Server] Fix sendList()
Remove return from requestContainers()
Rename "Cells" usertype to "Cell"
2017-08-30 22:50:47 +08:00
Koncord
60fc0bedb8 [Server] Use lower case for methods 2017-08-30 13:56:53 +08:00
Koncord
7717f9bece [Server] Replace getKillRefId/getKillNumber with getKill 2017-08-30 13:56:22 +08:00
David Cernat
833d2a5dbe Merge pull request #277 from TES3MP/0.6.0
Add hotfix commits for 0.6.0 up to 29 Aug 2017, part 1
2017-08-29 19:32:21 +03:00
David Cernat
92553b8e29 [Server] Log startup errors by not deleting logger too early 2017-08-29 19:30:37 +03:00
Koncord
fe2dd1bad4 [Server] Use correct cells in "send" functions
Remove unused return type from ON_PLAYER_SENDMESSAGE
2017-08-29 03:34:36 +08:00
Koncord
2d0840cb3a [General] Modernize Script API
This commit changes the style of tes3mp serverside scripting mods. Short list of changes:
* Break compatibility with old server mods
* OOP style lua API
* Basic dependency checker, allowing the installation of multiple server mods without changing configs
* Remove support for C++ plugins
* Change outdated LuaBridge to [sol2](https://github.com/ThePhD/sol2);
* Support GCC, Clang and MSVC compilers
* New environment variables: "TES3MP_SERVER_DIR" and "TES3MP_SERVER_USERDIR";
* New entity "Command controller" for registering new chat commands;
* New Event system
* Simplified Timer API
* All Lua mods now run in their own environments
* Add global namespace - Data that can be used for communicating between mods
* Player and Actor inherit base class NetActor
2017-08-28 00:15:56 +08:00
David Cernat
cffd985038 Merge pull request #266 from TES3MP/0.6.0
Add hotfix commits for 0.6.0 up to 18 Aug 2017
2017-08-18 07:45:36 +03:00
David Cernat
0820b7e92b [Server] Add GetCaseInsensitiveFilename() script function
Additionally, make header order consistent in script function files.
2017-08-18 07:13:08 +03:00
David Cernat
0e2038f045 [General] Record and get player positions before their last cell change 2017-08-04 21:45:52 +03:00
Unknown
bfbfbeac43 Added networking and saving for custom spells 2017-07-31 03:45:47 +10:00
David Cernat
c9550fc560 [Server] Use case-insensitive filename comparison for plugins
Additionally, clarify the comments related to plugin comparison.
2017-07-28 06:57:15 +03:00
David Cernat
9d05063af4 [General] Add server script functions for banning & unbanning IPs
Additionally, use a more informative message for the client when trying to connecting to a server that it is banned from.
2017-07-27 19:29:17 +03:00
David Cernat
d543edbd9a [Server] Make sure players are initialized as non-werewolves 2017-07-26 06:01:48 +03:00
David Cernat
cd8d064761 [Server] Add PlayerShapeshift to PlayerCellChange's information exchange 2017-07-25 18:44:06 +03:00
David Cernat
8b79cdd4f4 [Server] Document script functions, part 3
Also reorder functions in Cells and CharClass so they are consistent with the rest.
2017-07-25 18:07:09 +03:00
David Cernat
5e5440b697 [Server] Document script functions, part 2 2017-07-23 21:59:33 +03:00
David Cernat
cc91b32b2f [Server] Make spell script functions consistent with others 2017-07-20 17:58:00 +03:00
David Cernat
8bd33e5fbb [Server] Document script functions, part 1 2017-07-19 20:40:51 +03:00
David Cernat
f65f996418 [Server] Add script functions for werewolf states 2017-07-15 11:09:28 +03:00
David Cernat
43a3daf0aa [General] Add & implement PlayerShapeshift packet for werewolf states 2017-07-15 09:02:19 +03:00
David Cernat
ad9fa0631a [General] Rename jailText to jailEndText and add jailProgressText in PlayerJail 2017-07-13 20:13:28 +03:00
David Cernat
e36c0afc59 [General] Send faction reputation via PlayerFaction packets 2017-07-13 13:36:00 +03:00
David Cernat
be93ec8ef6 [General] Implement ObjectState packet 2017-07-13 09:46:30 +03:00
David Cernat
083b46394d [General] Add ignoreJailSkillIncreases to PlayerJail packets 2017-07-12 18:24:37 +03:00
David Cernat
5962570c48 [General] Add jailText to PlayerJail packets 2017-07-12 16:39:31 +03:00
David Cernat
3280f0c5ee [General] Implement PlayerJail packet
Rework server's DeathFunctions into MechanicsFunctions

Remove connection between PlayerResurrect and jailing
2017-07-11 13:34:09 +03:00
David Cernat
b1b27728e2 [Server] Move functions dealing with PlayerKillCount to QuestFunctions 2017-07-11 07:15:06 +03:00
Koncord
9cc07f100c [Server] Add OnObjectState callback 2017-07-11 02:21:19 +08:00
David Cernat
3529f9b090 [General] Add placeholders for PlayerJail, ObjectState & ConsoleCommand 2017-07-10 12:33:53 +03:00
David Cernat
4e74910fdb [General] Disable automatic sync for PlayerJournal and PlayerFaction
Simplify PlayerFaction packets by removing BOTH action
2017-07-08 12:27:48 +03:00
David Cernat
6dde0ca9c9 [Server] Rework script functons by removing unnecessary vector buffers
Add new initialization script functions to allow clearing all player changes vectors in a manner consistent with Actor and World functions

Add toOthers boolean to all methods that send packets with player changes vectors
2017-07-07 09:25:48 +03:00
David Cernat
2c05b7f747 [Server] Rename InitiateEvent() into InitializeEvent() for consistency 2017-07-07 08:12:48 +03:00
David Cernat
1d504a665f [General] Add RANK, EXPULSION and BOTH actions to PlayerFaction packets 2017-07-05 07:06:33 +03:00
Koncord
940ae5c2fb [Server] Implement GetIP API function 2017-07-04 15:57:16 +08:00
Koncord
1f3cbb46e2 [Server] Use __ARM_ARCH definition for detecting ARM 2017-07-04 15:56:40 +08:00
Koncord
768790e9b4 [Server] Move Base processors and Initializer to processors subdirectory 2017-07-04 01:13:10 +08:00
Koncord
60ac884d13 [Server] Delete commented line 2017-07-04 00:31:57 +08:00
David Cernat
60574ae667 [General] Implement jail time as a death penalty 2017-07-03 15:45:21 +03:00
David Cernat
71313c5aa6 [General] Implement PlayerMap packet, part 1 2017-07-03 09:28:27 +03:00
David Cernat
c899525e30 [General] Use address keys with clearer meaning in tes3mp config files 2017-07-03 01:31:48 +03:00
David Cernat
1f682749d6 [General] Add optional notes to PasswordDialogs 2017-07-02 13:07:36 +03:00
Koncord
9630f95335 [Server] Remove debug output 2017-07-02 11:12:41 +08:00
Koncord
73cf134107 [General] Fix incoming password string 2017-07-02 11:11:33 +08:00
Koncord
0cf09adb44 [General] Move AddProcessor to BasePacketProcessor 2017-06-30 20:09:05 +08:00
Koncord
d9e98ec771 [Server] Add expected ‘;’ 2017-06-30 19:58:14 +08:00
Koncord
d14ad55a49 [Server] Fix compilation on arm 2017-06-30 19:46:27 +08:00
Koncord
f92117e73d [Server] change "__arm__" to "__ARM_ARCH" in ARM detection 2017-06-30 19:31:07 +08:00
Koncord
15a197cb9a [Server] Temporarily disable CallFF for ARM 2017-06-30 19:17:04 +08:00
Koncord
f015c3b2f6 [Server] Remove commented code 2017-06-30 18:03:01 +08:00
Koncord
653db9e266 [Server] Simplify native CallPublic & CreateTimerEx 2017-06-30 18:01:14 +08:00
Koncord
5292914325 [Server] Simplify native CallPublic & CreateTimerEx 2017-06-30 17:59:50 +08:00
Koncord
1c09e0c255 [Server] Add CallFF dependency 2017-06-30 17:58:41 +08:00
Koncord
e68eee651a [Server] Fix Resurrect 2017-06-27 15:16:23 +08:00
Koncord
fcccd7b665 [General] Remove creatureStats.mDead from packets 2017-06-27 15:03:41 +08:00
Koncord
c58c26f6c0 [Server] Implement native CreateTimer & CreateTimerEx 2017-06-27 14:50:40 +08:00
Koncord
9ab58b6708 [Server] Remove redundant SetResurrectType
Rename SendResurrect to Resurrect
2017-06-27 14:49:39 +08:00
David Cernat
813a3c89c4 [General] Implement PlayerBook packet to track skill books read 2017-06-27 08:27:14 +03:00
David Cernat
b3b73c5cd2 [General] Implement resurrection at nearest shrine or temple 2017-06-27 01:01:45 +03:00
David Cernat
66a3f3d475 [Server] Use cleaner solution for safely reading cell descriptions 2017-06-23 08:29:14 +03:00
David Cernat
78f29302ef [General] Fix PlayerJournal logic by sending only refIds for its actors
Additionally, make the refIds for actors usable in script functions.
2017-06-23 08:12:32 +03:00
David Cernat
48c63dbce9 [General] Fix ObjectLock packets by making hasCellData true for them 2017-06-22 05:49:44 +03:00
David Cernat
4ad87faac1 [Server] Create new Settings category for script functions 2017-06-20 07:24:15 +03:00
David Cernat
ebf7740969 [General] Repurpose GameConsole packet as GameSettings & add difficulty to it 2017-06-20 05:28:45 +03:00
Koncord
3803535bd5 [General] Implement CleanChat() 2017-06-12 08:01:47 +08:00
Koncord
7b98f9f7ff [Server] Log all exceptions 2017-06-11 20:04:56 +08:00
David Cernat
51b95f35cd [Server] Fix problem with fetching interior cell descriptions 2017-06-10 18:03:58 +03:00
David Cernat
db7709ee18 [Server] Modernize getting and setting of player cells 2017-06-10 17:49:41 +03:00
David Cernat
0d3976950b [Server] Use consistent names for rotation script functions 2017-06-10 17:06:09 +03:00
David Cernat
70d9374a6a [General] Implement PlayerKillCount packets 2017-06-10 14:04:19 +03:00
David Cernat
5b23da8e1c [General] Rename unused PlayerRegionChange packet into PlayerKillCount 2017-06-10 12:01:37 +03:00
David Cernat
ee5c9b65c5 [General] When changing region, send new region name in PlayerCellChange 2017-06-10 11:43:40 +03:00
David Cernat
f02ed0d621 [Server] Add script functions for getting and setting actor dynamic stat modifiers 2017-06-10 09:28:35 +03:00
Koncord
568b0702fa [Server] Implement PasswordDialog 2017-06-06 23:34:27 +08:00
Koncord
cef58fa164 [Server] Change fprintf to LOG_MESSAGE_SIMPLE in GET_PLAYER 2017-06-06 16:35:05 +08:00
Koncord
186e5fe33e [Server] Remove GetAngleY & remove Y parameter from SetAngle 2017-06-06 16:33:34 +08:00
David Cernat
a353a21280 [General] Fix code style inconsistencies 2017-05-31 08:37:11 +03:00
David Cernat
f4cdedd8cb [General] Synchronize summoned creatures 2017-05-30 10:11:01 +03:00
David Cernat
4e5c8873e0 [General] Use ObjectSpawn instead of ObjectPlace for actors 2017-05-29 06:59:05 +03:00
David Cernat
27148ce9eb [General] Add placeholders for 12 new packets, to be implemented soon
Additionally, make it slightly clearer who created which previously existing packets.
2017-05-29 04:43:52 +03:00
Koncord
b3b7003313 [Server] Add "--no-logs" option 2017-05-28 19:12:58 +08:00
Koncord
dbb636ac90 [Server] Parse program options 2017-05-28 19:10:16 +08:00
Koncord
c4686ec578 [Server] Remove debug line 2017-05-28 18:48:55 +08:00
Koncord
cc7efc6e37 [Server] Use first 10 characters of CommitHash for humans 2017-05-28 18:32:23 +08:00
Koncord
80925736c0 [Server] Add commit hash to the rules 2017-05-28 18:29:00 +08:00
Koncord
bc3612dfe9 [Server] Add commit hash to password 2017-05-28 18:26:38 +08:00
David Cernat
940a2b6eb5 [Server] Add script functions for setting and sending ActorEquipment 2017-05-27 00:57:40 +03:00
David Cernat
f47a10dd4a [Server] Add script callback and getter functions for ActorEquipment 2017-05-26 22:54:51 +03:00
David Cernat
32879adc5b [General] Allow ObjectTrap to trigger traps, not just disarm them 2017-05-26 01:28:43 +03:00
David Cernat
93aa674eff [Server] Add SendObjectTrap() script function 2017-05-26 00:42:46 +03:00
Koncord
24d4e1c222 [General] Remove useless PacketSendMyID 2017-05-26 02:40:49 +08:00
Koncord
a9fc096c9a [General] Move password of master server to header 2017-05-26 01:34:39 +08:00
David Cernat
dbdb11b5f0 [Server] Add script functions for dialogue 2017-05-24 23:22:43 +03:00
David Cernat
08de349133 [General] Add placeholders for PlayerTopic & ObjectTrap packets 2017-05-24 19:01:28 +03:00
David Cernat
870fd9a78b [General] Remove ObjectUnlock packet, use ObjectLock with 0 lock instead 2017-05-24 13:28:34 +03:00
David Cernat
0595192129 [Server] Make GetFactionExpelledState() return a bool instead of an int 2017-05-18 21:51:24 +03:00
David Cernat
a2e2ca7cab [Server] Add script functions for factions 2017-05-18 20:56:50 +03:00
David Cernat
e6983993c2 [General] Implement sending and reading of PlayerFaction packets 2017-05-18 19:27:20 +03:00
David Cernat
04c9c5ed48 [General] Forward PlayerJournal packets to other players 2017-05-18 12:57:48 +03:00
David Cernat
90c594b726 [Server] Make names for Player script callbacks shorter 2017-05-16 20:52:09 +03:00
David Cernat
a634a5d9bb [Server] Add missing includes for ProcessorInitializer 2017-05-16 19:53:58 +03:00
David Cernat
ad388c7e12 [General] Add placeholders for ActorEquipment & PlayerFaction packets
Also reorder packets and packet processors.
2017-05-16 19:25:31 +03:00
David Cernat
f527fe9ebe [General] Add basic integrity check to reading of ActorList packets
Additionally, add newlines to files missing them.
2017-05-16 14:20:40 +03:00
David Cernat
05564bd123 [General] Add basic integrity check to reading of Container packets 2017-05-14 20:24:06 +03:00
David Cernat
3c30801eac [Server] Try to fix server crash from iterations through invalid players 2017-05-09 14:30:25 +03:00
Koncord
31adb5d715 [Server] Allow timers callbacks to restart timers 2017-05-08 05:48:04 +08:00