Commit Graph

838 Commits (1f2349ef6e82b7b1b82e1de6db2776e2043fb18d)

Author SHA1 Message Date
David Cernat e87e1dbb30 [General] Fix Worldstate packets by adding missing lines 7 years ago
David Cernat 43a944ddaf [General] Add and implement new Worldstate packet type 7 years ago
David Cernat 049d0d9ba7 [General] Fix remaining references to world packets/events 7 years ago
David Cernat 51698bed48 [Client] Rename WorldProcessor into ObjectProcessor 7 years ago
David Cernat 78234f9071 [General] Rename Event into ObjectList & WorldObject into BaseObject 7 years ago
David Cernat 6bf3a0be1e [General] Rename WorldPackets into ObjectPackets for clarity 7 years ago
David Cernat 77389538e8 [General] Implement ActorAI packet, part 1
The server can now make actors become followers of players or other actors.
7 years ago
David Cernat 7f00005f04 [Client] Fix GCC build
Based on 71040659ac
7 years ago
David Cernat 715012f087 [General] Implement sending of image data for map tiles in PlayerMap 7 years ago
David Cernat df0f9b0f5e [Client] Require a certain Skill progress amount before sending packet 7 years ago
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.
7 years ago
David Cernat 099f85be0a [General] Implement PlayerMomentum packet & associated script functions 7 years ago
David Cernat 4b501a39f4 [General] Implement DoorDestination packet & associated script functions 7 years ago
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.
7 years ago
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.
7 years ago
David Cernat 608dcbafe6 [Client] Fix skill updates for LocalPlayer partially broken by 78441c769a 7 years ago
David Cernat a541d7df3c [General] Rework PlayerStatsDynamic packets so they are of minimal size
(cherry picked from commit fc5e883160)
7 years ago
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)
7 years ago
David Cernat c5b08d6109 [General] Simplify storing of attribute and skill index changes
(cherry picked from commit bd9e8bd10f)
7 years ago
David Cernat 2c77d5f498 [General] Set enforcedLogLevel to -1 when initializing BasePlayer 7 years ago
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)
7 years ago
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)
7 years ago
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.
7 years ago
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)
7 years ago
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
7 years ago
David Cernat 50fe54af5d [Client] Update DedicatedPlayer creature if displayCreatureName changes 7 years ago
David Cernat a01fc577f1 [Client] Add setAttributes() and setSkills() methods to DedicatedPlayer 7 years ago
David Cernat 716809f2db [Client] Prevent errors from NPC-only packets for DedicatedPlayers 7 years ago
David Cernat 68ee64902d [Client] Track & use previous race & creatureRefId for DedicatedPlayers 7 years ago
David Cernat acb1335d78 [Client] Make creature disguises update correctly 7 years ago
David Cernat 70f9cb535e [General] Use RecordHelper methods to create and update DedicatedPlayers 7 years ago
David Cernat 9d27f5f154 [Client] Create RecordHelper class with initial NPC and creature methods 7 years ago
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).
7 years ago
David Cernat 72463cfdb6 [Client] Refresh equipment for DedicatedPlayers when setting base info
Additionally, move default fatigue value to DedicatedPlayer initialization.
7 years ago
David Cernat 73dea494c4 [General] Allow changes from PlayerBaseInfo without player stat reset 7 years ago
David Cernat c132dc70d2 [Client] Make PlayerShapeshift turn DedicatedPlayers into creatures 7 years ago
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.
7 years ago
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.
7 years ago
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.
7 years ago
David Cernat 34be9383e5 [General] Add isPlayer boolean to targets in packets 7 years ago
David Cernat 0eed05610b [Client] Fix autoequipping for creatures in WorldEvent::editContainers() 7 years ago
David Cernat a86c68c5a1 [General] Add sync for ranged weapon & projectile strike enchantments 7 years ago
David Cernat 3f8d94b030 [General] Synchronize strike enchantments in combat 7 years ago
David Cernat 26a56d6a02 [Client] Include NPC/creature containers when adding all cell containers 7 years ago
David Cernat 1e3c4fd488 [Client] Fix ProcessorContainer typos caused by careless copy-pasting 7 years ago
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.
7 years ago
David Cernat 258e319acb [Client] Require InventoryStore for autoequipping actors 7 years ago
David Cernat afe8c97cb9 [Client] Require InventoryStore for unequipping actors in editContainers 7 years ago
David Cernat d8b48f6cf4 [Client] Remove redundant container methods from CellController 7 years ago
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.
7 years ago
David Cernat 9165b12d78 [Client] Update inventory views when receiving inventory or equipment 7 years ago
David Cernat bbdc30628b [Client] Use the correct guid for a received WorldEvent or ActorList 7 years ago
David Cernat 14f0299322 [Client] Don't log InputBox inputs for client 7 years ago
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.
7 years ago
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.
7 years ago
David Cernat a3a341fee6 [Server] Reimplement 4ebfcc4a21 for 0.6 7 years ago
David Cernat 03266d7648 [Client] Prevent guards from arresting players who are currently jailed 7 years ago
David Cernat 60f686ee43 [General] Implement setting of physics framerate as part of GameSettings 7 years ago
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.
7 years ago
David Cernat 74765b3ace [General] Implement selected spell sync as part of PlayerMiscellaneous 7 years ago
David Cernat 029dfc56ba [General] Implement player scale as part of PlayerShapeshift 7 years ago
David Cernat aa448523f8 [Client] Clean up WorldEvent::runConsoleCommands() slightly 7 years ago
David Cernat ce5670e57e [Client] Ignore invalid object refIds from ObjectPlace packets 7 years ago
David Cernat 66078bfea7 [General] Implement Mark location sync as part of PlayerMiscellaneous 7 years ago
David Cernat 989f6e6b51 [General] Implement PlayerReputation packet 7 years ago
David Cernat 3d80e2db62 [General] Add placeholders for new packet types, part 2 7 years ago
David Cernat 02af7f6ba1 [General] Add placeholders for new packet types 7 years ago
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.
7 years ago
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".
7 years ago
David Cernat d7e29f1f61 [Client] Unequip items with constant effect damage when resurrected 7 years ago
David Cernat d19d8b0a34 [Client] Add and use enchantmentType argument for unequipItemsByEffect() 7 years ago
David Cernat 6c4bb8c423 [Client] Move resurrection code for local player to LocalPlayer 7 years ago
David Cernat 6b75a82777 [Client] Ignore equipment items for DedicatedActors with count below 0 7 years ago
David Cernat e3bc11d9eb [Client] Fix ListBox overlap crashes by removing ListBoxes properly 7 years ago
David Cernat c6a85ee8f9 [Client] Add doesEffectListContainEffect() method to MechanicsHelper 7 years ago
David Cernat aa392ebf20 [Client] Unequip items if necessary when attr/skill modifier is set to 0 7 years ago
David Cernat ace825b99c [Client] Ignore invalid player class IDs from packets
Additionally, clean up variables names in related code.
7 years ago
David Cernat c6874509b6 [Client] Ignore invalid faction IDs from packets 7 years ago
David Cernat 5894ffae7d [Client] Ignore dynamic object placements or spawns in packets 7 years ago
David Cernat bce3d0eb4c [Client] Use more descriptive message for version mismatch 7 years ago
David Cernat 09548d05f7 [Client] Ignore cell changes that move actors to where they already are 7 years ago
David Cernat 4a9a628a0f [Client] When getting an actor, make sure their cell is initialized 7 years ago
David Cernat 0cc86c04d1 [Client] Print plugin discrepancies, not just plugin lists side by side 7 years ago
David Cernat a639d3494a [Client] Fix use of DedicatedPlayers as targets for ConsoleCommand 7 years ago
David Cernat 502df7d9c1 [Client] Clean up GUIChat slightly 7 years ago
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).
7 years ago
David Cernat 5fd9079b26 [Client] Stop drag and drop when setting player inventory 7 years ago
David Cernat 40e70ebf9c [Client] Fix key focus for chat window 7 years ago
David Cernat bed96e5a3d [Client] Remove check of GM_RestBed GUI mode that no longer exists 7 years ago
David Cernat cac2c6c1e8 Merge pull request #360 from TES3MP/0.6.1-openmw-updates while resolving conflicts 7 years ago
David Cernat 993081ba1e [General] Add enchantmentCharge to worldObjects and items 7 years ago
David Cernat fef6bddc68 [Client] Fix typo related to drag and dropping 7 years ago
David Cernat 535fba0cb3 [Client] Finish drag and drops when arrested or teleported by server 7 years ago
David Cernat e97c9f72a2 [General] Rework getting/clearing of skill modifiers as with attributes 7 years ago
David Cernat 047ad40b96 [Client] Clear FortifyAttribute effects when server sets modifier to 0 7 years ago
David Cernat ef6dc61797 [Client] Send PlayerAttribute packets when attribute modifiers change 7 years ago
David Cernat c9c363ebef [General] Allow GameSettings to set bed & wilderness resting separately 7 years ago
David Cernat 3508a16836 [General] Use GameSettings packet to set ability to rest and wait 7 years ago
David Cernat 6668b9ab42 [General] Implement ConsoleCommand packet 7 years ago
David Cernat 2ca4017371 [Client] Force position updates for players in animations 7 years ago
David Cernat be25decee2 [General] Implement PlayerSpeech packet 7 years ago
David Cernat 605b06c303 [General] Find actor speech captions instead of sending them in packets 7 years ago
David Cernat 413893aa51 [General] Implement PlayerAnimPlay packet 7 years ago
David Cernat 50d5fffb7f [General] Add and implement PlayerQuickKeys packet 7 years ago
David Cernat c35101cc36 [Client] Don't use message box call boolean for regular message boxes 7 years ago
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.
7 years ago
David Cernat 08f34e5356 [Client] Fix recent problems with password window 7 years ago
David Cernat 711c4d83da [Client] Fix build after recent OpenMW changes to GUI 7 years ago
David Cernat b94c0a9991 [Client] Don't send Attribute & Skill packets as werewolf, part 2 7 years ago
David Cernat 8c9d6a0160 [Client] Ensure that LocalPlayer's isWerewolf starts out false 7 years ago
David Cernat ccb15cc09e [Client] When players die, make guards willing to arrest them again 7 years ago
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.
7 years ago
David Cernat 93d1aa2e4a [Client] Comment out the broken sending of custom spells until 0.7.0 7 years ago
David Cernat 98a7769b91 Merge branch 'master' into 0.6.0 7 years ago
Koncord 54f5104345 [General] Escape format for strings 7 years ago
David Cernat cca4991e74 [Utils] Use consistent names for utility functions added by tes3mp 7 years ago
David Cernat cf4021a7b5 [Client] Only add valid quests to journal 7 years ago
David Cernat 134dd06d48 [Client] Only add valid inventory & equipment items to LocalPlayer
Also add related debug information.
7 years ago
David Cernat c3d1eada89 [Client] Only add spells to players that are ensured to exist 7 years ago
David Cernat 2597f018d2 Merge pull request #272 from TES3MP/0.6.0
Add hotfix commits for 0.6.0 up to 23 Aug 2017
7 years ago
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.
7 years ago
David Cernat 77ce05b7d6 [Client] Fix spell casting probability synchronization 8 years ago
David Cernat 0e2038f045 [General] Record and get player positions before their last cell change 8 years ago
David Cernat fbec0d9443 [Client] Remove inertia from players who are teleported via a packet 8 years ago
Unknown bfbfbeac43 Added networking and saving for custom spells 8 years ago
David Cernat 4db64e1721 [Client] Synchronize spellcasting for non-bipedal creatures 8 years ago
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.
8 years ago
David Cernat 796118c266 [Client] Send StatsDynamic packets more often 8 years ago
David Cernat 43a3daf0aa [General] Add & implement PlayerShapeshift packet for werewolf states 8 years ago
David Cernat ad9fa0631a [General] Rename jailText to jailEndText and add jailProgressText in PlayerJail 8 years ago
David Cernat 708d3723eb [Client] Fix client script messagebox buttons that had always broken in tes3mp 8 years ago
David Cernat e36c0afc59 [General] Send faction reputation via PlayerFaction packets 8 years ago
David Cernat be93ec8ef6 [General] Implement ObjectState packet 8 years ago
David Cernat 083b46394d [General] Add ignoreJailSkillIncreases to PlayerJail packets 8 years ago
David Cernat 5962570c48 [General] Add jailText to PlayerJail packets 8 years ago
David Cernat 5774023f8b [Client] Add missing processor initialization for ProcessorPlayerJail 8 years ago
David Cernat 3280f0c5ee [General] Implement PlayerJail packet
Rework server's DeathFunctions into MechanicsFunctions

Remove connection between PlayerResurrect and jailing
8 years ago
David Cernat 3529f9b090 [General] Add placeholders for PlayerJail, ObjectState & ConsoleCommand 8 years ago
David Cernat 4e74910fdb [General] Disable automatic sync for PlayerJournal and PlayerFaction
Simplify PlayerFaction packets by removing BOTH action
8 years ago
David Cernat 1d504a665f [General] Add RANK, EXPULSION and BOTH actions to PlayerFaction packets 8 years ago
Koncord 9bb586de77 [Client] Simplify setMapExplored() 8 years ago
Koncord 52349278e9 [Client] Fix warnings 8 years ago
Koncord b2339f2f9a [Client] Fix building 8 years ago
David Cernat 60574ae667 [General] Implement jail time as a death penalty 8 years ago
David Cernat 71313c5aa6 [General] Implement PlayerMap packet, part 1 8 years ago
David Cernat c899525e30 [General] Use address keys with clearer meaning in tes3mp config files 8 years ago
David Cernat 1f682749d6 [General] Add optional notes to PasswordDialogs 8 years ago
Koncord 73cf134107 [General] Fix incoming password string 8 years ago
Koncord 0cf09adb44 [General] Move AddProcessor to BasePacketProcessor 8 years ago
Koncord 9519c467eb [Client] Simplify updateEquipment for LocalPlayer & LocalActor 8 years ago
Koncord 596f42e408 [Client] Fix "invalid iterator" error 8 years ago
Koncord 5b2cab4c6b [General] Change NULL to nullptr 8 years ago
Koncord 0ed0d2417b [Client] Make foreach style consistent with other 8 years ago
Koncord 2427a4f877 [Client] Update DedicatedActor to C++11 8 years ago
Koncord 8f7da49152 [Client] Update DedicatedPlayer to C++11 8 years ago
Koncord 08666cabdb [Client] Update PlayerList to C++11 8 years ago
Koncord a110ec1767 [Client] Update GUIController to C++11 8 years ago
Koncord 7499777b3a [Client] Update CellController to C++11 8 years ago
Koncord 7d4dd2ad1c [Client] Update Cell to C++11 8 years ago
Koncord 7918e887dd [Client] Update ActorList to C++11 8 years ago
Koncord aa12b35d03 [Client] Update LocalActor to C++11 8 years ago
Koncord 689050e1d0 [Client] Long expression to lambda 8 years ago
Koncord 58a6a8c3bc [Client] Update LocalPlayer to C++11 8 years ago
Koncord 6222c20e82 [Client] Convert MechanicsHelper to namespace 8 years ago
Koncord 7d3e08f031 [Client] Simplify loops 8 years ago
Koncord f7341c021f [Client] Modernize loops in WorldEvent to C++11 8 years ago
Koncord 61cc3ced5d [Client] Remove boost from processors 8 years ago
Koncord fcccd7b665 [General] Remove creatureStats.mDead from packets 8 years ago
David Cernat 813a3c89c4 [General] Implement PlayerBook packet to track skill books read 8 years ago
David Cernat b3b73c5cd2 [General] Implement resurrection at nearest shrine or temple 8 years ago
David Cernat 7d81b84dd8 [Client] Write list of loaded plugins to log 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 c6aee3b780 [Client] Fix build by changing boost::shared_ptr into std::shared_ptr 8 years ago
Koncord 3803535bd5 [General] Implement CleanChat() 8 years ago
David Cernat bea3afaec8 [Client] Ensure uninitialization of DedicatedActors for late packets 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 e5f5b047bc [Client] Don't send empty ObjectSpawn packets for cells with no leveled creatures 8 years ago
David Cernat 312fc84a6f [Client] Use update timer in mwmp::Cell instead of LocalActor 8 years ago
David Cernat 18bf79e08b [Client] Correctly set mpNum for placed gold 8 years ago
David Cernat 6ac7ee8fcd [Client] Fix problems with NPC equipment sync 8 years ago
Koncord 587b53bfed [Client] Reorder files 8 years ago
Koncord b84f97ec2b [Client] Implement PasswordDialog 8 years ago
Koncord ad873e16b8 [Client] Limiting updates to ~64 per second 8 years ago
Koncord 9742b0a801 [Client] Reset statTimer every timeout 8 years ago
Koncord 80631ae8bd [Client] Reset positionTimer on time expired 8 years ago
Koncord a847d46984 [Client] Get rid Z axis in direction.pos 8 years ago
Koncord d67db1a9bd [Client] Play rotation animation on dedicated players 8 years ago
Koncord 2ef1e26233 [Client] Fix ID_PLAYER_POSITION spam 8 years ago
Koncord 5f30dfd5db [Client] Get rid direction.rot 8 years ago
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.
8 years ago
David Cernat e042673779 [Client] Fix error when trying to delete player markers that don't exist 8 years ago
David Cernat cf41956cad [Client] Prevent framerate drops caused by invalid rotation values 8 years ago
David Cernat d8cd57a8be [Client] Make topic sync work with localized versions of the game 8 years ago
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.
8 years ago
David Cernat a353a21280 [General] Fix code style inconsistencies 8 years ago
David Cernat 97bf0252a4 [Client] Disable collision for actors loaded as dead from server 8 years ago
David Cernat 906b263a2d [Client] Update topics in current dialogue screen when receiving PlayerTopic packets 8 years ago
David Cernat 068a45be87 [General] Synchronize player & NPC rotation animations 8 years ago