Custom shield mechanic plugin

Status
This thread has been locked.

NetizenDev

Developer & Teacher
Supreme
Feedback score
2
Posts
14
Reactions
9
Resources
5

Hello there, Zero here



Currently our new rpg-based server venomousrpg is looking for a custom-coded shield system.

We believe that - asides from the cooldown-mechanic that we can fix quite easily ourselves - one of the big reasons why so many people dislike 1.9+ pvp is the new shielding mechanic. It's just bland and lacks any form of skill, as players can just block any incoming damage and wait for their opponent to either lose interest or be attacked by a backup-force. If you have ever tried to block an incoming attack in reallife with any sort of shield, you know that it drains your stamina extremely quickly and is by far “absorbing” any damage (potentially breaking your bones if the blow is heavy enough).


We propose the following mechanic in order to not only balance but also add a skill-component to the use of shields:


Explanation & definition of variables


When blocking, a player sees a stamina-bar displayed in his bossbar. This will show his current shield-value. This value will decrease over time, decreasing faster the longer the player is blocking.


Base_start_value (x) (defined in config, the same for every player): 100

Def_start_value (y): x * (mmocore_class_level) * (xp_level/10)


Dmg_crushing_bonus (a): ({lvl_mmocore_class_attacker}/{lvl_mmocore_class_victim} * ({xp_level_attacker}/5)^2


Default_time_drain (d): y - (time_blocked_in_seconds)^4


Total_drain_new_value (Yn(n): y - d - ({damage_attacker} * a)


Default_stamina_regen (r): Yn(n)+ {time_in_seconds_notblocking * xp_level}


Rem_def_value (q) = Yn(n)/Y (value goes form 0 - 1, effectively displaying a % bar if multiplied with 100)


If a player dies, they only drop their xp aswell as a % of the money they carry on them (20-50%), making pvp less of a devastating moment. This should encourage players to fight more regularly in dungeons, as they do not risk losing everything - but they can gain an additional bonus by robbing a part of the reward their foe got from completing the dungeon etc.


With this formula, the higher the discrepancy of levels between two opposing players, the quicker a shield becomes useless, forcing players to actually combat each other and avoid combat with too higher level classes instead of just spamming their skills and wasting time. Carrying much exp with you now adds a certain reward for risk element, as you have higher defense and quicker regen, however are at risk of losing more!


On hit 1, the value is Y (if the stamina is full), on hit 2 it is Yn(1), then Yn(2) and so forth.

If Yn(n) >= 21% (0.21), the victim can additionaly shiftclick their shield and instantly drop their stamina to 0, getting a “rage” bonus of strenght for (q*10) seconds.


If Yn(n) <=20% (0.2), apply weakness, speed 2 & blindess to victim for 10 seconds


If Yn(n) >=20% (0.2), cancel damage and decrease stamina instead.


This adds a tactical element to the usage of a shield. Brainlessly blocking will only lead to the victim having absolutely no chance - and since the drain-speed increases as time goes by, this will quickly screw them over. However a player may choose to instantly go into his “rage” mode, making the hunted become the hunter and giving them a chance to defeat an even higher leveled enemy if they don’t expect it.


Example (with numbers):


Class_level_attacker: 200

DMG_per_hit_attacker: 1500

Class_level_victim: 160

XP_level_victim: 50

XP_level_attacker: 50


y_base_victim: 100 * 160 * (50/10) = 80’000

Dmg_multiplier_attacker: (200/160)^2 = 1.5625


Yn(1) = 80’000 - 5^4 - (1500*1.5625*10) = 55’937.5

55’937.5/80’000 = 0.699 = 69.9 = 70% > cancel damage, continue with Yn(2)


Yn(2) = 55’937.5 - 10^4 - (1500*1.5625*10) = 22’500

22’500/80’000 = 0.28125 = 28.1% > cancel damage, continue with Yn(3)


Yn(3) = 22’500 - 3^4 - (1500*1.5625*10) = -1018.5

Yn(3) <= 0 -> stop blocking, playsound (breaking block) to attacker, apply effects to victim


Block is crushed, shield is on cooldown until it recovers 50% of stamina


If player stops blocking before Yn(n) <= 0, shield does not go on cooldown until 50% recovered

Plugin has to be 1.15.2 compatible, an either support has to be included or sourcecode sold. Budget is negotiable, we were thinking about something between 30 to 70 USD (depending on speed & execution) + bonus of communication is well and plugin works properly.
Plugin must be rather lightweight or at least efficient in what it is doing.

If interested, add me on discord
HRZNzero#0001 on discord

Sincerely
Zero, Founder of VRPG
logo.png
 
PebbleHost
High performance, consistent uptime and fast support. Minecraft hosting that just works.
Status
This thread has been locked.
Top