Shoulder Surfing Reloaded

Shoulder Surfing Reloaded

2M Downloads

[Suggestion] New crosshair type

Tapacywka opened this issue ยท 7 comments

commented

I propose to add a new crosshair type, namely: crosshair synchronization with first-person mode, and an additional parameter: "Fixed Y-position: True/False", so that the crosshair is always at +- the same level as the head. This idea was inspired by the game Genshin Impact. It looks like the following:

image

Now let me give you an example of what this should look like in Minecraft. The horse I'm looking at should take damage when I hit it with the sword in front of me:

image

The parameter "Fixed Y position: True/False" is needed so that with this type of crosshairs we mostly try to look at the target, not at ourselves or above ourselves (under our feet or in the sky). It would also be nice to make a hotkey that when pressed, we could revert to the previous crosshair type based on what is currently here:

image

So I propose not to add this crosshair type to all the others, but to create a new alternative type that will work in parallel with these 5 main types. In a peculiar way it can be called "Combat Crosshair Mode". Personally, this will be very useful on my RPG server, where the game is played in third-person mode and crosshair visibility is set to "isAiming" only, while first-person mode uses "isAiming_or_inRange". In my opinion, this is a great innovation for the adventure mode of the game.

p.s.: since I mentioned "isAiming", I'll clarify that while aiming, the camera behaves as normal and the crosshair is centered on the player who is looking forward:

image

commented

Thank you for the suggestion. After thinking about this for a while, I came to the conclusion that such a feature requires some sort of aim assist, as the player would always look at the same height (fixed x-rot), which makes it impossible to target a chicken, for example. Implementing such an aim assist is not something I want to do. However, you could consider installing "Epic Fight" or "Better Combat" for similar functionality.

commented

Thank you for the suggestion. After thinking about this for a while, I came to the conclusion that such a feature requires some sort of aim assist, as the player would always look at the same height (fixed x-rot), which makes it impossible to target a chicken, for example. Implementing such an aim assist is not something I want to do. However, you could consider installing "Epic Fight" or "Better Combat" for similar functionality.

The thing is, neither Epic Fight nor Better Combat has this. They have nice new sets of animations for different weapons, the ability to create your own animations, etc, but they have absolutely no interaction with the camera. It seems to me that the functionality I'm asking for is just an "extension/add-on" for these mods, but it can't be implemented in the mods themselves, as they are different aspects of the game. Conventionally, if you divide the game into modules, both of these mods are "animation module". But Shoulder Surfing Reloaded and Leawind's Third Person are the "camera module", so it would be more "right" if this feature was implemented here. If you're talking about Aim Assist implying that a client-side only mod will turn into a client & server mod, then I can see why you don't want to do that. If it's about it not being worth the time - it's not, the feature is very cool and looks insanely good on full 3rd person RPG projects. Anyway thanks for the reply <3

commented

I was also thinking about how you could implement this feature without using Aim Assist, and I came up with the idea of just rewriting the way damage is dealt. You could make it so that the damage is just dealt in front of the character. Let's say that every time a character is hit, an improvised hitbox of 1x2x2 blocks is created in front of the character, which deals "invisible damage". If a real mob's hitbox appears in this hitbox during the damage, the damage turns into visible damage and is dealt to it. This is a kind of vertical Swipping Attack even on 1 target.

commented

If you're talking about Aim Assist implying that a client-side only mod will turn into a client & server mod, then I can see why you don't want to do that.

Having aim-assist will not turn Shoulder Surfing into a client & server mod, but I simply do not want to integrate such a feature into the mod.

The thing is, neither Epic Fight nor Better Combat has this.

Well, they do, exactly the way you described it:

You could make it so that the damage is just dealt in front of the character. Let's say that every time a character is hit, an improvised hitbox of 1x2x2 blocks is created in front of the character, which deals "invisible damage". If a real mob's hitbox appears in this hitbox during the damage, the damage turns into visible damage and is dealt to it. This is a kind of vertical Swipping Attack even on 1 target.

Video of Epic Fight in action:

2024-06-08.11-39-52.mov

In the video you can see (with hitboxes enabled), that epicfight adds a damage hitbox to the swing animation of a sword, making it possible to target multiple mobs at once, and making it possible to hit smaller (height wise) entities.

Implementation wise, it's easier to implement aim assist, which also does not require any server-side installation, in comparison to what Epic Fight has already done with their "sweeping hitbox". So aim-assist would be the way to go. But that's not something I want to implement as part of Shoulder Surfing.

commented

Okay, thanks for your reply!

commented

This feature will be implemented in the next version of SSR (4.3.0), although with no aim-assist. The config needs to be as follows:

[crosshair]
	#Crosshair type to use for shoulder surfing.
	#Allowed Values: ADAPTIVE, DYNAMIC, STATIC, STATIC_WITH_1PP, DYNAMIC_WITH_1PP
	crosshair_type = "DYNAMIC"
[camera]
	#Whether or not to decouple the camera rotation from the player rotation.
	decoupled_camera = true

[player]
	#Whether the x-rot of the player should follow the camera x-rot. This config option only applies when camera is decoupled.
	player_x_rot_follows_camera = true
	#Whether the y-rot of the player should follow the camera y-rot. This config option only applies when camera is decoupled.
	player_y_rot_follows_camera = true

[object_picker]
	[object_picker.pick_vector]
		#The vector direction of the raytrace when picking objects. This config option only applies when using the dynamic crosshair.
		#Allowed Values: PLAYER, CAMERA
		pick_vector = "PLAYER"
commented

Ohh, that's insane! Thanks for implementing this feature!! :)