David Cernat
705589e3e3
[Server] Add script functions for getting/setting world object scale
2017-01-31 22:54:36 +02:00
David Cernat
1fc9dd4f93
[Server] Remove WorldFunctions index parameters that are no longer used
2017-01-30 17:42:29 +02:00
David Cernat
9f998c9901
[Server] Improve getter methods in WorldFunctions
2017-01-30 17:09:14 +02:00
David Cernat
88e648aaa9
[Server] Fix crash caused by setting too many WorldObject refIds, try 2
2017-01-30 12:26:45 +02:00
David Cernat
fe9e30a4d8
[Server] Fix crash caused by setting too many WorldObject refIds
2017-01-30 09:10:33 +02:00
David Cernat
5eff2ece21
[Server] Fix memory leaks related to WorldEvents as suggested by Koncord
2017-01-29 20:18:19 +02:00
David Cernat
6b9fba7885
[Server] Add script functions for getting/setting world object rotation
2017-01-29 17:38:29 +02:00
David Cernat
920c1113a3
[Server] Add script functions for setting world object placement info
2017-01-29 16:16:01 +02:00
David Cernat
2c5cc82f49
[Server] Add script functions for getting world object placement info
2017-01-29 15:29:40 +02:00
David Cernat
27ac314cb1
[Server] Add script functions for getting world object refIds & refNums
2017-01-29 13:21:41 +02:00
David Cernat
b549da996e
[Server] On second thought, keep cell description as argument to them
2017-01-29 13:16:17 +02:00
David Cernat
5989bbd97e
[Server] Remove arguments from OnObjectPlace & OnObjectDelete callbacks
2017-01-29 12:56:11 +02:00
David Cernat
2cecce6c72
[Server] Use static WorldEvent variable in Networking
2017-01-29 10:24:12 +02:00
David Cernat
f11df211fa
[Server] Add script functions for dealing w/ WorldEvents & WorldObjects
2017-01-28 16:22:30 +02:00
David Cernat
9f1e491a75
[General] Make WorldEvents store information about multiple objects
2017-01-28 12:34:45 +02:00
Koncord
b658adf7b0
[Server] Killed another tab character
2017-01-27 21:51:13 +08:00
David Cernat
9c3a37a790
[Server] Make GetCellStateDescription's cstrDescription null-terminated
2017-01-27 14:16:27 +02:00
Koncord
1c810ecad5
[Server] Fix memory leak in GetCellStateDescription()
2017-01-27 19:05:18 +08:00
David Cernat
0ccfe66212
[Server] Send stable C string in GetCellStateDescription()
2017-01-27 08:14:27 +02:00
David Cernat
4f288ab558
[Server] Read contents of ID_PLAYER_CELL_STATE
2017-01-26 17:53:36 +02:00
David Cernat
6331c55bc7
[Server] Add colons missing from CELLAPI
2017-01-26 16:42:55 +02:00
David Cernat
2f644e9b14
[Server] Add script functions for getting info about cell state changes
2017-01-26 16:37:47 +02:00
David Cernat
70823d011d
[Server] Define CELLAPI
2017-01-26 16:16:28 +02:00
David Cernat
0cc20d26ce
[Server] Move script functions for cells to a new CellFunctions class
2017-01-26 16:10:45 +02:00
David Cernat
62f359e250
[Server] Rename Translocations into Positions
2017-01-26 15:48:47 +02:00
David Cernat
96bd21a7ca
[Server] Rename OnPlayerCellLoad to OnPlayerCellState, add action param
2017-01-26 14:18:47 +02:00
David Cernat
244da19a51
[General] Turn ID_PLAYER_CELL_LOAD into ID_PLAYER_CELL_STATE for clarity
2017-01-26 13:49:20 +02:00
David Cernat
158d606477
[General] Leave one blank line at the end of every tes3mp code file
2017-01-26 06:17:29 +02:00
David Cernat
73d39c1a0a
[General] Stop using virtual functions in BasePlayer, part 2
2017-01-25 17:19:53 +02:00
David Cernat
63c8a98083
[General] Stop using virtual functions in BasePlayer
2017-01-25 17:06:15 +02:00
David Cernat
c62a575a9e
[Server] Change order of words in the names of script callbacks
2017-01-25 14:59:23 +02:00
David Cernat
1d9c6ddd81
[General] Add placeholders for the new packet ID_PLAYER_CELL_LOAD
2017-01-25 14:51:43 +02:00
David Cernat
25e535e8ad
[Server] Fix integer types for new script callbacks
2017-01-25 07:51:44 +02:00
David Cernat
f9feaf05f0
[Server] Add script callbacks for object placement and deletion
2017-01-25 05:30:25 +02:00
David Cernat
35e453dec3
[General] Sketch out most of functionality for journal saving/loading
2017-01-24 19:32:25 +02:00
David Cernat
68727751ed
Fix arguments for OnPlayerChangeSpellbook in server Networking
2017-01-20 12:54:03 +02:00
David Cernat
869b32383e
Fix arguments for OnPlayerChangeJournal in server Networking
2017-01-20 12:52:03 +02:00
David Cernat
d308897f95
Rename PacketItems, PacketSpells into InventoryChanges, SpellbookChanges
2017-01-20 12:43:05 +02:00
David Cernat
e2c595fc5d
Add preliminary structure for journal changes
2017-01-20 12:05:45 +02:00
David Cernat
e9b22814b9
Create placeholder for ID_GAME_JOURNAL
2017-01-20 11:15:10 +02:00
David Cernat
a69f294ef0
Rename ID_GAME_CELL into ID_PLAYER_CELL_CHANGE
2017-01-20 10:30:50 +02:00
David Cernat
83277a1512
Send spellbook in LocalPlayer CharGen & change UPDATE action name to SET
2017-01-20 09:07:07 +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
6b14ca0775
Finish renaming of script functions for sending items and spells
2017-01-19 18:30:31 +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
David Cernat
78c6ab2a99
Clean up client Networking by putting item & spell logic in LocalPlayer
2017-01-19 15:18:37 +02:00
Koncord
0ab02006de
Detect ARM CPUs
2017-01-14 11:17:36 +08:00
David Cernat
2e3f508a56
Fix broken default keys and enable master server in configs
2017-01-13 10:33:21 +02:00
David Cernat
253ded1ee3
Use new getFilenameStamp() method to generate timestamps for filenames
2017-01-13 08:49:21 +02:00
David Cernat
3932654d5d
Use log filenames w/ timestamps instead of adding numbers to their ends
2017-01-13 07:58:40 +02:00
David Cernat
10a0f165dd
Print paths used for server dependencies in CMake, change tabs to spaces
2017-01-12 13:45:04 +02:00
Koncord
b6f9a21d7f
Do not allow 0 update rate
2017-01-10 20:38:33 +08:00
Koncord
03a92b3a91
Use LOG_VERBOSE instead LOG_INFO
2017-01-10 20:37:40 +08:00
Koncord
01900c2be8
Use modname in Send function
2017-01-10 20:36:39 +08:00
Koncord
2b0ae7b9ca
Fix variable name in JSON
2017-01-10 20:35:30 +08:00
Koncord
e92df0c465
Implement SetModname, SetHostname functions
2017-01-10 19:22:02 +08:00
Koncord
f510a5583f
Move MasterClient to Networking class
...
Rename MOTD to hostname
2017-01-10 19:21:31 +08:00
Koncord
b5c586d5b7
Add and implement ID_MASTER_QUERY
2017-01-10 18:33:02 +08:00
Koncord
32615d05cf
Prevent allocate memory if player doesn't exists
2017-01-10 18:31:51 +08:00
Koncord
97dd8704a3
Ignore ping packets
2017-01-07 23:05:22 +08:00
Koncord
dbbdb1071c
Use default FindLua51 instead homebrew
2017-01-03 19:12:34 +08:00
Koncord
7595b33461
Implement spellbook
2016-12-29 21:19:57 +08:00
Koncord
6e6237541a
Fix "comparison between signed and unsigned integer expressions"
2016-12-21 16:13:39 +08:00
Koncord
af7b232789
Fix type mismatch
2016-12-21 15:46:02 +08:00
Koncord
0d9a4f2b6f
Fix "Unhandled PlayerPacket with identifier 135"
2016-12-21 15:01:18 +08:00
Koncord
11be8ed005
Rename copyOldLog to renameOldLog
2016-12-18 12:48:23 +08:00
Koncord
f08ab0b161
Keep old server logs
2016-12-18 12:45:03 +08:00
U-VirtualBox-PC\Admin
6229269506
Some patches for lua on windows
2016-12-16 19:04:47 +03:00
David Cernat
35de28e239
Fix setting of longer environmental variables on Windows
2016-12-16 17:57:02 +02:00
Koncord
804259b2c9
Change some printf to LOG_MESSAGE_SIMPLE
...
printf is not streamed to files
2016-12-16 18:50:34 +08:00
Koncord
f74734cfba
Fix server crash if player is not fully connected
2016-12-16 17:53:56 +08:00
Koncord
61f7ad2f76
Add new paths for native & lua libs
...
If you want to add the native lib you should place it to {PATH_TO_MOD}/lib/
for external Lua libs: {PATH_TO_MOD}/lib/lua/
2016-12-05 23:54:29 +08:00
David Cernat
4e23fc0a5b
Send action parameter to OnPlayerChangeSpellbook
2016-11-22 02:32:02 +02:00
David Cernat
9e290ad799
Fix spacing irregularities
2016-11-21 23:40:50 +02:00
David Cernat
d4b5c826f8
Fix typo in spell script functions
2016-11-21 20:42:53 +02:00
David Cernat
c81b58e1be
Add spell script functions to tes3mp server
2016-11-21 20:37:04 +02:00
David Cernat
8aeb3a6cc6
Reorder script function classes in tes3mp server's CMakeLists.txt
2016-11-21 19:17:28 +02:00
David Cernat
95efb77e53
Implement sending of ID_GAME_SPELLBOOK from client
2016-11-21 06:07:29 +02:00
David Cernat
6ea5f08e9c
Create placeholder for ID_GAME_SPELLBOOK
2016-11-21 02:28:05 +02:00
David Cernat
ae39daf76a
Add and implement ID_MUSIC_PLAY
2016-11-20 22:54:49 +02:00
David Cernat
7a3d490121
Rename dumps into crashdumps to make the folder's purpose clear to users
2016-11-20 19:25:55 +02:00
David Cernat
f865246955
Fix Breakpad using changes provided by Stanislav in a gist
2016-11-20 18:34:22 +02:00
David Cernat
456aee65d9
Add and implement ClearInventory() script function
2016-11-20 04:06:33 +02:00
David Cernat
7fae28ce91
Prevent RemoveItem() script function from clearing inventorySendBuffer
...
Up to this commit, the following commands in a Lua script led to the target player receiving all three items, as expected:
tes3mp.AddItem(self.pid, "common_shirt_01", 1, -1)
tes3mp.AddItem(self.pid, "common_pants_01", 1, -1)
tes3mp.AddItem(self.pid, "common_shoes_01", 1, -1)
tes3mp.SendInventory(self.pid)
This, on the other hand, only led to the removal of the last item specified (in this case, the shoes):
tes3mp.RemoveItem(self.pid, "common_shirt_01", 1)
tes3mp.RemoveItem(self.pid, "common_pants_01", 1)
tes3mp.RemoveItem(self.pid, "common_shoes_01", 1)
tes3mp.SendInventory(self.pid)
Inventory functions are bound to remain confusing, but they should at least be consistent in their behavior.
2016-11-20 03:06:04 +02:00
David Cernat
7f25abb9c8
Implement UnequipItem() script function
2016-11-18 01:50:55 +02:00
David Cernat
56928bdc4c
Clean up inventory script functions so they are usable for equipment too
2016-11-18 00:52:17 +02:00
David Cernat
356143faed
Rename GetEquipmentSlotCount() into GetEquipmentSize()
2016-11-18 00:46:42 +02:00
David Cernat
977e93288e
Add GetEquipmentSlotCount() to item script functions
2016-11-17 23:07:29 +02:00
Koncord
f5f1a29f31
Change printf to LOG_MESSAGE_SIMPLE
2016-11-18 00:35:38 +08:00
Koncord
18026d4a50
Fix include guard
2016-11-17 13:22:34 +08:00
Koncord
902e968fd9
Use RakNetGUID instead uint64_t in TPlayers
2016-11-17 13:12:06 +08:00
Koncord
e2359b01ea
Use constant instead magic value
2016-11-17 13:02:24 +08:00
Koncord
e2522fa366
Simplify LOG macros
2016-11-17 12:39:35 +08:00
David Cernat
46b41b605a
Revert "Use lowerCamelCase in tes3mp server script function names, part 1"
...
This reverts commit 0e2b589cdb
.
2016-11-16 19:28:22 +02:00
David Cernat
ad43cb5473
Revert "Use lowerCamelCase in tes3mp server script function names, part 2"
...
This reverts commit 80d16fe1fd
.
2016-11-16 19:27:46 +02:00
David Cernat
1a25434d33
Turn overlooked instance of GetCell() into getCell()
2016-11-16 17:48:39 +02:00
David Cernat
6cd959fac8
Rename BasePlayer's GetCell() into getCell()
2016-11-16 17:43:58 +02:00
David Cernat
80d16fe1fd
Use lowerCamelCase in tes3mp server script function names, part 2
2016-11-16 17:39:44 +02:00
David Cernat
0e2b589cdb
Use lowerCamelCase in tes3mp server script function names, part 1
2016-11-16 16:52:16 +02:00
David Cernat
25dc2b19e7
Use lowerCamelCase in tes3mp server networking function names
2016-11-16 02:05:14 +02:00
David Cernat
7be86388db
Fix build for server
2016-11-16 01:16:02 +02:00
David Cernat
dc9b814ff6
Fix typo in server script translocations
2016-11-12 21:36:03 +02:00
David Cernat
841e93d5e0
Use new SendCell() method in server scripts to send cell packets
2016-11-12 21:27:09 +02:00
David Cernat
5b39916894
Use new SendPos() method in server scripts to send position packets
2016-11-12 21:16:05 +02:00
David Cernat
e0c88150c3
Reorder functions for server script translocations
2016-11-12 21:01:38 +02:00
Koncord
82f202c891
Implement GetAvgPing(pid) function
2016-11-04 20:15:14 +08:00
Koncord
37e9cafbf7
Add new API function: SetConsoleAllow
...
example:
tes3mp.SetConsoleAllow(pid, 0) -- disallow console to the player
The console is allowed by default
2016-11-04 03:01:26 +08:00
Koncord
6f6993255a
Fix string in breakpad()
2016-11-04 00:24:16 +08:00
Koncord
adb49b7c7d
Add New GUI dialog: ListBox
...
Example:
local GUI_LISTBOX = 42
function OnPlayerSendMessage(pid, message)
if message == "/lb" then
local items = "consectetur adipiscing elit\nsed do eiusmod tempor incididunt ut labore\net dolore magna aliqua." -- items can be separated through newline
local label = "Lorem ipsum dolor sit amet"
tes3mp.ListBox(pid, GUI_LISTBOX, label, items)
end
end
function OnGUIAction(pid, idGui, data)
if idGui == GUI_LISTBOX then
print("ID: " .. idGui .. " data: " .. tostring(data)) -- if value higher than last item id
end
end
2016-11-04 00:24:16 +08:00
David Cernat
107dacac6d
Add OnPlayerChangeInventory server script callback
2016-11-03 16:39:31 +02:00
David Cernat
31d02e8bf1
Move Networking code for ID_GAME_INVENTORY next to ID_GAME_EQUIPMENT
2016-10-31 17:16:41 +02:00
David Cernat
373011f883
Only send information to POSTLOADED player about other POSTLOADED ones
2016-10-31 01:14:17 +02:00
David Cernat
05cfc918f5
Temporarily use a whitelist for scripts instead of a blacklist
2016-10-30 21:00:54 +02:00
David Cernat
621faf368e
Fix server crash caused by invalid player GUIDs, 2nd attempt
2016-10-30 18:07:23 +02:00
David Cernat
ffb7683a5f
Use suicide as death reason when an attacker leaves the server
2016-10-30 17:39:45 +02:00
David Cernat
eebe1f156a
Change logic for death reasons so it makes sense
2016-10-30 13:19:48 +02:00
David Cernat
6929cd6c4c
Delete debug about player map that is no longer needed
2016-10-30 02:30:17 +03:00
David Cernat
3c88f6f0cd
Fix server crash caused by invalid player GUIDs
2016-10-29 16:41:29 +03:00
David Cernat
46397a7dac
Add and implement ID_OBJECT_ANIM_PLAY
2016-10-27 16:09:02 +03:00
David Cernat
c205e793cb
Add and implement ID_SCRIPT_MEMBER_SHORT
2016-10-27 00:41:14 +03: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
2032bf9cad
Fix typo in debug
2016-10-26 17:22:53 +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
David Cernat
97468980af
Add and implement 3 new WorldPackets for ingame script variable values
2016-10-26 12:25:50 +03:00
David Cernat
385b5f39e3
Add and implement ID_OBJECT_ROTATE
2016-10-25 14:28:39 +03:00
David Cernat
0fb9b6eefb
On second thought, rename ID_OBJECT_MOVE_WORLD into ID_OBJECT_MOVE
2016-10-25 12:53:18 +03:00
David Cernat
947a677801
Replace ID_ACTIVATOR_ACTIVATE with ID_OBJECT_MOVE_WORLD
2016-10-25 12:42:29 +03:00
David Cernat
c25ebc34b3
Shorten WorldPacket IDs by removing WORLD from them
2016-10-25 12:15:27 +03:00
David Cernat
52d156e136
Make server able to receive the 5 new WorldPackets
2016-10-25 00:50:32 +03:00
David Cernat
ef6f20e3f7
In server console, print number of players remaining when one leaves
2016-10-24 22:47:52 +03:00
David Cernat
24bfe40bf7
Add debug about current server crash
2016-10-24 21:17:53 +03:00
David Cernat
b2688777c1
Create marker once a player has been initialized properly and fix debug
2016-10-24 21:08:47 +03:00
David Cernat
b6111d16cc
Add and implement ID_WORLD_VIDEO_PLAY
2016-10-24 17:52:19 +03:00
David Cernat
3fd93896f2
Add and implement ID_WORLD_OBJECT_LOCK
2016-10-24 13:20:04 +03:00
David Cernat
08ea5163c4
Add and implement ID_WORLD_OBJECT_UNLOCK
2016-10-24 11:26:31 +03:00
David Cernat
3380c482c0
Fix errors remaining from merge with tes3mp-packetexpansion, part 2
2016-10-23 19:32:39 +03:00
David Cernat
b06a2f3119
Fix part about Breakpad in server's CMakeLists
2016-10-23 19:28:35 +03:00
David Cernat
c639337842
Merge with tes3mp-packetexpansion by fixing conflicts
...
# Conflicts:
# apps/openmw-mp/Networking.cpp
# apps/openmw/mwmp/Networking.cpp
# components/CMakeLists.txt
# components/openmw-mp/NetworkMessages.hpp
# components/openmw-mp/PacketsController.cpp
2016-10-23 17:57:38 +03:00
David Cernat
0a44bea91d
Send cell coordinates in tes3mp using mData instead of mCellId.mIndex
2016-10-23 16:55:30 +03:00
David Cernat
cbc132612a
Use mRefNum.mIndex instead of just mRefNum and add extra debug
2016-10-23 16:33:53 +03:00
Koncord
a6467c9c47
Add breakpad to server
2016-10-23 17:07:46 +08: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
David Cernat
3c49157ed7
Rename WorldPackets to ID_WORLD_OBJECT_DELETE and ID_WORLD_OBJECT_PLACE
2016-10-22 18:05:32 +03:00
David Cernat
92463c4a03
Fix Windows server crash caused by printing event->CellRef()->mRefID
2016-10-22 14:13:16 +03:00
David Cernat
8080cceac6
Add some placeholder code so Stanislav can test it
2016-10-22 12:45:19 +03:00
David Cernat
565e7e4b9f
Create and implement placeholder for ID_WORLD_OBJECT_CREATION
2016-10-21 21:57:05 +03:00
David Cernat
ac666edebd
Add a CellRef to WorldEvent
2016-10-20 22:15:47 +03:00
David Cernat
d0328f2553
Add placeholder ProcessWorldPacket method to server's Networking
2016-10-19 21:44:17 +03:00
David Cernat
2602c1f71a
Add ProcessPlayerPacket method to server's Networking
2016-10-19 21:26:42 +03:00
David Cernat
f1ec01cc6b
Add WorldPacketController to server's Networking
2016-10-19 20:51:51 +03:00