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!

PristonTale+

Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
PristonTale+
is a MOD created mostly to speed up older PT versions.

Newest version: R5.1

R5: PristonTalePlus_r5.7z

Change log:
- ---------
- in game menu for language/encoding/transliteration settings
- keyboard/mouse hook changed to SetWindowsHookEx
- new libiconv.dll compiled with --enable-extra-encodings option
- miscellaneous fixes

*download R5 than replace game.dll with one from R5.1:

R5.1: game_dll_v5_1.7z

- added compatibility with ePT, bPT for translating skills descriptions
- fixed mouse click on menu

-----------

R4: PristonTalePlus_r4.7z

Change log:
- ---------
- translation project
- ability to take screen shoot
- minor fixes

-----------

R3: PristonTalePlus_r3.7z

Change log:
- ---------
- compatibility with bPT & ePT clients, possibly others too
- fixed client area size

-----------

R2: PristonTalePlus_r2.7z

Change log:
- ---------
- fixed blurred text
- another huge speed up by preventing some GDI functions from running (side effect: you can't take SS because GDI can't lock surface any more, I will add better and faster SS code in the future but for now press "Print Screen" and past it in (ctrl+v) graphical app like Paint if you really need SS)
- new option in game.ini "transliteration"
- description fixes, missingLetter renamed to missingGlyph
- minor code fixes and speed up

-----------

R1: PristonTalePlus_r1.7z

Change log:
- ---------


Requirements:
PT client with DirectDrawCreate ( not DirectDrawCreateEx ) in import table.

Installation:
- Unpack ( recommended ) PristonTalePlus_r5.7z to PT main folder ( the one with game.exe duh! )
- Unpack font_gulim12_lat_kor_single.7z or font_gulim12_lat_kor_multi.7z to PT main folder

Your choice here depends on your graphic card, most people should unpack font_gulim12_lat_kor_single.7z, file with single bmp font texture ( 2048 x 2048 ), any newer GPU support "Maximum Texture Size" way bigger than that. Use " " to check your limit. Single texture = less draw calls = better speed ( code that handle font on multiple textures will be rewritten in the future but one texture will always be faster ).

Short cuts:
- <L ALT> + <ENTER> ( hold left alt and press enter ) switch between borderless fullscreen windowed and windowed mode, you can do it any time it does not affect game play or lag.
You can still ALT + TAB out of borderless fullscreen windowed without any problem.
It does not work when PT was started in real full screen mode.

- <L CTRL> + <END> ( hold left ctrl and press end ) save screen shoot in %PristonTale ROOT%\Capture folder, format YYYY-MM-DD-HH-MM-SS
e.g. 2013-08-11-15-00-17.bmp

- <L ALT> + <BACKSPACE> ( hold left alt and press backspace ) popup settings menu

Configuration:
game.ini in main PT folder let you configure additional options.

# PristonTale+
# config file

[font]

//// never change this value unless you know what you are doing ( 0.01 is a fix for missing pixels )
//// you can use it to scale font, e.g. 5.01 will make font bigger while -5.01 will make font smaller
# scale letter on X-axis
# (+) bigger
# (-) smaller
# default: 0.01
scaleX=0.01

//// same as above but for Y-axis
# scale letter on Y-axis
# (+) bigger
# (-) smaller
# default: 0.01
scaleY=0.01

//// increase or decrease space between letters, e.g. 3.5 will give you bigger gaps while -3.5 will give you smaller gaps between letters
# space between letters
# (+) more space between letters
# (-) less space between letters
# default: 0.0
spacingAmount=0.0

//// if character is missing in your font file it will be replaced by other character, other popular choice would be 63 ( ? ) question mark
# replace missing character with UNICODE character
# decimal value from 0 to 255
# default: 32 (Space)
missingLetter=32

///// make font more or less opaque, useful if you are planning to dim colors or blend it text
# alpha values from 0 to 255
# 0 is transparent and 255 is fully visible
# default: 255 (fully visible)
alpha=255

[lang]

//// if your client is not translated kPT then chose Korean code page to convert to UTF-16BE
//// to type your own language special characters chose corresponding code page
//// e.g. Polish use CP1250 ( it should be ISO-8859-2 but it's not )
//// of course you need to have those special characters in bmp font
//// table of language <-> code page is in 2nd post
# supported encodings:
#
# default: CP949 (Korean)
fromcode=CP949


//// available since R2
//// leave it alone, unless its messing your strings
# deal with characters that cannot be represented
# 0 = NONE
# 1 = IGNORE
# 2 = TRANSLIT
# default: 1 (IGNORE)
transliteration=1


//// available since R4
# set translation to OFF/ON or LOG
# 0 = OFF
# 1 = ON
# 2 = LOG
# default: 0 (OFF)
translation=0


//// available since R4
# amount of logged information
# 0 = LOG ALL
# 1 = don't log same address
# 2 = 1+ don't log address smaller than 0x00401000
# default: 2 (minimum logging)
logLVL=2


//// available since R4
# translation file name located in
# %PristonTale ROOT%\translation\
# default: NONE (no file)
languageFile=en-US



TODO:
Your ideas? What you would like to see in this MOD?


How to create custom font:

Vormav - PristonTale+ - RaGEZONE Forums


- Download and install
- Start program
- Options > Font settings [F]


Vormav - PristonTale+ - RaGEZONE Forums



---- Font graphics ----

Font: chose your font, e.g. kPT uses Gulim but you can use anything you like
Add font file: ignore

Charset: ( ) Unicode ( ) OEM [ ]

Chose Unicode if you are planning to mix languages, else chose OEM and select charset you are interested in

Size (px): size in pixels, e.g. default kPT font Gulim 12 is more or less ~equal to Arial 16 so you will have to experiment here

[ ] Mach char height: optional, e.g. size of 'a' will be equal to size of 'A'
[ ] Bold: check it if you are creating bold font
[ ] Italic: check it if you are creating italic font
[ ] Output invalid char glyph: you can uncheck it, we are checking for invalid letters and replacing them with game.ini option "missingLetter="
[ ] Do not include kerning pairs: you should check that. I removed kerning code from dll, text looks bad when kerning is applied. I'm not planning to add kerning again unless there will be good reason to do so

---- Rasterization ----

[ ] Render from TrueType outline: look bad on small fonts, optional but not recommended
[ ] TrueType hinting: same as above
[ ] Font smoothing: same as above
[ ] Super sampling: uncheck it, not implemented in PT

---- Effects ----

Outline thickness [ ]: set it to 0


- Options > Export options [T]


Vormav - PristonTale+ - RaGEZONE Forums



---- Layout ----

Padding [ ] [ ] [ ] [ ]: optional, recommended value = 0 for all
Spacing [ ] [ ]: set both to 1, never set it to less than 1, text will overlap if you do so.
[ ] Equalize the cell heights: optional
[ ] Force offsets to zero: check it, highly recommended ( but still depends on font ), it will make better spacing between letters

---- Texture -----

Width [ ]: use power of ^2 sizes, chose size that can contain whole font but not bigger than your GPU cap, e.g. whole Arial 16 can be placed on single 1024 x 1024 image, Gulim 12 ( all Latin and Korean characters ) on 2048 x 2048, if you can't have it on one image than chose 256 or less
Height [ ]: chose same value
Bit depth ( ): chose 32, 8 bit is not supported
[ ] Pack chars in multiple channels: don't check it, leave it unchecked
Chnl Value Invert
A: glyph [ ]
R: one [ ]
G: one [ ]
B: one [ ]
Presets:
"White text with alpha", pre-set that change values above, alpha on white color, all invers should be uncheck

---- File format ----

Font descriptor ( ) Text ( ) XML ( ) Binary
Chose "Text" or "Binary", I recommend choosing "Text" format only because you can easily edit it and fix things that are not right.
Textures: chose "tga – Targa"
Compression: optional, "Run-length encoded" or "None"

- Options > Visualize [V] to see how many images your font is taking
- Once you are ready to save your font go to Options > Save bitmap font as [CTRL]+

In main PT folder you should have folder called "font" inside that font there is hierarchy:
- default
+ regular
+ italic
+ bold_italic
+ bold


Save your regular font in regular folder ( with name regular.fnt ), do same things for other fonts, check [ ] Bold, [ ] Italic or both in "Font settings" before you save other fonts.

kPT uses only regular and bold fonts but you can change that by using ollydbg,
find code for CreatFontA:

Code:
PUSH 005D46EC                                  		            ; /FaceName = "±¼¸²Ã¼"
PUSH 0                                   		            ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
PUSH 0                                   		            ; |Quality = DEFAULT_QUALITY
PUSH 0                                   		            ; |ClipPrecision = CLIP_DEFAULT_PRECIS
PUSH 0                                   		            ; |OutputPrecision = OUT_DEFAULT_PRECIS
PUSH 81                                 		            ; |CharSet = 129.
PUSH 0                                   		            ; |StrikeOut = FALSE
PUSH 0                                   		            ; |Underline = FALSE
PUSH 0                                   		            [B]; |Italic = FALSE[/B]
PUSH 3E8                                  		            [B]; |Weight = 1000.[/B]
PUSH 0                                   		            ; |Orientation = 0
PUSH 0                                  		            ; |Escapement = 0
PUSH 0                                  		            ; |Width = 0
PUSH 0C                                 		            ; |Height = C (12.)
CALL DWORD PTR DS:[<&GDI32.CreateFontA>]                            ; \CreateFontA

Set italic to TRUE ( PUSH 1 ), in above scenario after our modification bold italic font will be used because Weight is greater than 400. Manipulate data do get results you like.

If you are planning to edit your .tga file with photoshop or other apps that produce invalid/upside-down/left-side-right file than after you are done editing open .tga file with and save it as 32 bit .tga: 24 bit colour + 8 bit alpha ( RLE is optional ).

Vormav - PristonTale+ - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
Translation project

This part will explain you how to translate your PristonTale into multiple languages without making any permanent modifications. "Clear as mud?" I see. Let's get started than.

First thing you will notice in V4 is new folder: "translation" and new options in game.ini

lest start from explaining new game.ini options:

----

# set translation to OFF/ON or LOG
# 0 = OFF
# 1 = ON
# 2 = LOG
# default: 0 (OFF)
translation=0

1 is ON but to use it you need need some "strings" in %PristonTale ROOT%\translation\your_file_name.lng
You should start from switching translation to "2" (LOG).

This will create game.log file that will be updated each time you "see" new string in the game.
Gather as much string as possible before moving on.

----

# amount of logged information
# 0 = LOG ALL
# 1 = don't log same address
# 2 = 1+ don't log address smaller than 0x00401000
# default: 2 (minimum logging)
logLVL=2

Basically you should always use logLVL "2". It will filter out some garbage strings that are no use for us.
However if you need information about errors or you can't find string you are looking for than set it to "0".

example of error string that PT produce when it can't find file:
"005d482c" = "TEX_FILE 오류 [%s]"
# wsprintfA "TEX_FILE 오류 [Effect\ImageData\Particle\Red_KTJimsi.tga]"

It's very useful information if you are tracking missing files in your PT folder that PT would like to load but can't find.
This is situation where you set your logLVL to "0". There are more errors indicating missing files at logLVL=0.
There are also informations from me like:
"005ec4ba" = "%0.2d"
# wsprintfA va_arg[1] [Unrecognized]

I don't think %0.2d will produce any useful info so I did not added "case switch" for it.
If you find some other informations like that than let me know. I will check if they have any useful information.

----

# translation file name located in
# %PristonTale ROOT%\translation\
# default: NONE (no file)
languageFile=en-US

This is just a name for our translation file. I recommend using some "standards" anything you chose here is good.
I'm using this:

In my case file is called "en-US.lng" English (United States), .lng extension is added automatically.

---

Now lets look at %PristonTale ROO%\language\en-US.lng file:

With version 4 I provided template, lets analize it section by section:

[Info]

#
# Information used to select class specific translation
#
# "xxxxxxxx" = "Image\SinImage\Skill\Mecha\"
# "xxxxxxxx" = "Image\SinImage\Skill\Fighter\"
# "xxxxxxxx" = "Image\SinImage\Skill\Archer\"
# "xxxxxxxx" = "Image\SinImage\Skill\Pikeman\"
# "xxxxxxxx" = "Image\SinImage\Skill\Atalanta\"
# "xxxxxxxx" = "Image\SinImage\Skill\Knight\"
# "xxxxxxxx" = "Image\SinImage\Skill\Magician\"
# "xxxxxxxx" = "Image\SinImage\Skill\Priestess\"
#

"#" sing is comment put it wherever you like but not at the end of string:
"005da564" = "Critical \r" #comment <- don't do that

In [Info] section you need to provide addresses for each of those string. So login to your game with translation=2 option and find this string in "game.log"

e.g.

"005dcf9c" = "Image\SinImage\Skill\Mecha\"
# lstrcpyA [lpString2]

"005dcfb8" = "Image\SinImage\Skill\Fighter\"
# lstrcpyA [lpString2]

"005dcf1c" = "Image\SinImage\Skill\Magician\"
# lstrcpyA [lpString2]

String and address is unique for each class so you need to login with all 8 classes.


Once you fill this you will find [Mechanician] section:

[Mechanician]

#
# Mechanician class specific translation
#

This section is used to translate "skills description" and "skill names" (probably only those).
You can find those in addresses like "0x03xxxxxx"
Skill 1 for mech have same address as skill 1 for other classes and that's why .lng file have section for each class.
once you find all skills for one class you can copy and paste them to another class and fix skill names and description.

e.g.

"03145f8c" = "Physical Absorption"
# wsprintfA va_arg[1] [%s]

"03145fcc" = "Temporarily increases the body's ability to absorb damage "
# lstrlenA


Last and most important section is [Translation]. Everything that is no class specific goes there:

[Translation]

#
# Everything else goes here
#

You should hunt for "0x005xxxxx" addresses in game.log to put here. It can happen that bigger addresses are fine so if you can't find your string at "0x005xxxxx" than look deeper.


You can use:
\r - carriage-return - Moves the printing position to the start of the current line.
\n - newline - Moves the printing position to the start of the next line.

In almost every string as many times as you like, in any place you would like to use it.
But PT will not recognise it everywhere. It will be turned into "space" or "backspace" if PT can't use it.
In some places it will push all stings down so use " " (space) instead to format your string.

all my strings are from kPT version 1.98.9 so here are some examples:

"005ec260" = "en-US-"
# wsprintfA va_arg[1] [%s]
# this will translate "Ver: ", commend telling us that this is wsprintf first argument and it's a string
# I turned off logging for decimal arguments since you can't translate them anyway

"005eae1c" = "<"
# TextOutA
# this will translate blinking "|" at login screen

"005da614" = "HP : %d/%d "
# wsprintfA "생명력 : 628/628 "
# this will translate 생명력 to HP, comment telling us how string looked like, %d stand for decimal
# in this case it's your HP: current/max

"005da6d4" = " Train Skill / Magic "
# TextOutA

"005da6b4" = " Select a Skill or Magic "
# TextOutA

"005da694" = " To learn or train "
# TextOutA

# those 3 will translate information at skill master

"005d93b4" = "(Required Level: %d)\r"
# wsprintfA "(습득요구레벨:21)\r"
# another translation mixed with %d and \r

"005da0d8" = "MP Usage \r"
# lstrcpyA [lpString2]
# part of some skills attribute, notice that spaces where used to align it with other strings

"005da588" = "Attack Power \r"
# lstrcpyA [lpString2]
# one of many weapon attributes translated

"005eda88" = " Establishing Connection... "
# lstrlenA
# message at logging screen


And now something more about buttons and inventory translation:

"005d598c" = "language\en-US\Image\SinImage\Status\Status.bmp"
# CreateFileA

This will translate your stats board. Notice I added "language\en-US\"
I also copied "Status.bmp" from ePT and putted it in:
%PristonTale ROOT%\language\en-US\Image\SinImage\Status\

I recommend it to do it this way but you can do it anyway you like.

One more than:

"005ebf60" = "language\en-US\StartImage\Opening\GameLogo6.tga"
# lstrcpyA [lpString2]

"005ebf40" = "language\en-US\StartImage\Opening\S_login_.tga"
# lstrcpyA [lpString2]

"005ebf20" = "language\en-US\StartImage\Opening\S_login.tga"
# lstrcpyA [lpString2]

"005ebf00" = "language\en-US\StartImage\Opening\S_New_.tga"
# lstrcpyA [lpString2]

"005ebee0" = "language\en-US\StartImage\Opening\S_New.tga"
# lstrcpyA [lpString2]

"005ebec0" = "language\en-US\StartImage\Opening\S_Exit_.tga"
# lstrcpyA [lpString2]

"005ebea0" = "language\en-US\StartImage\Opening\S_Exit.tga"
# lstrcpyA [lpString2]

# this will translate kPT buttons to ePT buttons in my client.


Just spend some time looking for good strings in "game.log" once you done logging set your
translation to "0" in game.ini, you can always enable logging later, with option logLVL=2 only new strings will show up in your "game.log".


This is how it look like before and after:

Vormav - PristonTale+ - RaGEZONE Forums







Language <-> Code Page list:

List of combinations, language <-> code page that gives you string you need to put in game.ing name "fromcode=" to type in your own language.
e.g. If you are from Brazil, your official language is Portuguese. You should look for it in table and put code page into game.ini to type letters like ç ã õ à. In this case fromcode=CP1252


LanguageCode Page
Akan NULL
Amharic NULL
Arabic NULL
Assamese NULL
Awadhi NULL
Azerbaijani NULL
Balochi NULL
Belarusian NULL
Bengali NULL
Bhojpuri NULL
Burmese NULL
Cantonese NULL
Cebuano NULL
Chewa NULL
Chhattisgarhi NULL
Chittagonian NULL
Czech NULL
Deccan NULL
Dhundhari NULL
Dutch NULL
English NULL
French NULL
Fula NULL
Gan Chinese NULL
German NULL
Greek NULL
Gujarati NULL
Haitian Creole NULL
Hakka NULL
Haryanvi NULL
Hausa NULL
Hiligaynon NULL
Hindi NULL
Hmong NULL
Hungarian NULL
Igbo NULL
Ilokano NULL
Italian NULL
Japanese NULL
Javanese NULL
Jin NULL
Kannada NULL
Kazakh NULL
Khmer NULL
Kinyarwanda NULL
Kirundi NULL
Konkani NULL
Korean NULL
Kurdish NULL
Madurese NULL
Magahi NULL
Maithili NULL
Malagasy NULL
Malay/Indonesian NULL
Malayalam NULL
Mandarin NULL
Marathi NULL
Marwari NULL
Min Bei NULL
Min Dong NULL
Min Nan NULL
Mossi NULL
Nepali NULL
Oriya NULL
Oromo NULL
Pashto NULL
Persian NULL
Polish CP1250
Portuguese CP1252
Punjabi NULL
Quechua NULL
Romanian NULL
Russian NULL
Saraiki NULL
Serbo-Croatian NULL
Shona NULL
Sindhi NULL
Sinhalese NULL
Somali NULL
Spanish NULL
Sundanese NULL
Swedish NULL
Sylheti NULL
Tagalog NULL
Tamil NULL
Telugu NULL
Thai NULL
Turkish NULL
Ukrainian NULL
Urdu NULL
Uyghur NULL
Uzbek NULL
Vietnamese NULL
Wu NULL
Xhosa NULL
Xiang NULL
Yoruba NULL
Zhuang NULL
Zulu NULL


Samples:


borderless fullscreen windowed
Vormav - PristonTale+ - RaGEZONE Forums



fullscreen
Vormav - PristonTale+ - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Joined
Jul 24, 2006
Messages
883
Reaction score
581
Holy smokes, this is amazing Vormav!
I made the server crash due to too many monsters and items on the floor before I saw a single FPS drop or stutter.

@microamazing I'd guess via dsound.dll
Lots of programs auto load this dll, so people who want their dll inside a program without having to use a dll injector or editing the program often use these 'rouge' dll names to get the program itself to inject their custom dll.
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
As SunnyZ said, dsound.dll is just a proxy .dll responsible for loading game.dll. All it does is { _asm { jmp [ dsound.Function] } } on dsound exported functions.



Here are some alternative fonts, my fav picks so far:


Gulim_12_FULL_2048_SINGLE
Prime_16_FULL_256_SINGLE
Source_Sans_Pro_18_FULL_512_SINGLE
Tahoma_16_FULL_768_SINGLE
Arial_16_FULL_768_SINGLE
Arial_Unicode_MS_16_FULL_3584_SINGLE



Gulim_12_FULL_256_MULTI
Arial_Unicode_MS_16_FULL_256_MULTI


FULL = all char exported, after that is texture size, and on end font is ether on single or multiple files.
Arial Unicode MS is a very good alternative to Gulim for Chinese, Japanese or Korean language/game.exe, other fonts does not contain CJK fonts but look clean, clear and good.
And as always if you can use fonts with single image than do so :)


Here are samples, from top to bottom:

Gulim 12
Prime 16
Source Sans Pro 18
Tahoma 16
Arial 16
Arial Unicode MS 16

Vormav - PristonTale+ - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Joined
Jan 19, 2007
Messages
400
Reaction score
38
man, i was searching, and i did not found the charset for Latin, Brasil, we have some characters who are hard to found, like :
ç ã õ à
when i serch some ppl told me to use UTF-8, but i only se ("empy space"), when i use this characters... do you know what i need to do ?
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
You should use: CP1252

1252 — Latin (Western European languages, replacing Code page 850)

BR is using keyboard settings: Portuguese (Brazilian ABNT2), right?
So you are typing e.g. ' + a = ã

If it's not working try: CP860 but it should be CP1252 on windows;
Be sure that your font have those letters.

I will make code page list once you confirm its working.


PT is not UNICODE application so don't use any of those:
UTF-8
UCS-2, UCS-2BE, UCS-2LE
UCS-4, UCS-4BE, UCS-4LE
UTF-16, UTF-16BE, UTF-16LE
UTF-32, UTF-32BE, UTF-32LE
UTF-7
C99, JAVA
 
Joined
Jan 19, 2007
Messages
400
Reaction score
38
Works perfectly!!!
all Characters Works, ( Comic Sans MS- Custom )
.... =D

@@ maybe i find a problem... =D
in a pack game, the Game.dll does't hook the GDI32...
=x, so, what you think about do a dll whose we can add by CFF ?
 
Last edited:
Initiate Mage
Joined
Apr 6, 2013
Messages
4
Reaction score
0
@@ maybe i find a problem... =D
in a pack game, the Game.dll does't hook the GDI32...
=x, so, what you think about do a dll whose we can add by CFF ?
seu inglês tá engraçado. :ehh:

@Vormav
that was really a smart move and I can reveal that I do the same thing, but to do a menu, Ops.. was secret :)
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
@@ maybe i find a problem... =D
in a pack game, the Game.dll does't hook the GDI32...
=x, so, what you think about do a dll whose we can add by CFF ?

You should not pack your client in first place than :> If import table is not visible than I'm not interested in creating fake .dlls to bypass that.



I added LANGUAGE <-> CODE PAGE table to 2nd post, so if anyone have problem like microamazing than they can look up there.
Right now there are only 2 languages but I hope that everyone will help and post code page that works for them.

I could fill them by myself but I would like to see confirmation that they work! So don't tell what code page corresponding to what language if you can't type it in PT!!


1XpBI86 - PristonTale+ - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Aug 31, 2012
Messages
72
Reaction score
26
There seems to be some strange problem with invalid characters..

I am using the kPT1977 kPT Butchered Client released by bobsobol, so its korean (75%)

Bugs: (may be me)

1. After 12 chars the text will be black
2. After 12 chars it gives wrong chars (korean chars and "Missing character") (in my case)*

*mostaly happends when got a npc selected and running away
 
Last edited:
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
I would appreciate SS because I can't recreate this bug.

- did you pushed bugged kr characters into chat?
- do your font containing all Korean characters? Could you try on Arial Unicode MS that I recently uploaded?
- could you try different encodings, other than CP949? Like: EUC-KR, ISO-2022-KR, JOHAB
 
Newbie Spellweaver
Joined
Aug 31, 2012
Messages
72
Reaction score
26
I would appreciate SS because I can't recreate this bug.

- did you pushed bugged kr characters into chat?
- do your font containing all Korean characters? Could you try on Arial Unicode MS that I recently uploaded?
- could you try different encodings, other than CP949? Like: EUC-KR, ISO-2022-KR, JOHAB


First. I dont have a clue what you mean with the first :/: (Maybe its becouse i had my starter pet??)
Second. I am allready using your "Arial Unicode MS (Single)"..
Third. About to do it :)

As you can see in this picture after 10 characters the chat is black (on every npc)
is may be bugged becouse it has 'ç' in the name (does "Arial Unicode MS (Single)" these chars?)
HybIMdc - PristonTale+ - RaGEZONE Forums

(sorry it is so blurry, check the upper right box for the chars that are ?bugged?, this is CP949)
 

Attachments

You must be registered for see attachments list
Last edited:
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
Bugged chars coming out when you are trying to write in C, J or K without IME, usually when pressing R ALT... but this should be chat only related.


NPC stats blur is in known bugs, something is wrong with renders state on that string.

Does "Mestre da For" have some Portuguese characters? Like -> força?
If so than you need to use CP1252 to see them. You can't mix 2 different languages.
 
Last edited:
Newbie Spellweaver
Joined
Aug 31, 2012
Messages
72
Reaction score
26
nvm me than..
i am working an translating a gameserver / server / client repack stuffs and my gameserver was portuguese

so if i remove all portuguese chars the text wont go black and no random korean text?
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
Yes use ASCII characters and everything will be OK.

It's happening because Portuguese is treated as Korean and that produce those bugs... PT is not going to use UNICODE any time soon :)
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
New version: R2

R2: PristonTalePlus_r2.7z

Change log:
- ---------
- fixed blurred text
- another huge speed up by preventing some GDI functions from running (side effect: you can't take SS because GDI can't lock surface any more, I will add better and faster SS code in the future but for now press "Print Screen" and past it in (ctrl+v) graphical app like Paint if you really need SS)
- new option in game.ini "transliteration"
- description fixes, missingLetter renamed to missingGlyph
- minor code fixes and speed up

-----------


New option in game.ini will fix some Korean strings:

# deal with characters that cannot be represented
# 0 = NONE
# 1 = IGNORE
# 2 = TRANSLIT
# default: 1 (IGNORE)
transliteration=1

result:
Vormav - PristonTale+ - RaGEZONE Forums



When I was using AppLocale characters ^[ , | and _ where represented by ??. I believe this will be more accurate.
If this option messing your language for some reason than set it to TRANSLIT or NONE.

Basically you should not see any graphical glitches now.


PS. Spam your server with mobs! :D
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
I just did very interesting tests! There is a nice capture app called .
It can measure FPS, capture SS and video... and some more.

I compared newest official PT with my modification and it look like I'm about 10~15 frame faster on chokes O__o
You might think that's not much but when speed going below 30 FPS every frame counts.

KEEP IN MIND THOSE ARE NOT PROFESSIONAL TESTS, RESULTS CAN BE DIFFERENT ON YOUR PC. I was running virtual box... etc.

So I did 2 lets:
1st: 200+ Titnas + debug menu + player stats + text spam
2nd 200+ Ratoo + debug menu + player stats + text spam


official:
1st test: lowest FPS 22~30... was working slow but still playable | turning off debug menu speed up things
2nd test: lowest FPS 19~25... same as above, visually slower | turning off debug menu speed up things

PristonTale+:
1st test: lowest FPS 30~45... It was not that bad, I feel it was slower because I seen FPS | turning off debug menu did not change much +1 FPS?
2nd test: lowest FPS 25~30... FPS where jumping a lot and It was visually slower | turning off debug menu was not changing much

PT+ was tested on font with single big texture.


So I will give some tips&tricks how to use dxtory with PristonTale+
I setup my short cuts on CTRL + HOME (video rec) and CTRL + END (SS).

For SS use whatever format you like.

Check:
[X]Clipping
Horizontal: Left | Wight: 1280 <- PristonTale resolution, nothing to do with desktop resolution... change if your PT runing on lower res
Vertical: Top | Height: 1024 <- PristonTale resolution, nothing to do with desktop resolution... change if your PT runing on lower res

For Video do same thing as above.
Codec: Microsoft MPEG-4 V3 <- if everything else giving you bad results

You can use it in window mode, borderless fullscreen windowed or full screen. It does not affect performance that much.


FPS count song!
 
Joined
Jan 19, 2007
Messages
400
Reaction score
38
i have an question... =)<br>well, there is a way to put .tga of font in a big resolution?, i mean, for fix that 'pixel' of font in game, we don't see V, wee see :<br>
| |
| |
|
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
I did not understand much. SS maybe?

I wrote about it in first post. Yes you can edit your font. Do your changes on alpha channel. White is visible, black invisible, anything between is %of alpha. Once you done editing re-save it using PUPP.

To find your letter open .fnt file, e.g. letter V = 86. Write it in UTF16BE and convert it to decimal.


BTW. try resizing window or going full screen (LALT+ENTER). Maybe your letter getting crushed?



PS. I can add ability to use fonts that look like this:
Vormav - PristonTale+ - RaGEZONE Forums

We would have to agree on how to trigger them. E.g. when underline is TRUE on font creation call. But you would have to create those fonts yourself or copy them to .tga file manually since ac bmp font generator can't do it. So I'm not sure if anyone needs it.
 
Back
Top