David Cernat
176aa62b15
Merge pull request #446 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Script/Functions/Cells.cpp
apps/openmw-mp/Script/Functions/Cells.hpp
apps/openmw-mp/Script/Functions/Worldstate.cpp
apps/openmw-mp/Script/Functions/Worldstate.hpp
apps/openmw-mp/Script/ScriptFunctions.hpp
apps/openmw-mp/processors/player/ProcessorPlayerMap.hpp
apps/openmw/mwmp/processors/player/ProcessorPlayerMap.hpp
components/openmw-mp/Base/BasePlayer.hpp
components/openmw-mp/Packets/Player/PacketPlayerMap.hpp
components/openmw-mp/Packets/Worldstate/PacketWorldMap.cpp
2018-06-07 23:23:19 +03:00
David Cernat
c5f33e451f
Merge pull request #418 from TES3MP/0.6.3 while resolving conflicts
2018-05-10 22:33:36 +03:00
David Cernat
2390744b45
Merge pull request #404 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Player.hpp
apps/openmw-mp/Script/Functions/Mechanics.cpp
apps/openmw-mp/Script/Functions/Mechanics.hpp
apps/openmw-mp/Script/Functions/Settings.hpp
apps/openmw-mp/Script/Functions/Stats.cpp
apps/openmw-mp/Script/Functions/Stats.hpp
components/openmw-mp/Base/BasePlayer.hpp
2018-04-10 08:20:23 +03:00
David Cernat
34893ff631
[Server] Split up handshake handling into multiple functions for debug
...
Unfortunately, the handshake attempt limit implemented in 4ebfcc4a21
for 0.7 and then ported over to 0.6 in a3a341fee6
does not appear to work properly, which is why gathering more information on it is important.
2018-04-09 15:25:50 +03:00
David Cernat
a3a341fee6
[Server] Reimplement 4ebfcc4a21
for 0.6
2018-03-10 22:19:44 +02:00
Koncord
f2a88e6a37
[Server] Use multiple parameters instead functions for Mark functions
2018-02-16 04:58:37 +08:00
David Cernat
3b865244d0
[Server] Fix typo related to player deletion
2018-02-12 07:23:52 +02:00
David Cernat
ac374a8ef9
Merge pull request #384 from TES3MP/0.6.3 while resolving conflicts
...
Conflicts:
apps/openmw-mp/Player.cpp
apps/openmw-mp/Script/Functions/Mechanics.cpp
apps/openmw-mp/Script/Functions/Mechanics.hpp
apps/openmw-mp/Script/Functions/Quests.cpp
apps/openmw-mp/Script/Functions/Quests.hpp
apps/openmw-mp/Script/ScriptFunctions.hpp
apps/openmw-mp/processors/player/ProcessorRecordDynamic.hpp
apps/openmw/mwmp/LocalPlayer.hpp
apps/openmw/mwmp/WorldEvent.cpp
apps/openmw/mwworld/worldimp.cpp
components/openmw-mp/Base/BasePlayer.hpp
2018-02-12 06:50:52 +02:00
Koncord
8f5d31cb03
[Server] Iterate only through updated players on each frame
2018-01-02 11:57:32 +08:00
David Cernat
09958681cd
Merge pull request #363 from TES3MP/0.6.2 while resolving conflicts, 2nd try
2018-01-01 12:04:25 +02:00
David Cernat
f2eca2566f
[Server] Add storedData table for Player to increase clarity
...
This way, customData is meant to hold module-specific and temporary data while storedData is meant to hold persistent core data.
2017-12-10 10:06:27 +02:00
Koncord
44dc153ebe
[Server] Add Weather API
2017-12-10 09:51:03 +08:00
Koncord
dd352f0a91
[Server] Improve Player::sendToLoaded()
2017-12-09 15:03:06 +08:00
David Cernat
ad61d88cb1
[General] Fix typos and use consistent style for recent additions
2017-12-08 18:02:23 +02:00
Koncord
392e645fe5
[Server] Add isMarkedForDeleteion function
2017-12-08 20:37:22 +08:00
Koncord
aa183e6844
[General] Introduce chat channels
2017-12-08 07:43:29 +08:00
Koncord
4ebfcc4a21
[Server] Limit handshake attempts
2017-11-26 00:18:19 +08:00
David Cernat
010a80ceca
[Server] Place getters and setters in consistent order
2017-11-19 11:34:03 +02:00
David Cernat
947b3f76be
[Server] Replace Player's isMale() and setIsMale() with gender property
...
For simplicity and clarity.
2017-11-19 11:06:35 +02:00
David Cernat
80be664139
[Server] Fix skill-related script functions
...
Add getSkillIncrease() and setSkillIncrease() script functions to get and set the attribute bonuses received at the next level up as a result of skill increases.
Previously, getSkill() and setSkill() attempted to return and set the attribute bonuses, respectively. However, they mistakenly used a skill ID as a parameter for the attribute bonuses, when in fact npcStats.mSkillIncrease is an integer array of size 8 where the key stands for an attribute's ID. As a result, setSkill() had the unexpected side effect of messing up a player's major and minor skills because of the invalid values it was setting for npcStats.mSkillIncreases.
2017-11-18 10:02:52 +02:00
David Cernat
926106cf8c
[General] Rework CharGen slightly for clarity purposes
...
Previously, charGenStage.end was doing double duty as both the variable indicating the number of CharGen stages and – when set to 0 – the variable indicating that CharGen was over. The latter role is now filled by a new boolean.
2017-11-13 05:33:27 +02: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
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
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
71313c5aa6
[General] Implement PlayerMap packet, part 1
2017-07-03 09:28:27 +03:00
David Cernat
813a3c89c4
[General] Implement PlayerBook packet to track skill books read
2017-06-27 08:27:14 +03:00
David Cernat
70d9374a6a
[General] Implement PlayerKillCount packets
2017-06-10 14:04:19 +03:00
David Cernat
dbdb11b5f0
[Server] Add script functions for dialogue
2017-05-24 23:22:43 +03:00
David Cernat
a2e2ca7cab
[Server] Add script functions for factions
2017-05-18 20:56:50 +03:00
David Cernat
4d81455020
[General] Rework and simplify death reasons so they work with NPCs
2017-05-05 22:16:31 +03:00
David Cernat
234510a87f
[Server] Split off Cell and CellController into two different files
2017-04-29 23:05:12 +03:00
David Cernat
0baada0aa2
[Server] Add GetLastPlayerId() script function in Miscellaneous category
2017-02-26 23:00:51 +02:00
Koncord
ec4d016100
[Server] Don't crash server every time a player disconnects. Again.
2017-02-20 20:44:01 +08:00
Koncord
f2ce46ffed
[Server] Rename doForNearest to forEachLoaded
2017-02-19 21:32:25 +08:00
Koncord
ca68831395
[Server] Rename sendToNearest to sendToLoaded
2017-02-19 20:37:26 +08:00
Koncord
033472d939
[Server] Add doForNearest function
2017-02-19 17:42:39 +08:00
Koncord
b760015071
[Server] Send some packets only to nearest players
2017-02-19 16:46:42 +08:00
Koncord
8887a267c7
[Server] Add Cell and CellController
2017-02-19 13:27:10 +08:00
David Cernat
35e453dec3
[General] Sketch out most of functionality for journal saving/loading
2017-01-24 19:32:25 +02:00
David Cernat
d308897f95
Rename PacketItems, PacketSpells into InventoryChanges, SpellbookChanges
2017-01-20 12:43:05 +02:00
David Cernat
e7675d94d4
Make server script functions for spells consistent with those from items
2017-01-20 06:00:14 +02:00
David Cernat
33e85c54de
Rename BasePlayer Inventory & Spellbook into PacketItems & PacketSpells
...
This avoids confusion when either of those is used to store and send a single item, and no longer requires coming up with confusing variable names like realSpellbook or realInventory for actual full spellbooks and inventories.
2017-01-19 18:06:59 +02:00
Koncord
7595b33461
Implement spellbook
2016-12-29 21:19:57 +08:00
David Cernat
c81b58e1be
Add spell script functions to tes3mp server
2016-11-21 20:37:04 +02:00
Koncord
902e968fd9
Use RakNetGUID instead uint64_t in TPlayers
2016-11-17 13:12:06 +08:00
David Cernat
25dc2b19e7
Use lowerCamelCase in tes3mp server networking function names
2016-11-16 02:05:14 +02:00
David Cernat
eebe1f156a
Change logic for death reasons so it makes sense
2016-10-30 13:19:48 +02:00
David Cernat
c91e240664
Simplify the type of map that player objects are stored in
2016-10-26 21:36:58 +03:00
David Cernat
a9f6ea4d8d
Use the name "guid" for RakNet IDs so as to not confuse with int IDs
2016-10-26 15:55:34 +03:00
Koncord
c27351c19e
Implement inventory functions
...
AddItem, RemoveItem, GetItemName, GetItemCount, GetItemHealth, GetInventorySize SendInventory
Example:
```lua
tes3mp.AddItem(pid, "glass dagger", 1, 50)
tes3mp.AddItem(pid, "glass dagger", 1, -1)
tes3mp.SendInventory(pid)
tes3mp.RemoveItem(pid, "glass dagger", 1)
tes3mp.SendInventory(pid)
local invSize = tes3mp.GetInventorySize(pid) - 1
for i = 0, invSize do
print(("%s %d %d"):format(tes3mp.GetItemName(pid, i), tes3mp.GetItemCount(pid, i), tes3mp.GetItemHealth(pid, i)))
end
```
2016-10-23 02:57:49 +08:00