David Cernat
ae39daf76a
Add and implement ID_MUSIC_PLAY
2016-11-20 22:54:49 +02:00
David Cernat
456aee65d9
Add and implement ClearInventory() script function
2016-11-20 04:06:33 +02:00
David Cernat
80b40bfb70
Prevent inventory requests from making LocalPlayer send inventory twice
2016-11-20 03:21:15 +02:00
David Cernat
843e84ba26
Once again use RakNetGUID as index for player map everywhere
...
Because of frequent server crashes, I tried to simplify the player map indexes with commit c91e240664
, but it had no noticeable effect and was later partially reverted by Koncord in commit 902e968fd9
, apparently for reasons of readability.
For the sake of consistency, this commit completes his reversion.
2016-11-19 22:16:21 +02:00
David Cernat
7f25abb9c8
Implement UnequipItem() script function
2016-11-18 01:50:55 +02:00
David Cernat
c1bd4f1ce3
Use correct item count in LocalPlayer::setEquipment() for new items
2016-11-18 01:33:46 +02:00
David Cernat
fcd24ebb7e
Rename methods to show they deal with Equipment instead of Inventory
2016-11-17 22:33:30 +02:00
David Cernat
3a733eb122
Make tes3mp includes consistent
2016-11-17 17:16:25 +02:00
David Cernat
faea5221d3
Use LocalPlayer's updateInventory() every cell change, not every frame
2016-11-17 15:32:04 +02:00
Koncord
e2522fa366
Simplify LOG macros
2016-11-17 12:39:35 +08:00
David Cernat
eedd40328a
Add and use SendInventory() method in LocalPlayer, and clarify some code
2016-11-16 21:34:46 +02:00
David Cernat
c5c72a3b17
Use consistent names for booleans in LocalPlayer
2016-11-16 20:01:47 +02:00
David Cernat
6cd959fac8
Rename BasePlayer's GetCell() into getCell()
2016-11-16 17:43:58 +02:00
David Cernat
fa9d6e810e
Use lowerCamelCase in tes3mp client function names like OpenMW does
2016-11-15 21:54:06 +02:00
David Cernat
527024a026
Stop WorldPackets about invalid cells from causing framelistener errors
2016-11-15 19:51:05 +02:00
David Cernat
a430ee011a
Use WorldController to fetch CellStore for WorldPackets received
2016-11-15 19:13:36 +02:00
David Cernat
3dcb8738c1
Create placeholder WorldController class
2016-11-15 18:42:52 +02:00
David Cernat
f7b5e5e638
Ignore packets from server that try to move LocalPlayer to invalid cells
2016-11-12 22:21:02 +02:00
Koncord
c85e6a5f91
Fix sucess chance
2016-11-12 20:43:18 +08:00
Koncord
56959ebfda
Implement magic
2016-11-12 19:39:16 +08:00
David Cernat
729da2c0ba
Improve logic and clarity of LocalPlayer's charGenThread()
...
Until now, the fact that charGenThread() returned false whenever the player had a menu open was preventing Main::UpdateWorld() from running at all with a menu open.
The result was that no player packets from LocalPlayer::Update() were being sent by a player in a menu.
2016-11-11 23:46:17 +02:00
David Cernat
817b63922c
Put DedicatedPlayer in ToddTest if his cell doesn't exist on our client
2016-11-04 20:53:19 +02:00
David Cernat
25afa47e08
Only declare ptrCellStore for WorldPackets that need it
2016-11-04 15:47:55 +02: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
3759127627
Woops
2016-11-04 00:57:51 +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
66e697953c
Add missing break statement in Networking to prevent default nighttime
2016-10-31 22:53:32 +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
4621363b65
Make capitalization reflect name of filename, and remove unused check
2016-10-31 01:23:31 +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
3c4b74cd14
Fix frame listener errors for player markers
2016-10-30 16:39:59 +02:00
David Cernat
9c12aa2141
Fix formatting
2016-10-30 12:58:58 +02:00
David Cernat
41504bd02a
Use more accurate position for ID_OBJECT_PLACE
2016-10-30 00:51:23 +03:00
David Cernat
a4647de048
Break away from OpenMW by giving RefNum indexes to new created objects
2016-10-30 00:21:55 +03:00
David Cernat
937bf97883
Send gold values correctly with ID_OBJECT_PLACE
2016-10-29 00:34:46 +03:00
David Cernat
180aa3f2f3
Send item count ID_WORLD_OBJECT_PLACE
2016-10-28 22:35:01 +03:00
David Cernat
1f982e4dc7
Find objects from world packets using both ID and reference number
2016-10-28 21:31:41 +03:00
David Cernat
d93e66207e
Update player markers only when getting a position packet
2016-10-27 19:09:05 +03:00
David Cernat
46397a7dac
Add and implement ID_OBJECT_ANIM_PLAY
2016-10-27 16:09:02 +03:00
David Cernat
fff6833950
Send ID_SCRIPT_MEMBER_SHORT from MWScript::InterpreterContext
2016-10-27 02:18:27 +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
65363b0dd1
Avoid sending packets for 9 more ingame scripts
2016-10-26 21:33:13 +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
47854d631b
Avoid sending packets for 2 more ingame scripts
2016-10-26 15:24:53 +03:00
David Cernat
c99c3b1486
Avoid sending packets for 3 additional spammy ingame scripts
2016-10-26 12:43:26 +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
75f6d82f08
Add a way of filtering out ingame scripts for upcoming script packets
2016-10-25 22:44:15 +03:00
David Cernat
385b5f39e3
Add and implement ID_OBJECT_ROTATE
2016-10-25 14:28:39 +03:00
David Cernat
54ed9a7ab4
Implement ID_OBJECT_MOVE and send it from ingame scripts
2016-10-25 14:07:00 +03:00
David Cernat
c25ebc34b3
Shorten WorldPacket IDs by removing WORLD from them
2016-10-25 12:15:27 +03:00
David Cernat
bdb53e1cb4
Implement ID_WORLD_DOOR_ACTIVATE and send it from MWBase::World
2016-10-25 10:40:55 +03:00
David Cernat
7264f13b8e
Implement ID_WORLD_OBJECT_SCALE and send it from ingame scripts
2016-10-25 00:52:42 +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
c54af2b02b
Make DedicatedPlayer's setMarkerState method actually enable markers
2016-10-24 16:26:51 +03:00
David Cernat
1e4d625c99
Make player markers show up in exterior cells
2016-10-24 15:29:10 +03:00
David Cernat
04eb051df6
Make markers get removed when their players quit, rename marker methods
2016-10-24 15:10:32 +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
e7567020bb
Fix debug for ID_WORLD_OBJECT_DELETE in client's Networking
2016-10-23 19:10:21 +03:00
David Cernat
d85a1ee1a9
Fix errors remaining from merge with tes3mp-packetexpansion
2016-10-23 18:32:03 +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
David Cernat
17f66e4e90
Implement ID_WORLD_OBJECT_PLACE
2016-10-23 13:30:32 +03:00
Koncord
df3886168f
Word wrapping in chat
2016-10-23 14:33:43 +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
6e43baf73e
Send Cell instead of CellId because of problems with the latter
2016-10-22 20:09:13 +03:00
David Cernat
103b1e3f72
Send CellId in ID_WORLD_OBJECT_DELETE
2016-10-22 18:44:13 +03:00
David Cernat
2e57e25675
Only delete object from ID_WORLD_OBJECT_DELETE if it actually exists
2016-10-22 18:19:57 +03: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
b3d6dad0c5
Send ID_WORLD_OBJECT_REMOVAL from actiontake.cpp and not worldimp.cpp
2016-10-22 17:10:57 +03:00
David Cernat
cc98a25dcf
Add searchByRefNum method to OpenMW's CellStore
2016-10-22 16:47:11 +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
Stanislav Zhukov
81dfd21d9a
Merge pull request #76 from TES3MP/tes3mp-minimap
...
Show dedicated players on minimap
2016-10-22 17:21:02 +08:00
Koncord
b704519078
Show dedicated players on minimap
2016-10-22 17:06:26 +08:00
David Cernat
565e7e4b9f
Create and implement placeholder for ID_WORLD_OBJECT_CREATION
2016-10-21 21:57:05 +03:00
David Cernat
32dc8cf63f
Read contents of ID_WORLD_OBJECT_REMOVAL on client
2016-10-21 20:44:15 +03:00
David Cernat
36f218876a
Add ProcessPlayerPacket and ProcessWorldPacket to client's Networking
2016-10-21 19:23:56 +03:00
David Cernat
b2845cd17c
Create and start using WorldEvent class
2016-10-20 14:28:19 +03:00
David Cernat
f218613231
Rename client Networking's GetPacket method into GetPlayerPacket
2016-10-19 22:49:35 +03:00
David Cernat
790d41e278
Move PlayerPackets into their own subfolder
2016-10-19 19:37:10 +03:00
David Cernat
d2212ef80b
Rename PacketsController into PlayerPacketController
2016-10-19 16:31:07 +03:00
David Cernat
b8f4cb94fb
Rename BasePacket into PlayerPacket
2016-10-17 15:54:36 +03:00
David Cernat
14bac1e533
Make player markers appear on inventory map
2016-10-09 13:41:00 +03:00
David Cernat
07acd7a721
Make player markers work in interiors and make them easier to test
2016-10-09 10:29:30 +03:00
Koncord
2e81034e53
Started work on the map markers
2016-10-07 13:17:44 +08:00
Koncord
fa0a55c2a9
Fix use of freed memory
2016-10-01 10:54:42 +08:00
David Cernat
e0361835b0
Allow script-induced setting of equipment
2016-09-30 12:36:20 +03:00
David Cernat
728a09e423
Reorder functions in LocalPlayer and make their names more consistent
2016-09-30 08:59:58 +03:00
David Cernat
6650b74498
Add handling of skill increases
2016-09-30 07:15:59 +03:00
David Cernat
f4621d8529
Use setLevelProgress when setting LocalPlayer's skills
2016-09-30 06:27:26 +03:00
David Cernat
a0e9a672a5
Split updateClassStats in 3 and add handling of level progress
2016-09-30 04:52:21 +03:00
David Cernat
2ab619b0e3
Constantly update skill progress from LocalPlayer
2016-09-30 03:43:49 +03:00
David Cernat
6ae4cc15e4
Clean up handling of stat packets on client, part 2
2016-09-29 17:48:33 +03:00
David Cernat
5efa5aa912
Fix indentation
2016-09-29 13:17:46 +03:00
David Cernat
afbd3274cc
Clean up handling of stat packets on client
2016-09-29 13:10:32 +03:00
David Cernat
bc0aa86bcf
Make variable names more consistent and easier to understand
2016-09-29 12:05:44 +03:00
David Cernat
694ce537b6
Allow script-induced dynamic stat changes, part 2
2016-09-29 11:02:57 +03:00
David Cernat
18cd964d21
Allow script-induced dynamic stat changes
2016-09-29 10:19:39 +03:00
David Cernat
16216b30f7
Fix formatting
2016-09-28 14:27:35 +03:00
David Cernat
b6086ab015
Rename ID_GAME_DYNAMICSTATS_CURRENT into ID_GAME_DYNAMICSTATS
2016-09-28 14:13:24 +03:00
David Cernat
57f07813b0
Rename ID_GAME_UPDATE_POS into ID_GAME_POS
2016-09-28 11:45:14 +03:00
David Cernat
26487598a6
Rename ID_GAME_UPDATE_EQUIPED into ID_GAME_EQUIPMENT
2016-09-28 11:36:29 +03:00
David Cernat
0479eb38cc
Update protocol version and make version mismatch error less confusing
2016-09-28 08:26:18 +03:00
David Cernat
ce4b326b02
Rename ID_GAME_UPDATE_BASESTATS into ID_GAME_DYNAMICSTATS_CURRENT
2016-09-28 07:50:16 +03:00
David Cernat
4d7130b12f
Improve logic for script-induced cell changes
2016-09-27 11:28:44 +03:00
David Cernat
01af4f3bbc
Update position before sending cell packet
2016-09-26 17:00:09 +03:00
David Cernat
1ee2458f6e
Add packet for player levels, part 2
2016-09-26 13:19:01 +03:00
David Cernat
046a1ea899
Add packet for player levels
2016-09-25 14:28:25 +03:00
David Cernat
9690e007df
Don't send unhandled skill and attribute requests to joining players
2016-09-19 11:06:04 +03:00
Koncord
24617589e4
Fix packet spam
2016-09-18 15:52:26 +08:00
Koncord
96e2d749c7
New auth protocol
2016-09-18 11:55:51 +08:00
Koncord
1e48555617
Make sensitivity to protocol version
2016-09-18 11:55:51 +08:00
David Cernat
5b6caa7b2c
Fix build by adding missing argument to onHit
2016-09-15 09:34:05 +03:00
Koncord
0f7670dd07
Add some verbose messages for chat
2016-09-10 13:57:15 +08:00
Koncord
a34d46f57e
Add chat messages to log in client
...
Cleanup redundant code in GUIChat class
2016-09-10 13:40:06 +08:00
Koncord
ab6d6d1cc8
Fix log message in Networking::Connect()
2016-09-04 16:18:53 +08:00
Koncord
d110834ee7
Fix log message in Networking::Update()
2016-09-04 16:03:07 +08:00
David Cernat
81999a8179
Remove outdated ID_GAME_UPDATE_SKILLS packet, part 2
2016-09-02 07:58:20 +03:00
David Cernat
8abef0bebe
Remove outdated ID_GAME_UPDATE_SKILLS packet
2016-09-02 07:36:39 +03:00
David Cernat
dafc6c0843
Save and load birthsigns
2016-09-02 06:57:13 +03:00
David Cernat
941d76fce0
Fix setting of default classes and initialize classes safely on server
2016-09-02 04:31:35 +03:00
Koncord
534ef527b9
Fix my stupid epic fail
2016-09-02 07:35:53 +08:00
David Cernat
263efa9988
Fix formatting, part 2
2016-08-30 12:37:36 +03:00
David Cernat
a20e7890a2
Fix formatting
2016-08-30 10:52:30 +03:00
Koncord
cf1a0113a1
Time API
2016-08-30 13:24:42 +08:00
Koncord
11eae277a9
Characters Class API
...
Added some new functions
2016-08-30 11:18:19 +08:00
Koncord
a03c2f5019
Now server & client sensitive to version
2016-08-27 15:36:22 +08:00
Koncord
8a5e32c631
Show the InputBox only if queue is free
2016-08-27 13:58:06 +08:00
Koncord
4c2415e9db
Fix focus for InputDialog
...
Created a special pipe for future GUI modes.
2016-08-27 13:40:11 +08:00
David Cernat
00e7810428
Add script functions for saving and loading non-custom player classes
2016-08-27 00:14:50 +03:00
David Cernat
7bb6020e51
Display message boxes when client is disconnected.
2016-08-25 02:58:03 +03:00
Koncord
1b403719f5
Merged branch master into master
2016-08-24 16:15:56 +08:00
Koncord
997c62cc52
Add --connect option to client
2016-08-24 16:15:34 +08:00
David Cernat
77aff346e9
Fix typo in method name "getGUIConroller", part 2
2016-08-24 05:55:02 +03:00
David Cernat
63eebd3d18
Respawn players in Fort Pelagiad instead of ToddTest for the time being
2016-08-24 05:32:40 +03:00
David Cernat
d830937f4e
Fix typo in method name "getGUIConroller"
2016-08-24 04:48:35 +03:00
David Cernat
5385563972
Let players inform others about Lua script-induced cell & pos changes
2016-08-24 02:53:39 +03:00
David Cernat
7b187d0295
Fix visual glitch when jumping without adjusting camera afterwards
2016-08-23 22:27:12 +03:00
David Cernat
03d6e0cb62
Send attributes and skills to server whenever they change
2016-08-23 02:24:10 +03:00
David Cernat
ce5553cda6
Get hand-to-hand attack victim's stats if there actually is a victim
2016-08-23 01:23:09 +03:00
David Cernat
c4f49e05e3
Remove manual newlines for logger
2016-08-19 07:54:10 +03:00
Koncord
90215f4e7c
Fix log messages for GCC compatibility
2016-08-19 09:37:24 +08:00
David Cernat
2337a0becb
Add LOG_APPEND method for writing to log without timestamp and level
2016-08-18 23:17:46 +03:00
David Cernat
f4744f8547
Add additional log info
2016-08-18 22:29:54 +03:00
David Cernat
97f944dde7
Use logger for most console messages
2016-08-18 20:20:17 +03:00