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

452 commits

Author SHA1 Message Date
David Cernat
989f6e6b51 [General] Implement PlayerReputation packet 2018-01-30 22:55:29 +02:00
David Cernat
420dab10e1 [General] Track objects directly placed by players in ObjectPlace
This allows the OnPCDrop variable to get set correctly even when object placements have to go through the server first in order to gain a unique multiplayer index (mpNum).

Among other things, this makes it possible to roll marijuana joints in the popular mod "Tribunal Code Patch".
2018-01-28 17:46:51 +02:00
David Cernat
9935f56d46 [General] Use doubles instead of ints for enchantmentCharge
Additionally, include enchantmentCharges for items  in PlayerEquipment packets.
2018-01-17 08:10:49 +02:00
David Cernat
1cf2f35a28 [Server] Add script functions to set & get plugin enforcement state 2018-01-02 16:33:18 +02:00
David Cernat
47a3dc9ff2 [Server] Add broadcast argument to functions for sending WorldPackets 2017-12-30 21:52:30 +02:00
David Cernat
1e2517698d [Server] Send player speech and animation packets only to nearby players 2017-12-29 06:17:45 +02:00
David Cernat
993081ba1e [General] Add enchantmentCharge to worldObjects and items 2017-12-23 13:16:38 +02:00
David Cernat
e97c9f72a2 [General] Rework getting/clearing of skill modifiers as with attributes 2017-12-04 15:06:27 +02:00
David Cernat
2944be18ae [Server] Actually, turn SetAttributeModifier into ClearAttributeModifier
There's no way SetAttributeModifier() was going to make sense if, say, a player had drunk 3 different potions fortifying the same attribute and was wearing equipment fortifying it as well. How would one change the sum modifier of those while accounting for each specific effect's duration and magnitude?

The only workable solution is to allow the server to clear the modifier.
2017-12-02 09:19:33 +02:00
David Cernat
e8d636ebc3 [Server] Rework Get/SetAttributeCurrent into Get/SetAttributeModifier
As seen here, attributes don't use the concept of current values, but rather of value modifiers and value damage:

https://github.com/OpenMW/openmw/blob/master/apps/openmw/mwmechanics/stat.cpp#L217
2017-11-30 22:37:06 +02:00
David Cernat
c9c363ebef [General] Allow GameSettings to set bed & wilderness resting separately 2017-11-30 12:18:15 +02:00
David Cernat
3508a16836 [General] Use GameSettings packet to set ability to rest and wait 2017-11-27 07:39:02 +02:00
David Cernat
6668b9ab42 [General] Implement ConsoleCommand packet 2017-11-23 00:21:47 +02:00
David Cernat
be25decee2 [General] Implement PlayerSpeech packet 2017-10-31 15:19:14 +02:00
David Cernat
413893aa51 [General] Implement PlayerAnimPlay packet 2017-10-27 09:10:29 +03:00
David Cernat
50d5fffb7f [General] Add and implement PlayerQuickKeys packet 2017-10-25 07:21:00 +03:00
David Cernat
cffd985038 Merge pull request #266 from TES3MP/0.6.0
Add hotfix commits for 0.6.0 up to 18 Aug 2017
2017-08-18 07:45:36 +03:00
David Cernat
0820b7e92b [Server] Add GetCaseInsensitiveFilename() script function
Additionally, make header order consistent in script function files.
2017-08-18 07:13:08 +03:00
David Cernat
0e2038f045 [General] Record and get player positions before their last cell change 2017-08-04 21:45:52 +03:00
Unknown
bfbfbeac43 Added networking and saving for custom spells 2017-07-31 03:45:47 +10:00
David Cernat
8b79cdd4f4 [Server] Document script functions, part 3
Also reorder functions in Cells and CharClass so they are consistent with the rest.
2017-07-25 18:07:09 +03:00
David Cernat
5e5440b697 [Server] Document script functions, part 2 2017-07-23 21:59:33 +03:00
David Cernat
cc91b32b2f [Server] Make spell script functions consistent with others 2017-07-20 17:58:00 +03:00
David Cernat
8bd33e5fbb [Server] Document script functions, part 1 2017-07-19 20:40:51 +03:00
David Cernat
f65f996418 [Server] Add script functions for werewolf states 2017-07-15 11:09:28 +03:00
David Cernat
ad9fa0631a [General] Rename jailText to jailEndText and add jailProgressText in PlayerJail 2017-07-13 20:13:28 +03:00
David Cernat
e36c0afc59 [General] Send faction reputation via PlayerFaction packets 2017-07-13 13:36:00 +03:00
David Cernat
be93ec8ef6 [General] Implement ObjectState packet 2017-07-13 09:46:30 +03:00
David Cernat
083b46394d [General] Add ignoreJailSkillIncreases to PlayerJail packets 2017-07-12 18:24:37 +03:00
David Cernat
5962570c48 [General] Add jailText to PlayerJail packets 2017-07-12 16:39:31 +03:00
David Cernat
3280f0c5ee [General] Implement PlayerJail packet
Rework server's DeathFunctions into MechanicsFunctions

Remove connection between PlayerResurrect and jailing
2017-07-11 13:34:09 +03:00
David Cernat
b1b27728e2 [Server] Move functions dealing with PlayerKillCount to QuestFunctions 2017-07-11 07:15:06 +03:00
David Cernat
6dde0ca9c9 [Server] Rework script functons by removing unnecessary vector buffers
Add new initialization script functions to allow clearing all player changes vectors in a manner consistent with Actor and World functions

Add toOthers boolean to all methods that send packets with player changes vectors
2017-07-07 09:25:48 +03:00
David Cernat
2c05b7f747 [Server] Rename InitiateEvent() into InitializeEvent() for consistency 2017-07-07 08:12:48 +03:00
David Cernat
1d504a665f [General] Add RANK, EXPULSION and BOTH actions to PlayerFaction packets 2017-07-05 07:06:33 +03:00
David Cernat
60574ae667 [General] Implement jail time as a death penalty 2017-07-03 15:45:21 +03:00
David Cernat
71313c5aa6 [General] Implement PlayerMap packet, part 1 2017-07-03 09:28:27 +03:00
David Cernat
1f682749d6 [General] Add optional notes to PasswordDialogs 2017-07-02 13:07:36 +03:00
Koncord
5292914325 [Server] Simplify native CallPublic & CreateTimerEx 2017-06-30 17:59:50 +08:00
Koncord
e68eee651a [Server] Fix Resurrect 2017-06-27 15:16:23 +08:00
Koncord
c58c26f6c0 [Server] Implement native CreateTimer & CreateTimerEx 2017-06-27 14:50:40 +08:00
Koncord
9ab58b6708 [Server] Remove redundant SetResurrectType
Rename SendResurrect to Resurrect
2017-06-27 14:49:39 +08:00
David Cernat
813a3c89c4 [General] Implement PlayerBook packet to track skill books read 2017-06-27 08:27:14 +03:00
David Cernat
b3b73c5cd2 [General] Implement resurrection at nearest shrine or temple 2017-06-27 01:01:45 +03:00
David Cernat
66a3f3d475 [Server] Use cleaner solution for safely reading cell descriptions 2017-06-23 08:29:14 +03:00
David Cernat
78f29302ef [General] Fix PlayerJournal logic by sending only refIds for its actors
Additionally, make the refIds for actors usable in script functions.
2017-06-23 08:12:32 +03:00
David Cernat
4ad87faac1 [Server] Create new Settings category for script functions 2017-06-20 07:24:15 +03:00
David Cernat
ebf7740969 [General] Repurpose GameConsole packet as GameSettings & add difficulty to it 2017-06-20 05:28:45 +03:00
Koncord
3803535bd5 [General] Implement CleanChat() 2017-06-12 08:01:47 +08:00
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
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