David Cernat
e6bc7ad463
[General] Make all flying players fly correctly, including TCL users
2017-02-27 23:01:33 +02:00
Koncord
cbace41e14
[Client] Fix crash on LInux
2017-02-23 17:40:22 +08:00
David Cernat
1b59ce8c8f
[Client] Send ID_PLAYER_DRAWSTATE when teleported by server
2017-02-23 06:26:42 +02:00
David Cernat
e4ae8c5f9f
[Client] Cancel drag for teleported players, fix ID_OBJECT_SCALE debug
2017-02-22 02:44:00 +02:00
David Cernat
37e7d2c15b
[Client] Don't get invalid cells in LocalPlayer::sendJournalEntry()
2017-02-21 02:09:39 +02:00
David Cernat
bf2f932e18
[Client] If in a container, don't crash when teleported to another cell
2017-02-21 01:01:30 +02:00
David Cernat
75392297b5
[General] Use vector::at in most places
2017-02-05 19:01:06 +02:00
David Cernat
60d6a6d463
[Client] See when other players remove items from containers
2017-02-05 18:45:23 +02:00
David Cernat
f314b13edf
[General] Rename item health into charge, for consistency with OpenMW
2017-02-05 14:56:27 +02:00
David Cernat
04d45b9dbb
[General] Rename packets to show they are for players only, not NPCs
2017-02-05 09:01:33 +02:00
David Cernat
6328ffb9aa
[General] In ID_GAME_ATTRIBUTE & ID_GAME_SKILL, rename GAME into PLAYER
2017-02-04 14:25:43 +02:00
David Cernat
57f54aa370
[Client] Don't store multiple cellStates for the same cell
2017-02-04 09:46:27 +02:00
David Cernat
a2e3fe18fe
[Client] Send ID_PLAYER_CELL_STATE to server at end of CharGen
...
Also, allow requests for ID_PLAYER_CELL_STATE from the server.
2017-02-04 09:13:15 +02:00
David Cernat
c1427b2558
[General] Simultaneously send loads & unloads in ID_PLAYER_CELL_STATE
2017-02-03 20:27:40 +02:00
Koncord
42b6a456f0
[Client] Fix code style
2017-01-30 22:53:22 +08:00
Koncord
c5035cd174
[Client] Fix crash and memory leak when erasing spellbook
2017-01-30 22:37:09 +08:00
David Cernat
dddc253d70
[Client] Fix console message for LocalPlayer's cell change
2017-01-28 16:39:03 +02:00
Koncord
ab3c2544b5
[Client] Use constant instead magic value
2017-01-26 21:47:28 +08:00
Koncord
34a46e6811
[Client] Simplify hasFinishedCharGen method
2017-01-26 21:42:12 +08: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
b5b5551fcd
[Client] Add LocalPlayer::hasFinishedCharGen() method
2017-01-26 13:13:43 +02:00
David Cernat
97aabf4a7d
[General] Sketch out sending of cell loading/unloading info in packets
2017-01-26 09:02:01 +02:00
David Cernat
63c8a98083
[General] Stop using virtual functions in BasePlayer
2017-01-25 17:06:15 +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
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
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
0f7748d9d2
When clearing LocalPlayer's spells, keep race and birthsign abilities
2017-01-20 08:06:48 +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
7595b33461
Implement spellbook
2016-12-29 21:19:57 +08:00
Koncord
536715cf46
Cleanup tes3mp headers
2016-12-16 16:59:15 +08:00
David Cernat
9e290ad799
Fix spacing irregularities
2016-11-21 23:40:50 +02:00
David Cernat
95efb77e53
Implement sending of ID_GAME_SPELLBOOK from client
2016-11-21 06:07:29 +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
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
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
David Cernat
107dacac6d
Add OnPlayerChangeInventory server script callback
2016-11-03 16:39:31 +02:00
David Cernat
9c12aa2141
Fix formatting
2016-10-30 12:58:58 +02: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
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
f218613231
Rename client Networking's GetPacket method into GetPlayerPacket
2016-10-19 22:49:35 +03: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
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
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
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
a20e7890a2
Fix formatting
2016-08-30 10:52:30 +03:00
Koncord
11eae277a9
Characters Class API
...
Added some new functions
2016-08-30 11:18:19 +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
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
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
97f944dde7
Use logger for most console messages
2016-08-18 20:20:17 +03:00
David Cernat
e5cb58e7c4
Add debug info about ID_GAME_BASE_INFO packets
2016-08-17 21:18:04 +03:00
David Cernat
8eda381016
Make formatting consistent, part 2
2016-08-17 18:20:36 +03:00
David Cernat
1363c4c5b6
Make formatting consistent
2016-08-17 18:04:35 +03:00
David Cernat
8dd8e22a0b
Replace tabs with spaces in LocalPlayer changes
2016-08-04 00:55:28 +03:00
David Cernat
3362902396
Update position after changing cell (for real)
2016-08-04 00:03:05 +03:00
David Cernat
b0bd10f219
Allow script-based teleportation from interior to exterior cell 0,0
2016-08-03 22:07:49 +03:00
Koncord
31e2ab54d6
Revert "Update position after changing cell"
...
This reverts commit 5e072b9d3c
.
2016-07-30 04:57:43 +08:00
Koncord
5e072b9d3c
Update position after changing cell
2016-07-30 04:12:47 +08:00
Koncord
7107136808
New API
...
SetExterior(pid, x, y)
GetExteriorX(pid)
GetExteriorY(pid)
also "SetCell" will now move to the named external cells (e.g. SetCell(pid, "Balmora"))
2016-07-30 01:33:28 +08:00
davidcernat
ab309180c2
Add useful debug info for cell changes
2016-07-21 23:07:37 +03:00
davidcernat
7bf08e5e5a
Fix transition between exterior cells for non-local players
...
Make the local player send a packet whenever moving from one exterior cell to another, don't require objects to have RefNums to be moved correctly between exterior cells, and increase the packet priority for cell changes.
2016-07-17 22:03:20 +03:00
Koncord
6f07d590d4
Fix SetPos and SetAngle functions
...
Fix types for SetPos and SetAngle
2016-07-17 17:59:46 +08:00
Koncord
1b259e2d33
Syncing inventory, animations, position, 8 key attributes
...
Created Package system
2016-07-07 23:50:48 +08:00