Commit Graph

16519 Commits (0.7.0)

Author SHA1 Message Date
Capostrophic bec47dfb7c Make ranged weapon bonus a distance-dependent multiplier 6 years ago
Capostrophic 382b68a081
Combat AI: take the actual hit chance in account when rating weapon 6 years ago
Andrei Kortunov 12144de8ed Initialize missing variables 6 years ago
Andrei Kortunov c0bed0fde2 Handle case when index < 0 6 years ago
Andrei Kortunov 770d86f9bd Initialize cubeSize variable for 360 degrees screenshots correctly 6 years ago
Andrei Kortunov a08048da4e Avoid dereference after null check 6 years ago
Capostrophic ab29f9e13f Add permanent barter disposition change option (feature #3103) 6 years ago
Marc Zinnschlag 1c13256456 Merged pull request #1829 6 years ago
Marc Zinnschlag 0e75e3816a Merged pull request #1830 6 years ago
Marc Zinnschlag 0c507b74bc Merge pull request #1832 6 years ago
Marc Zinnschlag 7c7af1da61 Merged pull request #1834 6 years ago
Capostrophic 4d48ede6f1 Add two missing gameplay settings to Advanced tab 6 years ago
Capostrophic be2e7e9e09 Make casting caster-linked on-self effects no-op (bug #4378) 6 years ago
Andrei Kortunov 5b92910829 Limit difficulty scaling, as mentioned in docs 6 years ago
Marc Zinnschlag aac580da6b Merged pull request #1828 6 years ago
Marc Zinnschlag 20d4e27f82 Merged pull request #1821 6 years ago
Andrei Kortunov c07cc0dc40 Reset animation state after weapon unequipping 6 years ago
Andrei Kortunov 0f2c3ecb17 Rescale player avatar (bug #4539) 6 years ago
David Cernat b57807407a [General] Implement RecordDynamic packet, part 1
Spell, potion, enchantment, creature, NPC, armor, book, clothing, miscellaneous and weapon record data can now be sent in a RecordDynamic packet. Additionally, the packets include data related to associated magical effects (for spells, potions and enchantments), data related to default inventory contents (for creatures and NPCs) and data related to body parts affected (for armor and clothing).

The server now has associated script functions for setting most of the details of the above, with the main exception being individual creature and NPC stats.

Records can either be created entirely from scratch or can use an existing record (set via the baseId variable) as a starting point for their values. In the latter case, only the values that are specifically set override the starting values. Creature and NPC records also have an inventoryBaseId that can be used on top of the baseId to base their inventories on another existing record.

The client's RecordHelper class has been heavily expanded to allow for the above mentioned functionality.

When players create spells, potions and enchantments as part of regular gameplay, they send RecordDynamic packets that provide the server with the complete details of the records that should be created. When they create enchantments, they also provide the server with armor, book, clothing and weapon records corresponding to the items they've enchanted.

This functionality added by this packet was originally supposed to be exclusive to the rewrite, but I've gone ahead and tried to provide it for the pre-rewrite in a way that can mostly be reused for the rewrite.
6 years ago
Capostrophic c79f96d0d2 Implement ranged crits (feature #3703) 6 years ago
Andrei Kortunov 1d463d129d Finish AiTarget package, if destination is blocked by other actor 6 years ago
Andrei Kortunov 75835c8326 Prevent NPC from chosing farther pathgrid node 6 years ago
Marc Zinnschlag 9e6cba09a6 Merged pull request #1827 6 years ago
Marc Zinnschlag 84de55fb46 Merged puil request #1824 6 years ago
Marc Zinnschlag 78121c1774 Merged pull request #1823 6 years ago
Marc Zinnschlag 3ba9229f47 Merged pull request #1815 6 years ago
Capostrophic 9c8e284ead Fix quick key activation delay code (regression #4536) 6 years ago
Capostrophic 84a871cac7 Actually enable is_pod test 6 years ago
Andrei Kortunov 6d5d0039ec Make sure we apply OT_Murder only once 6 years ago
Andrei Kortunov bc82dbbd1b Do not try to find missing animated collision shape again and again 6 years ago
Andrei Kortunov 2d4ec86b8d Provide launcher icons 6 years ago
David Cernat 2332423527 [Client] Fix extra qualification error in CellRef when compiling w/ GCC 6 years ago
David Cernat 7136329a94 [Client] Add World::updatePtrsWithRefId() method
This makes it possible to "reload" the Ptrs in active cells when changes happen to the ESM record that they are based on. In practice, the old Ptrs are deleted, their RefNums and MpNums are blanked out, and new Ptrs are created that use the same RefNum and MpNum as before.

The above has required me to also add a method called setRefNum() to CellRef to allow setting a RefNum on the fly.

There may be a more elegant implementation available for updatePtrsWithRefIds(), but it requires additional research.
6 years ago
Andrei Kortunov 28a02ac93b Use file selection dialogue result (bug #4524) 6 years ago
Marc Zinnschlag b7c159e5b6 Merged pull request #1816 6 years ago
Marc Zinnschlag c508938674 Merged pull request #1817 6 years ago
Marc Zinnschlag bbb22643e8 Merge remote-tracking branch 'capostrophic/warning' 6 years ago
David Cernat 9497c7f6f2 [Client] Add back mistakenly removed setting of mpNums for spawns 6 years ago
David Cernat 25fcd09780 [Client] Add doesNpcExist() method to RecordHelper 6 years ago
David Cernat 7995466e3c [Client] Check validity of refIds in ObjectSpawn packets
This reverts c7bcf70c32 because it provides a better solution to the problem solved there, while solving another related problem as well.
6 years ago
David Cernat 8d286657d4 [Client] Update messages when unilaterally creating custom objects 6 years ago
Capostrophic f7887ab05f
Fix MSVC C4456 warning: declaration of 'stats' hides previous local declaration 6 years ago
David Cernat c7bcf70c32 [Client] Ignore ObjectSpawn packets trying to spawn non-actors 6 years ago
David Cernat d93b67ef21 [General] Sync soul refIds for items and add related script functions 6 years ago
David Cernat f52364e05c [Client] Always create new references for new creature disguises
Previously, attempts to reuse the same reference for multiple creature disguises led to movement animation issues, as well as a dynamic_cast error in Creature::getInventoryStore() that made a DedicatedPlayer vanish completely when they first lost their creature disguise, then disguised themselves as a creature that could not hold weapons and then disguised themselves as a creature that could hold weapons.
6 years ago
David Cernat 60bc7447d9 [Client] Rework RecordHelper and add methods for other record types
The usage of const_cast has been replaced with usage of MWWorld::getModifiableStore() and ESMStore::overrideRecord()

Methods whose names started with "update" now start with "override", for consistency with ESMStore's overrideRecord()

New methods have been added for "overriding" enchantment, potion and spell records, which actually leads to them being created with their already set refIds if they haven't been created yet, as per the description of ESMStore::overrideRecord(): "Insert a record with set ID, and allow it to override a pre-existing static record."

Usage of RecordHelper methods has been updated in DedicatedPlayer.
6 years ago
Capostrophic 51d369d4da Add resumeGame method 6 years ago
David Cernat 4e78642273 [Client] Add getModifiableStore() to MWWorld 6 years ago
David Cernat d778bc3b8a [Server] Turn readWorldstate and writeWorldstate into static variables 6 years ago
David Cernat b4802e4201 [General] Use Time struct for time in BaseWorldstate 6 years ago
Andrei Kortunov 23d917df9c Do not use magic numbers in capacity calculations 6 years ago
David Cernat a4b588d1b5 [General] Add optional timestamps to journal entries in PlayerJournal 6 years ago
Capostrophic cac2bc768e
Fix NPC "can't teach more" message (bug #4494) 6 years ago
David Cernat b79221efcc [Server] Rename variable i into index in ActorFunctions 6 years ago
David Cernat 8fbed1f808 [General] Remove custom data from PlayerSpellbook packet
It has never made sense to have custom spell data in PlayerSpellbook packets, so it has been removed.
6 years ago
David Cernat 2e0b6e4e3e [Server] Rename variable i into index in script function arguments
Additionally, rename i into index in LangLua.
6 years ago
David Cernat 65de028e0d
Merge pull request #462 from OpenMW/master
Add OpenMW commits up to 23 Jul 2018
6 years ago
David Cernat 74fa1d0f01 [Client] Fix manual setting of inertial force
Actors who are on the ground have their inertial force ignored, so they are now made to not be regarded as being on the ground in World::setInertialForce()
6 years ago
David Cernat b69e6b96e6 [Client] Use verbose logging level for LocalActor debug 6 years ago
David Cernat 36ac2d9de4 [Client] Set packetOrigin for all ObjectList packets sent 6 years ago
David Cernat 692ee01340 [Client] Add ScriptController w/ contextType-to-packetOrigin method 6 years ago
David Cernat 63a86f145d [Client] Record type of each InterpreterContext for later checking 6 years ago
David Cernat d4a84ac34a [Server] Update script function descriptions for ObjectList origin 6 years ago
David Cernat 3dc2d1b214 [General] Add packetOrigin and originClientScript to ObjectList packets
Additionally, add script functions for getting the packetOrigin and originClientScript of received ObjectList packets.
6 years ago
David Cernat b891acd46e [Client] Send Container packets when items are added/removed via scripts
Additionally, disable unilateral addition and removal of items on clients, and expect the server to reply back with an approved addition or removal.
6 years ago
David Cernat 2189ea1a63 [Client] Clean up sending of Container packets 6 years ago
David Cernat 8c0b75d9f4 [Client] Limit PlayerEquipment packets sent by recharging enchantments 6 years ago
David Cernat 18f8725d33 [Client] Remove tab character that somehow made its way into a comment 6 years ago
David Cernat 038757b91a [General] Temporarily revert to original rotation animation sync
I originally added rotation animation sync as part of commit 068a45be87. Unfortunately, it meant the PlayerPosition packets were now twice as large as they had been before, which was less than ideal for such a frequently sent packet, which is why Koncord switched to a more optimized approach in commits 5f30dfd5db and d67db1a9bd.

Recently, there have since been some rotation animation problems in OpenMW, which have broken the way Koncord's approach looks. My original approach still looks somewhat okay, so I'm switching back to it until we can figure out how to reuse it under the current circumstances.
6 years ago
Marc Zinnschlag ddd5cbd17c Initialise lock state of newly opened subviews (fixes issue #4520) 6 years ago
David Cernat 3944c8aec6 [Client] Ignore WorldRegionAuthority packets that have an empty region 6 years ago
David Cernat 99e64bdcd7 [Client] Remove unused localWeather variable from Worldstate 6 years ago
David Cernat cd1fc590a7 [Client] Differentiate itemPtr from actor Ptr in DedicatedPlayer method
This fixes a mistake from 8f7da49152
6 years ago
David Cernat 5466092582 [Client] Reduce log level for actor cell changes 6 years ago
David Cernat 20e0100706 [General] Rework Attack packets and add synchronization for item magic 6 years ago
David Cernat 0f0e8b7c08 [Client] Adjust log levels used for weather and global map 6 years ago
David Cernat f1315ef30d [Cllient] Differentiate itemPtr from actor Ptr in DedicatedActor methods
2427a4f877 mistakenly used the variable name "ptr" for both the actor and the items in that actor's inventory.
6 years ago
David Cernat b6324e3532 [Client] Clean up debug for spell usage 6 years ago
David Cernat 826e64b40e [Server] Rename isPlayerExists() into doesPlayerExist() 6 years ago
David Cernat 21d5bb4d4e
Merge pull request #460 from OpenMW/master
Add 0.7.0 commits up to 20 Jul 2018
6 years ago
David Cernat 6c50d4199b Merge branch '0.7.0' of https://github.com/TES3MP/openmw-tes3mp into 0.7.0 6 years ago
David Cernat 421d0e7a99 [Client] Make forceWeather false by default for client-sent weather 6 years ago
David Cernat 892d71ce71 [General] Reimplement weather synchronization to allow soft transitions
Although weather sync was added by Koncord to the rewrite in fd721143e2 in a way that used surprisingly few lines of code, it relied on the server requesting weather states every second from authority players and sending them to non-authority players, while also allowing only very sudden weather transitions across regions, i.e. if there was one player in the Ascadian Isles who had stormy weather, and another player with clear weather in the Bitter Coast Region walked across to the Ascadian Isles, that player was instantly made to have stormy weather with no kind of transition at all.

My approach solves both of those problems. It solves the packet spam by only sending weather updates to the server when weather changes happen or when there are new arrivals to a weather authority's region, and it allows for both sudden weather transitions when players teleport to a region and for soft, gradual transitions when players walk across to a region. It is inspired by my previous actor sync, and uses a WorldRegionAuthority packet to set players as region authorities in a similar way to how ActorAuthority sets players as cell AI authorities. Weather changes are created only by the region authority for a given region, and weather packets are also only sent by that authority.

However, it should be noted that gradual weather transitions are used by default in this implementation. To use sudden weather transitions, the serverside Lua scripts need to forward WorldWeather packets with the forceWeather boolean set to true. That is, however, already handled by our default Lua scripts in situations where it makes sense.
6 years ago
Andrei Kortunov 8281fd903f Set movement speed to 0 when unconscious (bug #4519) 6 years ago
David Cernat b6db570d9c [Client] Display uniqueIndexes in a less confusing way in console 6 years ago
Andrei Kortunov 5c16ce1d36 Sort icons in the DataDisplayDelegate 6 years ago
Marc Zinnschlag 78a2725169 Merged pull request #1806 6 years ago
Marc Zinnschlag 326a3e61f4 Merged pull request #1807 6 years ago
Andrei Kortunov 38fa4e0a8a Do not play un-equipping animation when we switch to hand-to-hand 6 years ago
David Cernat 9823a77bf2 [General] Turn PlayerRegionAuthority into WorldRegionAuthority
WorldRegionAuthority is a Worldstate packet.
6 years ago
Koncord 2e227c7af5 [Server] Do not allow to connect with an empty plugin list 6 years ago
Koncord b5c957c473 [Server] Move PreInit code to preInit method 6 years ago
Koncord 1a9bf253f6 [Server] Simplify getPlayer methods, add isPlayerExists method 6 years ago
Andrei Kortunov edd5769022 Show magic items count in spells window (feature #4509) 6 years ago
Andrei Kortunov 30716344f2 Fix possible division by zero in the fatigue calculation (bug #4510) 6 years ago
David Cernat d5d3c0937f [Client] Adjust log level for actor transfers in CellStore 6 years ago
David Cernat 35fdb833df [Client] Verify integrity of credits file 6 years ago
David Cernat 72d286473b [General] Move credits integrity error message to new ErrorMessages file
Additionally, use correct log level for credit integrity message on server.
6 years ago
David Cernat 0b5cb15f71 [General] Turn GameWeather into WorldWeather, now a WorldstatePacket 6 years ago
David Cernat 646111d998 [General] Use correct credits checksum and move it to Version.hpp 6 years ago
David Cernat 0f36c3ea24 [Server] Verify integrity of credits file 6 years ago
Andrei Kortunov 6ddf6eb885 Use editor markers for lights and creatures levelled lists 6 years ago
David Cernat 4ac371d292 [Server] Delete duplicate WorldKillCount processor with old filename 6 years ago
David Cernat 3649cf553f [General] Rename PlayerKillCount into WorldKillCount
This should clarify the real meaning of the packet and its associated event.

The event itself has been renamed from OnPlayerKillCount to OnWorldKillCount.
6 years ago
David Cernat 18a2d238ab [Client] Don't pop up dialogue screen when an NPC activates another NPC 6 years ago
David Cernat 4ef2aff11e [Client] Remove "Not implemented" message when activating other player
Serverside scripts can now make lots of different things happen as the result of such activation, which is why the message was no longer current.
6 years ago
David Cernat f13705e8be [Client] Improve debug for ObjectActivate and ConsoleCommand 6 years ago
David Cernat 6ebe09375f [General] Implement ObjectActivate packet & associated script functions 6 years ago
David Cernat 81b160cae8 [General] Add placeholder for ObjectActivate packet 6 years ago
David Cernat 61da0d2475 [General] Turn PlayerInteraction into PlayerInput 6 years ago
David Cernat 32b6134fad [General] Add placeholder for CellReplace packet 6 years ago
David Cernat a471f5e452 [General] Turn CellCreate into a Worldstate packet 6 years ago
David Cernat 6cb5ac6e63 Merge pull request #457 from OpenMW/master while resolving conflicts
Conflicts:
	CMakeLists.txt
	apps/openmw/engine.cpp
	apps/openmw/main.cpp
	apps/openmw/mwgui/windowmanagerimp.cpp
	apps/openmw/mwmechanics/character.cpp
	components/CMakeLists.txt
6 years ago
David Cernat 6d43c8d63d [Client] Send ActorAI with combat when an NPC's fight is set to 100 6 years ago
David Cernat 743933134d [Client] Simplify sending of ActorAI packets for uninitialized actors 6 years ago
David Cernat 5f4ec1331f [Client] Send ActorAI packet when combat is started via a client script 6 years ago
David Cernat cc9e294cc0 [Client] Send ActorAI packet for new cell after being followed to it 6 years ago
David Cernat 528bd26a3b [General] Allow followers to follow non-authority players through cells 6 years ago
David Cernat ab5fd0aef8 [Server] Clean up descriptions for Object script functions 6 years ago
David Cernat 6c1173d598 [Client] Rename searchPtrViaRefIndex into searchPtrViaUniqueIndex 6 years ago
David Cernat 09da24f1ea [General] Rename all instances of refNumIndex into refNum
This creates symmetry with mpNum and should cause less confusion in the future.
6 years ago
David Cernat 20296859ee [Server] Clarify functions used for getting data in Networking 6 years ago
David Cernat 04dd59e638 [Server] Use clearer names for functions used to get last received data
Additionally, rename GetObjectChangesSize() into the less confusing GetObjectListSize()
6 years ago
David Cernat aeb2e57444 [Server] Bring Actor functions in line with Object functions, part 2
The ActorPacket-sending functions now have sendToOtherVisitors and skipAttachedPlayer arguments, except for the ones for ActorList and ActorAuthority (because such arguments don't make sense for those).
6 years ago
David Cernat 837c5369c0 [Server] Add OnActorAI event and remove autosync for ActorAI packets 6 years ago
David Cernat 8f745df055 [Server] Bring Actor functions in line with Object functions, part 1
The last received ActorList can now be copied into the write-only ActorList that can be sent in packets. Changing the pid of the write-only ActorList can now be done separately from clearing its contents.
6 years ago
David Cernat f0d4f1bbe5 [Client] Send ActorAI packets when followed by an NPC
The packet is sent regardless of whether we are the cell authority or not, so the server can decide what it wants to do with it.
6 years ago
David Cernat 6316f1e590 [Client] Add ActorList methods for sending ActorAI packets
Additionally, use consistent capitalization for AI-related methods.
6 years ago
David Cernat 0fd8f7660b [Client] Replace LocalActor arg with BaseActor in ActorList functions 6 years ago
Andrei Kortunov 3d1daaebab Rework manual spellcasting (e.g. via scripts) 6 years ago
David Cernat bdf2f03c4f [General] Remove unnecessary MapChanges struct from BaseWorldstate 6 years ago
David Cernat 59a56ca35e [Client] Disallow clients from scaling their associated players
Additionally, display messages when trying to scale players.
6 years ago
David Cernat 8ca29dbaac [Client] Fix remaining mistakes in debug for received ActorAI packets 6 years ago
David Cernat 5bb442bbd3 [Server] Add sendToOtherVisitors boolean to SendActorAI()
Additionally, avoid repetition in functions that send Actor packets.
6 years ago
David Cernat 25f7a55495 [Client] Improve debug for received ActorAI packets 6 years ago
Bret Curtis 99e4d49e7c
Merge pull request #1787 from akortunov/profilierfont
Use the DejaVuLGCSansMono.ttf for profiler output
6 years ago
Andrei Kortunov 70b6d4983d Use the DejaVuLGCSansMono.ttf in profilier output 6 years ago
Marc Zinnschlag ee759effce Merged pull request #1798 6 years ago
David Cernat bff6e9e235 [General] Implement ActorAI packet, part 5
Allow repetition for AiWander package to be turned on and off.
6 years ago
Andrei Kortunov c77c50e92b Make Equip console command to bypass most of restrictions (bug #4460) 6 years ago
Capostrophic 5cb9dc9d12 Use SpellTurnLeft/TurnRight animation groups 6 years ago
Bret Curtis df1576fcf5
Merge branch 'master' into crossbowfix 6 years ago
Bret Curtis fde46f03b3
Merge pull request #1801 from terabyte25/terabyte25-trainingskill
Update trainer skill cap based off modified skill instead of based skill
6 years ago
Andrei Kortunov 1c35e20fcc Use 1h animations as fallback for crossbows 6 years ago
Andrei Kortunov 75dcbea365 Apply weapon reload animations only for upper body 6 years ago
David Cernat 2e31c212c0 [Client] Make any ActorAI packet override an actor's desire to fight 6 years ago
David Cernat 79ee976c95 [Client] Implement ACTIVATE action in DedicatedActor::setAI()
Additionally, clean up usage of CreatureStats in DedicatedActor.
6 years ago
David Cernat 0f30e21312 [Client] Add searchPtrViaRefIndex method to World to easily find objects 6 years ago
Andrei Kortunov 27a5da59ba Fix MSVC warnings C4456 6 years ago
David Cernat c984fc0881 [Client] Allow AiActivate to be used with specific Ptrs, not just refIds 6 years ago
David Cernat 00c13ae96c [General] Implement ActorAI packet, part 4
The server can now make actors activate players and objects, at least in theory. In practice, OpenMW''s AiActivate package needs to be worked so it allows specific objects as targets instead of just refIds.
6 years ago
David Cernat 0e13207afe [General] Implement ActorAI packet, part 3
The server can now cancel actor AI, make actors travel to a location, make actors wander, and make actors get escorted by a player or another actor.
6 years ago
David Cernat 5baef09f79 [General] Implement ActorAI packet, part 2
The server can now make actors start combat with players or other actors.
6 years ago
David Cernat 5628f3b977 [Client] Fix debug for DedicatedActor::setAI() 6 years ago
David Cernat b86155dc11 [Client] Allow AiFollow package to have infinite distance when desired 6 years ago
David Cernat 864c66d1d4 [Client] Make sure hasAiTarget is set correctly for DedicatedActors 6 years ago
David Cernat 4d4bced929 [Client] Allow singleplayer-only saves in main menu during multiplayer 6 years ago
terrabyte25 48296a7452
Update trainingwindow.cpp 6 years ago
Marc Zinnschlag 0bdd8f7d03 Merged merge request !19 6 years ago
Alexander Stillich 725cc94210 Renamed cc_install to something less cryptic (crashCatcherInstall) 6 years ago
Doc West 467989cdd5 Moved crashcatcher to a component and also use it in CS
Reworked debugger detection (failed on gdb 7.11), it now uses /proc to detect the debugger
6 years ago
Alexander Stillich 1177e5ac79 Issue a single dataChanged() when the modified column changes 6 years ago
Doc West d26b5a13ef Fixed comment 6 years ago
Doc West 01b8ce5f70 Notify views of changes in all columns when updating the ColumnId_Modification column 6 years ago
Doc West 4a6457c346 Changed the way the revert command works: it now clones the changed record and uses the new RecordBase::revert() method to restore the previous value
Added Flag_Dialogue_Refresh to var type and var value columns so that sub views update properly
6 years ago
Doc West 143eadb58e Use setData() instead of emtitting dataChanged() which does not work on CI. Also Fixes the remaining issue with subviews not updating due to only the modified flag emitting a change, which prevented the widget mapper from working for updates. 6 years ago
Doc West 4780f1b2bd Notify views of changes of all cells in a row to properly update the row after revert 6 years ago
Capostrophic d09c327b20 Update changelog 6 years ago
Capostrophic 14d3b213a1
Fix double call of addContainerScripts on player in moveObject (fixes #4490) 6 years ago
David Cernat 6ff7fa525e [Client] Disable autosaving when waiting 6 years ago
David Cernat 04ba324290 [Client] Disable clientside disabling and enabling of objects 6 years ago
David Cernat 5043fb4246 [Client] Disable clientside disarming of traps 6 years ago
David Cernat cbb9817913 [Server] Add missing descriptions for PlayAnimation() and PlaySpeech() 6 years ago
David Cernat 6ba9b1742b [Server] Remove unused default parameters for script functions 6 years ago
David Cernat acdaf1a282 [Client] Disable clientside deletion of objects through console/scripts
Unfortunately, disabling clientside deletion of summons and items that can be picked up requires extra work on actors and inventories respectively, to avoid buggy situations.
6 years ago
David Cernat 8d9fde810e [Client] Disable clientside scaling of objects 6 years ago
David Cernat f3892d697b [Client] Disable clientside locking and unlocking of objects 6 years ago
David Cernat 563269d359 [Server] Bring comments up-to-date for packet-sending script functions 6 years ago
David Cernat 2f1ef049d2 [Server] Turn sendToAttachedPlayer into skipAttachedPlayer
Unfortunately, default values set in the C++ code for our script function parameters don't actually seem to work, and they always default to false because they receive a nil value from Lua. As a result, to not break compatibility with previous scripts, I've decided to use a skipAttachedPlayer argument instead so it can default to false while still providing the same benefits that sendToAttachedPlayer provided.
6 years ago
David Cernat 141e404ed9 [Server] Move server administration functions to ServerFunctions class 6 years ago
David Cernat 6041425122 [Server] Move Chat functions to new ChatFunctions class 6 years ago
David Cernat 6a3fbf4e98 [Server] Use consistent arguments for script functions that send packets
Previously, there was a confusing separation between script functions that had a "broadcast" argument and script functions that had a "toOthers" argument.

Those with broadcast sent the packet to all players on the server when broadcast was true. Those with toOthers sent the packet to all players other than the packet's attached player.

The former was based on the pattern of the original SendMessage() script function. The latter more closely resembled RakNet's own broadcast argument as seen here:

https://github.com/TES3MP/CrabNet/blob/master/include/raknet/RakPeer.h#L219

This commit makes it so all sending functions have a sendToOtherPlayers argument that is false by default and a sendToAttachedPlayer that is true by default. This should simultaneously allow sending to be more intuitive, while not breaking previous existing scripts to a significant degree.

Additionally, this commit also reduces some code repetition for all instances of packet-fetching in script functions.
6 years ago
David Cernat 14e4f64296 [Server] Add GetVideoFilename() and SendVideoPlay() script functions 6 years ago
David Cernat 3ed9d89280 [General] Use separate variables for video & music filenames in packets 6 years ago
David Cernat 509882b5f6 [Client] Rework MechanicsHelper::getTarget() to avoid crashes 6 years ago
David Cernat 7f0549fc4f [Server] Remove hardcoded sync for VideoPlay and add OnVideoPlay event 6 years ago
David Cernat ae8b5a0709 [Server] Remove hardcoded sync for Place, Spawn & other Object packets 6 years ago
David Cernat e3e1cfc549 [Client] Add forgotten comparison in crimeTime and deathTime check 6 years ago
Capostrophic bded697f07
Make Goodbye block using hyperlinks 6 years ago
David Cernat 4eb72eecb1 [Client] Fix crash for invalid CellRefs in MechanicsHelper::getTarget() 6 years ago
David Cernat 4b30a44816 [Client] Compare crimeTime and deathTime when NPCs forgive player crimes
Previously, all crime witnesses stopped being hostile to a respawning player for as long as the player's diedSinceArrestAttempt was true. That meant that, in an area with no guards to arrest the player, crime witnesses did not enage in combat with the player at all ever again until diedSinceArrestAttempt became false.

This commit makes it so the time of the last crime is recorded for each witness, and that is then compared with the time of the LocalPlayer's last death for a one-time crime forgiveness during that player's current life.

This is essentially a gameplay adjustment for "singleplayer with respawns," and will have to be reworked to make sense for every player in multiplayer, though that requires reworking the crime system as a whole and is thus on hold.
6 years ago
Marc Zinnschlag d9de8ccb5b Merged pull request #1781 6 years ago
Marc Zinnschlag dd08194c75 Merged merge request !18 6 years ago
Marc Zinnschlag 7ba512b389 Merged merge request !17 6 years ago
David Cernat c23fc3446f [Client] Avoid sending map tiles for Wilderness cells 6 years ago
David Cernat 17c234d9ca [Client] Use initial values for LocalPlayer and LocalActor killers 6 years ago
David Cernat 97cd3effa7 [Client] Make actor debug consistent with object debug 6 years ago
Capostrophic 9abfabb065
Ensure forward-compatibility of death animations in old saves (fixes #4274) 6 years ago
David Cernat b0bd12f9dd Merge branch '0.6.3' of https://github.com/TES3MP/openmw-tes3mp into 0.6.3 6 years ago
David Cernat c075496748 [General] Replace deathReason in death packets with a killer variable
Add serverside script functions for determining the killers of both players and actors.

Use unsigned ints for script functions returning an object or actor's refNumIndex or mpNum.

Remove updateDeadState() from LocalPlayer and make its code part of updateStatsDynamic() for simplicity.
6 years ago
David Cernat 934e592bdb [Server] Make spacing in CharClass consistent with other categories 6 years ago
David Cernat e8ce009521 [Server] Use regular int as return value for GetObjectSummonerPid()
Additionally, clarify descriptions of script functions for getting information about summoners.
6 years ago
David Cernat f02492a593 [General] Temporarily include target names in mwmp::Target
These will be removed once the server can get the names matching refIds by reading content files.
6 years ago
Doc West f9b565a46e Removed QDebug include, moved updateUndoRedoAction to an anonymous namespace 6 years ago
Doc West 61109d70b1 Removed invalid / unused signal / slot connection 6 years ago
David Cernat 691b332d03 [Client] Use MechanicsHelper::getTarget() for summoners in ObjectList 6 years ago
David Cernat 130a32ebb0 [Client] Add new methods for handling mwmp::Target in MechanicsHelper 6 years ago
Koncord 470ea50b54 [General] Use LuaJit instead default Lua 6 years ago
David Cernat 7010575075 [Server] Return -1 in GetObjectSummonerPid() when the player is invalid 6 years ago
Capostrophic faf3e9ba5a Make spellcasting stance transition more smooth (fixes #4358)
If a movement animation was identical to the previous one that was played, restart it from the point the previous animation ended
6 years ago
David Cernat 76731f5def [Client] Don't remove SummonKeys with actorIds of -1
This prevents summon duplication caused by a SummonKey sometimes being deleted immediately after being created, before the server can send back an ObjectSpawn packet spawning a creature that can be attached to the SummonKey.
6 years ago
Doc West baf21362e1 Fixed undo / redo actions losing their shortcuts 6 years ago
Doc West 414f626309 Implemented search case sensitivity 6 years ago
David Cernat c2411982d2 [Client] Log object refNumIndexes and mpNums in a consistent way 6 years ago
David Cernat 7775780ad7 [Cllient] Update multiplayer code for handling quick keys 6 years ago
David Cernat 3438061b55 [Server] Add script function for getting a summoner's pid
Additionally, fix typos in the comments for other script functions relating to summoners.
6 years ago
David Cernat 8a23a96da4 [Client] Update initialization of AiFollow packages in multiplayer code 6 years ago
David Cernat a236ffc4be Merge pull request #456 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	README.md
#	apps/openmw/mwgui/quickkeysmenu.cpp
#	apps/openmw/mwmechanics/actors.cpp
#	apps/openmw/mwmechanics/combat.cpp
6 years ago
Koncord 1f4e6e9114 [General] Add integrity checks to Handshake packet 6 years ago
Koncord fa2bf0663e [General] Simplify vectorContains 6 years ago
Marc Zinnschlag 908af3720f Merged pull request #1791 6 years ago
Marc Zinnschlag e50c3657b3 Merged merge request !16 6 years ago
Doc West e9cc697b60 Sort EnumDelegate values by name 6 years ago
David Cernat 3aa125ceda [Server] Add script functions for getting a summoner's refId and indexes 6 years ago
Koncord 53346e2663 [Client] Return 0 if effect not found 6 years ago
Koncord c5c1a160b2 [Client] Comment out an unused variable 6 years ago
Koncord 895634cd16 [General] Change type of MpNum to "unsigned int" 6 years ago
Koncord d999cc0d55 [General] Add packetValid flag to packets 6 years ago
David Cernat f9ebe400f7 [Server] Add script function for checking if object's summoner is player 6 years ago
Koncord d162f6fd3a [General] Explicitly use limitations of the master server 6 years ago
Koncord 62877f38b7 [General] Remove Terra support
Use LuaJIT instead.
6 years ago
Koncord 685a80887b Remove Pawn support 6 years ago
Andrei Kortunov f4330cf057 Editor: limit FPS in 3D preview windows (feature #3641) 6 years ago
Thunderforge 7cbc4eeb49 Adding missing override keywords
Prevents compiler warnings such as this:

```
/Users/Will/CLionProjects/OpenMW/apps/openmw/mwgui/windowbase.hpp:65:22: warning: 'onOpen' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void onOpen();
                     ^
/Users/Will/CLionProjects/OpenMW/apps/openmw/mwgui/windowbase.hpp:38:22: note: overridden virtual function is here
        virtual void onOpen() {}
                     ^
```
6 years ago
David Cernat bef53749ed [General] Replace BaseObject's hasMaster variable with isSummon
Additionally, add a GetObjectSummonState() script function to the server.
6 years ago
David Cernat 8ce225b1cc [Client] Use the casters of damage-dealing spells as death reasons 6 years ago
Finbar Crago 5d9035c6b2 [Fixes #4482] Missing HandToHand on key quick key 0 (introduced in MR !11 for issue #4480)
because apparently i can't count to ten...
6 years ago
David Cernat 958b220835 [General] Send summon duration to server in ObjectSpawn packets 6 years ago
Marc Zinnschlag 2ea85d0bb6 Merge remote-tracking branch 'gl_finbar-crago/fix_quickkey_segfalt' 6 years ago
Finbar Crago 09c9bd34c3 cleanup more unnecessary struct keywords... 6 years ago
Capostrophic 6e9c08083d
Add missing empty attacker checks 6 years ago
Capostrophic bccba24c40 Make unarmed creature attacks not affect armor condition (fixes #2455) 6 years ago
Finbar Crago 69cd7031e7 Merge branch 'master' into fix_quickkey_segfalt 6 years ago
Finbar Crago 596be205c1 cleanup unnecessary struct keywords... 6 years ago
Finbar Crago 2722ca50fb fix QuickKeysMenu crash on reopening window after item drop + pickup [see: !11#note_85086570] 6 years ago
Finbar Crago 7ae388086b Merge branch 'master' into fix_quickkey_segfalt 6 years ago
Thunderforge 72f6b1a693 Separating "Game" Advanced Settings into "Game Mechanics" and "User Interface" 6 years ago
Finbar Crago ed71656ea6 fix updateActivatedQuickKey() crash
keyboard numbers don't start at zero...
6 years ago
Finbar Crago 24d5fb09da fix crash on simultaneous key presses 6 years ago
Bret Curtis f07d50e5bf
Merge pull request #1785 from akortunov/warnfix
Fix some GCC warnings
6 years ago