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

303 commits

Author SHA1 Message Date
David Cernat
51b95f35cd [Server] Fix problem with fetching interior cell descriptions 2017-06-10 18:03:58 +03:00
David Cernat
db7709ee18 [Server] Modernize getting and setting of player cells 2017-06-10 17:49:41 +03:00
David Cernat
0d3976950b [Server] Use consistent names for rotation script functions 2017-06-10 17:06:09 +03:00
David Cernat
70d9374a6a [General] Implement PlayerKillCount packets 2017-06-10 14:04:19 +03:00
David Cernat
ee5c9b65c5 [General] When changing region, send new region name in PlayerCellChange 2017-06-10 11:43:40 +03:00
David Cernat
f02ed0d621 [Server] Add script functions for getting and setting actor dynamic stat modifiers 2017-06-10 09:28:35 +03:00
Koncord
568b0702fa [Server] Implement PasswordDialog 2017-06-06 23:34:27 +08:00
Koncord
186e5fe33e [Server] Remove GetAngleY & remove Y parameter from SetAngle 2017-06-06 16:33:34 +08:00
David Cernat
f4cdedd8cb [General] Synchronize summoned creatures 2017-05-30 10:11:01 +03:00
David Cernat
4e5c8873e0 [General] Use ObjectSpawn instead of ObjectPlace for actors 2017-05-29 06:59:05 +03:00
David Cernat
940a2b6eb5 [Server] Add script functions for setting and sending ActorEquipment 2017-05-27 00:57:40 +03:00
David Cernat
f47a10dd4a [Server] Add script callback and getter functions for ActorEquipment 2017-05-26 22:54:51 +03:00
David Cernat
32879adc5b [General] Allow ObjectTrap to trigger traps, not just disarm them 2017-05-26 01:28:43 +03:00
David Cernat
93aa674eff [Server] Add SendObjectTrap() script function 2017-05-26 00:42:46 +03:00
David Cernat
dbdb11b5f0 [Server] Add script functions for dialogue 2017-05-24 23:22:43 +03:00
David Cernat
870fd9a78b [General] Remove ObjectUnlock packet, use ObjectLock with 0 lock instead 2017-05-24 13:28:34 +03:00
David Cernat
0595192129 [Server] Make GetFactionExpelledState() return a bool instead of an int 2017-05-18 21:51:24 +03:00
David Cernat
a2e2ca7cab [Server] Add script functions for factions 2017-05-18 20:56:50 +03:00
David Cernat
de49f5f175 [General] Add and use isActor bool for WorldObject 2017-05-07 03:07:09 +03:00
David Cernat
9d2c5c3502 [General] Simplify structure of BaseEvent 2017-05-06 21:57:29 +03:00
David Cernat
4d81455020 [General] Rework and simplify death reasons so they work with NPCs 2017-05-05 22:16:31 +03:00
David Cernat
06f3c07116 [Server] Only read Actor packets from players who are still authorities 2017-05-05 06:13:34 +03:00
David Cernat
e01cadad23 [Server] Send ActorAuthority packets to all players who loaded the cell 2017-05-03 04:45:55 +03:00
David Cernat
4c35c328a9 [Server] Add SendActorPosition() script function 2017-05-01 20:58:40 +03:00
David Cernat
e5e888ac21 [Server] Add script functions for checking what data an Actor has 2017-05-01 20:55:36 +03:00
Koncord
6ddab0d323 [Server] Add and implement "look like creature" functions 2017-05-01 21:15:12 +08:00
David Cernat
217894100a [Server] Add ReadCellActorList() script function 2017-05-01 00:49:58 +03:00
David Cernat
e8e0090b9b [General] Use new SimpleCreatureStats struct in BaseActor 2017-04-30 18:44:59 +03:00
David Cernat
0e8d115794 [Server] Clean up ActorFunctions by using readActorList pointer
Also rename scriptActorList into writeActorList, and also rename matching methods, for clarity.
2017-04-30 17:12:15 +03:00
David Cernat
b54560a362 [Server] Clean up WorldFunctions by using readEvent pointer
Also rename scriptEvent into writeEvent, along with matching methods, for clarity.
2017-04-30 16:35:56 +03:00
David Cernat
a2f6d99dfd [Server] Use new CreatureStats in ActorFunctions to fix invalid pointer 2017-04-29 18:20:01 +03:00
David Cernat
6ff9091afd [Server] Add script functions for setting actor dynamic stats 2017-04-29 02:10:14 +03:00
David Cernat
9d7142f684 [Server] Clean up order for StatsFunctions 2017-04-29 01:42:11 +03:00
David Cernat
03c56e01f9 [Server] Add script functions for getting actor dynamic stats 2017-04-29 01:15:19 +03:00
David Cernat
328b4fb763 [Server] Fix invalid pointers when using ActorFunctions::GetActorCell() 2017-04-28 20:31:02 +03:00
David Cernat
a71dbc7d09 [Server] Add script functions for setting actor cells and positions 2017-04-28 18:44:01 +03:00
David Cernat
9c5eb47e90 [Server] Add and use Utils::getCellFromDescription() 2017-04-28 16:33:58 +03:00
David Cernat
aeab851ed8 [Server] Add script functions for getting actor position coordinates 2017-04-28 00:05:12 +03:00
David Cernat
1ce60fbf30 [Server] Add GetActorCell() script function 2017-04-27 14:59:49 +03:00
David Cernat
6a21ec1fdc [General] Rename PlayerPos into PlayerPosition 2017-04-25 22:11:33 +03:00
David Cernat
7b07d6651f [General] Add and use PlayerBounty packet and matching script functions 2017-04-25 21:24:39 +03:00
David Cernat
870886192b [General] Rename DYNAMICSTATS into STATS_DYNAMIC 2017-04-16 09:00:18 +03:00
David Cernat
b6c3830ea0 [General] Rename WorldObject's pos into position for consistency 2017-04-10 09:25:20 +03:00
David Cernat
69bf2749a5 [Server] Add ActorFunctions for getting and setting basic actor data 2017-04-10 06:15:03 +03:00
David Cernat
e9c3abc2c3 [Server] Reset variables more elegantly in WorldFunctions 2017-04-10 02:37:43 +03:00
David Cernat
c52084a028 [General] Use BaseActorLists in ActorPackets 2017-04-09 16:32:44 +03:00
David Cernat
1b714fbfa7 [Server] Make script functions more consistent 2017-04-09 12:28:38 +03:00
David Cernat
a24ef3a25e [Server] Create ActorFunctions placeholder 2017-04-09 12:24:33 +03:00
David Cernat
070c6a3bd4 [General] Add ActorPacketController & make controller var names clearer 2017-04-09 08:51:28 +03:00
David Cernat
ba8341bfb5 [Server] Add SendActorAuthority() script function 2017-04-05 11:02:11 +03:00
David Cernat
c65e94587c [Server] Add SendActorList() script function 2017-04-05 04:44:47 +03:00
David Cernat
3b34b9cd3e [Server] Fix typo in MiscellaneousFunctions 2017-04-04 12:49:29 +03:00
David Cernat
2716078a30 [Server] Add GetCurrentMpNum() and SetCurrentMpNum() script functions 2017-04-04 12:43:17 +03:00
David Cernat
82f38dcfad [Server] Set mpNum in AddWorldObject() 2017-04-04 10:34:35 +03:00
David Cernat
665fe09fd0 [Server] Add GetObjectMpNum() and SetObjectMpNum() script functions 2017-04-04 09:30:17 +03:00
David Cernat
174937f412 [Server] Add LogMessage() and LogAppend() script functions 2017-04-04 01:47:37 +03:00
Koncord
690211ad99 [General] Extract BaseEvent & BasePlayer from packets to functions
Move Send and Read functions to BasePacket
2017-03-06 18:40:07 +08:00
David Cernat
82dcec5ec5 [Server] Use consistent pattern for script function category names 2017-03-04 14:11:17 +02:00
David Cernat
5c269a5f8d [General] Rename ID_GAME_DIE and ID_GAME_RESURRECT 2017-02-28 01:38:25 +02:00
Koncord
0442ebd607 [Server] Remove redundant newlines & keep ~120 columns 2017-02-27 17:13:07 +08:00
David Cernat
0baada0aa2 [Server] Add GetLastPlayerId() script function in Miscellaneous category 2017-02-26 23:00:51 +02:00
Koncord
b158e89f77 [Server] Change signatures of GetLastEventAction & SetScriptEventAction 2017-02-23 15:17:00 +08:00
Koncord
cbe31149e3 [Server] Remove redundant constructor 2017-02-23 14:36:35 +08:00
David Cernat
af35ee38d1 [Server] Rename ClearScriptEvent into InitScriptEvent with pid argument 2017-02-23 08:23:46 +02:00
David Cernat
7065569f9b [Server] Reuse 2 BaseEvents over and over instead of creating new ones 2017-02-23 07:47:00 +02:00
David Cernat
a4526605a6 [General] Remove goldValue from ContainerItem because it is never useful 2017-02-20 12:31:11 +02:00
David Cernat
b1009ad33d [Server] Add GetContainerItemActionCount() for getting drag count 2017-02-19 00:11:09 +02:00
David Cernat
4f2b88df8a [General] Remove owner var from ContainerItem because it is always empty 2017-02-18 23:59:02 +02:00
David Cernat
c01ab63239 [Server] Add script functions for setting container item info 2017-02-17 23:11:38 +02:00
David Cernat
aa1549606f [Server] Add script functions for getting container item info 2017-02-17 18:33:20 +02:00
David Cernat
70470e12b4 [Server] Reorder World script functions 2017-02-17 16:24:40 +02:00
David Cernat
8a5bc77699 [Server] Add GetBaseEventAction script function 2017-02-17 14:51:36 +02:00
David Cernat
eba7d8408f [Server] Use script function to get spellbook action 2017-02-16 14:23:27 +02:00
David Cernat
3b604a432e [General] Restructure ID_CONTAINER to allow multiple containers at once 2017-02-15 20:14:25 +02:00
David Cernat
c8cbfbef62 [General] Sketch out server requests to players for container data 2017-02-14 19:31:56 +02:00
David Cernat
b651c4deb4 [Server] In Item script functions, rename itemId into refId for clarity 2017-02-07 13:50:28 +02:00
David Cernat
5038353792 [General] Rename BaseEvent's state into doorState & adjust related funcs 2017-02-06 23:09:50 +02:00
David Cernat
182b238b5f [General] Rename WorldEvent into BaseEvent 2017-02-06 12:53:41 +02:00
David Cernat
f314b13edf [General] Rename item health into charge, for consistency with OpenMW 2017-02-05 14:56:27 +02:00
David Cernat
ecc456fea9 [General] Include charge int in WorldObject & send it w/ ID_OBJECT_PLACE 2017-02-05 13:45:12 +02:00
David Cernat
04d45b9dbb [General] Rename packets to show they are for players only, not NPCs 2017-02-05 09:01:33 +02:00
David Cernat
6328ffb9aa [General] In ID_GAME_ATTRIBUTE & ID_GAME_SKILL, rename GAME into PLAYER 2017-02-04 14:25:43 +02:00
David Cernat
c1427b2558 [General] Simultaneously send loads & unloads in ID_PLAYER_CELL_STATE 2017-02-03 20:27:40 +02:00
David Cernat
7ebad596d6 [Server] Use double instead of int for scale in WorldFunctions 2017-02-01 12:53:51 +02:00
David Cernat
018b0e6699 [Server] Add script functions & callbacks for locking, unlocking & doors 2017-02-01 12:43:19 +02:00
David Cernat
5bd2fdcf66 [Server] Add OnObjectScale callback, and set scale for WorldObject 2017-02-01 09:25:47 +02:00
Koncord
0b8d0224d1 [Server] Change type in second argument in SetConsoleAllow to "bool" 2017-02-01 13:44:50 +08:00
David Cernat
87dce73b90 [Server] Add script function for sending world object scale 2017-01-31 23:07:02 +02:00
David Cernat
705589e3e3 [Server] Add script functions for getting/setting world object scale 2017-01-31 22:54:36 +02:00
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