Fix bugged accessories ( +7)

Joined
Feb 26, 2010
Messages
1,394
Reaction score
787
Ok well, first of all hi.
Now back to business.

The reason why bracelet of sage/fighter +7 and earrings +7 can't be used on HR 10 even though they show HR 10 is because in item.scp the requirement for usage is 7.680.000 and in item.enc its 10.000.000
So what we gonna do is edit item.enc to match that(doh, simple)
Use yamachi's item.enc template and go to the items ID.

Then look for this row.
Code:
LimitReputation	[COLOR="magenta"]10000000[/COLOR]	8DC44h	4h	Fg:
Edit it to
Code:
LimitReputation	[COLOR="Magenta"]7680000[/COLOR]    	8DC44h	4h	Fg:
for all items



Item IDs:
Force Regeneration Earring +7 ->1451
Vampiric Earring +7 ->1454
Earring of Guard +7 ->1448
Bracelet of Fighter +7 ->1457
Bracelet of Sage +7 ->1460

See ya.
 
Last edited:
Beware BOX +7 bug if input switch to switch to the BOX +6 will attack a lot stronger.
Dummy 2 attack death.

Sorry I'm bad English.
 
I will give you a tip... try to find the limit in your cabalmain, but you will need to convert to hex in first place (I don't wanna post the offset cause it's really easy to find) :D:

ehem, can i request sir a guide to find how to decrease the limit in cabalmain? ;)
should we use OLDBG or Hex Editor? ;)
 
Change 7.680.000 to hex then look for the limit in cabalmain.exe using OllyDBG.

Is this the converion of 7.680.000 = 00307500
Hehe dont know how to convert to hex.
and where to find the limit in cabalmain, and what should supposed to change in cabalmain? ;)
 
worked just fine to convert dec to hex (7680000 -> 753000), the limit was increased in cabalmain successfully. :thumbup:
tested in-game and is working. :D:

just discovered another problem ...


let's the example:
put a limit to honor 2000000000 (hex = 77359400) then
after change the channel or disconnect from the server,
==> the honor again to reset 7680000! :grr:


can someone help me? Thank you. :tongue:
excuse my english.
 
worked just fine to convert dec to hex (7680000 -> 753000), the limit was increased in cabalmain successfully. :thumbup:
tested in-game and is working. :D:

just discovered another problem ...


let's the example:
put a limit to honor 2000000000 (hex = 77359400) then
after change the channel or disconnect from the server,
==> the honor again to reset 7680000! :grr:


can someone help me? Thank you. :tongue:
excuse my english.


The honor trigger on your SQL is still set to 7.680.000.
 
I found this ...


Every single time the character table is even touched by the db everyone's honour will go back to max so pk won't let them drop honour. The problem is that when you have a large number of chars the db is going to spend all of it's time updating the honour fields and the db is going to get slower and slower the more chars you have until eventually it just can't cope.

The newchardata_table method doesn't suffer the slowdown problem but honour will drop when pk-ing. Use the newchardata_table to set new char reputation to mak and then use a trigger to maintain it.

Code:
CREATE TRIGGER [Honour] ON [dbo].[cabal_character_table] 
FOR UPDATE
AS
begin
  update cabal_character_table set Reputation = '7680000' where Reputation < '7680000'
end

As max is already set for new chars (INSERT) you can drop the INSERT and who cares about updating honour when a char is deleted? Honour is only set when a new char is created (INSERT) or the honour increases/decreases (UPDATE) and calling on a delete is pointless extra work for the db. Adding a "where" at the end to limit the updates to people with < max reputation will speed the trigger up a little bit too.

Further things for you to think about to optimise this: Do you really need to update for players not logged in? Or banned chars? How can you add that to the trigger to further reduce the work it has to do?

This will still suffer the slowdown but not nearly as much and your db will thank you :ott1:


still not 100% :/:

for example:

my character is with honor '16000000'-> just an example...
recalling that the limit changed in cabalmain is '20000000' and the trigger set to " set Reputation = '20000000' "

If I log out, or change the channel, what happens :?:
==> the trigger in SQL changes "RP" to '20000000'

only that the goal was to be that the character started 'honor 0' and up up until 'honor 20000000', thus following up the natural

excuse my english.
 
I think i expressed it badly.

before I had no this trigger in DB, I added because you had spoken to find the forum "honor trigger" ...
I found that the chumpy, but as I say not working well!

just to remind, if I remove this trigger, which did not help me, go back to the previous problem, in this post !

worked just fine to convert dec to hex (7680000 -> 753000), the limit was increased in cabalmain successfully. :thumbup:
tested in-game and is working. :D:

just discovered another problem ...


let's the example:
put a limit to honor 2000000000 (hex = 77359400) then
after change the channel or disconnect from the server,
==> the honor again to reset 7680000! :grr:


can someone help me? Thank you. :tongue:
excuse my english.


the problem is that...
1. even changing the limit on cabalmain, when I logout or change the channel, reset the honor to '7680000'
2. or, if enable the trigger in DB, happens all the time going to get '20000000'. For example: then a character that was with honors in '17680000', would get the maximum '20000000'

this is not right :glare:
excuse my english.
 
i use my hex-editor and replace all of 00307500 ( = dec 7680000 in reverse order) with FFFFFF7F(= dec 2147483647 in reverse order) it work perfect.

finally i found that db not update it show 7680000 all time and when login again your honour is 7680000
 
Last edited:
i use my hex-editor and replace all of 00307500 ( = dec 7680000 in reverse order) with FFFFFF7F(= dec 2147483647 in reverse order) it work perfect.

ok tikkaroe ...

but those two items I mentioned, is working with you?
because I had these two problems!

If you log out your character that had, an example honor = '17000000', being the limit in cabalmain, this your FFFFFF7F (dec = 2147483647)...
honor isn't reseting to '7680000'? :glare:

another doubt, how many times you think "00753000" in its cabalmain?
i found twice, perhaps has passed one unnoticed. :blushing:

excuse my english.
 
When i try to equip accessory +5 +6 +7 , i got error code 6......
How can i fix it?
See item.scp for data and compare it to your item.enc if everything is set right...
You have the wrong info on serverside or clientside!
Take one +4 accessory as example and compare to one +5/6/7 (Serverside&Clientside)
 
Back