mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-05-08 04:55:52 +08:00
Partial fix for player attacks in co-op not working
This commit is contained in:
parent
ad0225df3a
commit
c9c45e4c32
@ -11,6 +11,7 @@ import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult;
|
||||
import emu.grasscutter.net.proto.CombatInvocationsNotifyOuterClass.CombatInvocationsNotify;
|
||||
import emu.grasscutter.net.proto.CombatInvokeEntryOuterClass.CombatInvokeEntry;
|
||||
import emu.grasscutter.net.proto.EntityMoveInfoOuterClass.EntityMoveInfo;
|
||||
import emu.grasscutter.net.proto.EvtAnimatorParameterInfoOuterClass.EvtAnimatorParameterInfo;
|
||||
import emu.grasscutter.net.proto.EvtBeingHitInfoOuterClass.EvtBeingHitInfo;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.proto.MotionInfoOuterClass.MotionInfo;
|
||||
@ -33,6 +34,7 @@ public class HandlerCombatInvocationsNotify extends PacketHandler {
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
CombatInvocationsNotify notif = CombatInvocationsNotify.parseFrom(payload);
|
||||
for (CombatInvokeEntry entry : notif.getInvokeListList()) {
|
||||
// Handle combat invoke
|
||||
switch (entry.getArgumentType()) {
|
||||
case COMBAT_TYPE_ARGUMENT_EVT_BEING_HIT:
|
||||
EvtBeingHitInfo hitInfo = EvtBeingHitInfo.parseFrom(entry.getCombatData());
|
||||
@ -83,8 +85,21 @@ public class HandlerCombatInvocationsNotify extends PacketHandler {
|
||||
handleFallOnGround(session, entity, motionState);
|
||||
}
|
||||
}
|
||||
|
||||
// MOTION_STATE_NOTIFY = Dont send to other players
|
||||
if (motionState == MotionState.MOTION_STATE_NOTIFY) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case COMBAT_TYPE_ARGUMENT_ANIMATOR_PARAMETER_CHANGED:
|
||||
EvtAnimatorParameterInfo paramInfo = EvtAnimatorParameterInfo.parseFrom(entry.getCombatData());
|
||||
|
||||
if (paramInfo.getIsServerCache()) {
|
||||
paramInfo = paramInfo.toBuilder().setIsServerCache(false).build();
|
||||
entry = entry.toBuilder().setCombatData(paramInfo.toByteString()).build();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user