rSec DB Validator VS RYL Database Checks
as the topic says . as i knew rSec check player equipment changed by the table EQ_CHANGED with CONSTRAINT DF_CharInfo_EQ_Changed but somehow the constraint doesn't work so well because the column does not update to 1 when player change eqs . i don't know much about RYLDatabase checks . but from what i know that some other old server are using dbchecks for fixing bug slot. is there anyone that can make RYLDBChecks running perfectly ? .do anyone get the rSec DB Validator running perfectly .. please guide me . i just wanted to know why its doesn't work for me and i think almost every server except NP ,
Re: rSec DB Validator VS RYL Database Checks
RYL uses stored procs for all its updates, inserts, deletions. For that field value to change to 1 you need to find those SP's and change them to set the field thru it. Therefor, every time RYL updates the player EQ using that SP, you also set the field value to 1 so that rSec select query can find that change now.
The dbExtraChecks project is a C# trigger, which is executed when the EQ row is being changed. You can do the field change 1 the same way using triggers and not SP's.
One thing to note is that RYL doesn't write equipment info to the table the second the player changes it. The changes are flushed into DB periodically, controlled by a DBagent server internal timer which is affected by the amount of data in memory. The less players online, the less updates into DB, the longer can players with invalid EQ play before getting kicked out.
Best practice would be to use either of those checks with banning option so that players cant simply re-login and start using the bug again until they get kicked again, which can happen a second after the bug usage or even an hour later when the db flush may happen.
For testing purposes you can force a DB flush by closing the DB agent server.
-------------
To talk about thread title then the differences between those two are as follows:
* rSec uses SP's to trigger a field change, rylDbChecks runs on a db trigger. rSec field update could be simply done the same way with just a different installation, so no real difference on the initialization
* rylDbChecks runs its checks live when the change in Db is happening. This is good and bad. Good is that you have the control over whether to allow the change into the base. Bad is that the update may take ALOT longer than DBagent server anticipated. rSec on the other hand does its checks in a separate thread, on a interval you can control, a lot more options.
* rSec checks are more up to date.