Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

TERA System Message IDs

Initiate Mage
Joined
Mar 4, 2015
Messages
2
Reaction score
0
Hi.

I'm working on my small TERA server pet-project. Thanks to releases found here I finished DataCenter and Opcodes procssing and currently stuck on ingame system messages.

TERA System Messages system has two parts:
1. Mapping readableId to system message localized text in StrSheet_SystemMessage. ReadableID always unique and persistent between updates.
Code:
<String string="Welcome to TERA. Go to TERA.enmasse.com for news and information." delayTime="0.0" effect="-1" sound="-1" style="SMS_CHAT_INFO" readableId="SMT_PLAYTIME_START" chatChannel="201" displayChat="True"/>
<String string="The post has arrived." delayTime="0.0" effect="-1" sound="2008" style="SMS_CHAT_INFO_CHAT_ONLY" readableId="SMT_PARCEL_RECEIPT" chatChannel="201" displayChat="True"/>
2. Mapping index to readableId in TERA.exe. Thy change(shift) when new messages added.
Code:
start of table with readableids (NA latest client)
02099448 - SMT_DUNGEONMATCHING_BEGINNER
02099484 - SMT_UNION_SHARED_ACTIVITY_COST
020994C4 - SMT_INVEN_EXTENSION_SUCCESS
020994FC - SMT_DUNGEONMATCHING_RETRIABLE
ends with
020E0E98 - SMT_LOAN_INTEREST_PAYMENT_LOANEE
022BF618 - SMT_%s

valid indexes (collected manually)
464;SMT_MAX_ENCHANT_SUCCEED
888;SMT_PLAYTIME_START
1770;SMT_FRIEND_IS_CONNECTED
CheatEngine screenshot


In S_SYSTEM_MESSAGE server sends index of system message, which being translated to readableID and looked in strsheet table for translation. Sniffer view
Hardcoding indexes is bad because they all can change after update. Thats why I use readableId instead, but this method requires more preparations.

I'm stuck on trying to figure out how to reconstruct original indexes of system messages for almost a week by now.

Simple operations like dumping SMT_ prefixed strings and starting numeration from 0 won't work. My tries to find code responsible for message lookup failed too (my reverse engineering skills not that good).


Update 20.09. I've found "Real" translation table in binary file. But don't know how to dump them yet... Will try similar to opcode dumper method to make it automated (like auto datacenter decryptor)

Update 20.09 I've finally made a dump of them after locating GetMessageName function :) Used code from opcodesextractor.
 
Last edited:
Newbie Spellweaver
Joined
Jul 19, 2014
Messages
6
Reaction score
0
i think these SMT_ are used by client, you can not control it. so needn't to dump them
 
Back
Top