Jump to content

Recommended Posts

Hey guys I need some immediate assistance after adding Sash System I'm getting a pop-up window every time I try to open the game. The pop-up says LoadLocaleError(locale/gr/locale_game.txt). 

I have added Sash before and I never had this. I just don't know where to look for this problem I have tried the client procedure twice already (both bin and py part). Can somebody help me please? Thank you for reading this...

  • Metin2 Dev 1
Link to comment
Share on other sites

Thank you for specifying that but in my last update I did not changed anything in localeInfo.py

Here is the file:

Spoiler

import app
import constInfo

MAP_TRENT02 = "MAP_TRENT02" # ΐΣ½Γ
MAP_WL = "MAP_WL" # ΐΣ½Γ
MAP_NUSLUCK = "MAP_NUSLUCK" # ΐΣ½Γ 
MAP_TREE2 = "MAP_TREE2"

BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"

APP_TITLE = "Client by Claws vizitati wwww.dream-gaming.ro !"

GUILD_HEADQUARTER = "Main Building"
GUILD_FACILITY = "Facility"
GUILD_OBJECT = "Object"
GUILD_MEMBER_COUNT_INFINITY = "INFINITY"

LOGIN_FAILURE_WEB_BLOCK = "BLOCK_LOGIN(WEB)"
LOGIN_FAILURE_BLOCK_LOGIN = "BLOCK_LOGIN"
CHANNEL_NOTIFY_FULL = "CHANNEL_NOTIFY_FULL"

GUILD_BUILDING_LIST_TXT = app.GetLocalePath() + "/GuildBuildingList.txt"

GUILD_MARK_MIN_LEVEL = "3"
GUILD_MARK_NOT_ENOUGH_LEVEL = "±ζµε·ΉΊ§ 3ΐΜ»σ ΊΞΕΝ °΅΄ΙΗΥ΄Ο΄Ω."

ERROR_MARK_UPLOAD_NEED_RECONNECT = "UploadMark: Reconnect to game"
ERROR_MARK_CHECK_NEED_RECONNECT = "CheckMark: Reconnect to game"

VIRTUAL_KEY_ALPHABET_LOWERS  = r"[1234567890]/qwertyuiop\=asdfghjkl;`'zxcvbnm.,"
VIRTUAL_KEY_ALPHABET_UPPERS  = r'{1234567890}?QWERTYUIOP|+ASDFGHJKL:~"ZXCVBNM<>'
VIRTUAL_KEY_SYMBOLS    = '!@#$%^&*()_+|{}:"<>?~'
VIRTUAL_KEY_NUMBERS    = "1234567890-=\[];',./`"
VIRTUAL_KEY_SYMBOLS_BR    = '!@#$%^&*()_+|{}:"<>?~αΰγβιθκνμσςτυϊωη'

__IS_ENGLISH    = "ENGLISH" == app.GetLocaleServiceName()    
__IS_HONGKONG    = "HONGKONG" == app.GetLocaleServiceName()
__IS_NEWCIBN    = "locale/newcibn" == app.GetLocalePath()
__IS_EUROPE        = "EUROPE" == app.GetLocaleServiceName()        
__IS_CANADA        = "locale/ca" == app.GetLocalePath()
__IS_BRAZIL        = "locale/br" == app.GetLocalePath()
__IS_SINGAPORE    = "locale/sg" == app.GetLocalePath()
__IS_VIETNAM    = "locale/vn" == app.GetLocalePath()
__IS_ARABIC        = "locale/ae" == app.GetLocalePath()
__IS_CIBN10        = "locale/cibn10" == app.GetLocalePath()
__IS_WE_KOREA    = "locale/we_korea" == app.GetLocalePath()
__IS_TAIWAN        = "locale/taiwan" == app.GetLocalePath()
__IS_JAPAN        = "locale/japan" == app.GetLocalePath()    
LOGIN_FAILURE_WRONG_SOCIALID = "ASDF"
LOGIN_FAILURE_SHUTDOWN_TIME = "ASDF"

if __IS_CANADA:
    __IS_EUROPE = TRUE

def IsYMIR():
    return "locale/ymir" == app.GetLocalePath()

def IsJAPAN():
    return "locale/japan" == app.GetLocalePath()

def IsENGLISH():
    global __IS_ENGLISH
    return __IS_ENGLISH

def IsHONGKONG():
    global __IS_HONGKONG
    return __IS_HONGKONG

def IsTAIWAN():
    return "locale/taiwan" == app.GetLocalePath()

def IsNEWCIBN():
    return "locale/newcibn" == app.GetLocalePath()

def IsCIBN10():
    global __IS_CIBN10
    return __IS_CIBN10
    
def IsEUROPE():
    global __IS_EUROPE
    return __IS_EUROPE

def IsCANADA():
    global __IS_CANADA
    return __IS_CANADA

def IsBRAZIL():
    global __IS_BRAZIL
    return __IS_BRAZIL

def IsVIETNAM():
    global __IS_VIETNAM
    return __IS_VIETNAM

def IsSINGAPORE():
    global __IS_SINGAPORE
    return __IS_SINGAPORE
    
def IsARABIC():
    global __IS_ARABIC
    return __IS_ARABIC

def IsWE_KOREA():
    return "locale/we_korea" == app.GetLocalePath()
    
# SUPPORT_NEW_KOREA_SERVER
def LoadLocaleData():
    if IsYMIR():
        import net
        SERVER = "Δθµµ Ό­Ήφ"
        if SERVER == net.GetServerInfo()[:len(SERVER)]:
            app.SetCHEONMA(0)
            app.LoadLocaleData("locale/we_korea")
            constInfo.ADD_DEF_BONUS_ENABLE = 0
        else:
            app.SetCHEONMA(1)
            app.LoadLocaleData("locale/ymir")
            constInfo.ADD_DEF_BONUS_ENABLE = 1
    else:
        app.LoadLocaleData(app.GetLocalePath())

def IsCHEONMA():
    return IsYMIR()        # ΐΜΑ¦ YMIR ·ΞΔΙΐΟΐΊ Ή«Α¶°Η ΓµΈ¶Ό­ΉφΐΣ. ΓµΈ¶Ό­Ήφ°΅ Ή®ΐ» ΄έ±β ΐό±ξΑφ Ί―Η ΐΟ Ύψΐ½.

# END_OF_SUPPORT_NEW_KOREA_SERVER

def mapping(**kwargs): return kwargs

def SNA(text):    
    def f(x):
        return text
    return f

def SA(text):
    def f(x):
        return text % x
    return f

def LoadLocaleFile(srcFileName, localeDict):

    funcDict = {"SA":SA, "SNA":SNA}

    lineIndex = 1

    try:
        lines = pack_open(srcFileName, "r").readlines()
    except IOError:
        import dbg
        dbg.LogBox("LoadLocaleError(%(srcFileName)s)" % locals())
        app.Abort()

    for line in lines:
        try:        
            tokens = line[:-1].split("\t")
            if len(tokens) == 2:
                localeDict[tokens[0]] = tokens[1]
            elif len(tokens) >= 3:
                type = tokens[2].strip()
                if type:
                    localeDict[tokens[0]] = funcDict[type](tokens[1])
                else:
                    localeDict[tokens[0]] = tokens[1]
            else:
                raise RuntimeError, "Unknown TokenSize"

            lineIndex += 1
        except:
            import dbg
            dbg.LogBox("%s: line(%d): %s" % (srcFileName, lineIndex, line), "Error")
            raise


    
all = ["locale","error"]

if IsEUROPE()  and  IsBRAZIL()  :
    FN_GM_MARK = "%s/effect/gm.mse"    % app.GetLocalePath()
    LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
    constInfo.IN_GAME_SHOP_ENABLE = 0
elif IsSINGAPORE() :
    FN_GM_MARK = "%s/effect/gm.mse"    % app.GetLocalePath()
    LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
    constInfo.IN_GAME_SHOP_ENABLE = 0
elif IsNEWCIBN() :
    ##°ΤΐΣΈνΐΜ±ϊΑψ΄Ω.
    APP_TITLE = "ΠΒΠΜμ2"
    FN_GM_MARK = "%s/effect/gm.mse"    % app.GetLocalePath()
    LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
    constInfo.IN_GAME_SHOP_ENABLE = 1
elif IsTAIWAN():
    APP_TITLE = "°«III°κ"
    FN_GM_MARK = "%s/effect/gm.mse"    % app.GetLocalePath()
    LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()

    constInfo.IN_GAME_SHOP_ENABLE = 1
    
else:
    FN_GM_MARK = "%s/effect/gm.mse"    % app.GetLocalePath()
    LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()

    constInfo.IN_GAME_SHOP_ENABLE = 1

LoadLocaleFile(LOCALE_FILE_NAME, locals())

########################################################################################################
## NOTE : ΎΖΐΜΕΫΐ» ΉφΈ±¶§ "Ή«Ύωΐ»/Έ¦ ΉφΈ®½Γ°Ϊ½ΐ΄Ο±ξ?" Ή®ΐΪΏ­ΐΗ Α¶»η Ό±ΕΓΐ» ΐ§ΗΡ ΔΪµε
dictSingleWord = {
    "m":1, "n":1, "r":1, "M":1, "N":1, "R":1, "l":1, "L":1, "1":1, "3":1, "6":1, "7":1, "8":1, "0":1,
}

dictDoubleWord = {
    "°΅":1, "°Ό":1, "°Ε":1, "°ά":1, "°ν":1, "±³":1, "±Έ":1, "±Τ":1, "±Χ":1, "±β":1, "°³":1, "°Β":1, "°Τ":1, "°θ":1, "°ϊ":1, "±¥":1, "±Ε":1, "±Λ":1, "±«":1, "±Ν":1, "±α":1,
    "±ξ":1, "²¥":1, "²¨":1, "²Έ":1, "²Ώ":1, "²Ψ":1, "²Ω":1, "²σ":1, "²τ":1, "³Ά":1, "±ϊ":1, "ƒΖ":1, "²²":1, "²Ύ":1, "²Κ":1, "²Ο":1, "²γ":1, "²η":1, "²":1, "²ξ":1, "…Κ":1,
    "³":1, "³Δ":1, "³Κ":1, "³ΰ":1, "³λ":1, "΄Ά":1, "΄©":1, "΄Ί":1, "΄ΐ":1, "΄Ο":1, "³»":1, "†v":1, "³Χ":1, "³ι":1, "³φ":1, "‡R":1, "΄²":1, "΄΄":1, "³ϊ":1, "΄µ":1, "΄Μ":1,
    "΄Ω":1, "΄τ":1, "΄υ":1, "µ®":1, "µµ":1, "µΝ":1, "µΞ":1, "µΰ":1, "µε":1, "µπ":1, "΄λ":1, "Ϋ":1, "µ¥":1, "µ³":1, "µΒ":1, "µΕ":1, "µΦ":1, "µΨ":1, "µΗ":1, "µΪ":1, "µο":1,
    "µϋ":1, "‹x":1, "¶°":1, "¶Ε":1, "¶Η":1, "Γ":1, "¶Ρ":1, "":1, "¶ί":1, "¶μ":1, "¶§":1, "‹":1, "¶Ό":1, "‹σ":1, "¶Μ":1, "¶Ξ":1, "τ":1, "¶Ψ":1, "¶Ο":1, "¶Ω":1, "¶η":1,
    "¶σ":1, "·":1, "·―":1, "·Α":1, "·Ξ":1, "·α":1, "·η":1, "·ω":1, "Έ£":1, "Έ®":1, "·΅":1, "m":1, "·Ή":1, "·Κ":1, "·Φ":1, "O":1, "·ο":1, "·ρ":1, "·Ϊ":1, "·ς":1, "l":1,
    "Έ¶":1, "ΈΟ":1, "ΈΣ":1, "Έη":1, "Έπ":1, "Ή¦":1, "Ή«":1, "ΉΒ":1, "ΉΗ":1, "ΉΜ":1, "ΈΕ":1, "Ω":1, "Έή":1, "Έο":1, "Έϊ":1, "‘ΐ":1, "ΉΉ":1, "ΉΎ":1, "Έώ":1, "ΉΏ":1, "’ή":1,
    "ΉΩ":1, "Ής":1, "Ήφ":1, "Ί­":1, "ΊΈ":1, "ΊΜ":1, "ΊΞ":1, "Ίδ":1, "Ίκ":1, "Ίρ":1, "Ήθ":1, "“":1, "Ί£":1, "Ί¶":1, "ΊΑ":1, "ΊΔ":1, "ΊΫ":1, "Ίή":1, "ΊΖ":1, "Ίί":1, "•‘":1,
    "Ίό":1, "»²":1, "»µ":1, "»ΐ":1, "»Η":1, "»Ο":1, "»Ρ":1, "»Ψ":1, "»Ϊ":1, "»ί":1, "»©":1, "•ϋ":1, "»Ύ":1, "–§":1, "–Ψ":1, "–τ":1, "—¨":1, "—Δ":1, "»Ξ":1, "—ΰ":1, "u":1,
    "»η":1, "»ώ":1, "Ό­":1, "ΌΕ":1, "Ό":1, "Όξ":1, "Όφ":1, "½΄":1, "½Ί":1, "½Γ":1, "»υ":1, "Ό¨":1, "ΌΌ":1, "ΌΞ":1, "Όέ":1, "Όβ":1, "½¤":1, "½¦":1, "Όθ":1, "½¬":1, "Γ":1,
    "½Ξ":1, "›X":1, "½α":1, "›Η":1, "½ξ":1, "Ύ¤":1, "Ύ¥":1, "o":1, "Ύ²":1, "ΎΎ":1, "½Ψ":1, "›y":1, "½κ":1, "›γ":1, "½χ":1, "½ϋ":1, "Ύ¬":1, "Ύ®":1, "½ύ":1, "Ύ―":1, "ΎΊ":1,
    "ΎΖ":1, "Ύί":1, "Ύξ":1, "Ώ©":1, "Ώΐ":1, "Ώδ":1, "Ώμ":1, "ΐ―":1, "ΐΈ":1, "ΐΜ":1, "ΎΦ":1, "Ύκ":1, "Ώ΅":1, "ΏΉ":1, "ΏΝ":1, "ΏΦ":1, "Ώφ":1, "Ώώ":1, "Ώά":1, "ΐ§":1, "ΐΗ":1,
    "ΐΪ":1, "ΐπ":1, "ΐϊ":1, "Α®":1, "Α¶":1, "Α":1, "ΑΦ":1, "Ακ":1, "Αξ":1, "Αφ":1, "ΐη":1, "ΐχ":1, "Α¦":1, "Αµ":1, "ΑΒ":1, "ΑΘ":1, "Αΰ":1, "Αβ":1, "ΑΛ":1, "Αγ":1, "£p":1,
    "Β¥":1, "ΒΉ":1, "ΒΌ":1, "ΒΗ":1, "ΒΙ":1, "§c":1, "Βή":1, "Βι":1, "Βκ":1, "Βξ":1, "Β°":1, "¤":1, "ΒΕ":1, "¥™":1, "Β":1, "ΒΦ":1, "Βε":1, "¨R":1, "ΒΨ":1, "Βθ":1, "©n":1,
    "Βχ":1, "Γ­":1, "Γ³":1, "ΓΔ":1, "ΓΚ":1, "Γέ":1, "Γί":1, "Γς":1, "Γχ":1, "Δ΅":1, "Γ¤":1, "‰":1, "ΓΌ":1, "ΓΗ":1, "Γ":1, "¬‚":1, "Γη":1, "Γι":1, "ΓΦ":1, "Γλ":1, "―M":1,
    "Δ«":1, "ΔΌ":1, "ΔΏ":1, "ΔΡ":1, "ΔΪ":1, "Δμ":1, "Δν":1, "Ε¥":1, "Ε©":1, "Ε°":1, "Δ³":1, "°m":1, "ΔΙ":1, "ΔΩ":1, "Δβ":1, "Δθ":1, "Δυ":1, "Δω":1, "Δκ":1, "Δϋ":1, "΄”":1,
    "ΕΈ":1, "ΕΛ":1, "ΕΝ":1, "Εί":1, "Εδ":1, "Ετ":1, "Ευ":1, "Ζ©":1, "Ζ®":1, "ΖΌ":1, "ΕΒ":1, "¶O":1, "ΕΧ":1, "Εβ":1, "Εν":1, "Εο":1, "Εύ":1, "Ζ΅":1, "Επ":1, "ΖΆ":1, "Ζ·":1,
    "ΖΔ":1, "ΖΩ":1, "ΖΫ":1, "Ζμ":1, "Ζχ":1, "Η¥":1, "Η":1, "Η»":1, "ΗΑ":1, "ΗΗ":1, "ΖΠ":1, "»—":1, "Ζδ":1, "Ζσ":1, "Η΅":1, "½":1, "Η΄":1, "ΏR":1, "Η£":1, "Η¶":1, "ΐc":1,
    "ΗΟ":1, "Ηα":1, "Ηγ":1, "Ητ":1, "Θ£":1, "ΘΏ":1, "ΘΔ":1, "Θή":1, "Θε":1, "Θχ":1, "ΗΨ":1, "Α…":1, "Ημ":1, "Ηύ":1, "Θ­":1, "Θ³":1, "ΘΜ":1, "ΘΡ":1, "ΘΈ":1, "ΘΦ":1, "Θρ":1,
}

locale = mapping(
)


def GetAuxiliaryWordType(text):

    textLength = len(text)

    if textLength > 1:

        singleWord = text[-1]

        if (singleWord >= '0' and singleWord <= '9') or\
            (singleWord >= 'a' and singleWord <= 'z') or\
            (singleWord >= 'A' and singleWord <= 'Z'):
            if not dictSingleWord.has_key(singleWord):
                return 1

        elif dictDoubleWord.has_key(text[-2:]):
            return 1

    return 0

def CutMoneyString(sourceText, startIndex, endIndex, insertingText, backText):

    sourceLength = len(sourceText)

    if sourceLength < startIndex:
        return backText

    text = sourceText[max(0, sourceLength-endIndex):sourceLength-startIndex]

    if not text:
        return backText

    if long(text) <= 0:
        return backText

    text = str(int(text))

    if backText:
        backText = " " + backText

    return text + insertingText + backText

def SecondToDHM(time):
    if time < 60:
        if IsARABIC():
            return "%.2f %s" % (time, SECOND)
        else:
            return "0" + MINUTE
        
    second = int(time % 60)
    minute = int((time / 60) % 60)
    hour = int((time / 60) / 60) % 24
    day = int(int((time / 60) / 60) / 24)

    text = ""

    if day > 0:
        text += str(day) + DAY
        text += " "

    if hour > 0:
        text += str(hour) + HOUR
        text += " "

    if minute > 0:
        text += str(minute) + MINUTE

    return text

def SecondToHM(time):

    if time < 60:
        if IsARABIC():
            return "%.2f %s" % (time, SECOND)
        else:
            return "0" + MINUTE

    second = int(time % 60)
    minute = int((time / 60) % 60)
    hour = int((time / 60) / 60)

    text = ""

    if hour > 0:
        text += str(hour) + HOUR
        if hour > 0:
            text += " "

    if minute > 0:
        text += str(minute) + MINUTE

    return text


def GetAlignmentTitleName(alignment):
    if alignment >= 12000:
        return TITLE_NAME_LIST[0]
    elif alignment >= 8000:
        return TITLE_NAME_LIST[1]
    elif alignment >= 4000:
        return TITLE_NAME_LIST[2]
    elif alignment >= 1000:
        return TITLE_NAME_LIST[3]
    elif alignment >= 0:
        return TITLE_NAME_LIST[4]
    elif alignment > -4000:
        return TITLE_NAME_LIST[5]
    elif alignment > -8000:
        return TITLE_NAME_LIST[6]
    elif alignment > -12000:
        return TITLE_NAME_LIST[7]

    return TITLE_NAME_LIST[8]


OPTION_PVPMODE_MESSAGE_DICT = {
    0 : PVP_MODE_NORMAL,
    1 : PVP_MODE_REVENGE,
    2 : PVP_MODE_KILL,
    3 : PVP_MODE_PROTECT,
    4 : PVP_MODE_GUILD,
}

error = mapping(
    CREATE_WINDOW = GAME_INIT_ERROR_MAIN_WINDOW,
    CREATE_CURSOR = GAME_INIT_ERROR_CURSOR,
    CREATE_NETWORK = GAME_INIT_ERROR_NETWORK,
    CREATE_ITEM_PROTO = GAME_INIT_ERROR_ITEM_PROTO,
    CREATE_MOB_PROTO = GAME_INIT_ERROR_MOB_PROTO,
    CREATE_NO_DIRECTX = GAME_INIT_ERROR_DIRECTX,
    CREATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_NOT_EXIST,
    CREATE_NO_APPROPRIATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_BAD_PERFORMANCE,
    CREATE_FORMAT = GAME_INIT_ERROR_GRAPHICS_NOT_SUPPORT_32BIT,
    NO_ERROR = ""
)


GUILDWAR_NORMAL_DESCLIST = [GUILD_WAR_USE_NORMAL_MAP, GUILD_WAR_LIMIT_30MIN, GUILD_WAR_WIN_CHECK_SCORE]
GUILDWAR_WARP_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_WIPE_OUT_GUILD, GUILD_WAR_REWARD_POTION]
GUILDWAR_CTF_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_TAKE_AWAY_FLAG1, GUILD_WAR_WIN_TAKE_AWAY_FLAG2, GUILD_WAR_REWARD_POTION]

MINIMAP_ZONE_NAME_DICT = {
    "metin2_map_a1"  : MAP_A1,
    "map_a2"         : MAP_A2,
    "metin2_map_a3"  : MAP_A3,
    "metin2_map_b1"  : MAP_B1,
    "map_b2"         : MAP_B2,
    "metin2_map_b3"  : MAP_B3,
    "metin2_map_c1"  : MAP_C1,
    "map_c2"         : MAP_C2,
    "metin2_map_c3"  : MAP_C3,
    "map_n_snowm_01" : MAP_SNOW,
    "metin2_map_n_flame_01" : MAP_FLAME,
    "metin2_map_n_desert_01" : MAP_DESERT,
    "metin2_map_milgyo" : MAP_TEMPLE,
    "metin2_map_spiderdungeon" : MAP_SPIDER,
    "metin2_map_deviltower1" : MAP_SKELTOWER,
    "metin2_map_guild_01" : MAP_AG,
    "metin2_map_guild_02" : MAP_BG,
    "metin2_map_guild_03" : MAP_CG,
    "metin2_map_trent" : MAP_TREE,
    "metin2_map_trent02" : MAP_TREE2,
    "season1/metin2_map_WL_01" : MAP_WL,
    "season1/metin2_map_nusluck01" : MAP_NUSLUCK,
    "Metin2_map_CapeDragonHead" : MAP_CAPE,
    "metin2_map_Mt_Thunder" : MAP_THUNDER,
    "metin2_map_dawnmistwood" : MAP_DAWN,
    "metin2_map_BayBlackSand" : MAP_BAY,
}

JOBINFO_TITLE = [
                    [JOB_WARRIOR0, JOB_WARRIOR1, JOB_WARRIOR2,],
                    [JOB_ASSASSIN0, JOB_ASSASSIN1, JOB_ASSASSIN2,],
                    [JOB_SURA0, JOB_SURA1, JOB_SURA2,],
                    [JOB_SHAMAN0, JOB_SHAMAN1, JOB_SHAMAN2,],
                    [JOB_WOLFMAN0, JOB_WOLFMAN1, JOB_WOLFMAN2,],
                ]

JOBINFO_DATA_LIST = [
                        [
                            [
                                "ΕΈ°ν³­ ΏλΈΝ°ϊ ±ΑΘχΑφ ΎΚ΄Β Ή«»ηΐΗ",
                                "±β°³Έ¦ »η¶χµιΐΊ ΐΟΔΓΎξ [ΏλΐΪ]¶σ°ν",
                                "ΊΞΈ¥΄Ω. Ύξ¶°ΗΡ ΐ§±βΏ΅Ό­µµ ±ΧµιΐΊ ",
                                "µΪ·Ξ Ή°·―Ό­Αφ ΎΚΐΈΈη, ΄ΩΔ΅°ν ΏςΑχ",
                                "ΐΜ±β Θϋµη µΏ·αΈ¦ ΐ§ΗΨ ΄ά½ΕΐΈ·Ξ",
                                "ΐϋµι°ϊ Έ¶ΑΦ ½ΞΏμ±βµµ ΗΡ΄Ω. ΐΜµιΐΊ",
                                "ΐί ΄ά·ΓµΘ ±Ωΐ°°ϊ Θϋ, °­·ΒΗΡ °ψ°έ·Β",
                                "ΐΈ·Ξ ΐόΐε ΓΦΌ±µΞΏ΅Ό­ °ψ°έΑψΐΈ·Ξ",
                                "Θ°ΎΰΗΡ΄Ω.",
                            ],
                            
                            [
                                "°΅ΐε ΐΟΉέΐϋΐΞ °ψ°έΗό Ή«»η·Ξ, ",
                                "ΐϋΑΆΐόΏ΅ µϋΈ¥ ΑχΑΆ °ψ°έΐΈ·Ξ ΐόΐε",
                                "Ώ΅Ό­ Θ°ΎΰΗΡ΄Ω. ±ΊΑχ Ζ―ΌΊ»σ ±Ω·Βΐ»",
                                "ΈήΐΞΐΈ·Ξ ½ΊΕέ ΖχΐΞΖ®Έ¦ ΕυΐΪΗΟµΗ, ",
                                "ΐϋΑΆΐόΏ΅ µϋΈ¥ »ύΈν·Β / ΉζΎξ·Β",
                                "Θ®ΊΈΈ¦ ΐ§ΗΨ ΓΌ·Βΐ» ΏΓΈ°΄Ω. ¶ΗΗΡ",
                                "°ψ°έΐΗ Α¤Θ®ΌΊΐ» ³τΐΜ±β ΐ§ΗΨ ΉΞΓΈ",
                                "Ώ΅µµ ΖχΐΞΖ®Έ¦ ΕυΐΪΗ ΗΚΏδ°΅ ΐΦ΄Ω.",
                            ],
                            
                            [
                                "»σ΄η ΌφΑΨΐΗ Α¤½Ε·Βΐ» ΐΜΏλΗΟ΄Β",
                                "Αί/±Ω°ΕΈ® ΑΆΐόΗό Ή«»η·Ξ, °Ά ±βΌϊ",
                                "ΗΟ³ΗΟ³ΐΗ ³τΐΊ °ψ°έ·ΒΐΈ·Ξ ΐόΐεΏ΅Ό­",
                                "Θ°ΎΰΗΡ΄Ω. ±ΊΑχ Ζ―ΌΊ»σ ±Ω·Βΐ» ΈήΐΞ",
                                "ΐΈ·Ξ ½ΊΕΘ ΖχΐΞΖ®Έ¦ ΕυΐΪΗΟµΗ, ",
                                "Αί/±Ω°ΕΈ® °ψ°έΐΗ Α¤Θ®ΌΊ°ϊ ΈνΑί·όΐ»",
                                "ΐ§ΗΨ ΉΞΓΈΐ» ΏΓΈ°΄Ω. ¶ΗΗΡ ΑΆΐό ½Γ ",
                                "ΐϋ °ψ°έΏ΅ µϋΈ¥ »ύΈν·Β / ΉζΎξ·Β",
                                "Θ®ΊΈΈ¦ ΐ§ΗΨ ΓΌ·ΒΏ΅µµ ΖχΐΞΖ®Έ¦",
                                "ΕυΐΪΗ ΗΚΏδ°΅ ΐΦ΄Ω.",
                            ],
                        ],
                        
                        [
                            [
                                "ΐΪ°΄ΐΊ Ύξ¶°ΗΡ »σΘ²Ώ΅Ό­µµ ΐΪ½ΕΐΗ",
                                "Έφΐ» Όϋ±β°ν ΐΊΉΠΗΡ ΎξµΐΗ ΐΣΉ«Έ¦",
                                "ΌφΗΰΗΟΈιΌ­ ΐόΐεΐΗ ΘΔΐ§Έ¦ ΑφΏψΗΟ΄Β", 
                                "ΐΪµιΐΜ΄Ω. ΐΜµιΐΊ ΎΖΑΦ ΊόΈ£°ν ½ΕΌΣ",
                                "ΗΟΈη, ΊρΗ µ¥ ΎψΐΜ °ϊ°¨ΗΟ°ν ΐύΑ¦µΘ",
                                "ΗΰµΏΐΈ·Ξ ΐϋΐΗ ±ήΌΏ΅ Δ΅ΈνΕΈΈ¦ ³―Έ®",
                                "µΗ, ΐόΐεΏ΅Ό± ΐϋΑψΐ» ΗβΗΨ Ή«ΌφΗΡ",
                                "Θ­»μΐ» ³»»ΥΐΈΈη ΐΪ½ΕΐΗ ΏλΈΝΐ»",
                                "Ό±ΊΈΐΞ΄Ω."
                            ],
                            
                            [
                                "µΞΌΥ ΄ά°Λΐ» ΑΦΉ«±β·Ξ ΄Ω·ηΈη, ½ΕΌΣ",
                                "ΗΟ°Τ Δ΅°ν ΊόΑφ΄Β ΐΪ°΄ Ζ―ΐ―ΐΗ ΏςΑχΐΣ",
                                "ΐΈ·Ξ ΐόΐεΏ΅Ό­ Θ°ΎΰΗΡ΄Ω. ±ΊΑχ Ζ―ΌΊ»σ",
                                "ΉΞΓΈΐ» ΈήΐΞΐΈ·Ξ ½ΊΕέ ΖχΐΞΖ®Έ¦ ΕυΐΪ",
                                "ΗΟµΗ, ±Ω·Βΐ» ΏΓ·Α °ψ°έ·Βΐ» ³τΐΞ΄Ω.",
                                "¶ΗΗΡ ±ΩΑΆΐόΏ΅ µϋΈ¥ »ύΈν·Β/ΉζΎξ·Β ",
                                "»σ½Βΐ» ΐ§ΗΨ ΓΌ·ΒΏ΅µµ ΖχΐΞΖ®Έ¦",
                                "ΕυΐΪΗ ΗΚΏδ°΅ ΐΦ΄Ω.",
                            ],
                            
                            [
                                "Θ°ΐ» ΑΦΉ«±β·Ξ ΄Ω·ηΈη, ±δ ½ΓΎίΏΝ",
                                "»ηΑ¤°ΕΈ®Ώ΅ µϋΈ¥ Ώψ°ΕΈ® °ψ°έΐΈ·Ξ",
                                "ΐόΐεΏ΅Ό­ Θ°ΎΰΗΡ΄Ω. ±ΊΑχ Ζ―ΌΊ»σ",
                                "°ψ°έ ΌΊ°ψ·όΐΗ Αυ°΅Έ¦ ΐ§ΗΨ ΉΞΓΈΐ»",
                                "ΈήΐΞΐΈ·Ξ ΏΓ·ΑΎί ΗΟΈη, Ώψ°ΕΈ®",
                                "°ψ°έΐΗ µ¥ΉΜΑφ Αυ°΅Έ¦ ΐ§ΗΨ ±Ω·Βΐ»",
                                "ΏΓΈ± ΗΚΏδ°΅ ΐΦ΄Ω. ¶ΗΗΡ ΐϋµιΏ΅°Τ",
                                "Ζχΐ§µΗΎϊΐ» ½Γ, ΐϋ °ψ°έΏ΅ ΉφΖΌ±β",
                                "ΐ§ΗΡ »ύΈν·Β/ΉζΎξ·Β »σ½Βΐ» ΐ§ΗΨ",
                                "ΓΌ·ΒΏ΅µµ ΖχΐΞΖ®Έ¦ ΕυΐΪΗ ΗΚΏδ°΅",
                                "ΐΦ΄Ω.",
                            ],
                        ],
                        
                        
                        [
                            [
                                "Όφ¶σ΄Β [µ¶ΐΊ µ¶ΐΈ·Ξ]ΐΗ ΌΣΌΊΐΈ·Ξ",
                                "ΓΆΌ³µΘ Ζ―Όφ ΌΣΌΊΐΗ ±ΊΑχΐΜ΄Ω. ",
                                "±ΧµιΐΊ ΐόΐεΏ΅Ό­ ΐϋµιΐΗ »η±βΈ¦ ΐϊΗΟ",
                                "½ΓΕ°°ν, ΎΗΈ¶ΐΗ Θϋΐ» ½ΗΐΊ Έ¶ΕΊΐΈ·Ξ",
                                "ΐϋΐΗ ΏµΘ¥°ϊ ΐ°½Εΐ» ΑώΉ¶°µ΄Ω. ¶§·Ξ",
                                "ΐΜµιΐΊ ΐΪ½ΕΐΗ °Λ°ϊ °©ΏΚΏ΅ ΎξµΐΗ",
                                "Θϋΐ» ½ΗΎξ, ΐόΐεΏ΅Ό­ Ή«»η ΈψΑφ ΎΚΐΊ",
                                "°ψ°έ·Βΐ» ΉίΘΦΗΟ±βµµ Ηϴµ¥, ΐϋµιΐ»",
                                "ΑΧΏ©΄λ΄Β±Χ Έπ½ΐΐΜ Ώφ³«Ώ΅ ²ϋΒοΗΨ",
                                "»η¶χµιΐΊ Όφ¶σΈ¦ ΐΟΔΓΎξ [Έ¶½Ε]ΐΜ¶σ",
                                "ΊΞΈ£±βΈ¦ ΑΦΐϊ ΎΙ΄Β΄Ω."
                            ],
                            
                            [
                                "Θ―Ή«±ΊΐΗ Όφ¶σ΄Β ΎΗΈ¶ΐΗ ΎΎΏ΅Ό­",
                                "ΎςΎξΑφ΄Β Έ¶·Βΐ» Ή«±β³ ΉζΎξ±ΈΏ΅",
                                "½ΗΎξ Ή«»η ΈψΑφ ΎΚΐΊ ΐόΕυ·ΒΐΈ·Ξ",
                                "ΐόΐεΏ΅Ό­ Θ°ΎΰΗΡ΄Ω. ±ΊΑχ Ζ―ΌΊ»σ",
                                "Αφ΄ΙΐΜ ³τΎΖΑϊΌφ·Ο ΒψΏλ ΐεΊρΏ΅", 
                                "½ΗΈ®΄Β Έ¶·ΒΐΗ ΐ§·ΒΐΜ Αυ΄λµΗΉΗ·Ξ,",
                                "Αφ΄Ι°ϊ ±Ω·Βΐ» ΈήΐΞΐΈ·Ξ ½ΊΕΘ",
                                "ΖχΐΞΖ®Έ¦ ΕυΐΪΗΟµΗ, ΑΆΐόΏ΅ µϋΈ¥",
                                "»ύΈν·Β/ΉζΎξ·Β Θ®ΊΈΈ¦ ΐ§ΗΨ ΓΌ·Βΐ»",
                                "ΏΓΈ°΄Ω. ¶ΗΗΡ °ψ°έΐΗ Α¤Θ®ΌΊ°ϊ",
                                "ΘΈΗΗΈ¦ ΐ§ΗΨΌ­ ΉΞΓΈΏ΅µµ ΖχΐΞΖ®Έ¦",
                                "ΕυΐΪΗ ΗΚΏδ°΅ ΐΦ΄Ω.",
                            ],
                            
                            [
                                "ΘζΈ¶±ΊΐΗ Όφ¶σµιΐΊ °ΆΑΎ ΎξµΐΗ",
                                "ΑΦΉ®°ϊ ΎΗΈ¶ΐΗ Έ¶ΉύΐΈ·Ξ ΐόΐεΏ΅Ό­",
                                "Θ°ΎΰΗΡ΄Ω. ±ΊΑχ Ζ―ΌΊ»σ Έ¶Ήύ °ψ°έΐΜ",
                                "ΑΦΐΜΉΗ·Ξ Αφ΄Ιΐ» ΈήΐΞΐΈ·Ξ ½ΊΕέ",
                                "ΖχΐΞΖ®Έ¦ ΕυΐΪΗΟµΗ, Ώψ°ΕΈ® Έ¶Ήύ",
                                "°ψ°έΐΗ Α¤Θ®ΌΊΐ» ΐ§ΗΨ ΉΞΓΈΐ» ΏΓΈ°΄Ω.",
                                "¶ΗΗΡ Ζχΐ§ µΗΎϊΐ»½Γ, ΐϋ °ψ°έΏ΅ µϋΈ¥",
                                "»ύΈν·Β / ΉζΎξ·Β Θ®ΊΈΈ¦ ΐ§ΗΨ ΓΌ·ΒΏ΅µµ",
                                "ΖχΐΞΖ®Έ¦ ΕυΐΪΗ ΗΚΏδ°΅ ΐΦ΄Ω.",
                            ],
                        ],
                        
                        [
                            [
                                "Ή«΄ηΐΊ Ώλ½Ε°ϊ ΐΪΏ¬, µΞ °ν΄λΐΗ",
                                "Θϋΐ» ΄Ω·κ Όφ ΐΦ΄Β ΐ―ΐΟΗΡ ΑχΑΎΐΜ΄Ω.",
                                "±ΧµιΐΊ ΘΔΉζΏ΅Ό­ ΎΖ±Ίΐ» ΊΈΑ¶ΗΟ°ν",
                                "΄ΩΔ£ µΏ·αΐΗ ΊΞ»σΐ» ΘΈΊΉ ½ΓΕ°Έη",
                                "¶³ΎξΑψ »η±βΈ¦ »σ½Β½ΓΕ²΄Ω. ±ΧµιΐΊ",
                                "ΎΖ±ΊΐΗ ΌφΈι°ϊ Θή½Δΐ» ΉζΗΨΗϴ ΐΪΈ¦ ",
                                "ΐύ΄λ ΏλΌ­ΗΟΑφ ΎΚΐΈΈη, ±Χ·± ΐΪµι",
                                "Ώ΅°Τ΄Β ΗΡ Α΅ ΑΦΐϊ ΎψΐΜ ΑΦΉ®ΐ»",
                                "ΕΝΖ®·Α ±Χ Ίρ°ΜΗΤΐ» ΎφΘχ Β΅°θΗΡ΄Ω.",
                            ],
                            
                            [
                                "Γµ·ζ±ΊΐΗ Ή«΄ηµιΐΊ °ΆΑΎ ΊΞΐϋΌϊ°ϊ",
                                "ΊΈΑ¶ΑΦΉ®Ώ΅ ΄ΙΗΟΈη, ΐϋΐΗ Αχ / °£ΑΆ",
                                "°ψ°έΐΈ·ΞΊΞΕΝ ΎΖ±Ίΐ» ΑφΕ²΄Ω. ±ΊΑχ",
                                "Ζ―ΌΊ»σ Έ¶Ήύ ΄Ι·ΒΐΜ ΑΦΐΜΉΗ·Ξ Αφ΄Ιΐ»",
                                "ΈήΐΞΐΈ·Ξ ½ΊΕέ ΖχΐΞΖ®Έ¦ ΕυΐΪΗΟµΗ,",
                                "Ζχΐ§µΗΎϊΐ» ½Γ, ΐϋ °ψ°έΏ΅ µϋΈ¥",
                                "»ύΈν·Β / ΉζΎξ·Β Θ®ΊΈΈ¦ ΐ§ΗΨ ΓΌ·Βΐ»",
                                "ΏΓΈ°΄Ω. ¶ΗΗΡ Ώψ°ΕΈ® Έ¶Ήύ °ψ°έΐΗ",
                                "Α¤Θ®ΌΊΐ» ΐ§Ώ΅ ΉΞΓΈΏ΅µµ ΖχΐΞΖ®Έ¦",
                                "ΕυΐΪΗ ΗΚΏδ°΅ ΐΦ΄Ω.",
                            ],
                            
                            [
                                "±¤·Ϊ±ΊΐΗ Ή«΄ηµιΐΊ ΐΪΏ¬ΐΗ Θϋΐ»",
                                "Ίτ·Α ΎΖ±Ίΐ» ΘΈΊΉΗΟ°ν, ³ϊ½ΕΐΗ ",
                                "ΘϋΐΈ·Ξ ΉΠΑύΗΡ ΐϋµιΏ΅°Τ Ε« Γζ°έΐ»",
                                "ΐΤΘϊ Όφ ΐΦ΄Β ΐΜµιΐΜ΄Ω. ±ΊΑχΐΗ",
                                "Ζ―ΌΊ»σ Έ¶Ήύ ΄Ι·ΒΐΜ ΑΦΐΜΉΗ·Ξ Αφ΄Ιΐ»",
                                "ΈήΐΞΐΈ·Ξ ½ΊΕέ ΖχΐΞΖ®Έ¦ ΕυΐΪΗΟµΗ,",
                                "Ζχΐ§µΗΎϊΐ»½Γ, ΐϋ °ψ°έΏ΅ µϋΈ¥",
                                "»ύΈν·Β / ΉζΎξ·Β Θ®ΊΈΈ¦ ΐ§ΗΨ ΓΌ·Βΐ»",
                                "ΏΓΈ°΄Ω. ¶ΗΗΡ Ώψ°ΕΈ® Έ¶Ήύ °ψ°έΐΗ",
                                "Α¤Θ®ΌΊΐ» ΐ§Ώ΅ ΉΞΓΈΏ΅µµ ΖχΐΞΖ®Έ¦",
                                "ΕυΐΪΗ ΗΚΏδ°΅ ΐΦ΄Ω.",
                            ],
                        ],
                        
                        [
                            [
                                "Lycans are formidable wolf",
                                "creatures which were once",
                                "infected by an incurable",
                                "virus, losing their human",
                                "forms and mutating into",
                            ],
                            
                            [
                                "beasts. Thanks to their",
                                "unbridled power and",
                                "heightened instincts they",
                                "make exceptional close",
                                "combat fighters. Fearless in",
                            ],
                            
                            [
                                "the face of conflict, they",
                                "always seek out the front",
                                "lines.",
                            ],
                        ],
                    ]

WHISPER_ERROR = {
    1 : CANNOT_WHISPER_NOT_LOGON,
    2 : CANNOT_WHISPER_DEST_REFUSE,
    3 : CANNOT_WHISPER_SELF_REFUSE,
}

NOTIFY_MESSAGE = {
    "CANNOT_EQUIP_SHOP" : CANNOT_EQUIP_IN_SHOP,
    "CANNOT_EQUIP_EXCHANGE" : CANNOT_EQUIP_IN_EXCHANGE,
}


ATTACK_ERROR_TAIL_DICT = {
    "IN_SAFE" : CANNOT_ATTACK_SELF_IN_SAFE,
    "DEST_IN_SAFE" : CANNOT_ATTACK_DEST_IN_SAFE,
}

SHOT_ERROR_TAIL_DICT = {
    "EMPTY_ARROW" : CANNOT_SHOOT_EMPTY_ARROW,
    "IN_SAFE" : CANNOT_SHOOT_SELF_IN_SAFE,
    "DEST_IN_SAFE" : CANNOT_SHOOT_DEST_IN_SAFE,
}
    
USE_SKILL_ERROR_TAIL_DICT = {    
    "IN_SAFE" : CANNOT_SKILL_SELF_IN_SAFE,
    "NEED_TARGET" : CANNOT_SKILL_NEED_TARGET,
    "NEED_EMPTY_BOTTLE" : CANNOT_SKILL_NEED_EMPTY_BOTTLE,
    "NEED_POISON_BOTTLE" : CANNOT_SKILL_NEED_POISON_BOTTLE,
    "REMOVE_FISHING_ROD" : CANNOT_SKILL_REMOVE_FISHING_ROD,
    "NOT_YET_LEARN" : CANNOT_SKILL_NOT_YET_LEARN,
    "NOT_MATCHABLE_WEAPON" : CANNOT_SKILL_NOT_MATCHABLE_WEAPON,
    "WAIT_COOLTIME" : CANNOT_SKILL_WAIT_COOLTIME,
    "NOT_ENOUGH_HP" : CANNOT_SKILL_NOT_ENOUGH_HP,
    "NOT_ENOUGH_SP" : CANNOT_SKILL_NOT_ENOUGH_SP,
    "CANNOT_USE_SELF" : CANNOT_SKILL_USE_SELF,
    "ONLY_FOR_ALLIANCE" : CANNOT_SKILL_ONLY_FOR_ALLIANCE,
    "CANNOT_ATTACK_ENEMY_IN_SAFE_AREA" : CANNOT_SKILL_DEST_IN_SAFE,
    "CANNOT_APPROACH" : CANNOT_SKILL_APPROACH,
    "CANNOT_ATTACK" : CANNOT_SKILL_ATTACK,
    "ONLY_FOR_CORPSE" : CANNOT_SKILL_ONLY_FOR_CORPSE,
    "EQUIP_FISHING_ROD" : CANNOT_SKILL_EQUIP_FISHING_ROD, 
    "NOT_HORSE_SKILL" : CANNOT_SKILL_NOT_HORSE_SKILL,
    "HAVE_TO_RIDE" : CANNOT_SKILL_HAVE_TO_RIDE,
}

LEVEL_LIST=["", HORSE_LEVEL1, HORSE_LEVEL2, HORSE_LEVEL3]

HEALTH_LIST=[
    HORSE_HEALTH0,
    HORSE_HEALTH1, 
    HORSE_HEALTH2,
    HORSE_HEALTH3,
]


USE_SKILL_ERROR_CHAT_DICT = {    
    "NEED_EMPTY_BOTTLE" : SKILL_NEED_EMPTY_BOTTLE,
    "NEED_POISON_BOTTLE" : SKILL_NEED_POISON_BOTTLE, 
    "ONLY_FOR_GUILD_WAR" : SKILL_ONLY_FOR_GUILD_WAR,
}

SHOP_ERROR_DICT = {
    "NOT_ENOUGH_MONEY" : SHOP_NOT_ENOUGH_MONEY,
    "SOLDOUT" : SHOP_SOLDOUT,
    "INVENTORY_FULL" : SHOP_INVENTORY_FULL,
    "INVALID_POS" : SHOP_INVALID_POS,
    "NOT_ENOUGH_MONEY_EX" : SHOP_NOT_ENOUGH_MONEY_EX,
}

STAT_MINUS_DESCRIPTION = {
    "HTH-" : STAT_MINUS_CON,
    "INT-" : STAT_MINUS_INT,
    "STR-" : STAT_MINUS_STR,
    "DEX-" : STAT_MINUS_DEX,
}

MODE_NAME_LIST = ( PVP_OPTION_NORMAL, PVP_OPTION_REVENGE, PVP_OPTION_KILL, PVP_OPTION_PROTECT, )
TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, )

def GetLetterImageName():
    return "season1/icon/scroll_close.tga"
def GetLetterOpenImageName():
    return "season1/icon/scroll_open.tga"
def GetLetterCloseImageName():
    return "season1/icon/scroll_close.tga"

if 949 == app.GetDefaultCodePage():
    def EUL(name):
        if GetAuxiliaryWordType(name):
            return "Έ¦ "
        else:
            return "ΐ» "

    def I(name):
        if GetAuxiliaryWordType(name):
            return "°΅ "
        else:
            return "ΐΜ "

    def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
        name = sellItemName
        if sellItemCount > 1:
            name += " "
            name += str(sellItemCount)
            name += "°³"

        return name + EUL(name) + str(sellItemPrice) + "³ΙΏ΅ ΖΔ½Γ°Ϊ½ΐ΄Ο±ξ?"

    def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
        name = sellItemName
        if sellItemCount > 1:
            name += " "
            name += str(sellItemCount)
            name += "°³"

        return name + EUL(name) + str(sellItemPrice) + "Ώ΅ »η½Γ°Ϊ½ΐ΄Ο±ξ?"

    def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
        return attachedItemName+EUL(attachedItemName)+"ΊΞΒψΗ Όφ Ύψ΄Β ΎΖΐΜΕΫΐΤ΄Ο΄Ω"

    def REFINE_FAILURE_NO_SOCKET(attachedItemName):
        return attachedItemName+EUL(attachedItemName)+"ΊΞΒψΗ Όφ ΐΦ΄Β ΌΔΟΐΜ Ύψ½ΐ΄Ο΄Ω"    

    def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
        return attachedItemName+EUL(attachedItemName)+"ΊΞΒψΗ Όφ ΐΦ΄Β Θ²±έ ΌΔΟΐΜ Ύψ½ΐ΄Ο΄Ω"    

    def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
        name = dropItemName
        if dropItemCount > 1:
            name += " "
            name += str(dropItemCount)
            name += "°³"

        return name+EUL(name)+"ΉφΈ®½Γ°Ϊ½ΐ΄Ο±ξ?"

    def NumberToMoneyString(number):
        if number <= 0:
            return "0³Ι"

        number = str(number)
        result = CutMoneyString(number, 0, 4, "", "")
        result = CutMoneyString(number, 4, 8, "ΈΈ", result)
        result = CutMoneyString(number, 8, 12, "Ύο", result)
        result = result + "³Ι"

        return result

    def NumberToSecondaryCoinString(number):
        if number <= 0:
            return "0ΐό"

        number = str(number)
        result = CutMoneyString(number, 0, 4, "", "")
        result = CutMoneyString(number, 4, 8, "ΈΈ", result)
        result = CutMoneyString(number, 8, 12, "Ύο", result)
        result = result + "ΐό"

        return result

    def FISHING_NOTIFY(isFish, fishName):
        if isFish:
            return fishName + I(fishName) + "Ή® µν ΗΥ΄Ο΄Ω."
        else:
            return fishName + I(fishName) + "°ΙΈ°µν ΗΥ΄Ο΄Ω."

    def FISHING_SUCCESS(isFish, fishName):
        if isFish:
            return fishName + EUL(fishName) + "ΐβΎ½ΐ΄Ο΄Ω!"
        else:
            return fishName + EUL(fishName) + "ΎςΎϊ½ΐ΄Ο΄Ω!"

elif 932 == app.GetDefaultCodePage():
    def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
        if sellItemCount > 1 :
            return "%s %s Β‚π %s‚Ι”„‚θ‚ά‚·‚©H" % ( sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
        else:
            return "%s ‚π %s‚Ε”„‚θ‚ά‚·‚©H" % (sellItemName, NumberToMoneyString(sellItemPrice) )

    def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
        if buyItemCount > 1 :
            return "%s %sΒ‚π %s‚Ε”ƒ‚Ά‚ά‚·‚©H" % ( buyItemName, buyItemCount, buyItemPrice )
        else:
            return "%s‚π %s‚Ε”ƒ‚Ά‚ά‚·‚©H" % ( buyItemName, buyItemPrice )
            
    def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
        return "%s‚π‘•’…‚Ε‚«‚Θ‚ΆƒAƒCƒe?‚Ε‚·B" % (attachedItemName)

    def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
        return "%s‚π‘•’…‚·‚ι?ƒPƒbƒg‚‚ ‚θ‚ά‚Ή‚ρB" % (attachedItemName)

    def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
        return "%s‚π‘•’…‚Ε‚«‚鉩‹ΰ?ƒPƒbƒg‚‚ ‚θ‚ά‚Ή‚ρB" % (attachedItemName)
        
    def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
        if dropItemCount > 1 :
            return "%s %d Β‚πΜ‚Δ‚ά‚·‚©H" % (dropItemName, dropItemCount)
        else :    
            return "%s‚πΜ‚Δ‚ά‚·‚©H" % (dropItemName)

    def FISHING_NOTIFY(isFish, fishName) :
        if isFish :
            return "%s ‚H‚Ά‚Β‚Ά‚½‚悤‚Ε‚·" % ( fishName )
        else :
            return "%s ‚‚©‚©‚Α‚½‚悤‚Ε‚·" % ( fishName )

    def FISHING_SUCCESS(isFish, fishName) :
        if isFish :
            return "%s ‚π•ί‚ά‚¦‚ά‚µ‚½I" % (fishName)
        else :
            return "%s ‚πθ‚Ι“ό‚κ‚ά‚µ‚½I" % (fishName)
            
    def NumberToMoneyString(number) :
        if number <= 0 :
            return "0—Ό"

        number = str(number)
        result = CutMoneyString(number, 0, 4, "", "")
        result = CutMoneyString(number, 4, 8, "–", result)
        result = CutMoneyString(number, 8, 12, "‰­", result)
        result = result + "—Ό"

        return result
    def NumberToSecondaryCoinString(number) :
        if number <= 0 :
            return "0jun"

        number = str(number)
        result = CutMoneyString(number, 0, 4, "", "")
        result = CutMoneyString(number, 4, 8, "–", result)
        result = CutMoneyString(number, 8, 12, "‰­", result)
        result = result + "jun"

        return result
elif IsHONGKONG():
    def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
        if sellItemCount > 1 :
            return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
        else:
            return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )

    def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
        if buyItemCount > 1 :
            return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
        else:
            return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
            
    def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
        return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)

    def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
        return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)

    def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
        return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
        
    def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
        if dropItemCount > 1 :
            return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
        else :    
            return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)

    def FISHING_NOTIFY(isFish, fishName) :
        if isFish :
            return FISHING_NOTIFY1 % ( fishName )
        else :
            return FISHING_NOTIFY2 % ( fishName )

    def FISHING_SUCCESS(isFish, fishName) :
        if isFish :
            return FISHING_SUCCESS1 % (fishName)
        else :
            return FISHING_SUCCESS2 % (fishName)
            
    def NumberToMoneyString(number) :
        if number <= 0 :
            return "0 %s" % (MONETARY_UNIT0)

        number = str(number)
        result = CutMoneyString(number, 0, 4,     "", "")
        result = CutMoneyString(number, 4, 8,     MONETARY_UNIT1, result)
        result = CutMoneyString(number, 8, 12,     MONETARY_UNIT2, result)
        result = result + MONETARY_UNIT0

        return result

    def NumberToSecondaryCoinString(number) :
        if number <= 0 :
            return "0 %s" % (MONETARY_UNIT_JUN)

        number = str(number)
        result = CutMoneyString(number, 0, 4,     "", "")
        result = CutMoneyString(number, 4, 8,     MONETARY_UNIT1, result)
        result = CutMoneyString(number, 8, 12,     MONETARY_UNIT2, result)
        result = result + MONETARY_UNIT_JUN

        return result

elif IsNEWCIBN() or IsCIBN10():
    def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
        if sellItemCount>1:
            return "Θ·¶¨°Ρ%sΈφ%sΤ%s½π±ΒτµτΒπ£Ώ" % (str(sellItemCount), sellItemName, str(sellItemPrice))
        else:
            return "Θ·¶¨°Ρ%sΤ%s½π±ΒτµτΒπ£Ώ" % (sellItemName, str(sellItemPrice))

    def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
        if sellItemCount>1:
            return "Θ·¶¨°Ρ%sΈφ%sΤ%s½π±Βς½ψΒπ£Ώ" % (str(sellItemCount), sellItemName, str(sellItemPrice))
        else:
            return "Θ·¶¨°Ρ%sΤ%s½π±Βς½ψΒπ£Ώ" % (sellItemName, str(sellItemPrice))

    def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
        return "Ξή·¨ΟβΗ¶%s µΔΧ°±Έ" % (attachedItemName)

    def REFINE_FAILURE_NO_SOCKET(attachedItemName):
        return "Γ»ΣΠΏΙΤΟβΗ¶%s µΔΏΧ" % (attachedItemName)

    def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
        return "Γ»ΣΠΏΙΤΟβΗ¶%s µΔ»Ζ½πΏΧ" % (attachedItemName)

    def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
        if dropItemCount>1:
            return "Θ·¶¨ΘΣµτ%dΈφ%sΒπ?" % (dropItemCount, dropItemName)
        else:
            return "Θ·¶¨ΘΣµτ%sΒπ?" % (dropItemName)

    def FISHING_NOTIFY(isFish, fishName):
        if isFish:
            return fishName # Ί»·΅ Ώ©±βΏ΅ Ύξ¶² Έ»ΐΜ ΊΩΎξΐΦ΄Βµ¥, ΐΞΔΪµωΐΜ ±ϊΑ®ΐΦΎξΌ­ ΊΉΏψΗ Όφ°΅ Ύψ΄Ω ¤Π¤Π... cythonΏ΅Ό­ ΐΞΔΪµω Ώ΅·― ³Ό­ ΑφΏφΉφΈ²...
        else:
            return "µφΧΕ" + fishName + "ΑΛ΅£"

    def FISHING_SUCCESS(isFish, fishName):
        if isFish:
            return "µφΧΕ" + fishName + "ΑΛ΅£"
        else:
            return "»ρµΓ" + fishName + "ΑΛ΅£"

    def NumberToMoneyString(number):

        if number <= 0:
            return "0Α½"

        number = str(number)
        result = CutMoneyString(number, 0, 4, "", "")
        result = CutMoneyString(number, 4, 8, "Νς", result)
        result = CutMoneyString(number, 8, 12, "Ϊ", result)
        result = result + "Α½"

        return result

    def NumberToSecondaryCoinString(number):

        if number <= 0:
            return "0JUN"

        number = str(number)
        result = CutMoneyString(number, 0, 4, "", "")
        result = CutMoneyString(number, 4, 8, "Νς", result)
        result = CutMoneyString(number, 8, 12, "Ϊ", result)
        result = result + "JUN"

        return result        
elif IsEUROPE() and not IsWE_KOREA() and not IsYMIR():
    def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
        if sellItemCount > 1 :
            return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
        else:
            return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )

    def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
        if buyItemCount > 1 :
            return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
        else:
            return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
            
    def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
        return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)

    def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
        return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)

    def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
        return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
        
    def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
        if dropItemCount > 1 :
            return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
        else :    
            return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)

    def FISHING_NOTIFY(isFish, fishName) :
        if isFish :
            return FISHING_NOTIFY1 % ( fishName )
        else :
            return FISHING_NOTIFY2 % ( fishName )

    def FISHING_SUCCESS(isFish, fishName) :
        if isFish :
            return FISHING_SUCCESS1 % (fishName)
        else :
            return FISHING_SUCCESS2 % (fishName)
            
    def NumberToMoneyString(n) :
        if n <= 0 :
            return "0 %s" % (MONETARY_UNIT0)

        return "%s %s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]), MONETARY_UNIT0) 

    def NumberToSecondaryCoinString(n) :
        if n <= 0 :
            return "0 %s" % (MONETARY_UNIT_JUN)

        return "%s %s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]), MONETARY_UNIT_JUN) 
 

Could it also be a binary issue?

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.