mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-30 00:36:41 +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})
|
||||
|
||||
set(PROCESSORS_OBJECT
|
||||
processors/object/ProcessorContainer.hpp processors/object/ProcessorDoorState.hpp
|
||||
processors/object/ProcessorMusicPlay.hpp processors/object/ProcessorObjectActivate.hpp
|
||||
processors/object/ProcessorObjectAnimPlay.hpp processors/object/ProcessorObjectDelete.hpp
|
||||
processors/object/ProcessorObjectLock.hpp processors/object/ProcessorObjectMove.hpp
|
||||
processors/object/ProcessorObjectPlace.hpp processors/object/ProcessorObjectRotate.hpp
|
||||
processors/object/ProcessorObjectScale.hpp processors/object/ProcessorObjectSpawn.hpp
|
||||
processors/object/ProcessorObjectState.hpp processors/object/ProcessorObjectTrap.hpp
|
||||
processors/object/ProcessorScriptLocalShort.hpp processors/object/ProcessorScriptLocalFloat.hpp
|
||||
processors/object/ProcessorScriptMemberShort.hpp processors/object/ProcessorScriptMemberFloat.hpp
|
||||
processors/object/ProcessorScriptGlobalShort.hpp processors/object/ProcessorScriptGlobalFloat.hpp
|
||||
processors/object/ProcessorVideoPlay.hpp
|
||||
processors/object/ProcessorConsoleCommand.hpp processors/object/ProcessorContainer.hpp
|
||||
processors/object/ProcessorDoorState.hpp processors/object/ProcessorMusicPlay.hpp
|
||||
processors/object/ProcessorObjectActivate.hpp processors/object/ProcessorObjectAnimPlay.hpp
|
||||
processors/object/ProcessorObjectDelete.hpp processors/object/ProcessorObjectLock.hpp
|
||||
processors/object/ProcessorObjectMove.hpp processors/object/ProcessorObjectPlace.hpp
|
||||
processors/object/ProcessorObjectRotate.hpp processors/object/ProcessorObjectScale.hpp
|
||||
processors/object/ProcessorObjectSpawn.hpp processors/object/ProcessorObjectState.hpp
|
||||
processors/object/ProcessorObjectTrap.hpp processors/object/ProcessorScriptLocalShort.hpp
|
||||
processors/object/ProcessorScriptLocalFloat.hpp processors/object/ProcessorScriptMemberShort.hpp
|
||||
processors/object/ProcessorScriptMemberFloat.hpp processors/object/ProcessorScriptGlobalShort.hpp
|
||||
processors/object/ProcessorScriptGlobalFloat.hpp processors/object/ProcessorVideoPlay.hpp
|
||||
)
|
||||
|
||||
source_group(tes3mp-server\\processors\\object FILES ${PROCESSORS_OBJECT})
|
||||
|
|
|
@ -64,6 +64,11 @@ unsigned char ObjectFunctions::GetObjectListAction() noexcept
|
|||
return readObjectList->action;
|
||||
}
|
||||
|
||||
const char *ObjectFunctions::GetObjectListConsoleCommand() noexcept
|
||||
{
|
||||
return readObjectList->consoleCommand.c_str();
|
||||
}
|
||||
|
||||
unsigned char ObjectFunctions::GetObjectListContainerSubAction() noexcept
|
||||
{
|
||||
return readObjectList->containerSubAction;
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
{"GetObjectListOrigin", ObjectFunctions::GetObjectListOrigin},\
|
||||
{"GetObjectListClientScript", ObjectFunctions::GetObjectListClientScript},\
|
||||
{"GetObjectListAction", ObjectFunctions::GetObjectListAction},\
|
||||
{"GetObjectListConsoleCommand", ObjectFunctions::GetObjectListConsoleCommand},\
|
||||
{"GetObjectListContainerSubAction", ObjectFunctions::GetObjectListContainerSubAction},\
|
||||
\
|
||||
{"IsObjectPlayer", ObjectFunctions::IsObjectPlayer},\
|
||||
|
@ -218,6 +219,13 @@ public:
|
|||
*/
|
||||
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.
|
||||
*
|
||||
|
|
|
@ -185,6 +185,7 @@ public:
|
|||
{"OnCellLoad", Callback<unsigned short, const char*>()},
|
||||
{"OnCellUnload", Callback<unsigned short, const char*>()},
|
||||
{"OnCellDeletion", Callback<const char*>()},
|
||||
{"OnConsoleCommand", Callback<unsigned short, const char*>()},
|
||||
{"OnContainer", Callback<unsigned short, const char*>()},
|
||||
{"OnDoorState", Callback<unsigned short, const char*>()},
|
||||
{"OnObjectActivate", Callback<unsigned short, const char*>()},
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
#include "actor/ProcessorActorPosition.hpp"
|
||||
#include "actor/ProcessorActorSpeech.hpp"
|
||||
#include "ObjectProcessor.hpp"
|
||||
#include "object/ProcessorConsoleCommand.hpp"
|
||||
#include "object/ProcessorContainer.hpp"
|
||||
#include "object/ProcessorDoorState.hpp"
|
||||
#include "object/ProcessorMusicPlay.hpp"
|
||||
|
@ -135,6 +136,7 @@ void ProcessorInitializer()
|
|||
ActorProcessor::AddProcessor(new ProcessorActorStatsDynamic());
|
||||
ActorProcessor::AddProcessor(new ProcessorActorTest());
|
||||
|
||||
ObjectProcessor::AddProcessor(new ProcessorConsoleCommand());
|
||||
ObjectProcessor::AddProcessor(new ProcessorContainer());
|
||||
ObjectProcessor::AddProcessor(new ProcessorDoorState());
|
||||
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