mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-12-11 16:54:30 +00:00
[Server] Add OnConsoleCommand event and associated script function
This commit is contained in:
parent
eeb77f80d2
commit
0e0ac7a60f
6 changed files with 52 additions and 11 deletions
|
|
@ -113,17 +113,17 @@ set(PROCESSORS_PLAYER
|
||||||
source_group(tes3mp-server\\processors\\player FILES ${PROCESSORS_PLAYER})
|
source_group(tes3mp-server\\processors\\player FILES ${PROCESSORS_PLAYER})
|
||||||
|
|
||||||
set(PROCESSORS_OBJECT
|
set(PROCESSORS_OBJECT
|
||||||
processors/object/ProcessorContainer.hpp processors/object/ProcessorDoorState.hpp
|
processors/object/ProcessorConsoleCommand.hpp processors/object/ProcessorContainer.hpp
|
||||||
processors/object/ProcessorMusicPlay.hpp processors/object/ProcessorObjectActivate.hpp
|
processors/object/ProcessorDoorState.hpp processors/object/ProcessorMusicPlay.hpp
|
||||||
processors/object/ProcessorObjectAnimPlay.hpp processors/object/ProcessorObjectDelete.hpp
|
processors/object/ProcessorObjectActivate.hpp processors/object/ProcessorObjectAnimPlay.hpp
|
||||||
processors/object/ProcessorObjectLock.hpp processors/object/ProcessorObjectMove.hpp
|
processors/object/ProcessorObjectDelete.hpp processors/object/ProcessorObjectLock.hpp
|
||||||
processors/object/ProcessorObjectPlace.hpp processors/object/ProcessorObjectRotate.hpp
|
processors/object/ProcessorObjectMove.hpp processors/object/ProcessorObjectPlace.hpp
|
||||||
processors/object/ProcessorObjectScale.hpp processors/object/ProcessorObjectSpawn.hpp
|
processors/object/ProcessorObjectRotate.hpp processors/object/ProcessorObjectScale.hpp
|
||||||
processors/object/ProcessorObjectState.hpp processors/object/ProcessorObjectTrap.hpp
|
processors/object/ProcessorObjectSpawn.hpp processors/object/ProcessorObjectState.hpp
|
||||||
processors/object/ProcessorScriptLocalShort.hpp processors/object/ProcessorScriptLocalFloat.hpp
|
processors/object/ProcessorObjectTrap.hpp processors/object/ProcessorScriptLocalShort.hpp
|
||||||
processors/object/ProcessorScriptMemberShort.hpp processors/object/ProcessorScriptMemberFloat.hpp
|
processors/object/ProcessorScriptLocalFloat.hpp processors/object/ProcessorScriptMemberShort.hpp
|
||||||
processors/object/ProcessorScriptGlobalShort.hpp processors/object/ProcessorScriptGlobalFloat.hpp
|
processors/object/ProcessorScriptMemberFloat.hpp processors/object/ProcessorScriptGlobalShort.hpp
|
||||||
processors/object/ProcessorVideoPlay.hpp
|
processors/object/ProcessorScriptGlobalFloat.hpp processors/object/ProcessorVideoPlay.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
source_group(tes3mp-server\\processors\\object FILES ${PROCESSORS_OBJECT})
|
source_group(tes3mp-server\\processors\\object FILES ${PROCESSORS_OBJECT})
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,11 @@ unsigned char ObjectFunctions::GetObjectListAction() noexcept
|
||||||
return readObjectList->action;
|
return readObjectList->action;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *ObjectFunctions::GetObjectListConsoleCommand() noexcept
|
||||||
|
{
|
||||||
|
return readObjectList->consoleCommand.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
unsigned char ObjectFunctions::GetObjectListContainerSubAction() noexcept
|
unsigned char ObjectFunctions::GetObjectListContainerSubAction() noexcept
|
||||||
{
|
{
|
||||||
return readObjectList->containerSubAction;
|
return readObjectList->containerSubAction;
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@
|
||||||
{"GetObjectListOrigin", ObjectFunctions::GetObjectListOrigin},\
|
{"GetObjectListOrigin", ObjectFunctions::GetObjectListOrigin},\
|
||||||
{"GetObjectListClientScript", ObjectFunctions::GetObjectListClientScript},\
|
{"GetObjectListClientScript", ObjectFunctions::GetObjectListClientScript},\
|
||||||
{"GetObjectListAction", ObjectFunctions::GetObjectListAction},\
|
{"GetObjectListAction", ObjectFunctions::GetObjectListAction},\
|
||||||
|
{"GetObjectListConsoleCommand", ObjectFunctions::GetObjectListConsoleCommand},\
|
||||||
{"GetObjectListContainerSubAction", ObjectFunctions::GetObjectListContainerSubAction},\
|
{"GetObjectListContainerSubAction", ObjectFunctions::GetObjectListContainerSubAction},\
|
||||||
\
|
\
|
||||||
{"IsObjectPlayer", ObjectFunctions::IsObjectPlayer},\
|
{"IsObjectPlayer", ObjectFunctions::IsObjectPlayer},\
|
||||||
|
|
@ -218,6 +219,13 @@ public:
|
||||||
*/
|
*/
|
||||||
static unsigned char GetObjectListAction() noexcept;
|
static unsigned char GetObjectListAction() noexcept;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Get the console command used in the read object list.
|
||||||
|
*
|
||||||
|
* \return The console command.
|
||||||
|
*/
|
||||||
|
static const char *GetObjectListConsoleCommand() noexcept;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get the container subaction type used in the read object list.
|
* \brief Get the container subaction type used in the read object list.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,7 @@ public:
|
||||||
{"OnCellLoad", Callback<unsigned short, const char*>()},
|
{"OnCellLoad", Callback<unsigned short, const char*>()},
|
||||||
{"OnCellUnload", Callback<unsigned short, const char*>()},
|
{"OnCellUnload", Callback<unsigned short, const char*>()},
|
||||||
{"OnCellDeletion", Callback<const char*>()},
|
{"OnCellDeletion", Callback<const char*>()},
|
||||||
|
{"OnConsoleCommand", Callback<unsigned short, const char*>()},
|
||||||
{"OnContainer", Callback<unsigned short, const char*>()},
|
{"OnContainer", Callback<unsigned short, const char*>()},
|
||||||
{"OnDoorState", Callback<unsigned short, const char*>()},
|
{"OnDoorState", Callback<unsigned short, const char*>()},
|
||||||
{"OnObjectActivate", Callback<unsigned short, const char*>()},
|
{"OnObjectActivate", Callback<unsigned short, const char*>()},
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@
|
||||||
#include "actor/ProcessorActorPosition.hpp"
|
#include "actor/ProcessorActorPosition.hpp"
|
||||||
#include "actor/ProcessorActorSpeech.hpp"
|
#include "actor/ProcessorActorSpeech.hpp"
|
||||||
#include "ObjectProcessor.hpp"
|
#include "ObjectProcessor.hpp"
|
||||||
|
#include "object/ProcessorConsoleCommand.hpp"
|
||||||
#include "object/ProcessorContainer.hpp"
|
#include "object/ProcessorContainer.hpp"
|
||||||
#include "object/ProcessorDoorState.hpp"
|
#include "object/ProcessorDoorState.hpp"
|
||||||
#include "object/ProcessorMusicPlay.hpp"
|
#include "object/ProcessorMusicPlay.hpp"
|
||||||
|
|
@ -135,6 +136,7 @@ void ProcessorInitializer()
|
||||||
ActorProcessor::AddProcessor(new ProcessorActorStatsDynamic());
|
ActorProcessor::AddProcessor(new ProcessorActorStatsDynamic());
|
||||||
ActorProcessor::AddProcessor(new ProcessorActorTest());
|
ActorProcessor::AddProcessor(new ProcessorActorTest());
|
||||||
|
|
||||||
|
ObjectProcessor::AddProcessor(new ProcessorConsoleCommand());
|
||||||
ObjectProcessor::AddProcessor(new ProcessorContainer());
|
ObjectProcessor::AddProcessor(new ProcessorContainer());
|
||||||
ObjectProcessor::AddProcessor(new ProcessorDoorState());
|
ObjectProcessor::AddProcessor(new ProcessorDoorState());
|
||||||
ObjectProcessor::AddProcessor(new ProcessorMusicPlay());
|
ObjectProcessor::AddProcessor(new ProcessorMusicPlay());
|
||||||
|
|
|
||||||
25
apps/openmw-mp/processors/object/ProcessorConsoleCommand.hpp
Normal file
25
apps/openmw-mp/processors/object/ProcessorConsoleCommand.hpp
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
#ifndef OPENMW_PROCESSORCONSOLECOMMAND_HPP
|
||||||
|
#define OPENMW_PROCESSORCONSOLECOMMAND_HPP
|
||||||
|
|
||||||
|
#include "../ObjectProcessor.hpp"
|
||||||
|
|
||||||
|
namespace mwmp
|
||||||
|
{
|
||||||
|
class ProcessorConsoleCommand : public ObjectProcessor
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ProcessorConsoleCommand()
|
||||||
|
{
|
||||||
|
BPP_INIT(ID_CONSOLE_COMMAND)
|
||||||
|
}
|
||||||
|
|
||||||
|
void Do(ObjectPacket &packet, Player &player, BaseObjectList &objectList) override
|
||||||
|
{
|
||||||
|
LOG_MESSAGE_SIMPLE(TimedLog::LOG_INFO, "Received %s from %s", strPacketID.c_str(), player.npc.mName.c_str());
|
||||||
|
|
||||||
|
Script::Call<Script::CallbackIdentity("OnConsoleCommand")>(player.getId(), objectList.cell.getDescription().c_str());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //OPENMW_PROCESSORCONSOLECOMMAND_HPP
|
||||||
Loading…
Reference in a new issue