David Cernat
29be79e852
[General] Switch RakNet enums to CrabNet enums
...
CrabNet is TES3MP's fork of RakNet that has deviated too far from RakNet to still be compatible with it.
2018-06-19 00:37:52 +03:00
David Cernat
72862dc255
[General] Turn PlayerMap into WorldMap, now a Worldstate packet
2018-06-07 12:51:45 +03:00
David Cernat
0d0c4ac235
[Client] Use REPLY_TO_REQUEST container sub-action for partial requests
2018-06-05 19:40:39 +03:00
David Cernat
83014d6381
[Client] Set actors as the owners of their items when editing containers
2018-06-05 14:55:57 +03:00
David Cernat
494edbe5cb
[General] Add REPLY_TO_REQUEST container sub-action
2018-06-05 14:16:27 +03:00
David Cernat
8ea9485e6b
[Client] Make container debug information more useful
2018-06-05 12:01:16 +03:00
David Cernat
3efe05a88e
[General] Implement WorldCollisionOverride packet
2018-05-27 16:05:40 +03:00
David Cernat
e8ec031a81
[Client] Create Worldstate class that inherits BaseWorldstate
2018-05-27 15:57:47 +03:00
David Cernat
f7a084c824
[Client] Use faster check for whether actors are DedicatedPlayers
2018-05-26 08:13:26 +03:00
David Cernat
416ee77639
[General] Add placeholder for WorldCollisionOverride packet
2018-05-25 07:09:32 +03:00
David Cernat
2edb511a0b
[Client] Remove unnecessary condition from WorldTime processor
2018-05-25 07:08:51 +03:00
David Cernat
3b5fb9cd6b
[General] Make it possible to set year via WorldTime
2018-05-25 03:33:12 +03:00
David Cernat
4acf93b7db
[General] Make it possible to set days passed via WorldTime
2018-05-24 14:02:04 +03:00
David Cernat
46744ee90f
[General] Make WorldTime script functions more consistent with others
2018-05-24 09:38:06 +03:00
David Cernat
8d36d0d945
[General] Make it possible to change world's time scale via WorldTime
2018-05-23 08:31:25 +03:00
David Cernat
0be6de6607
[General] Turn RecordDynamic into a Worldstate packet
2018-05-23 07:48:28 +03:00
David Cernat
da66face25
[General] Rename GameTime packet into WorldTime
2018-05-23 00:41:29 +03:00
David Cernat
5af1150ab2
[General] Turn GameTime into a Worldstate packet
2018-05-21 07:14:08 +03:00
David Cernat
e87e1dbb30
[General] Fix Worldstate packets by adding missing lines
2018-05-21 07:12:55 +03:00
David Cernat
43a944ddaf
[General] Add and implement new Worldstate packet type
2018-05-18 06:40:28 +03:00
David Cernat
049d0d9ba7
[General] Fix remaining references to world packets/events
2018-05-17 00:08:37 +03:00
David Cernat
51698bed48
[Client] Rename WorldProcessor into ObjectProcessor
2018-05-15 22:56:47 +03:00
David Cernat
78234f9071
[General] Rename Event into ObjectList & WorldObject into BaseObject
2018-05-13 00:42:24 +03:00
David Cernat
6bf3a0be1e
[General] Rename WorldPackets into ObjectPackets for clarity
2018-05-12 19:40:00 +03:00
David Cernat
77389538e8
[General] Implement ActorAI packet, part 1
...
The server can now make actors become followers of players or other actors.
2018-05-12 06:29:11 +03:00
David Cernat
7f00005f04
[Client] Fix GCC build
...
Based on 71040659ac
2018-05-10 07:16:33 +03:00
David Cernat
715012f087
[General] Implement sending of image data for map tiles in PlayerMap
2018-05-08 05:57:04 +03:00
David Cernat
df0f9b0f5e
[Client] Require a certain Skill progress amount before sending packet
2018-05-01 19:34:21 +03:00
David Cernat
1b1e5e86d1
[Client] Avoid sending CellStates to server after initialization
...
Although b4e8560698
made players instantly able to see each other on minimalist servers that did not change their cells from the default, it created problems with the default CoreScripts where players need to be logged in before receipt of a CellStates packet from them is taken into account, with the result being that a player was recorded as having loaded their initial cells on the server's C++ side but not on the Lua side.
It may simply be best to expect servers to set player cells.
2018-05-01 18:19:52 +03:00
David Cernat
099f85be0a
[General] Implement PlayerMomentum packet & associated script functions
2018-04-29 23:47:17 +03:00
David Cernat
4b501a39f4
[General] Implement DoorDestination packet & associated script functions
2018-04-29 22:32:22 +03:00
David Cernat
3b07dc4b42
[Client] Send equipment packets whenever an item charge or count changes
...
Since the beginnings of TES3MP, equipment packets have only been sent whenever an item has been replaced by an item with a different refId, with changes in an item's charge or count not sending a packet (but being included in the next packet sent as a result of a refId change). The reason for this was ostensibly the fact that every single equipment packet always included the details for all 19 equipment items (as per Koncord's original design decision), which would have led to massive packet spam if such a packet was sent every time you shot an arrow or lost a little bit of your armor's condition.
With minimalist equipment packets, it is now viable to send equipment packets whenever any item changes in some way, by having the equipment packet contain only that one item.
2018-04-29 05:40:42 +03:00
David Cernat
399e049d87
[Client] Fix logic for minimal size packets in LocalPlayer
...
Previously, the index changes were not cleared at the start of their corresponding update functions, which in turn meant that an Attribute/Skill/StatsDynamic/Equipment packet received by a player from the server made that player send back the same packet, as the index changes from it were retained.
Additionally, exchangeFullInfo was not set to false, thus sometimes leading to constant full exchanges of information.
2018-04-27 03:45:17 +03:00
David Cernat
608dcbafe6
[Client] Fix skill updates for LocalPlayer partially broken by 78441c769a
2018-04-22 11:22:36 +03:00
David Cernat
a541d7df3c
[General] Rework PlayerStatsDynamic packets so they are of minimal size
...
(cherry picked from commit fc5e883160
)
2018-04-21 00:43:49 +03:00
David Cernat
b9520c11da
[General] Rework PlayerEquipment packets so they are of minimal size
...
Moreover, rename BaseNetCreature's equipedItems into equipmentItems.
(cherry picked from commit d1ad0c91f8
)
2018-04-20 22:46:16 +03:00
David Cernat
c5b08d6109
[General] Simplify storing of attribute and skill index changes
...
(cherry picked from commit bd9e8bd10f
)
2018-04-19 23:28:03 +03:00
David Cernat
2c77d5f498
[General] Set enforcedLogLevel to -1 when initializing BasePlayer
2018-04-19 20:42:27 +03:00
David Cernat
b6099024df
[General] Rework PlayerAttribute packets so they are of minimal size
...
Previously, whenever a single attribute value changed for a player, that player then sent a PlayerAttribute packet with all values for all 8 attributes.
This did not cause anywhere as much packet spam as PlayerSkill used to, but there was no good reason not to fix it as well.
(cherry picked from commit b0965f094a
)
2018-04-19 17:26:20 +03:00
David Cernat
78441c769a
[General] Rework PlayerSkill packets so they are of minimal size
...
Previously, whenever a single skill value changed for a player, that player then sent a PlayerSkill packet with all values for all 27 skills, plus the player's progress towards the next level and the bonuses to each attribute on the next level up as the result of sklll increases thus far.
This commit makes PlayerSkill contain only the values of specific skills, moves the player's progress towards the next level to PlayerLevel packets, and moves the bonuses to each attribute on the next level up to PlayerAttribute packets.
Players now also send a PlayerSkill packet whenever their progress towards a new point in a skill changes. This was previously avoided so as to not have massive packet spam.
(cherry picked from commit ef79a98544
)
2018-04-19 15:18:38 +03:00
David Cernat
af4fcb7261
[Client] Don't force skill update on cell change
...
Previously, an attempt by the server to simultaneously change a player's cell and skills (as you'd expect when a player file is loaded) led to:
1) The server sending the cell packet first and the skill packet afterwards
2) The player receiving the cell packet and sending their own skill packet as part of the client's forced skill update
3) The player receiving the skill packet from the server
4) The server receiving the skill packet from the player
The result was that, if the player then left the server without sending another skill packet, the server's memory retained the skills the player had sent instead of the skills it had sent to the player.
This is the first step in a solution to that situation and similar ones.
(cherry picked from commit cac4684986
)
Note: In 0.6.x, this was only a problem if a player's cell was set by the server first and their skills were set next, i.e. this was not a problem in the default CoreScripts because the opposite order used there masked the problem. It was a more significant problem in 0.7 because all packets were queued for a player and sent in a specific hardcoded order.
2018-04-19 14:22:14 +03:00
David Cernat
28f1c1b0d3
[General] Rework CharGen slightly for clarity purposes
...
Previously, charGenStage.end was doing double duty as both the variable indicating the number of CharGen stages and – when set to 0 – the variable indicating that CharGen was over. The latter role is now filled by a new boolean.
(cherry picked from commit 926106cf8c
)
2018-04-19 13:25:29 +03:00
David Cernat
9d46de88e0
[Client] Send cell states correctly after inputting name
...
Previously, initial cell states were sent in LocalPlayer::processCharGen() and were ignored by the server because the player was not yet regarded as loaded. The result was that existing players logging in could not see each other until they went through at least one cell change.
(cherry picked from commit b4e8560698
)
# Conflicts:
# apps/openmw/mwmp/LocalPlayer.cpp
2018-04-18 20:30:48 +03:00
David Cernat
50fe54af5d
[Client] Update DedicatedPlayer creature if displayCreatureName changes
2018-04-17 15:23:10 +03:00
David Cernat
a01fc577f1
[Client] Add setAttributes() and setSkills() methods to DedicatedPlayer
2018-04-13 16:59:48 +03:00
David Cernat
716809f2db
[Client] Prevent errors from NPC-only packets for DedicatedPlayers
2018-04-13 16:23:42 +03:00
David Cernat
68ee64902d
[Client] Track & use previous race & creatureRefId for DedicatedPlayers
2018-04-13 16:16:43 +03:00
David Cernat
acb1335d78
[Client] Make creature disguises update correctly
2018-04-13 11:30:38 +03:00
David Cernat
70f9cb535e
[General] Use RecordHelper methods to create and update DedicatedPlayers
2018-04-13 08:37:06 +03:00
David Cernat
9d27f5f154
[Client] Create RecordHelper class with initial NPC and creature methods
2018-04-12 14:18:19 +03:00
David Cernat
9697595857
[Client] Don't equip already equipped items in local setEquipment()
...
This avoids the following error when receiving repeated PlayerBaseInfo packets: "Error in frame: Invalid slot, make sure you are not calling RefData::setCount for a container object"
Additionally, only re-equip items as the result of a PlayerBaseInfo packet if resetStats is true (because of its side effect of auto-equipping items for the player).
2018-04-10 19:02:55 +03:00
David Cernat
72463cfdb6
[Client] Refresh equipment for DedicatedPlayers when setting base info
...
Additionally, move default fatigue value to DedicatedPlayer initialization.
2018-04-10 19:02:55 +03:00
David Cernat
73dea494c4
[General] Allow changes from PlayerBaseInfo without player stat reset
2018-04-09 19:21:19 +03:00
David Cernat
c132dc70d2
[Client] Make PlayerShapeshift turn DedicatedPlayers into creatures
2018-04-09 15:23:05 +03:00
David Cernat
141eb8b7c2
[Client] Streamline creation of references for DedicatedPlayers
...
Additionally, delete DedicatedPlayers who disconnect.
Previously, all disconnected DedicatedPlayers were still kept in memory, but never used again. There was code that suggested they were meant to be reused upon reconnecting, but that reuse had never actually been implemented, and would probably not be that useful anyway.
2018-04-08 15:02:43 +03:00
David Cernat
14f90e773d
[Client] Split up creation of DedicatedPlayers into multiple methods
...
Additionally, print player guids using their string representations for consistency.
The creation and updating of DedicatedPlayer references remains very inelegant, but this commit is the first step towards fixing that.
2018-04-08 10:56:33 +03:00
David Cernat
c8abd11f5d
[General] Move creature disguises for players to PlayerShapeshift packet
...
Additionally, make associated variables clearer, and move associated server script functions next to other shapeshifting functions.
2018-04-05 15:42:06 +03:00
David Cernat
34be9383e5
[General] Add isPlayer boolean to targets in packets
2018-04-05 12:48:53 +03:00
David Cernat
0eed05610b
[Client] Fix autoequipping for creatures in WorldEvent::editContainers()
2018-04-03 15:22:51 +03:00
David Cernat
a86c68c5a1
[General] Add sync for ranged weapon & projectile strike enchantments
2018-04-03 14:12:27 +03:00
David Cernat
3f8d94b030
[General] Synchronize strike enchantments in combat
2018-04-03 10:27:02 +03:00
David Cernat
26a56d6a02
[Client] Include NPC/creature containers when adding all cell containers
2018-04-01 14:58:04 +03:00
David Cernat
1e3c4fd488
[Client] Fix ProcessorContainer typos caused by careless copy-pasting
2018-04-01 10:47:57 +03:00
David Cernat
f80f3bd484
[Client] Make it possible to reply to requests about specific containers
...
Previously, a Container packet with a REQUEST action always made the client respond with the contents of all the containers in that cell.
The previous behavior now only happens for requests that have no WorldObjects attached, while requests that have WorldObjects attached get a reply with the contents of those specific containers.
2018-04-01 10:00:39 +03:00
David Cernat
258e319acb
[Client] Require InventoryStore for autoequipping actors
2018-04-01 09:02:26 +03:00
David Cernat
afe8c97cb9
[Client] Require InventoryStore for unequipping actors in editContainers
2018-04-01 08:41:57 +03:00
David Cernat
d8b48f6cf4
[Client] Remove redundant container methods from CellController
2018-04-01 07:11:43 +03:00
David Cernat
5f6ddcfc59
[General] Rework container sync to prevent item duping
...
A main priority in TES3MP development is to avoid making major changes to OpenMW code, so as to avoid merge conflicts in the future. Whenever avoiding potential conflicts seems especially difficult for the proper implementation of a particular multiplayer feature, that multiplayer feature is often put off until later or partially implemented with the intent of being revisited in the future.
Container sync is the perfect example. Previously, the OpenMW code for container actions was kept exactly as it was, with clients unilaterally accepting their own container changes as per singleplayer-specific code, with only the addition that clients sent container packets every time they made a change in a container, packets which were then forwarded unquestioningly by the server to other players. This meant that two players clicking on the same item in a container at the same time both managed to take it, thus duplicating the item.
Immediately after the packets were already forwarded, server scripts were able to check for incorrect changes, such as the removal of more items than should have existed in a container, but they had to send their own packets that attempted to fix what had already been accepted on the initial client and then forwarded to all clients, which was quite onerous in some scenarios, such as when a player on a slow connection immediately dropped items in the world after taking them from a container (which is why the default TES3MP serverside scripts made no attempt at sending corrective packets at all, preferring to expect the matter to be solved in a later C++ implementation).
This commit fixes item duping in containers by preventing container actions from initially running on clients and by ending the automatic forwarding of container packets by the server. Instead, clients now send container packets that act as requests for container actions, and serverside scripts have to forward these requests themselves. In other words, without a matching Container event in the server's Lua scripts, players are completely unable to affect containers for themselves or for others.
To forward a received Container packet, the following line must be used in a Container event in the Lua scripts:
tes3mp.SendContainer(true, true)
When an invalid action count is used in a container request, the serverside scripts can amend it using the following new function:
tes3mp.SetReceivedContainerItemActionCount(objectIndex, itemIndex, actionCount)
Thus, the serverside scripts are able to allow only container actions that are correct based on their own recorded contents for that container.
The OpenMW code allowing unilateral container actions in mwgui/container.cpp is now prevented from executing. When a player's container request is returned to them, code in mwmp/WorldEvent.cpp simulates those container actions instead.
2018-03-26 19:27:36 +03:00
David Cernat
9165b12d78
[Client] Update inventory views when receiving inventory or equipment
2018-03-26 10:01:26 +03:00
David Cernat
bbdc30628b
[Client] Use the correct guid for a received WorldEvent or ActorList
2018-03-21 06:08:04 +02:00
David Cernat
14f0299322
[Client] Don't log InputBox inputs for client
2018-03-20 06:41:04 +02:00
David Cernat
20caea083a
[Client] Use correct count for items in equipment packets
...
Previously, throwing weapon sync was completely broken for players, as the count for their equipped throwing weapons was never set and – as a result – defaulted to a count of 1 on other clients. As a result, any time a player threw a dart, they would then appear as having switched to hand-to-hand for other players.
Moreover, the count of equipped items was mistakenly based on the total count of items with that refId in the inventory. As a result, if – for example – I equipped 1 Daedric Longsword and had 4 others in my inventory, my DedicatedPlayer on other clients would equip a Daedric Longsword with a count of 5. If I was overencumbered by having that many Daedric Longswords on me and then dropped 4 of them, allowing myself to move again, my DedicatedPlayer would still walk around with 5 Daedric Longswords and lack animations due to still being overencumbered on the other clients.
These problems were less prevalent for actors, but their equipment updating code has also been changed to match that of players.
2018-03-12 23:31:37 +02:00
David Cernat
b249162ca1
[General] Implement setting of enforced client log level in GameSettings
...
Certain servers do not want the players to have debug information about the locations and actions of other players, so a client's log level can now be enforced by the server via the GameSettings packet.
2018-03-11 04:50:59 +02:00
David Cernat
a3a341fee6
[Server] Reimplement 4ebfcc4a21
for 0.6
2018-03-10 22:19:44 +02:00
David Cernat
03266d7648
[Client] Prevent guards from arresting players who are currently jailed
2018-02-25 21:33:04 +02:00
David Cernat
60f686ee43
[General] Implement setting of physics framerate as part of GameSettings
2018-02-14 05:53:44 +02:00
David Cernat
886b3431bc
[Client] When resurrecting players, set pcknownwerewolf to 0
...
This makes it so players are no longer known werewolves and are no longer attacked infinitely by guards.
2018-02-13 21:55:10 +02:00
David Cernat
74765b3ace
[General] Implement selected spell sync as part of PlayerMiscellaneous
2018-02-06 06:36:46 +02:00
David Cernat
029dfc56ba
[General] Implement player scale as part of PlayerShapeshift
2018-02-01 02:11:45 +02:00
David Cernat
aa448523f8
[Client] Clean up WorldEvent::runConsoleCommands() slightly
2018-01-31 23:23:52 +02:00
David Cernat
ce5670e57e
[Client] Ignore invalid object refIds from ObjectPlace packets
2018-01-31 18:51:53 +02:00
David Cernat
66078bfea7
[General] Implement Mark location sync as part of PlayerMiscellaneous
2018-01-31 04:50:29 +02:00
David Cernat
989f6e6b51
[General] Implement PlayerReputation packet
2018-01-30 22:55:29 +02:00
David Cernat
3d80e2db62
[General] Add placeholders for new packet types, part 2
2018-01-30 16:01:33 +02:00
David Cernat
02af7f6ba1
[General] Add placeholders for new packet types
2018-01-29 22:32:51 +02:00
David Cernat
ce11a1dfa9
[Client] Fix potential invalid pointer when storing cell unloads
...
Notably, builds of the client done with Clang were crashing on startup before this.
2018-01-29 00:14:26 +02:00
David Cernat
420dab10e1
[General] Track objects directly placed by players in ObjectPlace
...
This allows the OnPCDrop variable to get set correctly even when object placements have to go through the server first in order to gain a unique multiplayer index (mpNum).
Among other things, this makes it possible to roll marijuana joints in the popular mod "Tribunal Code Patch".
2018-01-28 17:46:51 +02:00
David Cernat
d7e29f1f61
[Client] Unequip items with constant effect damage when resurrected
2018-01-27 20:19:39 +02:00
David Cernat
d19d8b0a34
[Client] Add and use enchantmentType argument for unequipItemsByEffect()
2018-01-27 19:37:16 +02:00
David Cernat
6c4bb8c423
[Client] Move resurrection code for local player to LocalPlayer
2018-01-27 19:09:55 +02:00
David Cernat
6b75a82777
[Client] Ignore equipment items for DedicatedActors with count below 0
2018-01-27 18:08:45 +02:00
David Cernat
e3bc11d9eb
[Client] Fix ListBox overlap crashes by removing ListBoxes properly
2018-01-27 15:41:11 +02:00
David Cernat
c6a85ee8f9
[Client] Add doesEffectListContainEffect() method to MechanicsHelper
2018-01-26 03:18:01 +02:00
David Cernat
aa392ebf20
[Client] Unequip items if necessary when attr/skill modifier is set to 0
2018-01-26 00:45:39 +02:00
David Cernat
ace825b99c
[Client] Ignore invalid player class IDs from packets
...
Additionally, clean up variables names in related code.
2018-01-24 02:47:56 +02:00
David Cernat
c6874509b6
[Client] Ignore invalid faction IDs from packets
2018-01-24 02:25:44 +02:00
David Cernat
5894ffae7d
[Client] Ignore dynamic object placements or spawns in packets
2018-01-17 11:01:31 +02:00
David Cernat
bce3d0eb4c
[Client] Use more descriptive message for version mismatch
2018-01-17 08:10:49 +02:00
David Cernat
09548d05f7
[Client] Ignore cell changes that move actors to where they already are
2018-01-08 01:37:01 +02:00
David Cernat
4a9a628a0f
[Client] When getting an actor, make sure their cell is initialized
2018-01-07 02:35:30 +02:00
David Cernat
0cc86c04d1
[Client] Print plugin discrepancies, not just plugin lists side by side
2018-01-06 05:39:25 +02:00
David Cernat
a639d3494a
[Client] Fix use of DedicatedPlayers as targets for ConsoleCommand
2018-01-05 01:24:15 +02:00
David Cernat
502df7d9c1
[Client] Clean up GUIChat slightly
2018-01-05 00:03:05 +02:00
David Cernat
db0e0d376e
[Client] Use new code to set the console's Ptrs from server scripts
...
Previously, reusing the console's object selection code made it so using the same Ptr twice in a row was akin to clicking on the same object twice in the console window, i.e. the object was deselected the second time around. Additionally, that same code was setting key focus to the hidden console window, preventing players from moving until they activated another window (such as their inventory or chat window).
2017-12-26 15:04:28 +02:00
David Cernat
5fd9079b26
[Client] Stop drag and drop when setting player inventory
2017-12-25 05:41:13 +02:00
David Cernat
40e70ebf9c
[Client] Fix key focus for chat window
2017-12-25 05:08:36 +02:00
David Cernat
bed96e5a3d
[Client] Remove check of GM_RestBed GUI mode that no longer exists
2017-12-25 03:26:28 +02:00
David Cernat
cac2c6c1e8
Merge pull request #360 from TES3MP/0.6.1-openmw-updates while resolving conflicts
2017-12-25 02:25:01 +02:00
David Cernat
993081ba1e
[General] Add enchantmentCharge to worldObjects and items
2017-12-23 13:16:38 +02:00
David Cernat
fef6bddc68
[Client] Fix typo related to drag and dropping
2017-12-16 23:19:54 +02:00
David Cernat
535fba0cb3
[Client] Finish drag and drops when arrested or teleported by server
2017-12-16 07:21:02 +02:00
David Cernat
e97c9f72a2
[General] Rework getting/clearing of skill modifiers as with attributes
2017-12-04 15:06:27 +02:00
David Cernat
047ad40b96
[Client] Clear FortifyAttribute effects when server sets modifier to 0
2017-12-02 09:22:36 +02:00
David Cernat
ef6dc61797
[Client] Send PlayerAttribute packets when attribute modifiers change
2017-11-30 23:03:34 +02:00
David Cernat
c9c363ebef
[General] Allow GameSettings to set bed & wilderness resting separately
2017-11-30 12:18:15 +02:00
David Cernat
3508a16836
[General] Use GameSettings packet to set ability to rest and wait
2017-11-27 07:39:02 +02:00
David Cernat
6668b9ab42
[General] Implement ConsoleCommand packet
2017-11-23 00:21:47 +02:00
David Cernat
2ca4017371
[Client] Force position updates for players in animations
2017-11-01 22:00:54 +02:00
David Cernat
be25decee2
[General] Implement PlayerSpeech packet
2017-10-31 15:19:14 +02:00
David Cernat
605b06c303
[General] Find actor speech captions instead of sending them in packets
2017-10-30 11:06:09 +02:00
David Cernat
413893aa51
[General] Implement PlayerAnimPlay packet
2017-10-27 09:10:29 +03:00
David Cernat
50d5fffb7f
[General] Add and implement PlayerQuickKeys packet
2017-10-25 07:21:00 +03:00
David Cernat
c35101cc36
[Client] Don't use message box call boolean for regular message boxes
2017-10-10 04:11:36 +03:00
David Cernat
4f112ba3d7
[Client] Use regular message boxes where expected to do so
...
This helps us move towards using the same terminology as OpenMW for GUI elements, leading to less confusion.
2017-10-10 04:05:36 +03:00
David Cernat
08f34e5356
[Client] Fix recent problems with password window
2017-10-08 02:42:41 +03:00
David Cernat
711c4d83da
[Client] Fix build after recent OpenMW changes to GUI
2017-10-07 23:33:36 +03:00
David Cernat
b94c0a9991
[Client] Don't send Attribute & Skill packets as werewolf, part 2
2017-09-04 20:21:06 +03:00
David Cernat
8c9d6a0160
[Client] Ensure that LocalPlayer's isWerewolf starts out false
2017-09-04 15:44:10 +03:00
David Cernat
ccb15cc09e
[Client] When players die, make guards willing to arrest them again
2017-09-04 15:13:05 +03:00
David Cernat
ac3254d85f
[General] Don't send PlayerAttribute and PlayerSkill packets as werewolf
...
This will prevent the server from overwriting a player's human form stats with their werewolf form stats.
Additionally, share PlayerShapeshift packets last when exchanging data with another player.
2017-08-31 18:21:38 +03:00
David Cernat
93d1aa2e4a
[Client] Comment out the broken sending of custom spells until 0.7.0
2017-08-31 17:07:45 +03:00
David Cernat
98a7769b91
Merge branch 'master' into 0.6.0
2017-08-31 15:44:27 +03:00
Koncord
54f5104345
[General] Escape format for strings
2017-08-31 20:09:05 +08:00
David Cernat
cca4991e74
[Utils] Use consistent names for utility functions added by tes3mp
2017-08-31 10:12:22 +03:00
David Cernat
cf4021a7b5
[Client] Only add valid quests to journal
2017-08-31 09:08:29 +03:00
David Cernat
134dd06d48
[Client] Only add valid inventory & equipment items to LocalPlayer
...
Also add related debug information.
2017-08-31 08:35:46 +03:00
David Cernat
c3d1eada89
[Client] Only add spells to players that are ensured to exist
2017-08-31 06:42:11 +03:00
David Cernat
2597f018d2
Merge pull request #272 from TES3MP/0.6.0
...
Add hotfix commits for 0.6.0 up to 23 Aug 2017
2017-08-23 07:22:29 +03:00
David Cernat
8f543fb34e
[Client] Use less exploitable way of disabling console
...
Previously, large framerate drops allowed players to open and use the console for short periods of time.
2017-08-23 04:58:07 +03:00
David Cernat
77ce05b7d6
[Client] Fix spell casting probability synchronization
2017-08-06 00:11:54 +03:00
David Cernat
0e2038f045
[General] Record and get player positions before their last cell change
2017-08-04 21:45:52 +03:00
David Cernat
fbec0d9443
[Client] Remove inertia from players who are teleported via a packet
2017-08-04 21:43:01 +03:00
Unknown
bfbfbeac43
Added networking and saving for custom spells
2017-07-31 03:45:47 +10:00
David Cernat
4db64e1721
[Client] Synchronize spellcasting for non-bipedal creatures
2017-07-28 20:49:26 +03:00
David Cernat
9d05063af4
[General] Add server script functions for banning & unbanning IPs
...
Additionally, use a more informative message for the client when trying to connecting to a server that it is banned from.
2017-07-27 19:29:17 +03:00
David Cernat
796118c266
[Client] Send StatsDynamic packets more often
2017-07-26 20:15:35 +03:00
David Cernat
43a3daf0aa
[General] Add & implement PlayerShapeshift packet for werewolf states
2017-07-15 09:02:19 +03:00
David Cernat
ad9fa0631a
[General] Rename jailText to jailEndText and add jailProgressText in PlayerJail
2017-07-13 20:13:28 +03:00
David Cernat
708d3723eb
[Client] Fix client script messagebox buttons that had always broken in tes3mp
2017-07-13 18:58:48 +03:00
David Cernat
e36c0afc59
[General] Send faction reputation via PlayerFaction packets
2017-07-13 13:36:00 +03:00
David Cernat
be93ec8ef6
[General] Implement ObjectState packet
2017-07-13 09:46:30 +03:00
David Cernat
083b46394d
[General] Add ignoreJailSkillIncreases to PlayerJail packets
2017-07-12 18:24:37 +03:00
David Cernat
5962570c48
[General] Add jailText to PlayerJail packets
2017-07-12 16:39:31 +03:00
David Cernat
5774023f8b
[Client] Add missing processor initialization for ProcessorPlayerJail
2017-07-11 14:31:32 +03:00
David Cernat
3280f0c5ee
[General] Implement PlayerJail packet
...
Rework server's DeathFunctions into MechanicsFunctions
Remove connection between PlayerResurrect and jailing
2017-07-11 13:34:09 +03:00
David Cernat
3529f9b090
[General] Add placeholders for PlayerJail, ObjectState & ConsoleCommand
2017-07-10 12:33:53 +03:00
David Cernat
4e74910fdb
[General] Disable automatic sync for PlayerJournal and PlayerFaction
...
Simplify PlayerFaction packets by removing BOTH action
2017-07-08 12:27:48 +03:00
David Cernat
1d504a665f
[General] Add RANK, EXPULSION and BOTH actions to PlayerFaction packets
2017-07-05 07:06:33 +03:00
Koncord
9bb586de77
[Client] Simplify setMapExplored()
2017-07-03 23:43:32 +08:00
Koncord
52349278e9
[Client] Fix warnings
2017-07-03 23:41:16 +08:00
Koncord
b2339f2f9a
[Client] Fix building
2017-07-03 23:40:38 +08:00
David Cernat
60574ae667
[General] Implement jail time as a death penalty
2017-07-03 15:45:21 +03:00
David Cernat
71313c5aa6
[General] Implement PlayerMap packet, part 1
2017-07-03 09:28:27 +03:00
David Cernat
c899525e30
[General] Use address keys with clearer meaning in tes3mp config files
2017-07-03 01:31:48 +03:00
David Cernat
1f682749d6
[General] Add optional notes to PasswordDialogs
2017-07-02 13:07:36 +03:00
Koncord
73cf134107
[General] Fix incoming password string
2017-07-02 11:11:33 +08:00
Koncord
0cf09adb44
[General] Move AddProcessor to BasePacketProcessor
2017-06-30 20:09:05 +08:00
Koncord
9519c467eb
[Client] Simplify updateEquipment for LocalPlayer & LocalActor
2017-06-29 14:52:23 +08:00
Koncord
596f42e408
[Client] Fix "invalid iterator" error
2017-06-29 14:36:56 +08:00
Koncord
5b2cab4c6b
[General] Change NULL to nullptr
2017-06-27 22:49:28 +08:00
Koncord
0ed0d2417b
[Client] Make foreach style consistent with other
2017-06-27 22:27:02 +08:00
Koncord
2427a4f877
[Client] Update DedicatedActor to C++11
2017-06-27 22:25:39 +08:00
Koncord
8f7da49152
[Client] Update DedicatedPlayer to C++11
2017-06-27 22:25:29 +08:00
Koncord
08666cabdb
[Client] Update PlayerList to C++11
2017-06-27 22:24:34 +08:00
Koncord
a110ec1767
[Client] Update GUIController to C++11
2017-06-27 21:59:05 +08:00
Koncord
7499777b3a
[Client] Update CellController to C++11
2017-06-27 21:56:40 +08:00
Koncord
7d4dd2ad1c
[Client] Update Cell to C++11
2017-06-27 21:56:24 +08:00
Koncord
7918e887dd
[Client] Update ActorList to C++11
2017-06-27 21:56:14 +08:00
Koncord
aa12b35d03
[Client] Update LocalActor to C++11
2017-06-27 21:12:00 +08:00
Koncord
689050e1d0
[Client] Long expression to lambda
2017-06-27 21:01:13 +08:00
Koncord
58a6a8c3bc
[Client] Update LocalPlayer to C++11
2017-06-27 20:43:39 +08:00
Koncord
6222c20e82
[Client] Convert MechanicsHelper to namespace
2017-06-27 16:43:53 +08:00
Koncord
7d3e08f031
[Client] Simplify loops
2017-06-27 16:32:16 +08:00
Koncord
f7341c021f
[Client] Modernize loops in WorldEvent to C++11
2017-06-27 15:58:41 +08:00
Koncord
61cc3ced5d
[Client] Remove boost from processors
2017-06-27 15:25:30 +08:00
Koncord
fcccd7b665
[General] Remove creatureStats.mDead from packets
2017-06-27 15:03:41 +08:00
David Cernat
813a3c89c4
[General] Implement PlayerBook packet to track skill books read
2017-06-27 08:27:14 +03:00
David Cernat
b3b73c5cd2
[General] Implement resurrection at nearest shrine or temple
2017-06-27 01:01:45 +03:00
David Cernat
7d81b84dd8
[Client] Write list of loaded plugins to log
2017-06-26 06:49:58 +03:00
David Cernat
78f29302ef
[General] Fix PlayerJournal logic by sending only refIds for its actors
...
Additionally, make the refIds for actors usable in script functions.
2017-06-23 08:12:32 +03:00
David Cernat
ebf7740969
[General] Repurpose GameConsole packet as GameSettings & add difficulty to it
2017-06-20 05:28:45 +03:00
David Cernat
c6aee3b780
[Client] Fix build by changing boost::shared_ptr into std::shared_ptr
2017-06-18 19:36:06 +03:00
Koncord
3803535bd5
[General] Implement CleanChat()
2017-06-12 08:01:47 +08:00
David Cernat
bea3afaec8
[Client] Ensure uninitialization of DedicatedActors for late packets
2017-06-10 15:49:00 +03:00
David Cernat
70d9374a6a
[General] Implement PlayerKillCount packets
2017-06-10 14:04:19 +03:00
David Cernat
ee5c9b65c5
[General] When changing region, send new region name in PlayerCellChange
2017-06-10 11:43:40 +03:00
David Cernat
e5f5b047bc
[Client] Don't send empty ObjectSpawn packets for cells with no leveled creatures
2017-06-10 11:04:17 +03:00
David Cernat
312fc84a6f
[Client] Use update timer in mwmp::Cell instead of LocalActor
2017-06-10 03:29:51 +03:00
David Cernat
18bf79e08b
[Client] Correctly set mpNum for placed gold
2017-06-09 13:31:19 +03:00
David Cernat
6ac7ee8fcd
[Client] Fix problems with NPC equipment sync
2017-06-09 04:58:56 +03:00
Koncord
587b53bfed
[Client] Reorder files
2017-06-07 00:06:10 +08:00
Koncord
b84f97ec2b
[Client] Implement PasswordDialog
2017-06-06 23:33:59 +08:00
Koncord
ad873e16b8
[Client] Limiting updates to ~64 per second
2017-06-02 21:20:35 +08:00
Koncord
9742b0a801
[Client] Reset statTimer every timeout
2017-06-02 20:45:44 +08:00
Koncord
80631ae8bd
[Client] Reset positionTimer on time expired
2017-06-02 20:45:19 +08:00
Koncord
a847d46984
[Client] Get rid Z axis in direction.pos
2017-06-02 18:33:51 +08:00
Koncord
d67db1a9bd
[Client] Play rotation animation on dedicated players
2017-06-02 18:05:33 +08:00
Koncord
2ef1e26233
[Client] Fix ID_PLAYER_POSITION spam
2017-06-02 17:19:36 +08:00
Koncord
5f30dfd5db
[Client] Get rid direction.rot
2017-06-02 15:44:39 +08:00
David Cernat
0bed33e39e
[Client] Reset player fatigue when being resurrected
...
This way, players killed by strong hand-to-hand attacks will no longer be forced to lie on the ground when resurrected.
2017-06-02 06:58:33 +03:00
David Cernat
e042673779
[Client] Fix error when trying to delete player markers that don't exist
2017-06-01 22:42:57 +03:00
David Cernat
cf41956cad
[Client] Prevent framerate drops caused by invalid rotation values
2017-06-01 21:45:36 +03:00
David Cernat
d8cd57a8be
[Client] Make topic sync work with localized versions of the game
2017-05-31 14:11:16 +03:00
David Cernat
34a452d775
[Client] Fix logic for initialization and updating of player markers
...
Additionally, disable the Ptrs of players who move to cells that don't exist for us instead of placing them in ToddTest.
2017-05-31 10:54:19 +03:00
David Cernat
a353a21280
[General] Fix code style inconsistencies
2017-05-31 08:37:11 +03:00
David Cernat
97bf0252a4
[Client] Disable collision for actors loaded as dead from server
2017-05-31 07:52:45 +03:00
David Cernat
906b263a2d
[Client] Update topics in current dialogue screen when receiving PlayerTopic packets
2017-05-31 06:51:50 +03:00
David Cernat
068a45be87
[General] Synchronize player & NPC rotation animations
2017-05-30 12:08:58 +03:00
David Cernat
f4cdedd8cb
[General] Synchronize summoned creatures
2017-05-30 10:11:01 +03:00
David Cernat
1c6e359fe9
[Client] Set and clear hitAttemptActorId for DedicatedPlayers
...
This allows a DedicatedPlayer's follower NPCs to target enemies attacking the DedicatedPlayer.
2017-05-30 08:20:45 +03:00
David Cernat
4e5c8873e0
[General] Use ObjectSpawn instead of ObjectPlace for actors
2017-05-29 06:59:05 +03:00
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.
2017-05-29 04:43:52 +03:00
Koncord
565889ccbc
[Client] Add commit hash to password
2017-05-28 18:26:48 +08:00
David Cernat
b0c1aafc5a
[Client] Use a 10 times higher maximum distance for linear interpolation
2017-05-28 03:30:23 +03:00
David Cernat
ea2a060c67
[Client] Sync actor movements from interiors to exteriors & vice versa
2017-05-28 01:11:32 +03:00
David Cernat
6918ae7bc7
[Client] Don't crash when receiving certain packets from NULL players
2017-05-27 22:32:28 +03:00
David Cernat
2e45203bbb
[Client] Clean up mapIndexes in CellController
2017-05-27 21:20:24 +03:00
David Cernat
619982b085
[Client] Only try to send actor data to other players when authorized
2017-05-27 18:55:14 +03:00
David Cernat
73b9683182
[General] Make most ActorPackets smaller by not including refIds in them
2017-05-27 16:59:23 +03:00
David Cernat
7177d56cfb
[Client] Only require refNumIndex & mpNum for CellStore::searchExact()
2017-05-27 16:59:23 +03:00
David Cernat
7c87ac80ee
[Client] Ensure correct drawState when receiving an ActorAttack packet
2017-05-27 04:19:28 +03:00
David Cernat
311ce4119d
[General] Fix logic issues related to ActorEquipment
2017-05-26 22:53:28 +03:00
David Cernat
4f273932af
[General] Implement sending and reading of ActorEquipment packets
2017-05-26 04:37:49 +03:00
David Cernat
ec921eefc8
[Client] Prevent players from getting stuck in drag and drop when their opened containers are deleted
2017-05-26 02:13:31 +03:00
David Cernat
32879adc5b
[General] Allow ObjectTrap to trigger traps, not just disarm them
2017-05-26 01:28:43 +03:00
David Cernat
7ac115b359
[Client] Implement sending and reading of ObjectTrap packets
2017-05-26 00:21:24 +03:00
Koncord
24d4e1c222
[General] Remove useless PacketSendMyID
2017-05-26 02:40:49 +08:00
David Cernat
11369f6513
[General] Implement sending and reading of PlayerTopic packets
2017-05-24 21:43:34 +03:00
David Cernat
08de349133
[General] Add placeholders for PlayerTopic & ObjectTrap packets
2017-05-24 19:01:28 +03:00
David Cernat
870fd9a78b
[General] Remove ObjectUnlock packet, use ObjectLock with 0 lock instead
2017-05-24 13:28:34 +03:00
David Cernat
e6983993c2
[General] Implement sending and reading of PlayerFaction packets
2017-05-18 19:27:20 +03:00
David Cernat
04c9c5ed48
[General] Forward PlayerJournal packets to other players
2017-05-18 12:57:48 +03:00
David Cernat
0189dbf916
[General] Make JournalItem consistent with other packet structs
2017-05-18 10:32:23 +03:00
David Cernat
1d0167c3c9
[Client] Add missing include for PlayerFaction processor
2017-05-16 19:30:29 +03:00
David Cernat
ad388c7e12
[General] Add placeholders for ActorEquipment & PlayerFaction packets
...
Also reorder packets and packet processors.
2017-05-16 19:25:31 +03:00
David Cernat
f527fe9ebe
[General] Add basic integrity check to reading of ActorList packets
...
Additionally, add newlines to files missing them.
2017-05-16 14:20:40 +03:00
David Cernat
05564bd123
[General] Add basic integrity check to reading of Container packets
2017-05-14 20:24:06 +03:00
David Cernat
46501909ff
[Client] Comment out spammy debug about Container packets
2017-05-14 11:08:53 +03:00
David Cernat
8f5e6531db
[Client] Avoid updating positions and anim flags when framerate is low
...
Also rename DedicatedPlayer methods so they are consistent with those from DedicatedActor
2017-05-14 10:52:44 +03:00
David Cernat
271594f0ee
[Client] Don't play death animations for NPCs saved as dead on server
2017-05-14 10:27:43 +03:00
David Cernat
5a786e6c56
[Client] Make all LocalActors get initialized correctly again
2017-05-09 14:19:25 +03:00
David Cernat
d7d4dec200
[Client] Don't spam AnimFlags packets when a Player or Actor is flying
2017-05-09 12:27:59 +03:00
David Cernat
1f747d4375
[Client] Only apply interpolation when positions don't change too much
2017-05-09 04:41:26 +03:00
David Cernat
cc559cf8e2
[General] Don't send packets for dead LocalActors, to fix Position spam
2017-05-09 02:47:29 +03:00
Koncord
d82ed7d0ad
[Client] Register ProcessorGameTime
2017-05-08 02:46:02 +08:00
Koncord
6c45b6dc5b
[Client] Fix ProcessorGameTime ID
2017-05-08 02:45:44 +08:00
David Cernat
3fb0bbb58c
[Client] Make it possible to turn off console again
2017-05-07 20:13:49 +03:00
David Cernat
aaaed8ab8b
[Client] Fix potential object duplication in WorldEvent::placeObjects()
...
Also clean up the debug messages in WorldEvent so they don't take up multiple lines.
2017-05-07 03:17:19 +03:00
David Cernat
de49f5f175
[General] Add and use isActor bool for WorldObject
2017-05-07 03:07:09 +03:00
David Cernat
9d2c5c3502
[General] Simplify structure of BaseEvent
2017-05-06 21:57:29 +03:00
David Cernat
dcc61a095a
[Client] Allow multiple WorldObjects to be added to a WorldEvent
2017-05-06 20:44:39 +03:00
David Cernat
bdc8b7f863
[Client] Send level creatures in ObjectPlace reply to ActorList request
2017-05-06 08:40:36 +03:00
David Cernat
3def111ca1
[Client] Fix graphical glitches related to DedicatedActor initialization
2017-05-06 04:49:49 +03:00
David Cernat
62aa6ed7ea
[Client] Send PlayerPosition packets based on a timeout
2017-05-06 00:59:54 +03:00
David Cernat
ef12a37d59
[Client] Send ActorPosition packets based on a timeout
2017-05-06 00:33:48 +03:00
David Cernat
db3859565b
[Client] Send ActorStatsDynamic packets only when stats change enough
2017-05-05 23:17:15 +03:00
David Cernat
4d81455020
[General] Rework and simplify death reasons so they work with NPCs
2017-05-05 22:16:31 +03:00
David Cernat
b745a33f18
[Client] Resurrect DedicatedActors that aren't supposed to be dead
2017-05-05 20:38:28 +03:00
David Cernat
8b4e167efe
[Client] Prevent NPC subtitles from being added to open Dialogue window
2017-05-05 20:16:20 +03:00
David Cernat
bcdbecf608
[Client] Initialize Cell before moving DedicatedActor to it
2017-05-05 19:54:20 +03:00
David Cernat
60cf623455
[Client] Make DedicatedActors transition into LocalActors when eligible
2017-05-05 07:37:09 +03:00
David Cernat
206c9cc357
[Client] Use CellController pointers to make code easier to read
2017-05-05 04:58:44 +03:00
David Cernat
e05adbfe65
[Client] Add better debug for Actor cell changes
2017-05-05 04:46:40 +03:00
David Cernat
950a8eae3d
[Client] Move Actors to Cells rather than reinitialize them from scratch
2017-05-05 03:52:41 +03:00
David Cernat
8d41a0c53b
[Client] Make LocalActor initialization include newly spawned Actors
2017-05-05 02:46:16 +03:00
Koncord
93edd67681
[Client] Use boolean var instead requestQuit or throwing runtime_error
2017-05-03 14:52:32 +08:00
Koncord
e0139c33b3
[Client] Remove destructor in Cell
2017-05-03 14:46:25 +08:00
Koncord
4eb02af8fb
[Client] Use __WINDOWS define
2017-05-03 14:44:38 +08:00
Koncord
47e6820f97
[General] Move printWithWidth and intToHexStr to components
2017-05-03 14:38:44 +08:00
David Cernat
34e77c5dae
[Client] Initialize Actors based on the guid of an ActorAuthority packet
2017-05-03 04:47:04 +03:00
David Cernat
0b40cb8919
[Client] When there are more client than server plugins, print them all
2017-05-03 03:14:11 +03:00
David Cernat
92e277d75d
[Client] Prevent application hang on Windows when plugins don't match
2017-05-03 02:17:19 +03:00
David Cernat
0284f18876
[Client] Replace plugin load order message with a clearer one at the top
2017-05-03 02:15:14 +03:00
David Cernat
1dbe9f0eaa
[Client] Print plugin comparison in a better-looking way on Windows
2017-05-03 01:51:47 +03:00
David Cernat
f80a16b897
[Client] Don't use try/catch when printing missing plugins
...
Also move load order note to bottom where it fits better.
2017-05-03 00:15:43 +03:00
David Cernat
4294508082
[Client] Don't print null for missing plugins when comparing with server
2017-05-02 23:22:37 +03:00
David Cernat
c3c04bbfc3
[General] Make coding style consistent
2017-05-02 22:47:58 +03:00
Koncord
afcf5a7fc8
[Client] Fix segmentation fault
2017-05-03 02:43:58 +08:00
Koncord
ccae9590cc
[Client] Fix comparison between signed and unsigned integer expressions
2017-05-03 02:43:00 +08:00
Koncord
01bdbfecfb
[Client] Fix wrong checksum collection
2017-05-03 02:41:36 +08:00
Koncord
7bee82cedb
[Client] Add notification about strict order
2017-05-02 23:50:36 +08:00
Koncord
f6bea7a114
[Client] Read answer about ID_GAME_PREINIT from server
2017-05-02 23:37:18 +08:00
David Cernat
cad3eb8968
[Client] Iterate through CellStore's mergedRefs when initializing Actors
2017-05-02 03:31:40 +03:00
David Cernat
f59609fcd7
[Client] Fix actor memory leaks, part 2
2017-05-02 02:45:18 +03:00
David Cernat
a77bd6652f
[Client] Read ActorPosition packets sent from Lua script cell loads
2017-05-01 21:55:50 +03:00
David Cernat
730df061b3
[General] Add hasPositionData and hasStatsDynamicData bools to BaseActor
2017-05-01 19:44:23 +03:00
David Cernat
48b773bfcb
[Client] Use float scale for WorldEvent::sendObjectScale()
2017-05-01 19:09:44 +03:00
Koncord
60f4a1d9e5
[Client] Fix issues when changing npc model to creature
2017-05-01 22:54:43 +08:00
David Cernat
e8e0090b9b
[General] Use new SimpleCreatureStats struct in BaseActor
2017-04-30 18:44:59 +03:00
David Cernat
809b4d78ba
[Client] Split off DedicatedPlayer and PlayerList into different files
2017-04-30 14:57:43 +03:00
Koncord
eda74ddf44
[Client] Fix memory leaks
2017-04-30 13:56:30 +08:00
Koncord
3372f27f3a
[Client] Notify player about current chat mode
2017-04-30 13:56:11 +08:00
David Cernat
f6a218025a
[Client] Fix actor memory leaks, part 1
2017-04-30 04:19:28 +03:00
Koncord
805c346bd7
[Client] Fix copy-paste mistake
2017-04-30 01:06:47 +08:00
Koncord
465a05bad0
[Client] Add ability to look like a creature for the DedicatedPlayers
2017-04-30 00:18:44 +08:00
David Cernat
d333c0b484
[Client] Read ActorStatsDynamic packets sent from Lua script cell loads
2017-04-29 17:44:46 +03:00
Koncord
fbd8e8b3a1
[Client] Use CreatureStats instead NpcStats
2017-04-29 22:40:22 +08:00
Koncord
26c00c3141
[Client] Change chat font to RussoOne for better visibility
2017-04-29 20:34:36 +08:00
Koncord
db0e25cb6c
[Client] Allow colors in the chat window
2017-04-29 20:34:36 +08:00
David Cernat
e419e25e72
[Client] Don't initialize actors without unique indexes
2017-04-28 23:17:23 +03:00
David Cernat
6a21ec1fdc
[General] Rename PlayerPos into PlayerPosition
2017-04-25 22:11:33 +03:00
David Cernat
7b07d6651f
[General] Add and use PlayerBounty packet and matching script functions
2017-04-25 21:24:39 +03:00
David Cernat
6658531713
[General] Fix names for two PlayerProcessors
2017-04-25 19:01:56 +03:00
David Cernat
7dbcfbd3b1
[Client] Use better check for empty CreatureStats in DedicatedActor
2017-04-25 16:55:58 +03:00
David Cernat
ea7c3f2dc7
[Client] Make tes3mp combat code work with Creatures, not just NPCs
2017-04-24 21:06:23 +03:00
David Cernat
44476248b7
[Client] Add and use DedicatedPlayer::update()
2017-04-24 18:38:57 +03:00
David Cernat
e11a24f446
[Client] Add back statement that should not have been removed in e4a261e
2017-04-24 18:10:05 +03:00
David Cernat
e4a261ea2e
[Client] Remove unused include and variables, fixing warnings
2017-04-24 17:53:50 +03:00
David Cernat
841e6a63f8
[Client] Initialize Creatures as LocalActors
2017-04-24 11:58:39 +03:00
David Cernat
850b19badf
[Client] Add clearer debug messages for Actor initialization
2017-04-24 11:04:28 +03:00
David Cernat
2082f8ff4f
[Client] Send LocalActor cell changes at end of mwmp::Cell's update
2017-04-24 10:59:47 +03:00
David Cernat
1f6ba9d9ee
[Client] Remove jump check from LocalActor that is irrelevant for NPCs
2017-04-24 10:58:39 +03:00
David Cernat
e70faf1016
[Client] Fix crashes in PlayerProcessors from NULL players
...
Also rename ProcessorPlayerDrawState into ProcessorPlayerAnimFlags
2017-04-24 01:46:27 +03:00
David Cernat
284f863292
[Client] Add linear interpolation for DedicatedActors
2017-04-23 21:28:23 +03:00
David Cernat
a12694c6ef
[Client] Fix crash caused by late-arriving ActorAuthority packets
2017-04-23 17:12:45 +03:00
David Cernat
14e1ff27cb
[Client] Rename CellController's cellsActive to cellsInitialized for clarity
2017-04-23 16:53:24 +03:00
David Cernat
27186f555d
[Client] Enable reading of ActorPackets, and thus NPC sync, by default
2017-04-23 14:01:13 +03:00
David Cernat
871d8c8308
[Client] Send and read ActorCellChange packets
2017-04-23 14:01:13 +03:00
David Cernat
4e86d8781f
[Client] Clean up & simplify logic for DedicatedPlayer cell transitions
2017-04-23 14:01:13 +03:00
David Cernat
87ada3e763
[Client] Add CellController::isSameCell() and use it in LocalPlayer
2017-04-23 14:01:13 +03:00
David Cernat
6aa0fa85ab
[Client] Send and read ActorAttack packets
2017-04-19 22:10:06 +03:00
David Cernat
2e8714afaa
[Client] Rethink and restructure tes3mp combat code so it works for NPCs
2017-04-19 22:06:04 +03:00
David Cernat
6c2bbd6608
[Client] Fix assignAttackTarget() not assigning LocalPlayer as target
2017-04-19 20:51:31 +03:00
David Cernat
61cedfa192
[Client] Add CellController methods to fetch Actors without needing Ptrs
2017-04-19 18:20:12 +03:00
David Cernat
0ef9e014eb
[Client] Add resetAttack() and getSpellSuccess() to MechanicsHelper
2017-04-19 17:09:35 +03:00
David Cernat
c3375ba86f
[Client] Add MechanicsHelper::assignAttackTarget()
2017-04-19 11:05:13 +03:00
David Cernat
17c4b6d4de
[Client] Add MechanicsHelper methods for easily getting Attacks from Ptr
2017-04-19 10:36:23 +03:00
David Cernat
82e455f736
[Client] Organize headers
2017-04-18 18:51:40 +03:00
David Cernat
014ff7a059
[Client] Replace usage of Networking::isDedicatedPlayer()
2017-04-18 18:07:39 +03:00
David Cernat
1f6d05dfe5
[Client] Remove unused Networking::attack() method
2017-04-18 17:45:26 +03:00
Koncord
67aba35d37
[Client] Simplify Processors
2017-04-18 15:05:39 +08:00
Koncord
1db30a65cb
[Client] Remove unecessary calls
2017-04-18 14:42:43 +08:00
Koncord
6969742ef0
[Client] Enable actor processors
2017-04-18 14:38:23 +08:00
Koncord
2c62c501f6
[Client] Add & init Actor processors
2017-04-18 14:37:35 +08:00
Koncord
7ec897a829
[Client] Add ActorProcessor
2017-04-18 14:37:35 +08:00
David Cernat
29f9453554
[Client] Clean up headers in Networking
2017-04-18 09:32:40 +03:00
Koncord
8128a5c39c
[Client] Use protected member instead local variable
2017-04-18 13:15:31 +08:00
Koncord
25fef1a7b8
[Client] FIx conflicts
2017-04-18 12:17:58 +08:00
Koncord
578d305d86
[Client] Enable world processors
2017-04-18 11:51:05 +08:00
Koncord
7dcaef5a5a
[Client] Init world processors
2017-04-18 11:50:22 +08:00