David Cernat
d2c5a3387a
[Client] See when other players add items to containers
2017-02-05 19:33:11 +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
f03724be7b
[Client] Send ID_PLAYER_INVENTORY upon dropping an item
2017-02-05 14:38:04 +02:00
David Cernat
ecc456fea9
[General] Include charge int in WorldObject & send it w/ ID_OBJECT_PLACE
2017-02-05 13:45:12 +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
a07e616878
[General] Add ContainerItem and ContainerChanges structs to WorldEvent
2017-02-04 20:14:39 +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
David Cernat
958ff06ca8
[General] Rename ID_DOOR_ACTIVATE into ID_DOOR_STATE
2017-02-01 11:54: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
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
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
158d606477
[General] Leave one blank line at the end of every tes3mp code file
2017-01-26 06:17:29 +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
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
David Cernat
b8a6020af1
Check for update to inventory when closing a container
2017-01-19 13:08:24 +02:00
Koncord
b9c3849cc7
Change keycode to scancode
2016-12-30 02:33:44 +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
804259b2c9
Change some printf to LOG_MESSAGE_SIMPLE
...
printf is not streamed to files
2016-12-16 18:50:34 +08:00
Koncord
2eda48acca
Fix issue #111
2016-12-16 18:13:44 +08:00
Koncord
3ee82a761b
Remove redundant include
2016-12-16 17:51:00 +08:00
Koncord
4371a65fc6
fix spaces
2016-12-16 17:31:41 +08:00
Koncord
9ca206dda9
Add hooks for containers
2016-12-16 17:27:19 +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
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
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