Commit Graph

13447 Commits (0fe2d743a7c9f1e21183b583e49c0e909d464942)

Author SHA1 Message Date
scrawl b6d02d9b14 Fix order of operations when undoing werewolf transformation of an NPC 8 years ago
David Cernat 4e23fc0a5b Send action parameter to OnPlayerChangeSpellbook 8 years ago
David Cernat 9e290ad799 Fix spacing irregularities 8 years ago
David Cernat d4b5c826f8 Fix typo in spell script functions 8 years ago
David Cernat c81b58e1be Add spell script functions to tes3mp server 8 years ago
David Cernat 8aeb3a6cc6 Reorder script function classes in tes3mp server's CMakeLists.txt 8 years ago
David Cernat 95efb77e53 Implement sending of ID_GAME_SPELLBOOK from client 8 years ago
David Cernat 6ea5f08e9c Create placeholder for ID_GAME_SPELLBOOK 8 years ago
David Cernat 1feec58ed2 Merge pull request #108 from OpenMW/master
Add OpenMW changes up to 20 Nov, part 3
8 years ago
David Cernat ae39daf76a Add and implement ID_MUSIC_PLAY 8 years ago
scrawl c326564e20 Merge pull request #1136 from Allofich/deletespell
Allow deleting spells that have the "always succeeds" flag
8 years ago
scrawl 16a913c549 Add emission of water ripple particles for water-walking actors (Fixes #3608) 8 years ago
David Cernat f9ca98498d Merge pull request #107 from OpenMW/master
Add OpenMW commits up to 20 Nov, part 2
8 years ago
Allofich c82df2553c Allow deleting spells that have the "always succeeds" flag (Fixes #3627) 8 years ago
David Cernat 7a3d490121 Rename dumps into crashdumps to make the folder's purpose clear to users 8 years ago
David Cernat f865246955 Fix Breakpad using changes provided by Stanislav in a gist 8 years ago
scrawl 385db50f2d Merge pull request #1131 from Allofich/waterwalking
Make water walking mechanics closer to original MW
8 years ago
MiroslavR c1e52bbcf7 Fix -Wmismatched-tags clang warning 8 years ago
Allofich 0e429ae41d Make water walking mechanics closer to original MW 8 years ago
David Cernat 456aee65d9 Add and implement ClearInventory() script function 8 years ago
David Cernat 80b40bfb70 Prevent inventory requests from making LocalPlayer send inventory twice 8 years ago
David Cernat 7fae28ce91 Prevent RemoveItem() script function from clearing inventorySendBuffer
Up to this commit, the following commands in a Lua script led to the target player receiving all three items, as expected:

    tes3mp.AddItem(self.pid, "common_shirt_01", 1, -1)
    tes3mp.AddItem(self.pid, "common_pants_01", 1, -1)
    tes3mp.AddItem(self.pid, "common_shoes_01", 1, -1)
    tes3mp.SendInventory(self.pid)

This, on the other hand, only led to the removal of the last item specified (in this case, the shoes):

    tes3mp.RemoveItem(self.pid, "common_shirt_01", 1)
    tes3mp.RemoveItem(self.pid, "common_pants_01", 1)
    tes3mp.RemoveItem(self.pid, "common_shoes_01", 1)
    tes3mp.SendInventory(self.pid)

Inventory functions are bound to remain confusing, but they should at least be consistent in their behavior.
8 years ago
David Cernat c6eac31d94 Merge pull request #106 from OpenMW/master
Add OpenMW changes up to 20 Nov
8 years ago
scrawl f51e06bc47 Recreate shaders if necessary when the NpcAnimation is rebuilt
This fixes certain equipment losing the 'invisibility' effect after a view-mode switch with shaders enabled. Because the initial build of shaders done by the resource manager is not aware of the override state in the NpcAnimation's object root, we have to build new shaders here.
8 years ago
scrawl e823cbf018 Fix incorrect priority of animation sources (Bug #3626) 8 years ago
MiroslavR 8f91732b09 Show starting abilities, powers and spells in stat-review window (Fixes #2410) 8 years ago
David Cernat 49a78d8462 Merge pull request #105 from OpenMW/master
Add OpenMW changes up to 19 Nov
8 years ago
David Cernat 843e84ba26 Once again use RakNetGUID as index for player map everywhere
Because of frequent server crashes, I tried to simplify the player map indexes with commit c91e240664, but it had no noticeable effect and was later partially reverted by Koncord in commit 902e968fd9, apparently for reasons of readability.

For the sake of consistency, this commit completes his reversion.
8 years ago
David Cernat 234266755e Prevent player-controlled NPCs from auto-unequipping candles and torches 8 years ago
David Cernat 7f25abb9c8 Implement UnequipItem() script function 8 years ago
David Cernat c1bd4f1ce3 Use correct item count in LocalPlayer::setEquipment() for new items 8 years ago
David Cernat 56928bdc4c Clean up inventory script functions so they are usable for equipment too 8 years ago
David Cernat 356143faed Rename GetEquipmentSlotCount() into GetEquipmentSize() 8 years ago
David Cernat 977e93288e Add GetEquipmentSlotCount() to item script functions 8 years ago
David Cernat fcd24ebb7e Rename methods to show they deal with Equipment instead of Inventory 8 years ago
David Cernat c2abcd3869 Fix installation target for tes3mp 8 years ago
David Cernat b028f0b51f Merge pull request #104 from OpenMW/master
Add OpenMW commits up to 17 Nov
8 years ago
David Cernat 120a4400d9 Merge branch 'master' of https://github.com/TES3MP/openmw-tes3mp 8 years ago
David Cernat 6e630e6123 Send inventory packets when picking up world items 8 years ago
MiroslavR 7e5ba4d435 Fix default values of some GMSTs 8 years ago
scrawl 9d125bcaa2 Merge pull request #1129 from PhillipAnd/phillipand-cmake-fix
Fix various build issues with Visual Studio environment
8 years ago
scrawl 2368382ea5 Fix upside down rain particle texture 8 years ago
Koncord f5f1a29f31 Change printf to LOG_MESSAGE_SIMPLE 8 years ago
David Cernat 3a733eb122 Make tes3mp includes consistent 8 years ago
David Cernat faea5221d3 Use LocalPlayer's updateInventory() every cell change, not every frame 8 years ago
Koncord 18026d4a50 Fix include guard 8 years ago
Koncord 902e968fd9 Use RakNetGUID instead uint64_t in TPlayers 8 years ago
Koncord e2359b01ea Use constant instead magic value 8 years ago
Koncord e2522fa366 Simplify LOG macros 8 years ago
David Cernat eedd40328a Add and use SendInventory() method in LocalPlayer, and clarify some code 8 years ago
MiroslavR 5e46121046 Implement fleeing AI (Closes #1118) 8 years ago
David Cernat c5c72a3b17 Use consistent names for booleans in LocalPlayer 8 years ago
David Cernat 46b41b605a Revert "Use lowerCamelCase in tes3mp server script function names, part 1"
This reverts commit 0e2b589cdb.
8 years ago
David Cernat ad43cb5473 Revert "Use lowerCamelCase in tes3mp server script function names, part 2"
This reverts commit 80d16fe1fd.
8 years ago
David Cernat 1a25434d33 Turn overlooked instance of GetCell() into getCell() 8 years ago
David Cernat 6cd959fac8 Rename BasePlayer's GetCell() into getCell() 8 years ago
David Cernat 80d16fe1fd Use lowerCamelCase in tes3mp server script function names, part 2 8 years ago
David Cernat 0e2b589cdb Use lowerCamelCase in tes3mp server script function names, part 1 8 years ago
David Cernat 25dc2b19e7 Use lowerCamelCase in tes3mp server networking function names 8 years ago
David Cernat 7be86388db Fix build for server 8 years ago
David Cernat fa9d6e810e Use lowerCamelCase in tes3mp client function names like OpenMW does 8 years ago
David Cernat 527024a026 Stop WorldPackets about invalid cells from causing framelistener errors 8 years ago
David Cernat a430ee011a Use WorldController to fetch CellStore for WorldPackets received 8 years ago
David Cernat 3dcb8738c1 Create placeholder WorldController class 8 years ago
David Cernat 8d2793401e Merge pull request #103 from OpenMW/master
Add OpenMW commits up to 13 Nov
8 years ago
Phillip Andrews c18fc113e5 Changed missing library dependencies to simple fix 8 years ago
Phillip Andrews aeaedbc57a Moved install commands to target-specific cmakelists so that all configurations work. 8 years ago
Phillip Andrews 59eba1dede Changed tabs to spaces, oops 8 years ago
Phillip Andrews 86b4673539 Removed math constants in openmw-cs, which are apparently not going to be used 8 years ago
Phillip Andrews a1225ff4ec Additional MSVC library dependencies 8 years ago
Phillip Andrews 1861302dbd Include various libraries for Visual Studio environment 8 years ago
scrawl 02b9e81f89 Merge pull request #1127 from Allofich/warnings
Fix shadowing warnings
8 years ago
MiroslavR 175cfd4dff Fix overloaded virtual function warning 8 years ago
Allofich 3420121c3f Fix shadowing warnings 8 years ago
Allofich fee39afe38 Don't allow resting on water with water walking 8 years ago
David Cernat f7b5e5e638 Ignore packets from server that try to move LocalPlayer to invalid cells 8 years ago
David Cernat dc9b814ff6 Fix typo in server script translocations 8 years ago
David Cernat 841e93d5e0 Use new SendCell() method in server scripts to send cell packets 8 years ago
David Cernat 5b39916894 Use new SendPos() method in server scripts to send position packets 8 years ago
David Cernat e0c88150c3 Reorder functions for server script translocations 8 years ago
Koncord c85e6a5f91 Fix sucess chance 8 years ago
Koncord 799842b5da Reduce using of the CPU 8 years ago
Koncord 56959ebfda Implement magic 8 years ago
David Cernat 729da2c0ba Improve logic and clarity of LocalPlayer's charGenThread()
Until now, the fact that charGenThread() returned false whenever the player had a menu open was preventing Main::UpdateWorld() from running at all with a menu open.

The result was that no player packets from LocalPlayer::Update() were being sent by a player in a menu.
8 years ago
David Cernat dc5bb32f2a Merge pull request #100 from OpenMW/master
Add OpenMW commits up to 11 Nov
8 years ago
scrawl f0d5cf7afb Merge pull request #1112 from Assumeru/waterwalking
Move actors out of the water if there's room for them. Fixes #1138
8 years ago
Assumeru 05cc258ed3 Start trace from collision object origin 8 years ago
Assumeru 99bc4f733f Trace up to waterlevel + halfextent 8 years ago
David Cernat 48ca4d29bc Merge pull request #99 from OpenMW/master
Add OpenMW commits up to 7 Nov
8 years ago
scrawl 92d42ef49b Merge pull request #1123 from Allofich/warnings
Fix dereference of null pointer warning
8 years ago
Allofich c7313606f5 Fix dereference of null pointer warning 8 years ago
David Cernat 8aaf44e5a8 Fix accidental line duplication 8 years ago
David Cernat ec211e58d0 Merge pull request #98 from OpenMW/master while resolving conflicts
# Conflicts:
#	apps/openmw/CMakeLists.txt
8 years ago
MiroslavR e80636f0ca Improve performance of repairing/recharging (Fixes #2493) 8 years ago
Nikolay Kasyanov 3adf4cb97f Link OpenMW with libz on macOS 8 years ago
Nikolay Kasyanov 0115a3a874 Revert "Link OpenMW with libz on macOS"
This reverts commit 0c4dd05118.
8 years ago
Nikolay Kasyanov 0c4dd05118 Link OpenMW with libz on macOS 8 years ago
scrawl d8b506155e Merge pull request #1118 from MiroslavR/resize-perf
Fix horrible performance when resizing/moving the settings window
8 years ago
David Cernat 817b63922c Put DedicatedPlayer in ToddTest if his cell doesn't exist on our client 8 years ago
David Cernat 4d053743a0 Merge branch 'master' of https://github.com/TES3MP/openmw-tes3mp 8 years ago
David Cernat 25afa47e08 Only declare ptrCellStore for WorldPackets that need it 8 years ago
Koncord 82f202c891 Implement GetAvgPing(pid) function 8 years ago
Koncord 37e9cafbf7 Add new API function: SetConsoleAllow
example:
tes3mp.SetConsoleAllow(pid, 0) -- disallow console to the player

The console is allowed by default
8 years ago
Koncord 3759127627 Woops 8 years ago
Koncord 6f6993255a Fix string in breakpad() 8 years ago
Koncord adb49b7c7d Add New GUI dialog: ListBox
Example:

local GUI_LISTBOX = 42

function OnPlayerSendMessage(pid, message)
    if message == "/lb" then
        local items = "consectetur adipiscing elit\nsed do eiusmod tempor incididunt ut labore\net dolore magna aliqua." -- items can be separated through newline
        local label = "Lorem ipsum dolor sit amet"
        tes3mp.ListBox(pid, GUI_LISTBOX, label, items)
    end
end

function OnGUIAction(pid, idGui, data)
    if idGui == GUI_LISTBOX then
        print("ID: " .. idGui .. " data: " .. tostring(data)) -- if value higher than last item id
    end
end
8 years ago
David Cernat 107dacac6d Add OnPlayerChangeInventory server script callback 8 years ago
David Cernat 6ff47bbde9 Merge pull request #93 from OpenMW/master
Add OpenMW commits from 1 Nov
8 years ago
Nikolay Kasyanov 5d4734c02e Use local path from configuration manager to load openmw.cfg in launcher 8 years ago
MiroslavR 5cd04af3fa Fix horrible performance when resizing/moving the settings window
Resize widgets instead of reconstructing them.
8 years ago
David Cernat 66e697953c Add missing break statement in Networking to prevent default nighttime 8 years ago
David Cernat 31d02e8bf1 Move Networking code for ID_GAME_INVENTORY next to ID_GAME_EQUIPMENT 8 years ago
David Cernat 06152fde77 Stop player-controlled NPCs from reporting crimes committed by players 8 years ago
David Cernat 4621363b65 Make capitalization reflect name of filename, and remove unused check 8 years ago
David Cernat 373011f883 Only send information to POSTLOADED player about other POSTLOADED ones 8 years ago
David Cernat cd798d5f23 Merge pull request #89 from OpenMW/master
Add OpenMW commits up to 30 Oct
8 years ago
scrawl e0f613661e Fix char -> int, fix shadowing warning 8 years ago
David Cernat 05cfc918f5 Temporarily use a whitelist for scripts instead of a blacklist 8 years ago
scrawl cac8de0b29 Merge pull request #1116 from Allofich/paused
Don't update ripple simulation when paused
8 years ago
scrawl e5cb7306c3 Merge pull request #1115 from Allofich/conversion
Fix narrowing conversion warning
8 years ago
Allofich 19db070fca Don't update ripple simulation when paused 8 years ago
David Cernat 621faf368e Fix server crash caused by invalid player GUIDs, 2nd attempt 8 years ago
Allofich 68ed264f40 Fix narrowing conversion warning 8 years ago
David Cernat ffb7683a5f Use suicide as death reason when an attacker leaves the server 8 years ago
Allofich 125e94ef0e Fix shadowing warnings 8 years ago
David Cernat 3c4b74cd14 Fix frame listener errors for player markers 8 years ago
David Cernat eebe1f156a Change logic for death reasons so it makes sense 8 years ago
David Cernat 9c12aa2141 Fix formatting 8 years ago
David Cernat 6929cd6c4c Delete debug about player map that is no longer needed 8 years ago
David Cernat cee7843576 Send ID_OBJECT_DELETE when taking world items through inventory screen 8 years ago
David Cernat 41504bd02a Use more accurate position for ID_OBJECT_PLACE 8 years ago
David Cernat a4647de048 Break away from OpenMW by giving RefNum indexes to new created objects 8 years ago
David Cernat 3c88f6f0cd Fix server crash caused by invalid player GUIDs 8 years ago
David Cernat 937bf97883 Send gold values correctly with ID_OBJECT_PLACE 8 years ago
David Cernat 180aa3f2f3 Send item count ID_WORLD_OBJECT_PLACE 8 years ago
David Cernat 1f982e4dc7 Find objects from world packets using both ID and reference number 8 years ago
David Cernat d93e66207e Update player markers only when getting a position packet 8 years ago
David Cernat 7f98cddfdf Don't send animation packets from blacklisted scripts 8 years ago
David Cernat e414261121 Send ID_OBJECT_ANIM_PLAY from ingame scripts 8 years ago
David Cernat 46397a7dac Add and implement ID_OBJECT_ANIM_PLAY 8 years ago
David Cernat 344f2b535a Fix setting of index for ID_SCRIPT_MEMBER_SHORT in InterpreterContext 8 years ago
David Cernat fff6833950 Send ID_SCRIPT_MEMBER_SHORT from MWScript::InterpreterContext 8 years ago
David Cernat d5fca115f7 Fix variable name for ID_SCRIPT_GLOBAL_SHORT in InterpreterContext 8 years ago
David Cernat c205e793cb Add and implement ID_SCRIPT_MEMBER_SHORT 8 years ago
David Cernat c91e240664 Simplify the type of map that player objects are stored in 8 years ago
David Cernat 65363b0dd1 Avoid sending packets for 9 more ingame scripts 8 years ago
David Cernat 2032bf9cad Fix typo in debug 8 years ago
David Cernat a9f6ea4d8d Use the name "guid" for RakNet IDs so as to not confuse with int IDs 8 years ago
David Cernat 47854d631b Avoid sending packets for 2 more ingame scripts 8 years ago
David Cernat c99c3b1486 Avoid sending packets for 3 additional spammy ingame scripts 8 years ago
David Cernat 749c6db49e Send WorldPackets with script values from MWScript::InterpreterContext 8 years ago
David Cernat 97468980af Add and implement 3 new WorldPackets for ingame script variable values 8 years ago
Assumeru 25d64989b3 Check if the actor still exists /first/ 8 years ago
David Cernat e7ebeb8eec Stop sending ID_OBJECT_MOVE and ID_OBJECT_ROTATE from scripts, because it clashes with syncing script variable values across players and makes movements and rotations happen twice 8 years ago
David Cernat 75f6d82f08 Add a way of filtering out ingame scripts for upcoming script packets 8 years ago
Assumeru a72cd896ca Move actors out of the water if there's room for them. Fixes #1138 8 years ago
David Cernat aaf4cc0d7e Prevent being in a menu from disabling script execution or actor damage 8 years ago
David Cernat cc40b85034 Don't send packets for floating objects 8 years ago
David Cernat b1051255e0 Send ID_OBJECT_ROTATE from ingame scripts 8 years ago
David Cernat 385b5f39e3 Add and implement ID_OBJECT_ROTATE 8 years ago
David Cernat 54ed9a7ab4 Implement ID_OBJECT_MOVE and send it from ingame scripts 8 years ago
David Cernat 0fb9b6eefb On second thought, rename ID_OBJECT_MOVE_WORLD into ID_OBJECT_MOVE 8 years ago
David Cernat 947a677801 Replace ID_ACTIVATOR_ACTIVATE with ID_OBJECT_MOVE_WORLD 8 years ago
David Cernat c25ebc34b3 Shorten WorldPacket IDs by removing WORLD from them 8 years ago
David Cernat bdb53e1cb4 Implement ID_WORLD_DOOR_ACTIVATE and send it from MWBase::World 8 years ago
David Cernat 7264f13b8e Implement ID_WORLD_OBJECT_SCALE and send it from ingame scripts 8 years ago
David Cernat 52d156e136 Make server able to receive the 5 new WorldPackets 8 years ago
David Cernat ef6f20e3f7 In server console, print number of players remaining when one leaves 8 years ago
David Cernat 24bfe40bf7 Add debug about current server crash 8 years ago
David Cernat b2688777c1 Create marker once a player has been initialized properly and fix debug 8 years ago
David Cernat be73265848 Send ID_WORLD_VIDEO_PLAY from ingame scripts 8 years ago
David Cernat b6111d16cc Add and implement ID_WORLD_VIDEO_PLAY 8 years ago
David Cernat c54af2b02b Make DedicatedPlayer's setMarkerState method actually enable markers 8 years ago
David Cernat 1e4d625c99 Make player markers show up in exterior cells 8 years ago
David Cernat 04eb051df6 Make markers get removed when their players quit, rename marker methods 8 years ago
David Cernat aed884949c Send ID_WORLD_OBJECT_LOCK from ingame scripts 8 years ago
David Cernat 3fd93896f2 Add and implement ID_WORLD_OBJECT_LOCK 8 years ago
David Cernat 3a5a5e73a1 Send ID_WORLD_OBJECT_UNLOCK from ingame scripts and regular unlocking 8 years ago
David Cernat 08ea5163c4 Add and implement ID_WORLD_OBJECT_UNLOCK 8 years ago
David Cernat 94c5d6d2f9 Don't use autoEquip on player-controlled NPCs 8 years ago
David Cernat 47ebd24b4a Merge pull request #79 from OpenMW/master while resolving conflicts
# Conflicts:
#	.travis.yml
#	apps/openmw/mwinput/inputmanagerimp.cpp
8 years ago
David Cernat a6fa0073a0 Find items by mRefNum.mIndex instead of mRefNum for WorldPackets 8 years ago
David Cernat 6bfaf3be50 Send an ID_WORLD_OBJECT_PLACE whenever ingame scripts place objects 8 years ago
David Cernat 3380c482c0 Fix errors remaining from merge with tes3mp-packetexpansion, part 2 8 years ago
David Cernat b06a2f3119 Fix part about Breakpad in server's CMakeLists 8 years ago
David Cernat e7567020bb Fix debug for ID_WORLD_OBJECT_DELETE in client's Networking 8 years ago
David Cernat d85a1ee1a9 Fix errors remaining from merge with tes3mp-packetexpansion 8 years ago
David Cernat c639337842 Merge with tes3mp-packetexpansion by fixing conflicts
# Conflicts:
#	apps/openmw-mp/Networking.cpp
#	apps/openmw/mwmp/Networking.cpp
#	components/CMakeLists.txt
#	components/openmw-mp/NetworkMessages.hpp
#	components/openmw-mp/PacketsController.cpp
8 years ago
David Cernat 025a847fd1 Send an ID_WORLD_OBJECT_DELETE whenever ingame scripts delete objects 8 years ago
David Cernat 0a44bea91d Send cell coordinates in tes3mp using mData instead of mCellId.mIndex 8 years ago
David Cernat cbc132612a Use mRefNum.mIndex instead of just mRefNum and add extra debug 8 years ago
David Cernat 17f66e4e90 Implement ID_WORLD_OBJECT_PLACE 8 years ago
Koncord a6467c9c47 Add breakpad to server 8 years ago
Koncord df3886168f Word wrapping in chat 8 years ago
Koncord c27351c19e Implement inventory functions
AddItem, RemoveItem, GetItemName, GetItemCount, GetItemHealth, GetInventorySize SendInventory
Example:
```lua
tes3mp.AddItem(pid, "glass dagger", 1, 50)
tes3mp.AddItem(pid, "glass dagger", 1, -1)
tes3mp.SendInventory(pid)
tes3mp.RemoveItem(pid, "glass dagger", 1)
tes3mp.SendInventory(pid)
local invSize = tes3mp.GetInventorySize(pid) - 1
for i = 0, invSize do
    print(("%s %d %d"):format(tes3mp.GetItemName(pid, i), tes3mp.GetItemCount(pid, i), tes3mp.GetItemHealth(pid, i)))
end
```
8 years ago
David Cernat 6e43baf73e Send Cell instead of CellId because of problems with the latter 8 years ago
David Cernat 103b1e3f72 Send CellId in ID_WORLD_OBJECT_DELETE 8 years ago
David Cernat 2e57e25675 Only delete object from ID_WORLD_OBJECT_DELETE if it actually exists 8 years ago
David Cernat 3c49157ed7 Rename WorldPackets to ID_WORLD_OBJECT_DELETE and ID_WORLD_OBJECT_PLACE 8 years ago
David Cernat 40f1db2d86 Create SearchByRefNumCustomVisitor in CellStore that returns entire Ptr 8 years ago