SphereServer BugTracker - SphereServer
View Issue Details
0002083SphereServernew feature requestpublic15-07-12 20:3222-03-13 22:06
Marlek 
RanXerox 
normalfeaturealways
resolvedfixed 
 
 
Automated (specify build number)
None
None
1505
0002083: Requesting ModMaxhits, ModMaxmana and ModMaxstam
Setting MaxHits on a player character will permanently set his MaxHits to this value, even if the Player looses or gains some STR after setting his MaxHits.

As Example:
Player has 100 STR.
He uses Levelsystem to add +1 Maxhit, script sets his Maxhits to 101.

Player gets cursed, looses 10 STR, but still has 101 Maxhits
or
Player gets a bless, gains 10 STR, but still has 101 Maxhits.

Same behaviour can be observed with MaxMana/INT and MaxStam/DEX, i think MaxHits, MaxMana and MaxStam is exactly doing what it should. However, i want to give player characters some more survivability (Hitpoints), without giving them more Damage (STR), so i can't use STR or ModSTR.

Can you please implement ModMaxhits, ModMaxmana and ModMaxstam, working like ModMaxWeight?

Example:
Player has 100 STR.
Levelsys sets +1 to ModMaxHits.
He now has 101 Maxhits.

Player gets cursed: 90 STR and 91 MaxHits.
Player gets blessed: 110 STR and 111 MaxHits.
Player gets blessed and equips an Item: 120 STR and 121 Maxhits
No tags attached.
Issue History
15-07-12 20:32MarlekNew Issue
04-08-12 16:35SadusNote Added: 0001350
04-08-12 22:36MirravinNote Added: 0001352
22-03-13 22:05RanXeroxNote Added: 0001518
22-03-13 22:06RanXeroxNote Added: 0001519
22-03-13 22:06RanXeroxStatusnew => resolved
22-03-13 22:06RanXeroxResolutionopen => fixed
22-03-13 22:06RanXeroxAssigned To => RanXerox

Notes
(0001350)
Sadus   
04-08-12 16:35   
Would be great and useful. Nice feature.
(0001352)
Mirravin   
04-08-12 22:36   
It is scriptable without any problems.
(0001518)
RanXerox   
22-03-13 22:05   
[FUNCTION MODMAXHITS]
LOCAL.Results=<EVAL <ARGS>>
IF (<ISEMPTY <ARGS>>)
   RETURN <EVAL <TAG0.MODMAXHITS>>
ELSE
   TAG.MODMAXHITS=<EVAL <TAG0.MODMAXHITS>+<LOCAL.Results>>
   IF !(<TAG0.MODMAXHITS>)
      TAG.MODMAXHITS=
      MAXHITS=
   ELSE
      MAXHITS=<EVAL <MAXHITS>+<LOCAL.Results>>
   ENDIF
ENDIF

[FUNCTION MODMAXSTAM]
LOCAL.Results=<EVAL <ARGS>>
IF (<ISEMPTY <ARGS>>)
   RETURN <EVAL <TAG0.MODMAXSTAM>>
ELSE
   TAG.MODMAXSTAM=<EVAL <TAG0.MODMAXSTAM>+<LOCAL.Results>>
   IF !(<TAG0.MODMAXSTAM>)
      TAG.MODMAXSTAM=
      MAXSTAM=
   ELSE
      MAXSTAM=<EVAL <MAXSTAM>+<LOCAL.Results>>
   ENDIF
ENDIF

[FUNCTION MODMAXMANA]
LOCAL.Results=<EVAL <ARGS>>
IF (<ISEMPTY <ARGS>>)
   RETURN <EVAL <TAG0.MODMAXMANA>>
ELSE
   TAG.MODMAXMANA=<EVAL <TAG0.MODMAXMANA>+<LOCAL.Results>>
   IF !(<TAG0.MODMAXMANA>)
      TAG.MODMAXMANA=
      MAXMANA=
   ELSE
      MAXMANA=<EVAL <MAXMANA>+<LOCAL.Results>>
   ENDIF
ENDIF
(0001519)
RanXerox   
22-03-13 22:06   
Solvable using the functions listed