Wenn die Titel ingame nicht einmal auftauchen bzw. freigespielt werden können, dann hat die Datenbank da noch gar nichts mit zu tun.
Beim Character selbst werden die Titel im m_aHonorTitle Array gespeichert, das MAX_HONOR_TITLE Elemente halten kann. Die Stellen im Array entsprechen der ID des Titels (standardmäßig sind also Titel bis zur ID 149 möglich).
Ich sehe bei deiner ID-Vergabe in der honorList.txt, dass du immer eine ID überspringst - das brauchst (und solltest) du gar nicht zu machen, denn damit sind Stellen im Array dann leer und der Speicher umsonst allocated. Eine Zeile = ein Eintrag = eine ID. Das sind keine String-Iterationen wie bei der propItem.txt.txt oder anderen Dateien.
Die defineHonor.h definiert Typen und Gruppen bei den Titeln, daher kannst du die Datei getrost ignorieren.
Es sind laut CTitleManager::LoadTitle() offenbar 69 "Monster" (MONSTER_TITLE_MAX für Titel der Gruppe HI_HUNT_MONSTER) und "Item" (ITEM_TITLE_MAX für Titel der Gruppe HI_USE_ITEM) Erfolge möglich, aber über 50 würden jeweils niemals in der Datenbank landen. Ich weiß also nicht, was sich Gala/Aeonsoft dabei gedacht hat. Offenbar sind das überbleibsel von Refactoring.
- Solange du nicht den Error "Too many title about monster!" oder "Too many title about item!" bekommst, dürfte das (erstmal) kein Problem sein, was die Menge betrifft; jedoch spätestens dann, wenn es um das Speichern/Laden mit der Datenbank geht und du jeweils über 50 Titel pro Kategoriengruppe hast.
* Was die Datenbank betrifft...
... die kommt NUR beim Speichern und Laden des Characters ins Spiel - hat also nichts mit initialen Begrenzungen bei den Titeln zu tun. Limitierungen gibt es hier dennoch.
Du hast 3x 50 mögliche Titel in der Datenbank zur Verfügung.
- 50 für "Sonstige" Erfolge (HI_ELASPED_TIME, HI_COUNT_CHECK, HI_EARN_TITLE)
- 50 für "Item" Erfolge (HI_USE_ITEM)
- 50 für "Monster" Erfolge (HI_HUNT_MONSTER)
Die Fortschritte/Status dafür werden in der tblMaster_all gespeichert, für jeden Character gibt es drei Rows mit je 50+ Columns (c01-c50 sind die Fortschritte der Erfolge).
Columns in Rows mit sec=1 sind die "Sonstigen" Erfolge,
Columns in Rows mit sec=2 sind die "Item" Erfolge,
Columns in Rows mit sec=3 sind die "Monster" Erfolge.
Willst du das alles also erweitern, müssten erstmal mehr Spalten her - das ist noch nicht so schwierig. Willst du also z.B. die standardmäßigen 70 Titel pro Gruppe haben, musst du die Tabelle schon mal um die Spalten c51 - c70 erweitern.
Dann musst du entsprechend noch die beiden Prozeduren usp_Master_Select und usp_Master_Update für die entsprechenden Spalten ändern.
Als nächstes wären die Funktionen CDbManager::GetHonor() und CDbManager::SaveHonor() dran, die für das Auslesen/Speichern der Fortschritte da sind.
Abschließend muss natürlich MAX_HONOR_TITLE erhöht werden, um mehr Titel allgemein im Character speichern zu können

Korrekt (also um auch durch Spalten in der Datenbank abgedeckt zu sein) wäre hier 70 * 3 = 210 (ausgehend davon, dass MONSTER_TITLE_MAX und ITEM_TITLE_MAX jeweils noch mit 70 definiert sind).