1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 01:49:54 +00:00
Commit graph

187 commits

Author SHA1 Message Date
David Cernat
92439e6e62 [Client] Reduce WorldPacket debug because it can cause freezes 2017-02-20 23:48:08 +02:00
Koncord
ea9c31a8f7 [Client] Add password to client params and to config file 2017-02-20 22:40:09 +08:00
David Cernat
ed91f20cd3 [General] Print action used for ID_CONTAINER when receiving one 2017-02-19 23:11:26 +02:00
David Cernat
3b604a432e [General] Restructure ID_CONTAINER to allow multiple containers at once 2017-02-15 20:14:25 +02:00
David Cernat
c8cbfbef62 [General] Sketch out server requests to players for container data 2017-02-14 19:31:56 +02:00
David Cernat
e703dd42aa [Client] Rename LocalEvent into WorldEvent 2017-02-06 17:40:32 +02:00
David Cernat
60d6a6d463 [Client] See when other players remove items from containers 2017-02-05 18:45:23 +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
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
958ff06ca8 [General] Rename ID_DOOR_ACTIVATE into ID_DOOR_STATE 2017-02-01 11:54:40 +02:00
David Cernat
9f1e491a75 [General] Make WorldEvents store information about multiple objects 2017-01-28 12:34:45 +02:00
David Cernat
624b85347a [Client] Create LocalEvent class and use it instead of WorldEvent 2017-01-27 20:57:47 +02:00
David Cernat
7efb374f75 [Client] Avoid fetching guiMessageBox.type again for every condition 2017-01-27 10:41:10 +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
63c8a98083 [General] Stop using virtual functions in BasePlayer 2017-01-25 17:06:15 +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
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
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
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
Koncord
753dc50131 Fix crash if connection has failed 2016-12-03 23:36:53 +08:00
David Cernat
9e290ad799 Fix spacing irregularities 2016-11-21 23:40:50 +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
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
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
Koncord
e2522fa366 Simplify LOG macros 2016-11-17 12:39:35 +08: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
a430ee011a Use WorldController to fetch CellStore for WorldPackets received 2016-11-15 19:13:36 +02:00
Koncord
56959ebfda Implement magic 2016-11-12 19:39:16 +08: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
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
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
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
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
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
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
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
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
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
b8f4cb94fb Rename BasePacket into PlayerPacket 2016-10-17 15:54:36 +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
a0e9a672a5 Split updateClassStats in 3 and add handling of level progress 2016-09-30 04:52:21 +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
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
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