1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-21 23:39:39 +00:00
Commit graph

3114 commits

Author SHA1 Message Date
David Cernat
f0f76516d8 Add OpenMW commits up to 4 Feb 2020
# Conflicts:
#	.travis.yml
#	CI/before_script.linux.sh
2020-02-05 02:03:31 +02:00
Andrei Kortunov
1db51a9e08 Re-work wandering outside of initial cell (bug #5261, bug #5262) 2020-02-02 11:02:19 +04:00
Alexei Dobrohotov
2652b10b9c
Merge pull request #2681 from akortunov/hello
Do not interrupt greeting update when Hello = 0 or actor starts to swim
2020-01-30 00:48:13 +03:00
Andrei Kortunov
1522883fdd Do not interrupt greeting update when Hello = 0 or actor starts to swim (bug #5248) 2020-01-29 16:31:09 +04:00
elsid
f7caeefddb
Fallback to straight path when navmesh and pathgrind are not available 2020-01-29 11:14:07 +01:00
elsid
8e0b638145
Fix start position for AiWander random point selection 2020-01-28 20:29:52 +01:00
David Cernat
59a38164ea [Client] Add generic objects to ObjectList using addObjectGeneric() 2020-01-23 09:03:40 +02:00
David Cernat
989188c171 [Client] Remove ObjectList's confusing addObjectDelete() function 2020-01-22 14:35:51 +02:00
elsid
1e106013a0
Use navmesh to find wander destination outside pathgrid for ground based actors
Use dtNavMeshQuery::findRandomPointAroundCircle from recastnavigation
2020-01-21 00:01:06 +01:00
elsid
e323e6e7e6
Consider moved distance in direction to destination for obstacle check
Assume actor is stuck when it's not able to move in the destination
direction with maximum speed. Approach to check moved distance from the
previous point doesn't work good for slow and big actors. When they face
obstacle they're trying to move along with oscillation so check is
passing but they don't get any closer to the destination.
2020-01-20 23:46:58 +01:00
David Cernat
60b6f92fa3 Add OpenMW commits up to 13 Jan 2020
# Conflicts:
#	apps/openmw/mwmechanics/actors.cpp
2020-01-15 07:49:26 +02:00
Andrei Kortunov
a384104f73 Rework greeting timeouts (bug #5249) 2020-01-11 21:47:08 +04:00
Andrei Kortunov
2bed25a5e8
Merge pull request #2659 from Capostrophic/aitravel
Handle out-of-range actors' travel packages (bug #5212)
2020-01-10 13:32:51 +04:00
capostrophic
fc0f813dcb Add and use 'always active' AI package flag
Update documentation
2020-01-10 12:07:57 +03:00
capostrophic
af2ea477d5 Don't use loops to detect absorb effects 2020-01-09 22:17:01 +03:00
capostrophic
42cc27194b Fix reported spellcasting discrepancies
Make ExplodeSpell behavior closer to Cast behavior (#5242)
Nullify on-self absorb spells in a different way (#5241)
Allow casting permanent spells through Cast/ExplodeSpell
2020-01-09 22:17:01 +03:00
capostrophic
2d87d287ba Handle out-of-range actors' travel packages (#5212) 2020-01-09 14:17:54 +03:00
capostrophic
29c6a8975a Don't combine sneak idle with scripted/wander idles (bug #4284) 2020-01-05 15:09:02 +03:00
David Cernat
a58f09fd6c Add OpenMW commits up to 2 Jan 2020
# Conflicts:
#	apps/openmw/mwmechanics/enchanting.cpp
#	apps/openmw/mwworld/scene.cpp
2020-01-02 22:09:54 +02:00
Andrei Kortunov
71e1d576cd Allow to enchant multiple projectiles at once (feature #3517) 2019-12-31 21:31:49 +04:00
David Cernat
ca9cd90a4d Add OpenMW commits up to 20 Dec 2019
# Conflicts:
#	apps/openmw/mwworld/scene.cpp
2019-12-20 15:43:50 +02:00
Andrei Kortunov
30a18c2a66
Merge pull request #2625 from Capostrophic/sneaking
[Regression] Attempt to fix idle state reset again
2019-12-20 14:32:22 +04:00
David Cernat
9763f6f9c5 [Client] Fix infinite activation loops caused by 48aba76ce9 2019-12-15 07:23:37 +02:00
Andrei Kortunov
97ee4bc349 Improve equipment logic (bug #5223) 2019-12-14 22:30:27 +04:00
Capostrophic
483b37bb3f Disallow resting if the fall height hasn't been reset (bug #4802) 2019-12-12 15:26:02 +03:00
Andrei Kortunov
3d9c42e8ee Cap reputation values (bug #5226) 2019-12-11 08:47:46 +04:00
David Cernat
4b27f8986b [Client] Synchronize positions for actors during death animations
This needs some improvements, because:

1) Sometimes the cell authority sends the death animation too late and a different one gets played on the other clients
2) There is probably a simpler check that can be done for position changes during a death animation.
2019-12-06 21:04:42 +02:00
David Cernat
c253950dd7 [Client] Don't play dying words for NPCs loaded up as dead from server 2019-12-06 14:50:10 +02:00
David Cernat
980edac942 [General] Rename PlayerTeam into PlayerAlly
Considering that you can be allies with someone without being allied to their allies, changing the name makes the system more intuitive.
2019-12-05 19:15:11 +02:00
David Cernat
a383b7b612 [General] Include death animations in ActorDeath packets 2019-12-05 13:27:55 +02:00
David Cernat
c4950f1beb [Client] Implement PlayerTeam packet, part 2
When determining actors siding with someone, also check the team members of DedicatedPlayers, not just those of the LocalPlayer.

Don't set players as each other's hitAttemptActor if they are team members.

Don't run startCombat() for DedicatedPlayers who get attacked.
2019-12-03 22:40:02 +02:00
Capostrophic
86c8fe386b Fix idle state reset 2019-12-03 20:50:57 +03:00
David Cernat
eeb3e4f938 [Client] Reset friendly hits when summoning a creature 2019-12-02 23:29:36 +02:00
David Cernat
9792a5256f [General] Use different compromise for summoning
Revert 9502d84a9cb99028f76f7fd2e05f9193ca66561 because the creature graveyard solves more problems than it causes. Only have the authority of a cell send deletion packets when a summon despawns.

Summoning is one of the least multiplayer-friendly systems in OpenMW and really needs to be redone serverside.
2019-12-02 20:48:52 +02:00
David Cernat
753e310dd4 [General] Implement PlayerTeam packet 2019-12-02 19:08:03 +02:00
David Cernat
9d6f3fdd09 Add OpenMW commits up to 1 Dec 2019
# Conflicts:
#	CMakeLists.txt
#	apps/openmw/mwscript/aiextensions.cpp
#	apps/openmw/mwscript/statsextensions.cpp
2019-12-01 23:52:42 +02:00
David Cernat
d9502d84a9 [Client] Disable clientside handling of summoned creature graveyards 2019-12-01 20:22:04 +02:00
David Cernat
d78bdefc01 [General] Include effect and spell ID for summons in ObjectSpawn packets 2019-12-01 13:31:11 +02:00
David Cernat
64c94346b6 [Client] Always send attack starts by actors immediately
Previously, creatures with fast attack animations would have their attack updated right after being started, which happened so quickly that it prevented the attack start from actually being sent by the client.
2019-11-30 15:50:05 +02:00
David Cernat
ed7fe859dd [Client] Set attackingOrSpell state instantly after Attack/Cast packets
It is no longer necessary to wait for the Actors::update() loop to set dedicated players and actors to their new states.
2019-11-30 15:03:51 +02:00
David Cernat
7acf6865b9 [Client] Don't clear spells for dying actors 2019-11-29 19:49:17 +02:00
David Cernat
0dae3074a6 [Client] Add missing comment related to spellcast animation 2019-11-29 14:02:52 +02:00
David Cernat
16662d772b [General] Synchronize death animations for players 2019-11-29 12:52:47 +02:00
David Cernat
140c1c9c12 [General] Use hard synchronization for melee attack animations
Previously, each client chose its own attack animations for DedicatedPlayers and DedicatedActors based on the direction they were walking in, which however led to desyncs for players with "Always Use Best Attack" enabled and for creatures which pick their attack animations randomly.
2019-11-29 10:39:57 +02:00
David Cernat
a385fcdd87 [Client] Fix crash caused by setting instant state for null localCast 2019-11-28 20:28:55 +02:00
David Cernat
06b4a4f97c [Client] Don't tie spellcasting for dedicated players/actors to anim end
When Koncord implemented spellcasting, he made it so only the act of initiating a spellcast was synchronized, leaving it to other clients to actually cast a spell for a dedicated player or actor once their spellcasting animation was over. This had led to a lot of desyncs and has always been inconsistent with the handling of attacks, so I've belatedly gone ahead and prevented the end of a spellcasting animation from having any effect for dedicated players and actors, making them cast a spell when an appropriate Cast packet is received from them instead.

Additionally, the logged messages in MechanicsHelper's handling of attacking and casting have been moved around slightly.
2019-11-28 10:34:34 +02:00
David Cernat
7815c8bdaf [Client] Queue sending of Cast packet from CastSpell::cast() 2019-11-28 09:40:22 +02:00
David Cernat
b74e3a7e2e [Client] Include spellIds in Cast packets again, fixing problem from 190c404b38 2019-11-28 00:11:51 +02:00
David Cernat
bbf9f20053 [Client] Stop sending WorldKillCount packets or incrementing local kills
This means the server scripts are now required to send a WorldKillCount packet as a reply to ActorDeath packets sent by clients. This gives the server full control over which kills are counted, while also solving the previous problem of kills being counted only for actors that had finished their death animations.
2019-11-27 11:21:29 +02:00
David Cernat
0c98c5d09e Add OpenMW commits up to 19 Nov 2019
# Conflicts:
#	apps/openmw/mwmechanics/aipursue.cpp
#	apps/openmw/mwmechanics/summoning.cpp
2019-11-19 17:16:48 +02:00