David Cernat
b3b73c5cd2
[General] Implement resurrection at nearest shrine or temple
8 years ago
David Cernat
78f29302ef
[General] Fix PlayerJournal logic by sending only refIds for its actors
...
Additionally, make the refIds for actors usable in script functions.
8 years ago
David Cernat
ebf7740969
[General] Repurpose GameConsole packet as GameSettings & add difficulty to it
8 years ago
David Cernat
70d9374a6a
[General] Implement PlayerKillCount packets
8 years ago
David Cernat
ee5c9b65c5
[General] When changing region, send new region name in PlayerCellChange
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
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
David Cernat
11369f6513
[General] Implement sending and reading of PlayerTopic 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
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
cc559cf8e2
[General] Don't send packets for dead LocalActors, to fix Position spam
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
1a699329e5
[General] Set new BaseActor booleans in corresponding packets
8 years ago
David Cernat
730df061b3
[General] Add hasPositionData and hasStatsDynamicData bools to BaseActor
8 years ago
David Cernat
e8e0090b9b
[General] Use new SimpleCreatureStats struct in BaseActor
8 years ago
Koncord
465a05bad0
[Client] Add ability to look like a creature for the DedicatedPlayers
8 years ago
David Cernat
f2e8e14665
[General] Add shouldSend boolean to mwmp::Attack
8 years ago
David Cernat
cc2250815d
[General] Add packet data for attacks on and by Actors
8 years ago
David Cernat
b1a394cd02
[General] Change chars into bools in mwmp::Attack for clarity
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
2397afc6ce
[General] Move mwmp::Attack to BaseStructs
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
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
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
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
b6c3830ea0
[General] Rename WorldObject's pos into position for consistency
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
4f3d05eed2
[General] Add ActorList class
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
d24cde16dd
[General] Add simple BaseActor and LocalActor classes
8 years ago
David Cernat
2bd81c3de0
[Client] Use mpNum for every WorldObject
8 years ago
David Cernat
8cc61b6048
[General] Generate mpNums on the server when forwarding ID_OBJECT_PLACE
8 years ago
Koncord
1d2a6d9056
[Server] Rename dontRead to avoidReading
8 years ago
Koncord
4daf471874
[General] Add dontRead flag
8 years ago
Koncord
48a59cf9e9
[General] Add new class BasePacketProcessor
8 years ago
David Cernat
e6bc7ad463
[General] Make all flying players fly correctly, including TCL users
8 years ago
Koncord
059043fea9
[General] Change signature of BaseEvent::action
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
3b604a432e
[General] Restructure ID_CONTAINER to allow multiple containers at once
8 years ago
David Cernat
c8cbfbef62
[General] Sketch out server requests to players for container data
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
60d6a6d463
[Client] See when other players remove items from containers
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
c1427b2558
[General] Simultaneously send loads & unloads in ID_PLAYER_CELL_STATE
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
97aabf4a7d
[General] Sketch out sending of cell loading/unloading info in packets
8 years ago
David Cernat
63c8a98083
[General] Stop using virtual functions in BasePlayer
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
e2c595fc5d
Add preliminary structure for journal changes
8 years ago
David Cernat
83277a1512
Send spellbook in LocalPlayer CharGen & change UPDATE action name to SET
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
David Cernat
78c6ab2a99
Clean up client Networking by putting item & spell logic in LocalPlayer
8 years ago
Koncord
7595b33461
Implement spellbook
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
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
David Cernat
f7b5e5e638
Ignore packets from server that try to move LocalPlayer to invalid cells
8 years ago
Koncord
56959ebfda
Implement magic
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
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
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
54ed9a7ab4
Implement ID_OBJECT_MOVE and send it from ingame scripts
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
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
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
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
2b98e349ce
Fix include for WorldEvent
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
92463c4a03
Fix Windows server crash caused by printing event->CellRef()->mRefID
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
bc0aa86bcf
Make variable names more consistent and easier to understand
8 years ago
Koncord
cf1a0113a1
Time API
8 years ago
Koncord
3405e36ce4
Woops part 2
8 years ago
David Cernat
8eda381016
Make formatting consistent, part 2
9 years ago
Koncord
9ab77cb123
New API functions: MessageBox, CustomMessageBox, InputDialog
...
New Callback: OnGUIAction
9 years ago
Koncord
1b259e2d33
Syncing inventory, animations, position, 8 key attributes
...
Created Package system
9 years ago