MQ in everquest, chinese version

A forum for feature requests/discussions and user submitted patches that improve MQ2

Moderator: MacroQuest Developers

Landola
decaying skeleton
decaying skeleton
Posts: 4
Joined: Sun Nov 02, 2003 7:38 am

MQ in everquest, chinese version

Post by Landola » Sun Nov 02, 2003 7:42 am

MQ is great.
However, it doesn't work in the everquest, chinese version.
I tried latest MQ and found that eq always crashed after I selected the server.


Is there any way to check which offset should be used for the chinese version client?

Thank you for your help.

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Sun Nov 02, 2003 11:01 am

MQ likes English :) That's a rude way of saying that the offsets for the english client seem to be different from those of other languages. I know there are similar problems with the French client.
MQ2: Think of it as Evolution in action.

User avatar
Kint
a hill giant
a hill giant
Posts: 208
Joined: Thu Mar 13, 2003 3:36 am

Post by Kint » Sun Nov 02, 2003 4:37 pm

look around and ask some questions. maybe yoiu'll be able to find your own offsets. although I don't know how well the mq english commands would work with the chineese version.

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Mon Nov 03, 2003 4:23 am

How does one change to a chinese version of the client? Is is just an ini setting?

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Mon Nov 03, 2003 9:10 am

It's in the options menu somewhere before you log in. You can pick a different language.
MQ2: Think of it as Evolution in action.

Landola
decaying skeleton
decaying skeleton
Posts: 4
Joined: Sun Nov 02, 2003 7:38 am

Post by Landola » Mon Nov 03, 2003 10:11 am

The chinese version of EverQuest has his own server and client, and the chinese client is only able to connect to the chinese server, not to other english servers.

In the chinese server, the items' names and NPC's name/saying are in chinese. Oh, and we have to type quest triggers in chinese too. But the eq commands, like /who, /target, /makeleader, etc., are still type in english.

I believe they just translated the 'text' in the program from english to chinese, because some NPCs or items are still in english, waiting for translation.

That's why I think maybe the old offset can be used, and I just need to find out the chinese client is adapted from which version of english client.

The chinese server is in SOV now, but some LDON NPCs are appeared (only NPCs, no Dungeons).

We have a client patch today. Pet buffers can be seen in the pet window now. All old UI can't be used.

Now EQ will not crash when I have MQ started, but MQ still can't work.
I start MQ, then EQ, and enter the game without crash.
I tried /help macro but only get the standard help.
/macro info - it said something which means no this command.

Sorry for my poor english.

Rand
a lesser mummy
a lesser mummy
Posts: 44
Joined: Sun Jun 08, 2003 8:37 am

Post by Rand » Wed Nov 05, 2003 9:08 pm

Landola :

You need to do the same change than I do for the french server. Get the MQ version for your current patch (us server are patcher earlier, you need an older MQ most of the time)
Then you need to edit EQLib_Hooks.cpp and find this line :

Code: Select all

if ((!strncmp(szMsg,"You have entered ",17)) || (strstr(szMsg," saved."))) {
You need to change the "You have entered" & " saved." to the string used in your MQ version.
The hard part : EQ encode char in UTF-8 but strncmp compare ASCII char.
1) you enable log in eq. Then launch notepad, chose open, change encoding to ansi and open your log. Find the string you need and use it in EQLib_Hooks.cpp
2) Or change strncmp with the UTF8 compliant function (I don t know if it works, it should)


At this point you should have the "macroquest activated" message when you log. Try a few command and /face. If /face don t works well you need to change more things ( MQ fr & MQ us call the mouse & keybord in the same order....). Post again, I ll explain the other change if needed.

Mckorr
US & other version (at least fr) use the same binaries. The only dfference seems to be a command line switch.

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu Nov 06, 2003 8:44 am

Gotcha Rand. Ya know, we could modify that line in MQ so it would work with French as well as English... meaning it would recognize the "activation" code for either server.
MQ2: Think of it as Evolution in action.

Rand
a lesser mummy
a lesser mummy
Posts: 44
Joined: Sun Jun 08, 2003 8:37 am

Post by Rand » Thu Nov 06, 2003 8:50 am

I am a lazy man Mckorr, please free the non-us for the need of change in the code :p

Or explain me what kind of change you think about ( add all the different strings ? )

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu Nov 06, 2003 8:55 am

Code: Select all

if ((!strncmp(szMsg,"You have entered ",17)) || (strstr(szMsg," saved."))) { 
Nah, we could change that to recognize the other languages EQ uses. You'd still have to do MQ commands in English... but really that isn't hard, since you only have to change the command list, you can leave the source code pretty much intact.
MQ2: Think of it as Evolution in action.

Rand
a lesser mummy
a lesser mummy
Posts: 44
Joined: Sun Jun 08, 2003 8:37 am

Post by Rand » Thu Nov 06, 2003 9:06 am

Mckorr wrote:Nah, we could change that to recognize the other languages EQ uses. You'd still have to do MQ commands in English... but really that isn't hard, since you only have to change the command list, you can leave the source code pretty much intact.
The euro version works with the english command, they only added a translated allias for each command (and the translation s***s).

This line is the only one you need to change to have it working. If you really want a perfect work you need to change the other lines in the chat hook but I never use chat event.

Landola
decaying skeleton
decaying skeleton
Posts: 4
Joined: Sun Nov 02, 2003 7:38 am

Post by Landola » Thu Nov 06, 2003 9:09 am

First I found the strings from eqstr_tw.txt.
Because eqstr_tw.txt is UTF-8, I used TextPad to change it to ANSI.
However, when I copy the strings from TextPad to VC++ 6.0, the strings became "????". Every word became a "?".

Then I tried to open EQLib_Hooks.cpp in TextPad and typed in the strings.
I was sure it is ANSI, and saved it.

But it didn't work. After I entered EQ ,there was no MQ activated message and /help macros or /face worked as usual eq command, not MQ one.

By the way, when I compiled, I got some error messengs. I thought they were caused by missing a ' after "?" in some files, so I just added the ' after the "?". Does it matter?

Thank you for your time.

Landola
decaying skeleton
decaying skeleton
Posts: 4
Joined: Sun Nov 02, 2003 7:38 am

Post by Landola » Thu Nov 06, 2003 9:24 am

In my EQ folder, there are three files: eqstr_en, eqstr_tw and eqstr_cn.
All of them are text files.
And eqstr_tw and eqstr_cn are just translated from eqstr_en.
For example, in eqstr_en there is:
12357 You have entered %1.
and in eqstr_tw, there is:
12357 You have entered (in chinese) %1.

Maybe there is also eqstr_fr?

Is it possible to let MQ check the languages of EQ and get the strings from eqstr?

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu Nov 06, 2003 9:29 am

Your assuming Microsoft is using ANSI :) Bill never uses a world standard when he can invent his own.

All teasing aside, you need to specify that the characters you are looking for are ANSI. I don't remember the specific code to do that, I ran across it while working on conversions from strings to hex.

Sorry if that doesn't make sense, I'm still on my first cup of coffee.
MQ2: Think of it as Evolution in action.

Rand
a lesser mummy
a lesser mummy
Posts: 44
Joined: Sun Jun 08, 2003 8:37 am

Post by Rand » Thu Nov 06, 2003 9:35 am

I was checking the eqstr_fr file. I have the translated string in the file too.