Forum

Please note that you can subscribe to the individual forums. A subscription for news only covers the news.

Notifications
Clear all

AutoMerits Off?

5 Posts
2 Users
0 Likes
288 Views
0
Topic starter

Helu.

It’s a wish. S’wish.

The automated merits system subtracts merits when punishments are assigned and reimburses them when done. Could this be disabled? 

I understand the concern about having a sustainable merits economy – one that doesn’t head endlessly towards one extreme. The predefined solution has #zzMerits as equal to a predetermined number minus the total value of punishments pending. It’s a closed system, a way of structuring the sub’s merital finances, with some liquid and some tied up in punishments. But I do use merits as an open system too, an account into which master injects and withdraws merits - and indeed the sub’s merits inevitably head south. But that’s him. System’s fine. But when VM wants to know how many merits the sub has in total, he needs #zzMerits + value of pending punishments. I don’t know how to easily capture that second value.

Perhaps there’s a predetermined variable for value of all pending punishments 🙂 But I think this will involve setting up a counter system of some kind. Ideas and guidance welcome.

Thanks for all.

Topic Tags
5 Answers
0

Hi Simon,

I feel that this would be breaking with the principles of the program. But maybe you can do what you want like this:

 

[Events]
PunishmentGiven=PunishmentGiven
PunishmentDone=PunishmentDone

[procedure-PunishmentGiven]
; Avoid reducing merits. #zzAddMerits will be negative.
set#=#Merits,#zzAddMerits
multiply#=#Merits,-1
addmerits=#Merits

[procedure-PunishmentDone]
; Avoid increasing merits. #zzAddMerits will be positive.
set#=#Merits,#zzAddMerits
multiply#=#Merits,-1
addmerits=#Merits

 

It will only work if the sub not gets anywhere MinMerits or MaxMerits, but if I understand you right, you must have an unreachable MaxMerits,

Sven

 

0
Topic starter

Yes. That’s very tidy. After some thought I was hatching a related idea that meant adding statements to all the Before and Done procedures and adjusting #zzmerits via MeritsChanged. I will now remove all that and replace with this. I was even aware of the the PunGiven and Done procedures but never imagined how to use them. 

Thank you. 🙂 🙂 

PS I'll bear in mind Min and Maxmerits. I don't use them now. 

0

Please be aware that MaxMerits has a default of 1000. So you may wish to specify it.

0
Topic starter

Correction: I am using MinMerits=-50 and MaxMerits=1050. Merits=800 at start. Not sure why the merit adjusting system would fail at the extremes. Say #zzMerits hits a high of 1000 and VM wants to add 10, is the value of #AddMerits still 10 despite the fact it isn’t added to the total? Bueno. Things work well enough for now: when merits get lower than 500 VM punishes and boosts the score, and at 1000 it buys you a car.

0

Thinking about it, I don't think it will fail at MinMerits. The merit system can go below zero. If I remember right, MinMerits is just to tell where the visible scale stops.

But it will cut off the merits at MaxMerits. And I think that #AddMerits will still contain 10 in your example. You should be able to test for that situation and correct it, if you wish to.

I haven't tested any of this, so it is how I think it will work.

Sven