Working MP :)

This commit is contained in:
ZioPao
2023-11-13 21:12:36 +01:00
parent 627e480d07
commit 4fb19ae5a6
5 changed files with 28 additions and 10 deletions

View File

@@ -31,7 +31,7 @@ end
-------------------------
local function OnServerRelayCommand(module, command, args)
if module == CommandsData.modules.TOC_ACTION and ClientRelayCommands[command] then
if module == CommandsData.modules.TOC_RELAY and ClientRelayCommands[command] then
ClientRelayCommands[command](args)
end
end

View File

@@ -45,14 +45,25 @@ function CutLimbAction:start()
self.handler:damageDuringAmputation()
else
-- Other player
---@type relayDamageDuringAmputationParams
----@type relayDamageDuringAmputationParams
local params = {patientNum = self.patient:getOnlineID(), limbName = self.limbName}
sendClientCommand(CommandsData.modules.TOC_RELAY, CommandsData.server.Relay.RelayDamageDuringAmputation, params )
end
end
function CutLimbAction:perform()
self.handler:execute()
if self.patient == self.character then
TOC_DEBUG.print("patient and surgeon are the same, executing on the client")
self.handler:execute(true)
else
TOC_DEBUG.print("patient and surgeon not the same, sending relay to server")
-- Other player
---@type relayExecuteAmputationActionParams
local params = {patientNum = self.patient:getOnlineID(), limbName = self.limbName}
sendClientCommand(CommandsData.modules.TOC_RELAY, CommandsData.server.Relay.RelayExecuteAmputationAction, params )
end
ISBaseTimedAction.perform(self)
end

View File

@@ -103,10 +103,10 @@ end
function CutLimbHandler:perform(previousAction, itemType)
--local item = self:getItemOfType(self.items.ITEMS, itemType)
--previousAction = self:toPlayerInventory(item, previousAction)
-- TODO This is broken like this!
local limbName = BodyPartType.ToString(self.bodyPart:getType())
TOC_DEBUG.print("perform CutLimbHandler on " .. limbName)
local action = CutLimbAction:new(self:getPatient(), self:getDoctor(), limbName)
local action = CutLimbAction:new(self:getDoctor(),self:getPatient(), limbName)
ISTimedActionQueue.add(action)
end

View File

@@ -1,3 +1,4 @@
require ("TOC/Debug")
local CommandsData = require("TOC/CommandsData")
--------------------------------------------
@@ -9,11 +10,11 @@ local ServerRelayCommands = {}
---@param surgeonPl IsoPlayer
---@param args relayDamageDuringAmputationParams
function ServerRelayCommands.RelayDamageDuringAmputation(surgeonPl, args)
local patientPl = getSpecificPlayer(args.patientNum)
local patientPl = getPlayerByOnlineID(args.patientNum)
local surgeonNum = surgeonPl:getOnlineID()
---@type receiveDamageDuringAmputationParams
local params = {surgeonNum = surgeonNum, args.limbName}
local params = {surgeonNum = surgeonNum, limbName = args.limbName}
sendServerCommand(patientPl, CommandsData.modules.TOC_RELAY, CommandsData.client.Relay.ReceiveDamageDuringAmputation, params)
end
@@ -21,11 +22,11 @@ end
---@param surgeonPl IsoPlayer
---@param args relayExecuteAmputationActionParams
function ServerRelayCommands.RelayExecuteAmputationAction(surgeonPl, args)
local patientPl = getSpecificPlayer(args.patientNum)
local patientPl = getPlayerByOnlineID(args.patientNum)
local surgeonNum = surgeonPl:getOnlineID()
---@type receiveDamageDuringAmputationParams
local params = {surgeonNum = surgeonNum, args.limbName}
local params = {surgeonNum = surgeonNum, limbName = args.limbName}
sendServerCommand(patientPl, CommandsData.modules.TOC_RELAY, CommandsData.client.Relay.ReceiveExecuteAmputationAction, params)
end
@@ -34,7 +35,7 @@ end
-------------------------
local function OnClientRelayCommand(module, command, playerObj, args)
if module == CommandsData.modules.TOC_ACTION and ServerRelayCommands[command] then
if module == CommandsData.modules.TOC_RELAY and ServerRelayCommands[command] then
ServerRelayCommands[command](playerObj, args)
end
end

View File

@@ -41,3 +41,9 @@ end
function TOC_DEBUG.printAllServerModData()
sendClientCommand(CommandsData.modules.TOC_DEBUG, CommandsData.server.Debug.PrintAllTocData, {})
end
function TOC_DEBUG.testRelayDamage()
---@type relayDamageDuringAmputationParams
local params = {limbName = "Hand_R", patientNum = getPlayer():getOnlineID()}
sendClientCommand(CommandsData.modules.TOC_RELAY, CommandsData.server.Relay.RelayDamageDuringAmputation, params)
end