Pre-release

@davidcernat davidcernat released this Oct 8, 2018 · 75 commits to 0.7.0 since this release

Assets 6
  • Synchronization of custom records for spells, potions, enchantments, creatures, NPCs, armor, books, clothing, miscellaneous items and weapons
  • Synchronization of weather
  • Synchronization of world map exploration
  • Synchronization of spells cast through items
  • Synchronization of player reputations
  • Reworked attack synchronization now accounts for "cast on strike" enchantments, knockdowns and projectile speeds
  • Reworked container synchronization that relies on server approval of every container change
  • Reworked object synchronization that relies on server approval of every action on objects and tracks whether actions originated from regular gameplay, the console or from ingame scripts
  • Reworked time synchronization that preserves ingame date and does not allow for any unilateral clientside time changes
  • Reworked summoning synchronization that prevents duplicate summons and retains summon durations
  • Reworked inventory, equipment, attribute, skill and dynamic stat packets that are sent more often while containing minimal instead of maximal data
  • Packet for activation of objects
  • Packet for using items in inventory
  • Packet for actor AI
  • Packet for actor deaths, used to track their killers
  • Packet for overriding collision on objects
  • Packet for setting momentum of players
  • Packet for saving and loading marked locations and selected spells
  • Player scales and disguises as creatures are now included in shapeshift packets
  • Soulgem souls are now included in item and object placement packets
  • Physics framerate caps and enforced log levels are now included in game settings packets
  • Journal entry timestamps are now included in journal packets
  • The value of the OnPCDrop variable for player-placed objects is now preserved by being included in object placement packets
  • Video play packets no longer have hardcoded synchronization
  • Death packets now include clear information about the killers, and deaths through spells are no longer treated as suicides
  • Inventory packets no longer include bound items, preventing them from becoming persistent upon quitting
  • Fix broken check in equipment synchronization that was preventing throwing weapon synchronization from working
  • Fix rare inability to start up game caused by use of potentially invalid pointer for storing cell unloads
  • Death as a werewolf now removes status as known werewolf, to prevent infinite aggression from NPCs
  • Death as a criminal now prevents witnesses to previous crimes from continuing combat
  • Players are now kicked from the server when failing to reply to its handshake
  • Players can no longer open up their rest menu before logging in
  • NPC followers now follow players correctly from interiors to exteriors and vice versa, and are able to follow non-authority players
  • NPCs can now start combat through dialogue with non-authority players
  • The console window now displays the unique index of a selected object

Note: Both the Windows and Linux builds include commits up to the 26th of December, with C++ hotfixes for combat sync, packet spam, the equipping of enchanted items, the placement of items in full containers, the handling of soulgems and a client crash, as well as Lua script hotfixes for player data loss, the duplication of enchanted items, the inability to save cell data for cells containing non-ASCII characters in their names, and four server crashes.

The Windows build additionally includes commits up to the 11th of January, with hotfixes for tracking kills done through magic, the synchronization of spell scroll usage and the correct setting of attribute increases and level progress.

@davidcernat davidcernat released this Dec 25, 2017 · 50 commits to 0.6.2 since this release

Assets 4
  • Packet for quick keys
  • Packet for player sounds
  • Packet for player animations
  • Packet for console commands
  • Enchantment charge values are now included in item and object placement packets
  • Settings packet can now be used to separately enable or disable resting in beds, resting in the wilderness and waiting
  • Changes in attribute and skill modifiers now send their respective packets
  • Attribute and skill packets using 0 as a modifier can now remove all attribute or skill fortification effects from a player
  • Completion of vendor trades and skill training now sends inventory packets
  • Item drag and dropping is now finished when arrested or when moved to another cell by the server
  • Window minimization no longer pauses the game
  • Actor speech captions are now searched for in dialogues instead of being sent in packets

Note: The "hotfixed" releases include C++ hotfixes up to the 27th of January that have resolved additional problems, as well as all additional changes made to the 0.6.2 branch of the Lua scripts after that date.

Assets 4
  • Record player positions before their last cell change
  • Remove inertia from players who are teleported via a packet
  • Fix data loss caused by server packets attempting to add invalid items, spells and quests
  • Fix client crashes caused by items with state disabling scripts, as well as their side effects of making players disappear to others
  • Fix server crashes caused by improper interior initialization when exterior 0, 0 is loaded
  • Fix server freezes caused by infinite topic packet spam from local scripts
  • Fix spell casting probability synchronization
  • Prevent players from using excessively long names

Significant improvements made to the Lua scripts are not included in this changelog because they are technically a separate project.

Note: The Windows release includes hotfixes up to the 4th of September which have resolved additional problems, plus a server crash fix from the 10th of October, an extra Lua config option for topic sharing from the 23rd of October and a Lua library addition allowing players to use Unicode characters in their names from the 12th of November.

Assets 3
  • Synchronization of NPC & creature positions, stats, equipment, speech, attacks, spells & animations
  • Reworked server browser with major stability fixes and additional information about servers
  • Synchronization of client & server plugins (non-automated)
  • Synchronization of leveled & summoned creature spawns
  • Synchronization of rotation animations
  • Synchronization of journal entries
  • Synchronization of faction ranks, reputation and expulsion states
  • Synchronization of dialogue topics
  • Synchronization of kill counts checked in quest progression
  • Synchronization of trap states
  • Synchronization of object states (i.e. whether they are enabled or disabled)
  • Synchronization of player werewolf states
  • Synchronization of time of day
  • Saving & loading of read skill books
  • Fix to messagebox buttons for client scripts
  • Fix to synchronization of object locking/unlocking
  • Packet for jailing players
  • Packet for setting the difficulty for each player
  • Bandwidth optimization for all packet types
  • Various fixes to client & server crashes

Note: The Windows release includes hotfixes up to the 23rd of August, which have resolved client, server and server browser crashes.

Assets 6
  • Fixes to server crashes caused by incorrect cell comparison added by bandwidth optimization changes
  • Fixes to server browser freezes caused by connection failures and incomplete data received from master server
Assets 5
  • Server browser
  • MasterClient class for allowing the server to respond to server browser requests
  • Synchronization of containers
  • Reworked world packets allowing for multiple WorldObjects with multiple ContainerItems each
  • Script functions for getting and setting WorldObject and ContainerItem data
  • Bandwidth optimization by forwarding the most frequent player packets only to other players in the same loaded cells

@Koncord Koncord released this Dec 22, 2016

Assets 2

This release still without NPC & quests sync

  • Add OnPlayerChangeInventory server script callback
  • Add New GUI dialog: ListBox
  • Add new API function: SetConsoleAllow
  • Put DedicatedPlayer in ToddTest if his cell doesn't exist on our client
  • Improve logic and clarity of LocalPlayer's charGenThread()
  • Implement magic
  • Reduce using of the CPU
  • Fix sucess attack chance
  • Use new SendPos() method in server scripts to send position packets
  • Use new SendCell() method in server scripts to send cell packets
  • Ignore packets from server that try to move LocalPlayer to invalid cells
  • Use WorldController to fetch CellStore for WorldPackets received
  • Use consistent names for booleans in LocalPlayer
  • Add and use SendInventory() method in LocalPlayer, and clarify some code
  • Simplify LOG macros
  • Use LocalPlayer's updateInventory() every cell change, not every frame
  • Send inventory packets when picking up world items
  • Add GetEquipmentSlotCount() to item script functions
  • Rename GetEquipmentSlotCount() into GetEquipmentSize()
  • Implement UnequipItem() script function
  • Prevent player-controlled NPCs from auto-unequipping candles and torches
  • Add and implement ClearInventory() script function
  • Using breakpad for crating dump files
  • Add and implement ID_MUSIC_PLAY
  • Implement sending of ID_GAME_SPELLBOOK from client
  • Add spell script functions to tes3mp server: AddSpell, RemoveSpell, ClearSpellbook, HasSpell, GetSpellId, SendSpellbook
  • Send action parameter to OnPlayerChangeSpellbook
  • Fix crash if connection has failed
  • Add packet ActiveSkills
  • Add hooks for containers
  • Fix server crash if player is not fully connected
  • Fix "Inventory is sent from client only if item pickups from the ground"
  • Keep old logs for client and server

@Koncord Koncord released this Oct 31, 2016

Assets 3
  • Update to latest (31.10.2016) OpenMW
  • New functions for inventory sync: AddItem, RemoveItem, GetItemName, GetItemCount, GetItemHealth, GetInventorySize SendInventory
  • Add setting of health for items from server scripts
  • Detect basic death reasons for players (suicide or murder by another player)
  • Show players on minimap
  • Synchronize picking up and dropping of items
  • Synchronize deletion, placement and scaling of objects in world
  • Synchronize unlocking, locking and opening of doors
  • Word wrapping in chat
  • Add packet for playing video in clients
  • Start work in script sync by making Ghostgate buttons, Dwemer cranks and Sotha Sil levers work across clients
  • Prevent being in a menu from disabling script execution or actor damage
  • Fix server crash caused by invalid player GUIDs
  • Fix client freeze caused by receiving info about players who haven't inputted their names
  • Stop player-controlled NPCs from reporting crimes committed by players

@Koncord Koncord released this Sep 30, 2016

Assets 3

Changes against previous release:

  • Update to latest (30.09.2016) OpenMW
  • New style for APIs functions
  • Time API: SetHour, SetMonth, SetDay should be used like in Morrowind's scripts
  • Save server information in a folder named data instead of files
  • Remove outdated ID_GAME_UPDATE_SKILLS packet
  • Add chat messages to log in client
  • Add new functions: GetServerVersion & GetProtocolVersion
  • Add some verbose messages for chat
  • Fix verbose log level in server
  • Fix checking strings in SetName & SetBirthsign
  • Add PacketLoaded
  • Add loaded/isLoaded to server player
  • Make sensitivity to protocol version
  • New auth protocol
  • Log callbacks
  • Don't send unhandled skill and attribute requests to joining players
  • Add packet for player levels
  • Update position before sending cell packet
  • Improve logic for script-induced cell changes
  • Fetch attribute and skill counts in server stat functions
  • Add server stat functions for getting attribute and skill counts
  • Make tes3mp config files less confusing
  • Using less confusing names for server stat functions: GetHealth -> GetHealthBase, SetHealth -> SetHealthBase, GetCurrentHealth -> GetHealthCurrent, SetCurrentHealth -> SetHealthCurrent, GetMagicka -> GetMagickaBase, SetMagicka -> SetMagickaBase, GetCurrentMagicka -> GetMagickaCurrent, SetCurrentMagicka -> SetMagickaCurrent, GetFatigue -> GetFatigueBase, SetFatigue -> SetFatigueBase, GetCurrentFatigue -> GetFatigueCurrent, SetCurrentFatigue -> SetFatigueCurrent, GetCurrentAttribute -> GetAttributeCurrent, SetCurrentAttribute -> SetAttributeCurrent, GetCurrentSkill -> GetSkillCurrent, SetCurrentSkill -> SetSkillCurrent, GetIncreaseSkill -> GetSkillIncrease, SetIncreaseSkill -> SetSkillIncrease, GetAttribute -> GetAttributeBase, SetAttribute -> SetAttributeBase, GetSkill -> GetSkillBase, SetSkill -> SetSkillBase
  • Remove unused PacketRotation and PacketCreateProjectile
  • Remove unused packets IDs
  • Rename callback OnPlayerUpdateEquiped into OnPlayerChangeEquipment
  • Fix script functions for setting dynamic stats
  • Allow script-induced dynamic stat changes
  • Clean up handling of stat packets on client
  • Add server stat functions for getting and setting skill progress: GetSkillProgress, SetSkillProgress
  • Add server level progress functions: GetLevelProgress, SetLevelProgress
  • Split updateClassStats in 3 and add handling of level progress
  • Add handling of skill increases
  • Make GetItemSlot work and add SendEquipment in server item functions
  • Allow script-induced setting of equipment
  • Client: call LOG_QUIT after Networking's dtor call