David Cernat
a353a21280
[General] Fix code style inconsistencies
8 years ago
David Cernat
068a45be87
[General] Synchronize player & NPC rotation animations
8 years ago
David Cernat
f4cdedd8cb
[General] Synchronize summoned creatures
8 years ago
David Cernat
4e5c8873e0
[General] Use ObjectSpawn instead of ObjectPlace for actors
8 years ago
David Cernat
c211d53190
[General] Use only direction.pos in ActorPosition, as advised by Koncord
8 years ago
David Cernat
27148ce9eb
[General] Add placeholders for 12 new packets, to be implemented soon
...
Additionally, make it slightly clearer who created which previously existing packets.
8 years ago
Koncord
f7473e3379
[General] Fix copy-posty bug
8 years ago
David Cernat
9fe5b4a305
[General] Remove debug line from ActorAnimFlags
8 years ago
Koncord
8478fed98a
[General] Simplify Actor packets.
8 years ago
Koncord
f6fba70a4e
[General] Use compression for Position packets
8 years ago
Koncord
4934be18f0
[General] Add compression flag to RW methods
...
Advantages: and 2 bytes per float value, using huffman algorithm for structures and strings.
Disadvantages: bad for performance and precision for float/double variables.
8 years ago
David Cernat
73b9683182
[General] Make most ActorPackets smaller by not including refIds in them
8 years ago
David Cernat
311ce4119d
[General] Fix logic issues related to ActorEquipment
8 years ago
David Cernat
4f273932af
[General] Implement sending and reading of ActorEquipment packets
8 years ago
David Cernat
32879adc5b
[General] Allow ObjectTrap to trigger traps, not just disarm them
8 years ago
Koncord
24d4e1c222
[General] Remove useless PacketSendMyID
8 years ago
David Cernat
7ec431ce3d
[General] Make packet style more consistent
8 years ago
David Cernat
11369f6513
[General] Implement sending and reading of PlayerTopic packets
8 years ago
David Cernat
08de349133
[General] Add placeholders for PlayerTopic & ObjectTrap packets
8 years ago
David Cernat
870fd9a78b
[General] Remove ObjectUnlock packet, use ObjectLock with 0 lock instead
8 years ago
Koncord
956b573323
[General] Use different ordering channels for packets
8 years ago
David Cernat
e6983993c2
[General] Implement sending and reading of PlayerFaction packets
8 years ago
David Cernat
0189dbf916
[General] Make JournalItem consistent with other packet structs
8 years ago
David Cernat
ad388c7e12
[General] Add placeholders for ActorEquipment & PlayerFaction packets
...
Also reorder packets and packet processors.
8 years ago
David Cernat
f527fe9ebe
[General] Add basic integrity check to reading of ActorList packets
...
Additionally, add newlines to files missing them.
8 years ago
David Cernat
05564bd123
[General] Add basic integrity check to reading of Container packets
8 years ago
David Cernat
de49f5f175
[General] Add and use isActor bool for WorldObject
8 years ago
David Cernat
9d2c5c3502
[General] Simplify structure of BaseEvent
8 years ago
David Cernat
4d81455020
[General] Rework and simplify death reasons so they work with NPCs
8 years ago
David Cernat
60cf623455
[Client] Make DedicatedActors transition into LocalActors when eligible
8 years ago
David Cernat
63dd2d9246
[General] Remove code related to ActorAuthority packets that is not used
8 years ago
David Cernat
c3c04bbfc3
[General] Make coding style consistent
8 years ago
Koncord
931a5896ec
[General] Improve PacketPreInit
8 years ago
David Cernat
1a699329e5
[General] Set new BaseActor booleans in corresponding packets
8 years ago
Koncord
9c7c0f9989
[General] Send creatureModel & useCreatureName via PacketPlayerBaseInfo
8 years ago
David Cernat
e8e0090b9b
[General] Use new SimpleCreatureStats struct in BaseActor
8 years ago
David Cernat
6a21ec1fdc
[General] Rename PlayerPos into PlayerPosition
8 years ago
David Cernat
7b07d6651f
[General] Add and use PlayerBounty packet and matching script functions
8 years ago
David Cernat
f4c3a28141
[General] Finalize ActorCellChange packet structure
8 years ago
Koncord
41005b1add
[General] Add orderChannel to packets
8 years ago
David Cernat
cc2250815d
[General] Add packet data for attacks on and by Actors
8 years ago
David Cernat
a650683bae
[General] Add and use Target struct in mwmp::Attack
8 years ago
David Cernat
9882ceedf3
[General] Remove attackerGuid from mwmp::Attack because it is redundant
8 years ago
David Cernat
caf5428532
[General] Rename mwmp::Attack vars in preparation for Actor support
8 years ago
David Cernat
9f226253d4
[General] Rename mwmp::Attack's refid into refId for consistency
8 years ago
David Cernat
f0f0b2dcc9
[General] Send and read ActorSpeech packets
8 years ago
David Cernat
1fb11dafef
[General] Send and read ActorStatsDynamic packets
8 years ago
David Cernat
870886192b
[General] Rename DYNAMICSTATS into STATS_DYNAMIC
8 years ago
David Cernat
ca8fd1aa72
[General] Remove ActorHeadRotation packet because it would be too spammy
8 years ago
David Cernat
2872675f5e
[General] Send and read ActorAnimPlay packets
8 years ago
David Cernat
e7960eee76
[General] Rename DrawState packets into AnimFlags ones for clarity
8 years ago
David Cernat
d2fe777f89
[General] Send and read ActorDrawState packets
8 years ago
David Cernat
10ad5b2a99
[General] Remove BaseActor's AnimStates that are no longer needed
8 years ago
David Cernat
0d196af685
[General] Add placeholders for 7 new ActorPackets
8 years ago
David Cernat
7700b82952
[General] Clean up BaseEvent and BaseStructs
8 years ago
David Cernat
7662297334
[General] Use ESM::Position to store BaseActor's movement
8 years ago
David Cernat
742d6f653a
[General] Add ActorPosition packet
8 years ago
David Cernat
b6c3830ea0
[General] Rename WorldObject's pos into position for consistency
8 years ago
David Cernat
174f316787
[General] Rename PacketActorFrame into PacketActorTest
8 years ago
David Cernat
a5d0486c82
[General] Set actor data correctly
8 years ago
David Cernat
c52084a028
[General] Use BaseActorLists in ActorPackets
8 years ago
David Cernat
070c6a3bd4
[General] Add ActorPacketController & make controller var names clearer
8 years ago
David Cernat
b8ca2382c7
[General] Remove variables that are not going to be used in ActorFrame
8 years ago
David Cernat
d3f3fb5d05
[Client] Correctly implement movement animation sync for NPCs
8 years ago
David Cernat
d829d219c3
[General] Add (very) partial animation sync for NPCs
8 years ago
David Cernat
8f18dc87c4
[General] Model ActorList on Container more closely by including action
8 years ago
David Cernat
8c2469bf6d
[General] Add placeholder ActorList, ActorAuthority & ActorFrame packets
8 years ago
David Cernat
ddedcac510
[General] Read and write mpNums in world packets
8 years ago
David Cernat
8cc61b6048
[General] Generate mpNums on the server when forwarding ID_OBJECT_PLACE
8 years ago
Koncord
435d9780a7
[General] Fix PacketPreInit
8 years ago
Koncord
690211ad99
[General] Extract BaseEvent & BasePlayer from packets to functions
...
Move Send and Read functions to BasePacket
8 years ago
Koncord
0c1905e842
[General] Add PreInit packet
8 years ago
Koncord
0d53a6916d
[General] Move repeated code in Packet() to base class
8 years ago
David Cernat
5c269a5f8d
[General] Rename ID_GAME_DIE and ID_GAME_RESURRECT
8 years ago
David Cernat
e6bc7ad463
[General] Make all flying players fly correctly, including TCL users
8 years ago
Koncord
e3f4c63ea6
[General] Delete invalid & redundant code
8 years ago
David Cernat
a4526605a6
[General] Remove goldValue from ContainerItem because it is never useful
8 years ago
David Cernat
4f2b88df8a
[General] Remove owner var from ContainerItem because it is always empty
8 years ago
David Cernat
941d6269c1
[General] Slightly reorder variables in ID_OBJECT_PLACE
8 years ago
David Cernat
27c4015f50
[General] Remove unused packet placeholder ID_OBJECT_HEALTH
8 years ago
David Cernat
3b604a432e
[General] Restructure ID_CONTAINER to allow multiple containers at once
8 years ago
David Cernat
5038353792
[General] Rename BaseEvent's state into doorState & adjust related funcs
8 years ago
David Cernat
d8a9a5f6c9
[General] Send item owner in ID_CONTAINER
8 years ago
David Cernat
3614b21e10
[General] Send charge and goldValue in ID_CONTAINER
8 years ago
David Cernat
182b238b5f
[General] Rename WorldEvent into BaseEvent
8 years ago
David Cernat
75392297b5
[General] Use vector::at in most places
8 years ago
David Cernat
f314b13edf
[General] Rename item health into charge, for consistency with OpenMW
8 years ago
David Cernat
ecc456fea9
[General] Include charge int in WorldObject & send it w/ ID_OBJECT_PLACE
8 years ago
David Cernat
04d45b9dbb
[General] Rename packets to show they are for players only, not NPCs
8 years ago
David Cernat
9f8bed9be1
[General] Add action types to WorldEvent's ContainerChanges
8 years ago
David Cernat
a07e616878
[General] Add ContainerItem and ContainerChanges structs to WorldEvent
8 years ago
David Cernat
6328ffb9aa
[General] In ID_GAME_ATTRIBUTE & ID_GAME_SKILL, rename GAME into PLAYER
8 years ago
David Cernat
9130c1f302
[General] Rename ID_CONTAINER_ADD into ID_CONTAINER
8 years ago
David Cernat
d2cf96af99
[General] Repurpose the unused ID_CONTAINER_REMOVE into ID_OBJECT_HEALTH
8 years ago
David Cernat
c1427b2558
[General] Simultaneously send loads & unloads in ID_PLAYER_CELL_STATE
8 years ago
David Cernat
958ff06ca8
[General] Rename ID_DOOR_ACTIVATE into ID_DOOR_STATE
8 years ago
David Cernat
2c5cc82f49
[Server] Add script functions for getting world object placement info
8 years ago
David Cernat
8bc6dfe590
[General] Remove duplicate constructor in PacketObjectUnlock
8 years ago
David Cernat
9f1e491a75
[General] Make WorldEvents store information about multiple objects
8 years ago
David Cernat
244da19a51
[General] Turn ID_PLAYER_CELL_LOAD into ID_PLAYER_CELL_STATE for clarity
8 years ago
David Cernat
4dc0ba21ec
[General] Fix packet ID for ID_PLAYER_CELL_LOAD
8 years ago
David Cernat
97aabf4a7d
[General] Sketch out sending of cell loading/unloading info in packets
8 years ago
David Cernat
158d606477
[General] Leave one blank line at the end of every tes3mp code file
8 years ago
David Cernat
63c8a98083
[General] Stop using virtual functions in BasePlayer
8 years ago
David Cernat
1d9c6ddd81
[General] Add placeholders for the new packet ID_PLAYER_CELL_LOAD
8 years ago
David Cernat
35e453dec3
[General] Sketch out most of functionality for journal saving/loading
8 years ago
David Cernat
d308897f95
Rename PacketItems, PacketSpells into InventoryChanges, SpellbookChanges
8 years ago
David Cernat
e9b22814b9
Create placeholder for ID_GAME_JOURNAL
8 years ago
David Cernat
a69f294ef0
Rename ID_GAME_CELL into ID_PLAYER_CELL_CHANGE
8 years ago
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.
8 years ago
Koncord
7595b33461
Implement spellbook
8 years ago
Koncord
6e6237541a
Fix "comparison between signed and unsigned integer expressions"
8 years ago
Koncord
561a88d441
Fix "comparison between signed and unsigned integer expressions"
8 years ago
Koncord
b1bb552b65
Add packet ActiveSkills
8 years ago
David Cernat
9e290ad799
Fix spacing irregularities
8 years ago
David Cernat
95efb77e53
Implement sending of ID_GAME_SPELLBOOK from client
8 years ago
David Cernat
6ea5f08e9c
Create placeholder for ID_GAME_SPELLBOOK
8 years ago
David Cernat
6c8c0827ea
Move RequestData() method to BasePacket
8 years ago
David Cernat
fd6dd5daa8
Fix packetID for new packet
8 years ago
David Cernat
ae39daf76a
Add and implement ID_MUSIC_PLAY
8 years ago
David Cernat
6cd959fac8
Rename BasePlayer's GetCell() into getCell()
8 years ago
David Cernat
fa9d6e810e
Use lowerCamelCase in tes3mp client function names like OpenMW does
8 years ago
Koncord
37e9cafbf7
Add new API function: SetConsoleAllow
...
example:
tes3mp.SetConsoleAllow(pid, 0) -- disallow console to the player
The console is allowed by default
8 years ago
David Cernat
41504bd02a
Use more accurate position for ID_OBJECT_PLACE
8 years ago
David Cernat
937bf97883
Send gold values correctly with ID_OBJECT_PLACE
8 years ago
David Cernat
180aa3f2f3
Send item count ID_WORLD_OBJECT_PLACE
8 years ago
David Cernat
46397a7dac
Add and implement ID_OBJECT_ANIM_PLAY
8 years ago
David Cernat
c205e793cb
Add and implement ID_SCRIPT_MEMBER_SHORT
8 years ago
David Cernat
97468980af
Add and implement 3 new WorldPackets for ingame script variable values
8 years ago
David Cernat
385b5f39e3
Add and implement ID_OBJECT_ROTATE
8 years ago
David Cernat
54ed9a7ab4
Implement ID_OBJECT_MOVE and send it from ingame scripts
8 years ago
David Cernat
0fb9b6eefb
On second thought, rename ID_OBJECT_MOVE_WORLD into ID_OBJECT_MOVE
8 years ago
David Cernat
947a677801
Replace ID_ACTIVATOR_ACTIVATE with ID_OBJECT_MOVE_WORLD
8 years ago
David Cernat
c25ebc34b3
Shorten WorldPacket IDs by removing WORLD from them
8 years ago
David Cernat
bdb53e1cb4
Implement ID_WORLD_DOOR_ACTIVATE and send it from MWBase::World
8 years ago
David Cernat
7264f13b8e
Implement ID_WORLD_OBJECT_SCALE and send it from ingame scripts
8 years ago
David Cernat
4f0a3e8aa1
Add placeholders for 5 new WorldPackets
8 years ago
David Cernat
b6111d16cc
Add and implement ID_WORLD_VIDEO_PLAY
8 years ago
David Cernat
3fd93896f2
Add and implement ID_WORLD_OBJECT_LOCK
8 years ago
David Cernat
08ea5163c4
Add and implement ID_WORLD_OBJECT_UNLOCK
8 years ago
David Cernat
d85a1ee1a9
Fix errors remaining from merge with tes3mp-packetexpansion
8 years ago
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
8 years ago
David Cernat
0a44bea91d
Send cell coordinates in tes3mp using mData instead of mCellId.mIndex
8 years ago
David Cernat
cbc132612a
Use mRefNum.mIndex instead of just mRefNum and add extra debug
8 years ago
David Cernat
17f66e4e90
Implement ID_WORLD_OBJECT_PLACE
8 years ago
David Cernat
d0027ae3e7
Set correct packetID for ID_WORLD_OBJECT_PLACE
8 years ago
Koncord
77257b0721
Build fix
8 years ago
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
```
8 years ago
David Cernat
6e43baf73e
Send Cell instead of CellId because of problems with the latter
8 years ago
David Cernat
103b1e3f72
Send CellId in ID_WORLD_OBJECT_DELETE
8 years ago
David Cernat
3c49157ed7
Rename WorldPackets to ID_WORLD_OBJECT_DELETE and ID_WORLD_OBJECT_PLACE
8 years ago
David Cernat
92463c4a03
Fix Windows server crash caused by printing event->CellRef()->mRefID
8 years ago
David Cernat
565e7e4b9f
Create and implement placeholder for ID_WORLD_OBJECT_CREATION
8 years ago
David Cernat
ac666edebd
Add a CellRef to WorldEvent
8 years ago
David Cernat
b2845cd17c
Create and start using WorldEvent class
8 years ago
David Cernat
285f89573d
Create placeholders for WorldPacket classes
8 years ago
David Cernat
790d41e278
Move PlayerPackets into their own subfolder
8 years ago
David Cernat
d99463d752
Fix show-stopping mistake in PlayerPacket
8 years ago
David Cernat
5e0c0dd5f1
Use logger in server's Networking MainLoop
8 years ago
David Cernat
fcc793a0af
Create a new BasePacket that PlayerPacket inherits from
8 years ago
David Cernat
b8f4cb94fb
Rename BasePacket into PlayerPacket
8 years ago
David Cernat
6650b74498
Add handling of skill increases
8 years ago
David Cernat
a0e9a672a5
Split updateClassStats in 3 and add handling of level progress
8 years ago
David Cernat
bc0aa86bcf
Make variable names more consistent and easier to understand
8 years ago
David Cernat
433190d82e
Rename OnPlayerUpdateEquiped into OnPlayerChangeEquipment
8 years ago
David Cernat
b6086ab015
Rename ID_GAME_DYNAMICSTATS_CURRENT into ID_GAME_DYNAMICSTATS
8 years ago
David Cernat
b65deca2ae
Remove unused PacketRotation and PacketCreateProjectile
8 years ago
David Cernat
57f07813b0
Rename ID_GAME_UPDATE_POS into ID_GAME_POS
8 years ago
David Cernat
26487598a6
Rename ID_GAME_UPDATE_EQUIPED into ID_GAME_EQUIPMENT
8 years ago
David Cernat
ce4b326b02
Rename ID_GAME_UPDATE_BASESTATS into ID_GAME_DYNAMICSTATS_CURRENT
8 years ago
David Cernat
4d7130b12f
Improve logic for script-induced cell changes
8 years ago
David Cernat
046a1ea899
Add packet for player levels
8 years ago
David Cernat
3e2fec973d
Remove leftover variable
8 years ago
Koncord
fe370fa995
Add PacketLoaded
8 years ago
Koncord
5eaad1b92e
again fix headerSize
8 years ago
David Cernat
81999a8179
Remove outdated ID_GAME_UPDATE_SKILLS packet, part 2
8 years ago
David Cernat
8abef0bebe
Remove outdated ID_GAME_UPDATE_SKILLS packet
8 years ago
David Cernat
970e9aff2f
Remove old class methods and don't include class in ID_GAME_BASE_INFO
8 years ago
David Cernat
a20e7890a2
Fix formatting
8 years ago
Koncord
cf1a0113a1
Time API
8 years ago
Koncord
3405e36ce4
Woops part 2
8 years ago
Koncord
118ab32c9b
Woops
8 years ago
Koncord
a661de2a84
PacketClass
8 years ago
Koncord
554810fbeb
Removed redundant const in headerSize()
8 years ago
David Cernat
8eda381016
Make formatting consistent, part 2
9 years ago
Koncord
32a2327f59
fix header size
9 years ago
Koncord
1022b6b27c
Fix a header size
9 years ago
Koncord
7898b1181d
Reduced package size
9 years ago
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"))
9 years ago
Koncord
1e3eff91ac
Merged branch tes3mp-gui into tes3mp-gui
9 years ago
Koncord
9ab77cb123
New API functions: MessageBox, CustomMessageBox, InputDialog
...
New Callback: OnGUIAction
9 years ago
Stanislav Zhukov
917fa63f5c
Fixed security issue
9 years ago
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.
9 years ago
Koncord
1b259e2d33
Syncing inventory, animations, position, 8 key attributes
...
Created Package system
9 years ago