1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 05:19:55 +00:00
Commit graph

464 commits

Author SHA1 Message Date
David Cernat
1fc9dd4f93 [Server] Remove WorldFunctions index parameters that are no longer used 2017-01-30 17:42:29 +02:00
David Cernat
9f998c9901 [Server] Improve getter methods in WorldFunctions 2017-01-30 17:09:14 +02:00
David Cernat
88e648aaa9 [Server] Fix crash caused by setting too many WorldObject refIds, try 2 2017-01-30 12:26:45 +02:00
David Cernat
fe9e30a4d8 [Server] Fix crash caused by setting too many WorldObject refIds 2017-01-30 09:10:33 +02:00
David Cernat
5eff2ece21 [Server] Fix memory leaks related to WorldEvents as suggested by Koncord 2017-01-29 20:18:19 +02:00
David Cernat
6b9fba7885 [Server] Add script functions for getting/setting world object rotation 2017-01-29 17:38:29 +02:00
David Cernat
920c1113a3 [Server] Add script functions for setting world object placement info 2017-01-29 16:16:01 +02:00
David Cernat
2c5cc82f49 [Server] Add script functions for getting world object placement info 2017-01-29 15:29:40 +02:00
David Cernat
27ac314cb1 [Server] Add script functions for getting world object refIds & refNums 2017-01-29 13:21:41 +02:00
David Cernat
f11df211fa [Server] Add script functions for dealing w/ WorldEvents & WorldObjects 2017-01-28 16:22:30 +02:00
David Cernat
9c3a37a790 [Server] Make GetCellStateDescription's cstrDescription null-terminated 2017-01-27 14:16:27 +02:00
Koncord
1c810ecad5 [Server] Fix memory leak in GetCellStateDescription() 2017-01-27 19:05:18 +08:00
David Cernat
0ccfe66212 [Server] Send stable C string in GetCellStateDescription() 2017-01-27 08:14:27 +02:00
David Cernat
6331c55bc7 [Server] Add colons missing from CELLAPI 2017-01-26 16:42:55 +02:00
David Cernat
2f644e9b14 [Server] Add script functions for getting info about cell state changes 2017-01-26 16:37:47 +02:00
David Cernat
70823d011d [Server] Define CELLAPI 2017-01-26 16:16:28 +02:00
David Cernat
0cc20d26ce [Server] Move script functions for cells to a new CellFunctions class 2017-01-26 16:10:45 +02:00
David Cernat
62f359e250 [Server] Rename Translocations into Positions 2017-01-26 15:48:47 +02:00
David Cernat
158d606477 [General] Leave one blank line at the end of every tes3mp code file 2017-01-26 06:17:29 +02:00
David Cernat
73d39c1a0a [General] Stop using virtual functions in BasePlayer, part 2 2017-01-25 17:19:53 +02:00
David Cernat
63c8a98083 [General] Stop using virtual functions in BasePlayer 2017-01-25 17:06:15 +02:00
David Cernat
f9feaf05f0 [Server] Add script callbacks for object placement and deletion 2017-01-25 05:30:25 +02:00
David Cernat
35e453dec3 [General] Sketch out most of functionality for journal saving/loading 2017-01-24 19:32:25 +02:00
David Cernat
d308897f95 Rename PacketItems, PacketSpells into InventoryChanges, SpellbookChanges 2017-01-20 12:43:05 +02:00
David Cernat
a69f294ef0 Rename ID_GAME_CELL into ID_PLAYER_CELL_CHANGE 2017-01-20 10:30:50 +02:00
David Cernat
83277a1512 Send spellbook in LocalPlayer CharGen & change UPDATE action name to SET 2017-01-20 09:07:07 +02:00
David Cernat
e7675d94d4 Make server script functions for spells consistent with those from items 2017-01-20 06:00:14 +02:00
David Cernat
6b14ca0775 Finish renaming of script functions for sending items and spells 2017-01-19 18:30:31 +02:00
David Cernat
33e85c54de Rename BasePlayer Inventory & Spellbook into PacketItems & PacketSpells
This avoids confusion when either of those is used to store and send a single item, and no longer requires coming up with confusing variable names like realSpellbook or realInventory for actual full spellbooks and inventories.
2017-01-19 18:06:59 +02:00
David Cernat
78c6ab2a99 Clean up client Networking by putting item & spell logic in LocalPlayer 2017-01-19 15:18:37 +02:00
Koncord
7595b33461 Implement spellbook 2016-12-29 21:19:57 +08:00
Koncord
6e6237541a Fix "comparison between signed and unsigned integer expressions" 2016-12-21 16:13:39 +08:00
David Cernat
9e290ad799 Fix spacing irregularities 2016-11-21 23:40:50 +02:00
David Cernat
d4b5c826f8 Fix typo in spell script functions 2016-11-21 20:42:53 +02:00
David Cernat
c81b58e1be Add spell script functions to tes3mp server 2016-11-21 20:37:04 +02:00
David Cernat
456aee65d9 Add and implement ClearInventory() script function 2016-11-20 04:06:33 +02:00
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.
2016-11-20 03:06:04 +02:00
David Cernat
7f25abb9c8 Implement UnequipItem() script function 2016-11-18 01:50:55 +02:00
David Cernat
56928bdc4c Clean up inventory script functions so they are usable for equipment too 2016-11-18 00:52:17 +02:00
David Cernat
356143faed Rename GetEquipmentSlotCount() into GetEquipmentSize() 2016-11-18 00:46:42 +02:00
David Cernat
977e93288e Add GetEquipmentSlotCount() to item script functions 2016-11-17 23:07:29 +02:00
Koncord
f5f1a29f31 Change printf to LOG_MESSAGE_SIMPLE 2016-11-18 00:35:38 +08:00
Koncord
e2522fa366 Simplify LOG macros 2016-11-17 12:39:35 +08:00
David Cernat
46b41b605a Revert "Use lowerCamelCase in tes3mp server script function names, part 1"
This reverts commit 0e2b589cdb.
2016-11-16 19:28:22 +02:00
David Cernat
ad43cb5473 Revert "Use lowerCamelCase in tes3mp server script function names, part 2"
This reverts commit 80d16fe1fd.
2016-11-16 19:27:46 +02:00
David Cernat
6cd959fac8 Rename BasePlayer's GetCell() into getCell() 2016-11-16 17:43:58 +02:00
David Cernat
80d16fe1fd Use lowerCamelCase in tes3mp server script function names, part 2 2016-11-16 17:39:44 +02:00
David Cernat
0e2b589cdb Use lowerCamelCase in tes3mp server script function names, part 1 2016-11-16 16:52:16 +02:00
David Cernat
25dc2b19e7 Use lowerCamelCase in tes3mp server networking function names 2016-11-16 02:05:14 +02:00
David Cernat
dc9b814ff6 Fix typo in server script translocations 2016-11-12 21:36:03 +02:00
David Cernat
841e93d5e0 Use new SendCell() method in server scripts to send cell packets 2016-11-12 21:27:09 +02:00
David Cernat
5b39916894 Use new SendPos() method in server scripts to send position packets 2016-11-12 21:16:05 +02:00
David Cernat
e0c88150c3 Reorder functions for server script translocations 2016-11-12 21:01:38 +02:00
Koncord
37e9cafbf7 Add new API function: SetConsoleAllow
example:
tes3mp.SetConsoleAllow(pid, 0) -- disallow console to the player

The console is allowed by default
2016-11-04 03:01:26 +08:00
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
2016-11-04 00:24:16 +08:00
David Cernat
3380c482c0 Fix errors remaining from merge with tes3mp-packetexpansion, part 2 2016-10-23 19:32:39 +03:00
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
2016-10-23 17:57:38 +03:00
David Cernat
0a44bea91d Send cell coordinates in tes3mp using mData instead of mCellId.mIndex 2016-10-23 16:55:30 +03:00
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
```
2016-10-23 02:57:49 +08:00
David Cernat
bda1f867fd Rename server's GetController() method into GetPlayerController() 2016-10-19 16:54:39 +03:00
David Cernat
4b96080521 Make GetItemSlot work and add SendEquipment in server item functions 2016-09-30 12:30:05 +03:00
David Cernat
6650b74498 Add handling of skill increases 2016-09-30 07:15:59 +03:00
David Cernat
977b277cdd Add missing entries for level progress functions 2016-09-30 05:08:11 +03:00
David Cernat
a0e9a672a5 Split updateClassStats in 3 and add handling of level progress 2016-09-30 04:52:21 +03:00
David Cernat
56a2c70911 Use double instead of int for skill progress functions 2016-09-29 18:13:36 +03:00
David Cernat
ae4950ce49 Add server stat functions for getting and setting skill progress 2016-09-29 17:57:26 +03:00
David Cernat
bc0aa86bcf Make variable names more consistent and easier to understand 2016-09-29 12:05:44 +03:00
David Cernat
7a1531c01b Fix script functions for setting dynamic stats, part 2 2016-09-28 19:41:54 +03:00
David Cernat
458bdf4dff Fix script functions for setting dynamic stats 2016-09-28 16:40:19 +03:00
David Cernat
b6086ab015 Rename ID_GAME_DYNAMICSTATS_CURRENT into ID_GAME_DYNAMICSTATS 2016-09-28 14:13:24 +03:00
David Cernat
57f07813b0 Rename ID_GAME_UPDATE_POS into ID_GAME_POS 2016-09-28 11:45:14 +03:00
David Cernat
26487598a6 Rename ID_GAME_UPDATE_EQUIPED into ID_GAME_EQUIPMENT 2016-09-28 11:36:29 +03:00
David Cernat
9fd5ae981e Add missing backslash 2016-09-28 07:59:53 +03:00
David Cernat
ce4b326b02 Rename ID_GAME_UPDATE_BASESTATS into ID_GAME_DYNAMICSTATS_CURRENT 2016-09-28 07:50:16 +03:00
David Cernat
295f486a97 Using less confusing names for server stat functions, part 2 2016-09-28 02:19:39 +03:00
David Cernat
69030579c1 Using less confusing names for server stat functions 2016-09-27 17:04:04 +03:00
David Cernat
7ae9ea7465 Add server stat functions for getting attribute and skill counts 2016-09-27 15:51:10 +03:00
David Cernat
57703482b2 Fetch attribute and skill counts in server stat functions 2016-09-27 15:01:54 +03:00
David Cernat
4d7130b12f Improve logic for script-induced cell changes 2016-09-27 11:28:44 +03:00
David Cernat
01af4f3bbc Update position before sending cell packet 2016-09-26 17:00:09 +03:00
David Cernat
1ee2458f6e Add packet for player levels, part 2 2016-09-26 13:19:01 +03:00
David Cernat
046a1ea899 Add packet for player levels 2016-09-25 14:28:25 +03:00
Koncord
e661a35ac2 Fix checking strings in SetName & SetBirthsign 2016-09-18 11:55:51 +08:00
David Cernat
ff94b5f1ac Fix unsuitable variable name 2016-09-02 06:16:35 +03:00
David Cernat
970e9aff2f Remove old class methods and don't include class in ID_GAME_BASE_INFO 2016-09-02 03:45:43 +03:00
David Cernat
a20e7890a2 Fix formatting 2016-08-30 10:52:30 +03:00
Koncord
cf1a0113a1 Time API 2016-08-30 13:24:42 +08:00
David Cernat
5e6a374687 Add comment about MesssageBox to prevent future confusion 2016-08-30 08:13:08 +03:00
David Cernat
857defadbc Revert one unnecessary renaming of MessageBox 2016-08-30 08:05:00 +03:00
David Cernat
32ce7e97a8 Fix build for Windows server 2016-08-30 08:01:34 +03:00
Koncord
1186d09ec0 ScriptFunctions.hpp size reduction 2016-08-30 12:20:39 +08:00
Koncord
11eae277a9 Characters Class API
Added some new functions
2016-08-30 11:18:19 +08:00
David Cernat
00e7810428 Add script functions for saving and loading non-custom player classes 2016-08-27 00:14:50 +03:00
David Cernat
5385563972 Let players inform others about Lua script-induced cell & pos changes 2016-08-24 02:53:39 +03:00
David Cernat
c4f49e05e3 Remove manual newlines for logger 2016-08-19 07:54:10 +03:00
David Cernat
97f944dde7 Use logger for most console messages 2016-08-18 20:20:17 +03:00
David Cernat
a36c20eaae Reduce server console spam 2016-08-18 16:13:04 +03:00
David Cernat
c94f818478 Add script functions for getting attributes and skills by their names 2016-08-18 00:55:35 +03:00
David Cernat
41868cc9cc Add script functions for getting attributes and skills by their IDs 2016-08-18 00:13:45 +03:00
David Cernat
8eda381016 Make formatting consistent, part 2 2016-08-17 18:20:36 +03:00
David Cernat
1363c4c5b6 Make formatting consistent 2016-08-17 18:04:35 +03:00
Koncord
114a11ea78 Getting rid of packages spam
I think this is temporary solution. I have an idea how to cache the result of functions and send data after callback.
2016-08-05 14:28:45 +08:00
David Cernat
b0bd10f219 Allow script-based teleportation from interior to exterior cell 0,0 2016-08-03 22:07:49 +03:00
Koncord
31e2ab54d6 Revert "Update position after changing cell"
This reverts commit 5e072b9d3c.
2016-07-30 04:57:43 +08:00
Koncord
5e072b9d3c Update position after changing cell 2016-07-30 04:12:47 +08:00
Koncord
7107136808 New API
SetExterior(pid, x, y)
GetExteriorX(pid)
GetExteriorY(pid)

also "SetCell" will now move to the named external cells (e.g. SetCell(pid, "Balmora"))
2016-07-30 01:33:28 +08:00
Koncord
5a6c1750d9 Fixed some build warnings and IsTimerElapsed function 2016-07-27 10:35:27 +08:00
Koncord
1e3eff91ac Merged branch tes3mp-gui into tes3mp-gui 2016-07-23 22:08:01 +08:00
Koncord
9ab77cb123 New API functions: MessageBox, CustomMessageBox, InputDialog
New Callback: OnGUIAction
2016-07-23 22:02:06 +08:00
davidcernat
ab309180c2 Add useful debug info for cell changes 2016-07-21 23:07:37 +03:00
Koncord
6f07d590d4 Fix SetPos and SetAngle functions
Fix types for SetPos and SetAngle
2016-07-17 17:59:46 +08:00
Stanislav Zhukov
645a21af21 Added new script functions for lua compatibility
GetPosX, GetPosY, GetPosZ
GetAngleX, GetAngleY, GetAngleZ
2016-07-16 16:19:35 +08:00
Koncord
299c4c904e Resurrect function 2016-07-12 23:26:53 +08:00
Koncord
1b259e2d33 Syncing inventory, animations, position, 8 key attributes
Created Package system
2016-07-07 23:50:48 +08:00