Bai..nu stiu ,.. nu am gasit nicaieri cum si de unde sa schimb "server - ch 1" [Rezolvat]Cum sa schimb numele de sub harta?
Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
- felixutzu
- Nivel 2

- Mesaje: 171
- Membru din: 31 Iul 2014, 06:44
- Server: www.metin2bacau.com
- Regat: Chunjo
- Aprecieri: 38
- Mulţumiri: 2
- Contact:
- TerrorSquad
- Nivel 1

- felixutzu
- Nivel 2

- Mesaje: 171
- Membru din: 31 Iul 2014, 06:44
- Server: www.metin2bacau.com
- Regat: Chunjo
- Aprecieri: 38
- Mulţumiri: 2
- Contact:
Acum incerc 
Uite ... eu am cautat si mai demult in fishierele aste doua dat degiaba ca nu gasesc... uite aici
Uite ... eu am cautat si mai demult in fishierele aste doua dat degiaba ca nu gasesc... uite aici
import os
import app
import locale
import debugInfo
CHINA_PORT = 50000
def BuildServerList(orderList):
retMarkAddrDict = {}
retAuthAddrDict = {}
retRegion0 = {}
ridx = 1
for region, auth, mark, channels in orderList:
cidx = 1
channelDict = {}
for channel in channels:
key = ridx * 10 + cidx
channel["key"] = key
channelDict[cidx] = channel
cidx += 1
region["channel"] = channelDict
retRegion0[ridx] = region
retAuthAddrDict[ridx] = auth
retMarkAddrDict[ridx*10] = mark
ridx += 1
return retRegion0, retAuthAddrDict, retMarkAddrDict
app.ServerName = None
if (locale.IsEUROPE() and app.GetLocalePath() == "locale/de"):
STATE_NONE = "..."
STATE_DICT = {
0 : "....",
1 : "NORM",
2 : "BUSY",
3 : "FULL"
}
SERVER01_CHANNEL_DICT = {
1:{"key":11,"name":"CH1 ","ip":"Censored","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,},
}
REGION_NAME_DICT = {
0 : "Vietnam",
}
REGION_AUTH_SERVER_DICT = {
0 : {
1 : { "ip":"Censored", "port":11002, },
}
}
REGION_DICT = {
0 : {
1 : { "name" :"Metin2Sao", "channel" : SERVER01_CHANNEL_DICT, },
},
}
MARKADDR_DICT = {
10 : { "ip" : "Censored", "tcp_port" : 13002, "mark" : "10.tga", "symbol_path" : "10", },
}
TESTADDR = { "ip" : "FF0000]Censored[/color]", "tcp_port" : 50000, "udp_port" : 50000, }
import app
import locale
import debugInfo
CHINA_PORT = 50000
def BuildServerList(orderList):
retMarkAddrDict = {}
retAuthAddrDict = {}
retRegion0 = {}
ridx = 1
for region, auth, mark, channels in orderList:
cidx = 1
channelDict = {}
for channel in channels:
key = ridx * 10 + cidx
channel["key"] = key
channelDict[cidx] = channel
cidx += 1
region["channel"] = channelDict
retRegion0[ridx] = region
retAuthAddrDict[ridx] = auth
retMarkAddrDict[ridx*10] = mark
ridx += 1
return retRegion0, retAuthAddrDict, retMarkAddrDict
app.ServerName = None
if (locale.IsEUROPE() and app.GetLocalePath() == "locale/de"):
STATE_NONE = "..."
STATE_DICT = {
0 : "....",
1 : "NORM",
2 : "BUSY",
3 : "FULL"
}
SERVER01_CHANNEL_DICT = {
1:{"key":11,"name":"CH1 ","ip":"Censored","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,},
}
REGION_NAME_DICT = {
0 : "Vietnam",
}
REGION_AUTH_SERVER_DICT = {
0 : {
1 : { "ip":"Censored", "port":11002, },
}
}
REGION_DICT = {
0 : {
1 : { "name" :"Metin2Sao", "channel" : SERVER01_CHANNEL_DICT, },
},
}
MARKADDR_DICT = {
10 : { "ip" : "Censored", "tcp_port" : 13002, "mark" : "10.tga", "symbol_path" : "10", },
}
TESTADDR = { "ip" : "FF0000]Censored[/color]", "tcp_port" : 50000, "udp_port" : 50000, }
import app
import constInfo
MAP_TREE2 = "MAP_TREE2"
APP_TITLE = "Metin2Sao - PvP "
BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"
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-=\[];',./`"
__IS_YMIR = "YMIR" == app.GetLocaleServiceName()
__IS_JAPAN = "JAPAN" == app.GetLocaleServiceName()
__IS_ENGLISH = "ENGLISH" == app.GetLocaleServiceName()
__IS_HONGKONG = "HONGKONG" == app.GetLocaleServiceName()
__IS_NEWCIBN = "NEWCIBN" == app.GetLocaleServiceName()
__IS_TAIWAN = "TAIWAN" == app.GetLocaleServiceName()
__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()
if __IS_TAIWAN:
__IS_HONGKONG = TRUE
if __IS_CANADA:
__IS_EUROPE = TRUE
def IsYMIR():
global __IS_YMIR
return __IS_YMIR
def IsJAPAN():
global __IS_JAPAN
return __IS_JAPAN
def IsENGLISH():
global __IS_ENGLISH
return __IS_ENGLISH
def IsHONGKONG():
global __IS_HONGKONG
return __IS_HONGKONG
def IsTAIWAN():
global __IS_TAIWAN
return __IS_TAIWAN
def IsNEWCIBN():
global __IS_NEWCIBN
return __IS_NEWCIBN
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
# SUPPORT_NEW_KOREA_SERVER
def LoadLocaleData():
if IsYMIR():
import net
SERVER = "¹«½Ö ¼¹ö"
if SERVER == net.GetServerInfo()[:len(SERVER)]:
app.SetCHEONMA(0)
app.LoadLocaleData("locale/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():
if IsYMIR():
return app.IsCHEONMA()
else:
return 0
# 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 IsJAPAN():
FN_GM_MARK = "locale/japan/effect/gm.mse"
LOCALE_FILE_NAME = "locale/japan/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 1
elif IsENGLISH():
FN_GM_MARK = "locale/english/effect/gm.mse"
LOCALE_FILE_NAME = "locale/english/locale_game.txt"
elif IsHONGKONG():
APP_TITLE = "¾Ô¯TOnline"
FN_GM_MARK = "locale/hongkong/effect/gm.mse"
LOCALE_FILE_NAME = "locale/hongkong/locale_game.txt"
elif IsNEWCIBN():
FN_GM_MARK = "locale/newcibn/effect/gm.mse"
LOCALE_FILE_NAME = "locale/newcibn/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 0
elif IsEUROPE():
FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
else:
FN_GM_MARK = "locale/ymir/effect/gm.mse"
LOCALE_FILE_NAME = "locale/ymir/locale_game.txt"
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, "ij":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 int(text) <= 0:
return backText
text = str(int(text))
if backText:
backText = " " + backText
return text + insertingText + backText
def SecondToDHM(time):
if time < 60:
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:
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,
}
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,],
]
JOBINFO_DATA_LIST = [
[
["Ÿ°í³ ¿ë¸Í°ú ±ÁÈ÷Áö ¾Ê´Â ¹«»çÀÇ",
"±â°³¸¦ »ç¶÷µéÀº ÀÏÄþî [¿ëÀÚ]¶ó°í",
"ºÎ¸¥´Ù. ¾î¶°ÇÑ À§±â¿¡¼µµ ±×µéÀº ",
"µÚ·Î ¹°·¯¼Áö ¾ÊÀ¸¸ç, ´ÙÄ¡°í ¿òÁ÷",
"À̱â Èûµç µ¿·á¸¦ À§ÇØ ´Ü½ÅÀ¸·Î",
"Àûµé°ú ¸¶ÁÖ ½Î¿ì±âµµ ÇÑ´Ù. À̵éÀº",
"Àß ´Ü·ÃµÈ ±ÙÀ°°ú Èû, °·ÂÇÑ °ø°Ý·Â",
"À¸·Î ÀüÀå ÃÖ¼±µÎ¿¡¼ °ø°ÝÁøÀ¸·Î",
"Ȱ¾àÇÑ´Ù. ",],
["°¡Àå ÀϹÝÀûÀÎ °ø°ÝÇü ¹«»ç·Î, ",
"ÀûÁ¢Àü¿¡ µû¸¥ Á÷Á¢ °ø°ÝÀ¸·Î ÀüÀå",
"¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"ÀûÁ¢Àü¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·ÂÀ» ¿Ã¸°´Ù. ¶ÇÇÑ",
"°ø°ÝÀÇ Á¤È®¼ºÀ» ³ôÀ̱â À§ÇØ ¹Îø",
"¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù.",],
["»ó´ç ¼öÁØÀÇ Á¤½Å·ÂÀ» ÀÌ¿ëÇÏ´Â",
"Áß/±Ù°Å¸® Á¢ÀüÇü ¹«»ç·Î, °¢ ±â¼ú",
"ÇϳªÇϳªÀÇ ³ôÀº °ø°Ý·ÂÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ» ¸ÞÀÎ",
"À¸·Î ½ºÅÈ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"Áß/±Ù°Å¸® °ø°ÝÀÇ Á¤È®¼º°ú ¸íÁß·üÀ»",
"À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù. ¶ÇÇÑ Á¢Àü ½Ã ",
"Àû °ø°Ý¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["ÀÚ°´Àº ¾î¶°ÇÑ »óȲ¿¡¼µµ ÀÚ½ÅÀÇ",
"¸öÀ» ¼û±â°í Àº¹ÐÇÑ ¾îµÒÀÇ ÀÓ¹«¸¦",
"¼öÇàÇÏ¸é¼ ÀüÀåÀÇ ÈÄÀ§¸¦ Áö¿øÇÏ´Â",
"ÀÚµéÀÌ´Ù. À̵éÀº ¾ÆÁÖ ºü¸£°í ½Å¼Ó",
"Çϸç, ºñÇÒ µ¥ ¾øÀÌ °ú°¨Çϰí ÀýÁ¦µÈ",
"ÇൿÀ¸·Î ÀûÀÇ ±Þ¼Ò¿¡ Ä¡¸íŸ¸¦ ³¯¸®",
"µÇ, ÀüÀå¿¡¼± ÀûÁøÀ» ÇâÇØ ¹«¼öÇÑ",
"È»ìÀ» ³»»ÕÀ¸¸ç ÀÚ½ÅÀÇ ¿ë¸ÍÀ»",
"¼±º¸ÀδÙ. "],
["µÎ¼Õ ´Ü°ËÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ½Å¼Ó",
"ÇÏ°Ô Ä¡°í ºüÁö´Â ÀÚ°´ ƯÀ¯ÀÇ ¿òÁ÷ÀÓ",
"À¸·Î ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"¹ÎøÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚ",
"ÇϵÇ, ±Ù·ÂÀ» ¿Ã·Á °ø°Ý·ÂÀ» ³ôÀδÙ.",
"¶ÇÇÑ ±ÙÁ¢Àü¿¡ µû¸¥ »ý¸í·Â/¹æ¾î·Â ",
"»ó½ÂÀ» À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["ȰÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ±ä ½Ã¾ß¿Í",
"»çÁ¤°Å¸®¿¡ µû¸¥ ¿ø°Å¸® °ø°ÝÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"°ø°Ý ¼º°ø·üÀÇ Áõ°¡¸¦ À§ÇØ ¹ÎøÀ»",
"¸ÞÀÎÀ¸·Î ¿Ã·Á¾ß Çϸç, ¿ø°Å¸®",
"°ø°ÝÀÇ µ¥¹ÌÁö Áõ°¡¸¦ À§ÇØ ±Ù·ÂÀ»",
"¿Ã¸± Çʿ䰡 ÀÖ´Ù. ¶ÇÇÑ Àûµé¿¡°Ô",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ ¹öƼ±â",
"À§ÇÑ »ý¸í·Â/¹æ¾î·Â »ó½ÂÀ» À§ÇØ",
"ü·Â¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡",
"ÀÖ´Ù. ", ],
],
[
["¼ö¶ó´Â [µ¶Àº µ¶À¸·Î]ÀÇ ¼Ó¼ºÀ¸·Î",
"â¼³µÈ Ư¼ö ¼Ó¼ºÀÇ ±ºÁ÷ÀÌ´Ù. ",
"±×µéÀº ÀüÀå¿¡¼ ÀûµéÀÇ »ç±â¸¦ ÀúÇÏ",
"½Ã۰í, ¾Ç¸¶ÀÇ ÈûÀ» ½ÇÀº ¸¶ÅºÀ¸·Î",
"ÀûÀÇ ¿µÈ¥°ú À°½ÅÀ» Áþ¹¶°µ´Ù. ¶§·Î",
"À̵éÀº ÀÚ½ÅÀÇ °Ë°ú °©¿Ê¿¡ ¾îµÒÀÇ",
"ÈûÀ» ½Ç¾î, ÀüÀå¿¡¼ ¹«»ç ¸øÁö ¾ÊÀº",
"°ø°Ý·ÂÀ» ¹ßÈÖÇϱ⵵ Çϴµ¥, ÀûµéÀ»",
"Á׿©´ë´Â±× ¸ð½ÀÀÌ ¿ö³«¿¡ ²ûÂïÇØ",
"»ç¶÷µéÀº ¼ö¶ó¸¦ ÀÏÄþî [¸¶½Å]À̶ó",
"ºÎ¸£±â¸¦ ÁÖÀú ¾É´Â´Ù."],
["ȯ¹«±ºÀÇ ¼ö¶ó´Â ¾Ç¸¶ÀÇ ¾¾¿¡¼",
"¾ò¾îÁö´Â ¸¶·ÂÀ» ¹«±â³ª ¹æ¾î±¸¿¡",
"½Ç¾î ¹«»ç ¸øÁö ¾ÊÀº ÀüÅõ·ÂÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"Áö´ÉÀÌ ³ô¾ÆÁú¼ö·Ï Âø¿ë Àåºñ¿¡",
"½Ç¸®´Â ¸¶·ÂÀÇ À§·ÂÀÌ Áõ´ëµÇ¹Ç·Î,",
"Áö´É°ú ±Ù·ÂÀ» ¸ÞÀÎÀ¸·Î ½ºÅÈ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, Á¢Àü¿¡ µû¸¥",
"»ý¸í·Â/¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ °ø°ÝÀÇ Á¤È®¼º°ú",
"ȸÇǸ¦ À§Çؼ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["Èæ¸¶±ºÀÇ ¼ö¶óµéÀº °¢Á¾ ¾îµÒÀÇ",
"ÁÖ¹®°ú ¾Ç¸¶ÀÇ ¸¶¹ýÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ¸¶¹ý °ø°ÝÀÌ",
"ÁÖÀ̹ǷΠÁö´ÉÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ¿ø°Å¸® ¸¶¹ý",
"°ø°ÝÀÇ Á¤È®¼ºÀ» À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù.",
"¶ÇÇÑ Æ÷À§ µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["¹«´çÀº ¿ë½Å°ú ÀÚ¿¬, µÎ °í´ëÀÇ",
"ÈûÀ» ´Ù·ê ¼ö ÀÖ´Â À¯ÀÏÇÑ Á÷Á¾ÀÌ´Ù.",
"±×µéÀº ÈĹ濡¼ ¾Æ±ºÀ» º¸Á¶Çϰí",
"´ÙÄ£ µ¿·áÀÇ ºÎ»óÀ» ȸº¹ ½Ã۸ç",
"¶³¾îÁø »ç±â¸¦ »ó½Â½ÃŲ´Ù. ±×µéÀº",
"¾Æ±ºÀÇ ¼ö¸é°ú ÈÞ½ÄÀ» ¹æÇØÇÏ´Â ÀÚ¸¦ ",
"Àý´ë ¿ë¼ÇÏÁö ¾ÊÀ¸¸ç, ±×·± ÀÚµé",
"¿¡°Ô´Â ÇÑ Á¡ ÁÖÀú ¾øÀÌ ÁÖ¹®À»",
"ÅÍÆ®·Á ±× ºñ°ÌÇÔÀ» ¾öÈ÷ ¡°èÇÑ´Ù.",],
["õ·æ±ºÀÇ ¹«´çµéÀº °¢Á¾ ºÎÀû¼ú°ú",
"º¸Á¶ÁÖ¹®¿¡ ´ÉÇϸç, ÀûÀÇ Á÷ / °£Á¢",
"°ø°ÝÀ¸·ÎºÎÅÍ ¾Æ±ºÀ» ÁöŲ´Ù. ±ºÁ÷",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["±¤·Ú±ºÀÇ ¹«´çµéÀº ÀÚ¿¬ÀÇ ÈûÀ»",
"ºô·Á ¾Æ±ºÀ» ȸº¹Çϰí, ³ú½ÅÀÇ ",
"ÈûÀ¸·Î ¹ÐÁýÇÑ Àûµé¿¡°Ô Å« Ãæ°ÝÀ»",
"ÀÔÈú ¼ö ÀÖ´Â À̵éÀÌ´Ù. ±ºÁ÷ÀÇ",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. "],
],
]
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,
}
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 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 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) + "¾ò¾ú½À´Ï´Ù!"
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 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
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
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 + "ÉϹ³ÁË¡£"
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
elif IsEUROPE():
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)
import constInfo
MAP_TREE2 = "MAP_TREE2"
APP_TITLE = "Metin2Sao - PvP "
BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"
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-=\[];',./`"
__IS_YMIR = "YMIR" == app.GetLocaleServiceName()
__IS_JAPAN = "JAPAN" == app.GetLocaleServiceName()
__IS_ENGLISH = "ENGLISH" == app.GetLocaleServiceName()
__IS_HONGKONG = "HONGKONG" == app.GetLocaleServiceName()
__IS_NEWCIBN = "NEWCIBN" == app.GetLocaleServiceName()
__IS_TAIWAN = "TAIWAN" == app.GetLocaleServiceName()
__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()
if __IS_TAIWAN:
__IS_HONGKONG = TRUE
if __IS_CANADA:
__IS_EUROPE = TRUE
def IsYMIR():
global __IS_YMIR
return __IS_YMIR
def IsJAPAN():
global __IS_JAPAN
return __IS_JAPAN
def IsENGLISH():
global __IS_ENGLISH
return __IS_ENGLISH
def IsHONGKONG():
global __IS_HONGKONG
return __IS_HONGKONG
def IsTAIWAN():
global __IS_TAIWAN
return __IS_TAIWAN
def IsNEWCIBN():
global __IS_NEWCIBN
return __IS_NEWCIBN
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
# SUPPORT_NEW_KOREA_SERVER
def LoadLocaleData():
if IsYMIR():
import net
SERVER = "¹«½Ö ¼¹ö"
if SERVER == net.GetServerInfo()[:len(SERVER)]:
app.SetCHEONMA(0)
app.LoadLocaleData("locale/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():
if IsYMIR():
return app.IsCHEONMA()
else:
return 0
# 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 IsJAPAN():
FN_GM_MARK = "locale/japan/effect/gm.mse"
LOCALE_FILE_NAME = "locale/japan/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 1
elif IsENGLISH():
FN_GM_MARK = "locale/english/effect/gm.mse"
LOCALE_FILE_NAME = "locale/english/locale_game.txt"
elif IsHONGKONG():
APP_TITLE = "¾Ô¯TOnline"
FN_GM_MARK = "locale/hongkong/effect/gm.mse"
LOCALE_FILE_NAME = "locale/hongkong/locale_game.txt"
elif IsNEWCIBN():
FN_GM_MARK = "locale/newcibn/effect/gm.mse"
LOCALE_FILE_NAME = "locale/newcibn/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 0
elif IsEUROPE():
FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
else:
FN_GM_MARK = "locale/ymir/effect/gm.mse"
LOCALE_FILE_NAME = "locale/ymir/locale_game.txt"
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, "ij":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 int(text) <= 0:
return backText
text = str(int(text))
if backText:
backText = " " + backText
return text + insertingText + backText
def SecondToDHM(time):
if time < 60:
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:
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,
}
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,],
]
JOBINFO_DATA_LIST = [
[
["Ÿ°í³ ¿ë¸Í°ú ±ÁÈ÷Áö ¾Ê´Â ¹«»çÀÇ",
"±â°³¸¦ »ç¶÷µéÀº ÀÏÄþî [¿ëÀÚ]¶ó°í",
"ºÎ¸¥´Ù. ¾î¶°ÇÑ À§±â¿¡¼µµ ±×µéÀº ",
"µÚ·Î ¹°·¯¼Áö ¾ÊÀ¸¸ç, ´ÙÄ¡°í ¿òÁ÷",
"À̱â Èûµç µ¿·á¸¦ À§ÇØ ´Ü½ÅÀ¸·Î",
"Àûµé°ú ¸¶ÁÖ ½Î¿ì±âµµ ÇÑ´Ù. À̵éÀº",
"Àß ´Ü·ÃµÈ ±ÙÀ°°ú Èû, °·ÂÇÑ °ø°Ý·Â",
"À¸·Î ÀüÀå ÃÖ¼±µÎ¿¡¼ °ø°ÝÁøÀ¸·Î",
"Ȱ¾àÇÑ´Ù. ",],
["°¡Àå ÀϹÝÀûÀÎ °ø°ÝÇü ¹«»ç·Î, ",
"ÀûÁ¢Àü¿¡ µû¸¥ Á÷Á¢ °ø°ÝÀ¸·Î ÀüÀå",
"¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"ÀûÁ¢Àü¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·ÂÀ» ¿Ã¸°´Ù. ¶ÇÇÑ",
"°ø°ÝÀÇ Á¤È®¼ºÀ» ³ôÀ̱â À§ÇØ ¹Îø",
"¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù.",],
["»ó´ç ¼öÁØÀÇ Á¤½Å·ÂÀ» ÀÌ¿ëÇÏ´Â",
"Áß/±Ù°Å¸® Á¢ÀüÇü ¹«»ç·Î, °¢ ±â¼ú",
"ÇϳªÇϳªÀÇ ³ôÀº °ø°Ý·ÂÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ» ¸ÞÀÎ",
"À¸·Î ½ºÅÈ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"Áß/±Ù°Å¸® °ø°ÝÀÇ Á¤È®¼º°ú ¸íÁß·üÀ»",
"À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù. ¶ÇÇÑ Á¢Àü ½Ã ",
"Àû °ø°Ý¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["ÀÚ°´Àº ¾î¶°ÇÑ »óȲ¿¡¼µµ ÀÚ½ÅÀÇ",
"¸öÀ» ¼û±â°í Àº¹ÐÇÑ ¾îµÒÀÇ ÀÓ¹«¸¦",
"¼öÇàÇÏ¸é¼ ÀüÀåÀÇ ÈÄÀ§¸¦ Áö¿øÇÏ´Â",
"ÀÚµéÀÌ´Ù. À̵éÀº ¾ÆÁÖ ºü¸£°í ½Å¼Ó",
"Çϸç, ºñÇÒ µ¥ ¾øÀÌ °ú°¨Çϰí ÀýÁ¦µÈ",
"ÇൿÀ¸·Î ÀûÀÇ ±Þ¼Ò¿¡ Ä¡¸íŸ¸¦ ³¯¸®",
"µÇ, ÀüÀå¿¡¼± ÀûÁøÀ» ÇâÇØ ¹«¼öÇÑ",
"È»ìÀ» ³»»ÕÀ¸¸ç ÀÚ½ÅÀÇ ¿ë¸ÍÀ»",
"¼±º¸ÀδÙ. "],
["µÎ¼Õ ´Ü°ËÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ½Å¼Ó",
"ÇÏ°Ô Ä¡°í ºüÁö´Â ÀÚ°´ ƯÀ¯ÀÇ ¿òÁ÷ÀÓ",
"À¸·Î ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"¹ÎøÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚ",
"ÇϵÇ, ±Ù·ÂÀ» ¿Ã·Á °ø°Ý·ÂÀ» ³ôÀδÙ.",
"¶ÇÇÑ ±ÙÁ¢Àü¿¡ µû¸¥ »ý¸í·Â/¹æ¾î·Â ",
"»ó½ÂÀ» À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["ȰÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ±ä ½Ã¾ß¿Í",
"»çÁ¤°Å¸®¿¡ µû¸¥ ¿ø°Å¸® °ø°ÝÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"°ø°Ý ¼º°ø·üÀÇ Áõ°¡¸¦ À§ÇØ ¹ÎøÀ»",
"¸ÞÀÎÀ¸·Î ¿Ã·Á¾ß Çϸç, ¿ø°Å¸®",
"°ø°ÝÀÇ µ¥¹ÌÁö Áõ°¡¸¦ À§ÇØ ±Ù·ÂÀ»",
"¿Ã¸± Çʿ䰡 ÀÖ´Ù. ¶ÇÇÑ Àûµé¿¡°Ô",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ ¹öƼ±â",
"À§ÇÑ »ý¸í·Â/¹æ¾î·Â »ó½ÂÀ» À§ÇØ",
"ü·Â¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡",
"ÀÖ´Ù. ", ],
],
[
["¼ö¶ó´Â [µ¶Àº µ¶À¸·Î]ÀÇ ¼Ó¼ºÀ¸·Î",
"â¼³µÈ Ư¼ö ¼Ó¼ºÀÇ ±ºÁ÷ÀÌ´Ù. ",
"±×µéÀº ÀüÀå¿¡¼ ÀûµéÀÇ »ç±â¸¦ ÀúÇÏ",
"½Ã۰í, ¾Ç¸¶ÀÇ ÈûÀ» ½ÇÀº ¸¶ÅºÀ¸·Î",
"ÀûÀÇ ¿µÈ¥°ú À°½ÅÀ» Áþ¹¶°µ´Ù. ¶§·Î",
"À̵éÀº ÀÚ½ÅÀÇ °Ë°ú °©¿Ê¿¡ ¾îµÒÀÇ",
"ÈûÀ» ½Ç¾î, ÀüÀå¿¡¼ ¹«»ç ¸øÁö ¾ÊÀº",
"°ø°Ý·ÂÀ» ¹ßÈÖÇϱ⵵ Çϴµ¥, ÀûµéÀ»",
"Á׿©´ë´Â±× ¸ð½ÀÀÌ ¿ö³«¿¡ ²ûÂïÇØ",
"»ç¶÷µéÀº ¼ö¶ó¸¦ ÀÏÄþî [¸¶½Å]À̶ó",
"ºÎ¸£±â¸¦ ÁÖÀú ¾É´Â´Ù."],
["ȯ¹«±ºÀÇ ¼ö¶ó´Â ¾Ç¸¶ÀÇ ¾¾¿¡¼",
"¾ò¾îÁö´Â ¸¶·ÂÀ» ¹«±â³ª ¹æ¾î±¸¿¡",
"½Ç¾î ¹«»ç ¸øÁö ¾ÊÀº ÀüÅõ·ÂÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"Áö´ÉÀÌ ³ô¾ÆÁú¼ö·Ï Âø¿ë Àåºñ¿¡",
"½Ç¸®´Â ¸¶·ÂÀÇ À§·ÂÀÌ Áõ´ëµÇ¹Ç·Î,",
"Áö´É°ú ±Ù·ÂÀ» ¸ÞÀÎÀ¸·Î ½ºÅÈ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, Á¢Àü¿¡ µû¸¥",
"»ý¸í·Â/¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ °ø°ÝÀÇ Á¤È®¼º°ú",
"ȸÇǸ¦ À§Çؼ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["Èæ¸¶±ºÀÇ ¼ö¶óµéÀº °¢Á¾ ¾îµÒÀÇ",
"ÁÖ¹®°ú ¾Ç¸¶ÀÇ ¸¶¹ýÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ¸¶¹ý °ø°ÝÀÌ",
"ÁÖÀ̹ǷΠÁö´ÉÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ¿ø°Å¸® ¸¶¹ý",
"°ø°ÝÀÇ Á¤È®¼ºÀ» À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù.",
"¶ÇÇÑ Æ÷À§ µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["¹«´çÀº ¿ë½Å°ú ÀÚ¿¬, µÎ °í´ëÀÇ",
"ÈûÀ» ´Ù·ê ¼ö ÀÖ´Â À¯ÀÏÇÑ Á÷Á¾ÀÌ´Ù.",
"±×µéÀº ÈĹ濡¼ ¾Æ±ºÀ» º¸Á¶Çϰí",
"´ÙÄ£ µ¿·áÀÇ ºÎ»óÀ» ȸº¹ ½Ã۸ç",
"¶³¾îÁø »ç±â¸¦ »ó½Â½ÃŲ´Ù. ±×µéÀº",
"¾Æ±ºÀÇ ¼ö¸é°ú ÈÞ½ÄÀ» ¹æÇØÇÏ´Â ÀÚ¸¦ ",
"Àý´ë ¿ë¼ÇÏÁö ¾ÊÀ¸¸ç, ±×·± ÀÚµé",
"¿¡°Ô´Â ÇÑ Á¡ ÁÖÀú ¾øÀÌ ÁÖ¹®À»",
"ÅÍÆ®·Á ±× ºñ°ÌÇÔÀ» ¾öÈ÷ ¡°èÇÑ´Ù.",],
["õ·æ±ºÀÇ ¹«´çµéÀº °¢Á¾ ºÎÀû¼ú°ú",
"º¸Á¶ÁÖ¹®¿¡ ´ÉÇϸç, ÀûÀÇ Á÷ / °£Á¢",
"°ø°ÝÀ¸·ÎºÎÅÍ ¾Æ±ºÀ» ÁöŲ´Ù. ±ºÁ÷",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["±¤·Ú±ºÀÇ ¹«´çµéÀº ÀÚ¿¬ÀÇ ÈûÀ»",
"ºô·Á ¾Æ±ºÀ» ȸº¹Çϰí, ³ú½ÅÀÇ ",
"ÈûÀ¸·Î ¹ÐÁýÇÑ Àûµé¿¡°Ô Å« Ãæ°ÝÀ»",
"ÀÔÈú ¼ö ÀÖ´Â À̵éÀÌ´Ù. ±ºÁ÷ÀÇ",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. "],
],
]
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,
}
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 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 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) + "¾ò¾ú½À´Ï´Ù!"
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 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
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
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 + "ÉϹ³ÁË¡£"
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
elif IsEUROPE():
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)
Ultima oară modificat 20 Mar 2015, 13:08 de către Răzvaan, modificat 1 dată în total.
Motiv: Mesaje unite, dublu post.
Motiv: Mesaje unite, dublu post.
Onanana
Afișează semnătura
- felixutzu
- Nivel 2

- Mesaje: 171
- Membru din: 31 Iul 2014, 06:44
- Server: www.metin2bacau.com
- Regat: Chunjo
- Aprecieri: 38
- Mulţumiri: 2
- Contact:
Uite ... eu am cautat si mai demult in fishierele aste doua dat degiaba ca nu gasesc... uite aici
import os
import app
import locale
import debugInfo
CHINA_PORT = 50000
def BuildServerList(orderList):
retMarkAddrDict = {}
retAuthAddrDict = {}
retRegion0 = {}
ridx = 1
for region, auth, mark, channels in orderList:
cidx = 1
channelDict = {}
for channel in channels:
key = ridx * 10 + cidx
channel["key"] = key
channelDict[cidx] = channel
cidx += 1
region["channel"] = channelDict
retRegion0[ridx] = region
retAuthAddrDict[ridx] = auth
retMarkAddrDict[ridx*10] = mark
ridx += 1
return retRegion0, retAuthAddrDict, retMarkAddrDict
app.ServerName = None
if (locale.IsEUROPE() and app.GetLocalePath() == "locale/de"):
STATE_NONE = "..."
STATE_DICT = {
0 : "....",
1 : "NORM",
2 : "BUSY",
3 : "FULL"
}
SERVER01_CHANNEL_DICT = {
1:{"key":11,"name":"CH1 ","ip":"Censored","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,},
}
REGION_NAME_DICT = {
0 : "Vietnam",
}
REGION_AUTH_SERVER_DICT = {
0 : {
1 : { "ip":"Censored", "port":11002, },
}
}
REGION_DICT = {
0 : {
1 : { "name" :"Metin2Sao", "channel" : SERVER01_CHANNEL_DICT, },
},
}
MARKADDR_DICT = {
10 : { "ip" : "Censored", "tcp_port" : 13002, "mark" : "10.tga", "symbol_path" : "10", },
}
TESTADDR = { "ip" : "FF0000]Censored[/color]", "tcp_port" : 50000, "udp_port" : 50000, }
import app
import locale
import debugInfo
CHINA_PORT = 50000
def BuildServerList(orderList):
retMarkAddrDict = {}
retAuthAddrDict = {}
retRegion0 = {}
ridx = 1
for region, auth, mark, channels in orderList:
cidx = 1
channelDict = {}
for channel in channels:
key = ridx * 10 + cidx
channel["key"] = key
channelDict[cidx] = channel
cidx += 1
region["channel"] = channelDict
retRegion0[ridx] = region
retAuthAddrDict[ridx] = auth
retMarkAddrDict[ridx*10] = mark
ridx += 1
return retRegion0, retAuthAddrDict, retMarkAddrDict
app.ServerName = None
if (locale.IsEUROPE() and app.GetLocalePath() == "locale/de"):
STATE_NONE = "..."
STATE_DICT = {
0 : "....",
1 : "NORM",
2 : "BUSY",
3 : "FULL"
}
SERVER01_CHANNEL_DICT = {
1:{"key":11,"name":"CH1 ","ip":"Censored","tcp_port":13001,"udp_port":13001,"state":STATE_NONE,},
}
REGION_NAME_DICT = {
0 : "Vietnam",
}
REGION_AUTH_SERVER_DICT = {
0 : {
1 : { "ip":"Censored", "port":11002, },
}
}
REGION_DICT = {
0 : {
1 : { "name" :"Metin2Sao", "channel" : SERVER01_CHANNEL_DICT, },
},
}
MARKADDR_DICT = {
10 : { "ip" : "Censored", "tcp_port" : 13002, "mark" : "10.tga", "symbol_path" : "10", },
}
TESTADDR = { "ip" : "FF0000]Censored[/color]", "tcp_port" : 50000, "udp_port" : 50000, }
import app
import constInfo
MAP_TREE2 = "MAP_TREE2"
APP_TITLE = "Metin2Sao - PvP "
BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"
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-=\[];',./`"
__IS_YMIR = "YMIR" == app.GetLocaleServiceName()
__IS_JAPAN = "JAPAN" == app.GetLocaleServiceName()
__IS_ENGLISH = "ENGLISH" == app.GetLocaleServiceName()
__IS_HONGKONG = "HONGKONG" == app.GetLocaleServiceName()
__IS_NEWCIBN = "NEWCIBN" == app.GetLocaleServiceName()
__IS_TAIWAN = "TAIWAN" == app.GetLocaleServiceName()
__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()
if __IS_TAIWAN:
__IS_HONGKONG = TRUE
if __IS_CANADA:
__IS_EUROPE = TRUE
def IsYMIR():
global __IS_YMIR
return __IS_YMIR
def IsJAPAN():
global __IS_JAPAN
return __IS_JAPAN
def IsENGLISH():
global __IS_ENGLISH
return __IS_ENGLISH
def IsHONGKONG():
global __IS_HONGKONG
return __IS_HONGKONG
def IsTAIWAN():
global __IS_TAIWAN
return __IS_TAIWAN
def IsNEWCIBN():
global __IS_NEWCIBN
return __IS_NEWCIBN
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
# SUPPORT_NEW_KOREA_SERVER
def LoadLocaleData():
if IsYMIR():
import net
SERVER = "¹«½Ö ¼¹ö"
if SERVER == net.GetServerInfo()[:len(SERVER)]:
app.SetCHEONMA(0)
app.LoadLocaleData("locale/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():
if IsYMIR():
return app.IsCHEONMA()
else:
return 0
# 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 IsJAPAN():
FN_GM_MARK = "locale/japan/effect/gm.mse"
LOCALE_FILE_NAME = "locale/japan/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 1
elif IsENGLISH():
FN_GM_MARK = "locale/english/effect/gm.mse"
LOCALE_FILE_NAME = "locale/english/locale_game.txt"
elif IsHONGKONG():
APP_TITLE = "¾Ô¯TOnline"
FN_GM_MARK = "locale/hongkong/effect/gm.mse"
LOCALE_FILE_NAME = "locale/hongkong/locale_game.txt"
elif IsNEWCIBN():
FN_GM_MARK = "locale/newcibn/effect/gm.mse"
LOCALE_FILE_NAME = "locale/newcibn/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 0
elif IsEUROPE():
FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
else:
FN_GM_MARK = "locale/ymir/effect/gm.mse"
LOCALE_FILE_NAME = "locale/ymir/locale_game.txt"
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, "ij":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 int(text) <= 0:
return backText
text = str(int(text))
if backText:
backText = " " + backText
return text + insertingText + backText
def SecondToDHM(time):
if time < 60:
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:
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,
}
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,],
]
JOBINFO_DATA_LIST = [
[
["Ÿ°í³ ¿ë¸Í°ú ±ÁÈ÷Áö ¾Ê´Â ¹«»çÀÇ",
"±â°³¸¦ »ç¶÷µéÀº ÀÏÄþî [¿ëÀÚ]¶ó°í",
"ºÎ¸¥´Ù. ¾î¶°ÇÑ À§±â¿¡¼µµ ±×µéÀº ",
"µÚ·Î ¹°·¯¼Áö ¾ÊÀ¸¸ç, ´ÙÄ¡°í ¿òÁ÷",
"À̱â Èûµç µ¿·á¸¦ À§ÇØ ´Ü½ÅÀ¸·Î",
"Àûµé°ú ¸¶ÁÖ ½Î¿ì±âµµ ÇÑ´Ù. À̵éÀº",
"Àß ´Ü·ÃµÈ ±ÙÀ°°ú Èû, °·ÂÇÑ °ø°Ý·Â",
"À¸·Î ÀüÀå ÃÖ¼±µÎ¿¡¼ °ø°ÝÁøÀ¸·Î",
"Ȱ¾àÇÑ´Ù. ",],
["°¡Àå ÀϹÝÀûÀÎ °ø°ÝÇü ¹«»ç·Î, ",
"ÀûÁ¢Àü¿¡ µû¸¥ Á÷Á¢ °ø°ÝÀ¸·Î ÀüÀå",
"¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"ÀûÁ¢Àü¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·ÂÀ» ¿Ã¸°´Ù. ¶ÇÇÑ",
"°ø°ÝÀÇ Á¤È®¼ºÀ» ³ôÀ̱â À§ÇØ ¹Îø",
"¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù.",],
["»ó´ç ¼öÁØÀÇ Á¤½Å·ÂÀ» ÀÌ¿ëÇÏ´Â",
"Áß/±Ù°Å¸® Á¢ÀüÇü ¹«»ç·Î, °¢ ±â¼ú",
"ÇϳªÇϳªÀÇ ³ôÀº °ø°Ý·ÂÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ» ¸ÞÀÎ",
"À¸·Î ½ºÅÈ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"Áß/±Ù°Å¸® °ø°ÝÀÇ Á¤È®¼º°ú ¸íÁß·üÀ»",
"À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù. ¶ÇÇÑ Á¢Àü ½Ã ",
"Àû °ø°Ý¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["ÀÚ°´Àº ¾î¶°ÇÑ »óȲ¿¡¼µµ ÀÚ½ÅÀÇ",
"¸öÀ» ¼û±â°í Àº¹ÐÇÑ ¾îµÒÀÇ ÀÓ¹«¸¦",
"¼öÇàÇÏ¸é¼ ÀüÀåÀÇ ÈÄÀ§¸¦ Áö¿øÇÏ´Â",
"ÀÚµéÀÌ´Ù. À̵éÀº ¾ÆÁÖ ºü¸£°í ½Å¼Ó",
"Çϸç, ºñÇÒ µ¥ ¾øÀÌ °ú°¨Çϰí ÀýÁ¦µÈ",
"ÇൿÀ¸·Î ÀûÀÇ ±Þ¼Ò¿¡ Ä¡¸íŸ¸¦ ³¯¸®",
"µÇ, ÀüÀå¿¡¼± ÀûÁøÀ» ÇâÇØ ¹«¼öÇÑ",
"È»ìÀ» ³»»ÕÀ¸¸ç ÀÚ½ÅÀÇ ¿ë¸ÍÀ»",
"¼±º¸ÀδÙ. "],
["µÎ¼Õ ´Ü°ËÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ½Å¼Ó",
"ÇÏ°Ô Ä¡°í ºüÁö´Â ÀÚ°´ ƯÀ¯ÀÇ ¿òÁ÷ÀÓ",
"À¸·Î ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"¹ÎøÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚ",
"ÇϵÇ, ±Ù·ÂÀ» ¿Ã·Á °ø°Ý·ÂÀ» ³ôÀδÙ.",
"¶ÇÇÑ ±ÙÁ¢Àü¿¡ µû¸¥ »ý¸í·Â/¹æ¾î·Â ",
"»ó½ÂÀ» À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["ȰÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ±ä ½Ã¾ß¿Í",
"»çÁ¤°Å¸®¿¡ µû¸¥ ¿ø°Å¸® °ø°ÝÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"°ø°Ý ¼º°ø·üÀÇ Áõ°¡¸¦ À§ÇØ ¹ÎøÀ»",
"¸ÞÀÎÀ¸·Î ¿Ã·Á¾ß Çϸç, ¿ø°Å¸®",
"°ø°ÝÀÇ µ¥¹ÌÁö Áõ°¡¸¦ À§ÇØ ±Ù·ÂÀ»",
"¿Ã¸± Çʿ䰡 ÀÖ´Ù. ¶ÇÇÑ Àûµé¿¡°Ô",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ ¹öƼ±â",
"À§ÇÑ »ý¸í·Â/¹æ¾î·Â »ó½ÂÀ» À§ÇØ",
"ü·Â¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡",
"ÀÖ´Ù. ", ],
],
[
["¼ö¶ó´Â [µ¶Àº µ¶À¸·Î]ÀÇ ¼Ó¼ºÀ¸·Î",
"â¼³µÈ Ư¼ö ¼Ó¼ºÀÇ ±ºÁ÷ÀÌ´Ù. ",
"±×µéÀº ÀüÀå¿¡¼ ÀûµéÀÇ »ç±â¸¦ ÀúÇÏ",
"½Ã۰í, ¾Ç¸¶ÀÇ ÈûÀ» ½ÇÀº ¸¶ÅºÀ¸·Î",
"ÀûÀÇ ¿µÈ¥°ú À°½ÅÀ» Áþ¹¶°µ´Ù. ¶§·Î",
"À̵éÀº ÀÚ½ÅÀÇ °Ë°ú °©¿Ê¿¡ ¾îµÒÀÇ",
"ÈûÀ» ½Ç¾î, ÀüÀå¿¡¼ ¹«»ç ¸øÁö ¾ÊÀº",
"°ø°Ý·ÂÀ» ¹ßÈÖÇϱ⵵ Çϴµ¥, ÀûµéÀ»",
"Á׿©´ë´Â±× ¸ð½ÀÀÌ ¿ö³«¿¡ ²ûÂïÇØ",
"»ç¶÷µéÀº ¼ö¶ó¸¦ ÀÏÄþî [¸¶½Å]À̶ó",
"ºÎ¸£±â¸¦ ÁÖÀú ¾É´Â´Ù."],
["ȯ¹«±ºÀÇ ¼ö¶ó´Â ¾Ç¸¶ÀÇ ¾¾¿¡¼",
"¾ò¾îÁö´Â ¸¶·ÂÀ» ¹«±â³ª ¹æ¾î±¸¿¡",
"½Ç¾î ¹«»ç ¸øÁö ¾ÊÀº ÀüÅõ·ÂÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"Áö´ÉÀÌ ³ô¾ÆÁú¼ö·Ï Âø¿ë Àåºñ¿¡",
"½Ç¸®´Â ¸¶·ÂÀÇ À§·ÂÀÌ Áõ´ëµÇ¹Ç·Î,",
"Áö´É°ú ±Ù·ÂÀ» ¸ÞÀÎÀ¸·Î ½ºÅÈ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, Á¢Àü¿¡ µû¸¥",
"»ý¸í·Â/¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ °ø°ÝÀÇ Á¤È®¼º°ú",
"ȸÇǸ¦ À§Çؼ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["Èæ¸¶±ºÀÇ ¼ö¶óµéÀº °¢Á¾ ¾îµÒÀÇ",
"ÁÖ¹®°ú ¾Ç¸¶ÀÇ ¸¶¹ýÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ¸¶¹ý °ø°ÝÀÌ",
"ÁÖÀ̹ǷΠÁö´ÉÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ¿ø°Å¸® ¸¶¹ý",
"°ø°ÝÀÇ Á¤È®¼ºÀ» À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù.",
"¶ÇÇÑ Æ÷À§ µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["¹«´çÀº ¿ë½Å°ú ÀÚ¿¬, µÎ °í´ëÀÇ",
"ÈûÀ» ´Ù·ê ¼ö ÀÖ´Â À¯ÀÏÇÑ Á÷Á¾ÀÌ´Ù.",
"±×µéÀº ÈĹ濡¼ ¾Æ±ºÀ» º¸Á¶Çϰí",
"´ÙÄ£ µ¿·áÀÇ ºÎ»óÀ» ȸº¹ ½Ã۸ç",
"¶³¾îÁø »ç±â¸¦ »ó½Â½ÃŲ´Ù. ±×µéÀº",
"¾Æ±ºÀÇ ¼ö¸é°ú ÈÞ½ÄÀ» ¹æÇØÇÏ´Â ÀÚ¸¦ ",
"Àý´ë ¿ë¼ÇÏÁö ¾ÊÀ¸¸ç, ±×·± ÀÚµé",
"¿¡°Ô´Â ÇÑ Á¡ ÁÖÀú ¾øÀÌ ÁÖ¹®À»",
"ÅÍÆ®·Á ±× ºñ°ÌÇÔÀ» ¾öÈ÷ ¡°èÇÑ´Ù.",],
["õ·æ±ºÀÇ ¹«´çµéÀº °¢Á¾ ºÎÀû¼ú°ú",
"º¸Á¶ÁÖ¹®¿¡ ´ÉÇϸç, ÀûÀÇ Á÷ / °£Á¢",
"°ø°ÝÀ¸·ÎºÎÅÍ ¾Æ±ºÀ» ÁöŲ´Ù. ±ºÁ÷",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["±¤·Ú±ºÀÇ ¹«´çµéÀº ÀÚ¿¬ÀÇ ÈûÀ»",
"ºô·Á ¾Æ±ºÀ» ȸº¹Çϰí, ³ú½ÅÀÇ ",
"ÈûÀ¸·Î ¹ÐÁýÇÑ Àûµé¿¡°Ô Å« Ãæ°ÝÀ»",
"ÀÔÈú ¼ö ÀÖ´Â À̵éÀÌ´Ù. ±ºÁ÷ÀÇ",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. "],
],
]
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,
}
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 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 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) + "¾ò¾ú½À´Ï´Ù!"
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 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
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
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 + "ÉϹ³ÁË¡£"
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
elif IsEUROPE():
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)
import constInfo
MAP_TREE2 = "MAP_TREE2"
APP_TITLE = "Metin2Sao - PvP "
BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"
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-=\[];',./`"
__IS_YMIR = "YMIR" == app.GetLocaleServiceName()
__IS_JAPAN = "JAPAN" == app.GetLocaleServiceName()
__IS_ENGLISH = "ENGLISH" == app.GetLocaleServiceName()
__IS_HONGKONG = "HONGKONG" == app.GetLocaleServiceName()
__IS_NEWCIBN = "NEWCIBN" == app.GetLocaleServiceName()
__IS_TAIWAN = "TAIWAN" == app.GetLocaleServiceName()
__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()
if __IS_TAIWAN:
__IS_HONGKONG = TRUE
if __IS_CANADA:
__IS_EUROPE = TRUE
def IsYMIR():
global __IS_YMIR
return __IS_YMIR
def IsJAPAN():
global __IS_JAPAN
return __IS_JAPAN
def IsENGLISH():
global __IS_ENGLISH
return __IS_ENGLISH
def IsHONGKONG():
global __IS_HONGKONG
return __IS_HONGKONG
def IsTAIWAN():
global __IS_TAIWAN
return __IS_TAIWAN
def IsNEWCIBN():
global __IS_NEWCIBN
return __IS_NEWCIBN
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
# SUPPORT_NEW_KOREA_SERVER
def LoadLocaleData():
if IsYMIR():
import net
SERVER = "¹«½Ö ¼¹ö"
if SERVER == net.GetServerInfo()[:len(SERVER)]:
app.SetCHEONMA(0)
app.LoadLocaleData("locale/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():
if IsYMIR():
return app.IsCHEONMA()
else:
return 0
# 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 IsJAPAN():
FN_GM_MARK = "locale/japan/effect/gm.mse"
LOCALE_FILE_NAME = "locale/japan/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 1
elif IsENGLISH():
FN_GM_MARK = "locale/english/effect/gm.mse"
LOCALE_FILE_NAME = "locale/english/locale_game.txt"
elif IsHONGKONG():
APP_TITLE = "¾Ô¯TOnline"
FN_GM_MARK = "locale/hongkong/effect/gm.mse"
LOCALE_FILE_NAME = "locale/hongkong/locale_game.txt"
elif IsNEWCIBN():
FN_GM_MARK = "locale/newcibn/effect/gm.mse"
LOCALE_FILE_NAME = "locale/newcibn/locale_game.txt"
constInfo.IN_GAME_SHOP_ENABLE = 0
elif IsEUROPE():
FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
else:
FN_GM_MARK = "locale/ymir/effect/gm.mse"
LOCALE_FILE_NAME = "locale/ymir/locale_game.txt"
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, "ij":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 int(text) <= 0:
return backText
text = str(int(text))
if backText:
backText = " " + backText
return text + insertingText + backText
def SecondToDHM(time):
if time < 60:
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:
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,
}
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,],
]
JOBINFO_DATA_LIST = [
[
["Ÿ°í³ ¿ë¸Í°ú ±ÁÈ÷Áö ¾Ê´Â ¹«»çÀÇ",
"±â°³¸¦ »ç¶÷µéÀº ÀÏÄþî [¿ëÀÚ]¶ó°í",
"ºÎ¸¥´Ù. ¾î¶°ÇÑ À§±â¿¡¼µµ ±×µéÀº ",
"µÚ·Î ¹°·¯¼Áö ¾ÊÀ¸¸ç, ´ÙÄ¡°í ¿òÁ÷",
"À̱â Èûµç µ¿·á¸¦ À§ÇØ ´Ü½ÅÀ¸·Î",
"Àûµé°ú ¸¶ÁÖ ½Î¿ì±âµµ ÇÑ´Ù. À̵éÀº",
"Àß ´Ü·ÃµÈ ±ÙÀ°°ú Èû, °·ÂÇÑ °ø°Ý·Â",
"À¸·Î ÀüÀå ÃÖ¼±µÎ¿¡¼ °ø°ÝÁøÀ¸·Î",
"Ȱ¾àÇÑ´Ù. ",],
["°¡Àå ÀϹÝÀûÀÎ °ø°ÝÇü ¹«»ç·Î, ",
"ÀûÁ¢Àü¿¡ µû¸¥ Á÷Á¢ °ø°ÝÀ¸·Î ÀüÀå",
"¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"ÀûÁ¢Àü¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·ÂÀ» ¿Ã¸°´Ù. ¶ÇÇÑ",
"°ø°ÝÀÇ Á¤È®¼ºÀ» ³ôÀ̱â À§ÇØ ¹Îø",
"¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù.",],
["»ó´ç ¼öÁØÀÇ Á¤½Å·ÂÀ» ÀÌ¿ëÇÏ´Â",
"Áß/±Ù°Å¸® Á¢ÀüÇü ¹«»ç·Î, °¢ ±â¼ú",
"ÇϳªÇϳªÀÇ ³ôÀº °ø°Ý·ÂÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ» ¸ÞÀÎ",
"À¸·Î ½ºÅÈ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
"Áß/±Ù°Å¸® °ø°ÝÀÇ Á¤È®¼º°ú ¸íÁß·üÀ»",
"À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù. ¶ÇÇÑ Á¢Àü ½Ã ",
"Àû °ø°Ý¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
"È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["ÀÚ°´Àº ¾î¶°ÇÑ »óȲ¿¡¼µµ ÀÚ½ÅÀÇ",
"¸öÀ» ¼û±â°í Àº¹ÐÇÑ ¾îµÒÀÇ ÀÓ¹«¸¦",
"¼öÇàÇÏ¸é¼ ÀüÀåÀÇ ÈÄÀ§¸¦ Áö¿øÇÏ´Â",
"ÀÚµéÀÌ´Ù. À̵éÀº ¾ÆÁÖ ºü¸£°í ½Å¼Ó",
"Çϸç, ºñÇÒ µ¥ ¾øÀÌ °ú°¨Çϰí ÀýÁ¦µÈ",
"ÇൿÀ¸·Î ÀûÀÇ ±Þ¼Ò¿¡ Ä¡¸íŸ¸¦ ³¯¸®",
"µÇ, ÀüÀå¿¡¼± ÀûÁøÀ» ÇâÇØ ¹«¼öÇÑ",
"È»ìÀ» ³»»ÕÀ¸¸ç ÀÚ½ÅÀÇ ¿ë¸ÍÀ»",
"¼±º¸ÀδÙ. "],
["µÎ¼Õ ´Ü°ËÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ½Å¼Ó",
"ÇÏ°Ô Ä¡°í ºüÁö´Â ÀÚ°´ ƯÀ¯ÀÇ ¿òÁ÷ÀÓ",
"À¸·Î ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"¹ÎøÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚ",
"ÇϵÇ, ±Ù·ÂÀ» ¿Ã·Á °ø°Ý·ÂÀ» ³ôÀδÙ.",
"¶ÇÇÑ ±ÙÁ¢Àü¿¡ µû¸¥ »ý¸í·Â/¹æ¾î·Â ",
"»ó½ÂÀ» À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["ȰÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ±ä ½Ã¾ß¿Í",
"»çÁ¤°Å¸®¿¡ µû¸¥ ¿ø°Å¸® °ø°ÝÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"°ø°Ý ¼º°ø·üÀÇ Áõ°¡¸¦ À§ÇØ ¹ÎøÀ»",
"¸ÞÀÎÀ¸·Î ¿Ã·Á¾ß Çϸç, ¿ø°Å¸®",
"°ø°ÝÀÇ µ¥¹ÌÁö Áõ°¡¸¦ À§ÇØ ±Ù·ÂÀ»",
"¿Ã¸± Çʿ䰡 ÀÖ´Ù. ¶ÇÇÑ Àûµé¿¡°Ô",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ ¹öƼ±â",
"À§ÇÑ »ý¸í·Â/¹æ¾î·Â »ó½ÂÀ» À§ÇØ",
"ü·Â¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡",
"ÀÖ´Ù. ", ],
],
[
["¼ö¶ó´Â [µ¶Àº µ¶À¸·Î]ÀÇ ¼Ó¼ºÀ¸·Î",
"â¼³µÈ Ư¼ö ¼Ó¼ºÀÇ ±ºÁ÷ÀÌ´Ù. ",
"±×µéÀº ÀüÀå¿¡¼ ÀûµéÀÇ »ç±â¸¦ ÀúÇÏ",
"½Ã۰í, ¾Ç¸¶ÀÇ ÈûÀ» ½ÇÀº ¸¶ÅºÀ¸·Î",
"ÀûÀÇ ¿µÈ¥°ú À°½ÅÀ» Áþ¹¶°µ´Ù. ¶§·Î",
"À̵éÀº ÀÚ½ÅÀÇ °Ë°ú °©¿Ê¿¡ ¾îµÒÀÇ",
"ÈûÀ» ½Ç¾î, ÀüÀå¿¡¼ ¹«»ç ¸øÁö ¾ÊÀº",
"°ø°Ý·ÂÀ» ¹ßÈÖÇϱ⵵ Çϴµ¥, ÀûµéÀ»",
"Á׿©´ë´Â±× ¸ð½ÀÀÌ ¿ö³«¿¡ ²ûÂïÇØ",
"»ç¶÷µéÀº ¼ö¶ó¸¦ ÀÏÄþî [¸¶½Å]À̶ó",
"ºÎ¸£±â¸¦ ÁÖÀú ¾É´Â´Ù."],
["ȯ¹«±ºÀÇ ¼ö¶ó´Â ¾Ç¸¶ÀÇ ¾¾¿¡¼",
"¾ò¾îÁö´Â ¸¶·ÂÀ» ¹«±â³ª ¹æ¾î±¸¿¡",
"½Ç¾î ¹«»ç ¸øÁö ¾ÊÀº ÀüÅõ·ÂÀ¸·Î",
"ÀüÀå¿¡¼ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
"Áö´ÉÀÌ ³ô¾ÆÁú¼ö·Ï Âø¿ë Àåºñ¿¡",
"½Ç¸®´Â ¸¶·ÂÀÇ À§·ÂÀÌ Áõ´ëµÇ¹Ç·Î,",
"Áö´É°ú ±Ù·ÂÀ» ¸ÞÀÎÀ¸·Î ½ºÅÈ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, Á¢Àü¿¡ µû¸¥",
"»ý¸í·Â/¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ °ø°ÝÀÇ Á¤È®¼º°ú",
"ȸÇǸ¦ À§Çؼ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["Èæ¸¶±ºÀÇ ¼ö¶óµéÀº °¢Á¾ ¾îµÒÀÇ",
"ÁÖ¹®°ú ¾Ç¸¶ÀÇ ¸¶¹ýÀ¸·Î ÀüÀå¿¡¼",
"Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ¸¶¹ý °ø°ÝÀÌ",
"ÁÖÀ̹ǷΠÁö´ÉÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ¿ø°Å¸® ¸¶¹ý",
"°ø°ÝÀÇ Á¤È®¼ºÀ» À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù.",
"¶ÇÇÑ Æ÷À§ µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ",
"Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
],
[
["¹«´çÀº ¿ë½Å°ú ÀÚ¿¬, µÎ °í´ëÀÇ",
"ÈûÀ» ´Ù·ê ¼ö ÀÖ´Â À¯ÀÏÇÑ Á÷Á¾ÀÌ´Ù.",
"±×µéÀº ÈĹ濡¼ ¾Æ±ºÀ» º¸Á¶Çϰí",
"´ÙÄ£ µ¿·áÀÇ ºÎ»óÀ» ȸº¹ ½Ã۸ç",
"¶³¾îÁø »ç±â¸¦ »ó½Â½ÃŲ´Ù. ±×µéÀº",
"¾Æ±ºÀÇ ¼ö¸é°ú ÈÞ½ÄÀ» ¹æÇØÇÏ´Â ÀÚ¸¦ ",
"Àý´ë ¿ë¼ÇÏÁö ¾ÊÀ¸¸ç, ±×·± ÀÚµé",
"¿¡°Ô´Â ÇÑ Á¡ ÁÖÀú ¾øÀÌ ÁÖ¹®À»",
"ÅÍÆ®·Á ±× ºñ°ÌÇÔÀ» ¾öÈ÷ ¡°èÇÑ´Ù.",],
["õ·æ±ºÀÇ ¹«´çµéÀº °¢Á¾ ºÎÀû¼ú°ú",
"º¸Á¶ÁÖ¹®¿¡ ´ÉÇϸç, ÀûÀÇ Á÷ / °£Á¢",
"°ø°ÝÀ¸·ÎºÎÅÍ ¾Æ±ºÀ» ÁöŲ´Ù. ±ºÁ÷",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
["±¤·Ú±ºÀÇ ¹«´çµéÀº ÀÚ¿¬ÀÇ ÈûÀ»",
"ºô·Á ¾Æ±ºÀ» ȸº¹Çϰí, ³ú½ÅÀÇ ",
"ÈûÀ¸·Î ¹ÐÁýÇÑ Àûµé¿¡°Ô Å« Ãæ°ÝÀ»",
"ÀÔÈú ¼ö ÀÖ´Â À̵éÀÌ´Ù. ±ºÁ÷ÀÇ",
"Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
"¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
"Æ÷À§µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
"»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
"¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
"Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
"ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. "],
],
]
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,
}
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 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 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) + "¾ò¾ú½À´Ï´Ù!"
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 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
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
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 + "ÉϹ³ÁË¡£"
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
elif IsEUROPE():
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)
Ultima oară modificat 20 Mar 2015, 11:14 de către felixutzu, modificat 1 dată în total.
Onanana
Afișează semnătura
- TerrorSquad
- Nivel 1

- felixutzu
- Nivel 2

- Mesaje: 171
- Membru din: 31 Iul 2014, 06:44
- Server: www.metin2bacau.com
- Regat: Chunjo
- Aprecieri: 38
- Mulţumiri: 2
- Contact:
- AlexTzutzu
- Nivel 10

Pai in root>serverinfo.py la linia acel Metin2Sao este numele de sub minimap
Cod: Selectaţi tot
REGION_DICT = {
0 : {
1 : { "name" :"Metin2Sao", "channel" : SERVER01_CHANNEL_DICT, },
},
The quieter you become,the more you are able to hear.
Afișează semnătura
- felixutzu
- Nivel 2

- Mesaje: 171
- Membru din: 31 Iul 2014, 06:44
- Server: www.metin2bacau.com
- Regat: Chunjo
- Aprecieri: 38
- Mulţumiri: 2
- Contact:
- AlexTzutzu
- Nivel 10

poate ai schimbat login interface schimbat si daia ca tu degeaba il schimbi din serverinfo.py ca el mai este si in acel login interface.Uita-te daca ai login interface schimbat si posteaza o poza cu cel nou ca sa imi dau seama de care este.
Cauta in root>intrologin.py(daca il ai cauta in el)
Cauta in root>intrologin.py(daca il ai cauta in el)
Cod: Selectaţi tot
SERVERNAME = "Server-ch1"
The quieter you become,the more you are able to hear.
Afișează semnătura
- raraseedy
- Nivel 1

Răspunsuri
7 Vizualizări
508
7 Vizualizări
508
Răspunsuri
6 Vizualizări
1065
6 Vizualizări
1065
Înapoi la “Probleme rezolvate”
Mergi la
- Comunitate
- ↳ Forumul Just4Metin
- ↳ Începători
- ↳ Prezentare membri
- ↳ Noutăţi
- ↳ Echipă
- ↳ Cunoaşte echipa
- ↳ Arhivă
- ↳ Anunţuri Oficiale
- ↳ Concursuri și Tombole
- Resurse şi informaţii servere metin2
- ↳ Ghiduri şi Tutoriale
- ↳ Ghiduri Joc
- ↳ Arhivă
- ↳ Resurse Metin2
- ↳ Serverfiles
- ↳ Serverfiles Clean
- ↳ Client-uri
- ↳ Interfete client
- ↳ Surse
- ↳ Harți
- ↳ Autopatcher
- ↳ Aplicații utile
- ↳ Altele
- ↳ Arhivă
- ↳ Dezvoltare server
- ↳ Quest-uri
- ↳ FreeBSD
- ↳ Securitate și protecție hackuri
- ↳ Arhivă
- ↳ Modele 3D
- ↳ Costume
- ↳ Arme
- ↳ Armuri
- ↳ Mobi
- ↳ Npc-uri
- ↳ Pet-uri
- ↳ Mounturi
- ↳ Eșarfe
- ↳ Frizuri
- ↳ Obiecte
- ↳ Efecte
- ↳ Pietre Metin
- ↳ Animații GR2
- ↳ Altele
- ↳ Pachet resurse
- ↳ Arhivă
- ↳ Web Scripting
- ↳ Homepage-uri Premium
- ↳ Homepage-uri Gratuite
- ↳ Tutoriale scripting
- ↳ Întrebări şi probleme
- ↳ Arhivă
- ↳ Probleme Rezolvate
- ↳ Index/Intro Page
- ↳ Arhivă
- Metin2
- ↳ Servere Certificate
- ↳ Obține Certificat
- ↳ Arhivă
- ↳ Servere Private
- ↳ Arhivă
- ↳ Servere Private - aflate în faza de proiect
- ↳ Videoclipuri Metin2
- ↳ Arhivă
- Zona ajutor
- ↳ Probleme şi Întrebări
- ↳ Arhivă Probleme şi Întrebări
- ↳ Probleme rezolvate
- ↳ Cereri
- ↳ Arhivă
- ↳ Cereri Rezolvate
- Mica publicitate
- ↳ Anunturi diverse
- ↳ Arhivă
- ↳ Intermediari
- ↳ Servicii si vanzari Metin2
- ↳ Servicii
- ↳ Serverfile si surse
- ↳ Sisteme si coduri
- ↳ Web Scripting si Design
- ↳ 3d Models
- ↳ Arhiva
- ↳ Firme de Hosting
- ↳ Reclamații
- ↳ Contestatii sau rezolvari reclamatii si conturi blocate
- Diverse
- ↳ Discuţii diverse
- ↳ Arhivă
- ↳ Zile de naștere
- ↳ Hobby-uri
- ↳ Seriale
- ↳ Filme
- ↳ Sport
- ↳ Foto/video
- ↳ Calatorii
- ↳ Alte hobby-uri
- ↳ Jocuri
- ↳ Jocuri PC
- ↳ League of Legends
- ↳ World of Warcraft
- ↳ Grand Theft Auto
- ↳ DayZ
- ↳ Minecraft
- ↳ Counter-Strike
- ↳ Alte jocuri
- ↳ Jocuri Console
- ↳ Software
- ↳ Distracţie/Divertisment
- ↳ Filmuleţe amuzante
- ↳ Muzică
- ↳ Bancuri
- ↳ Spam
- ↳ Arhivă
- ↳ Grafică
- ↳ Arhivă
- ↳ Cereri
- ↳ Subiecte vechi
- ↳ Cereri avatare
- ↳ Cereri semnături
- ↳ Portofolii
- ↳ Bătălii
- ↳ Bătălii Finalizate
- ↳ Tutoriale
- ↳ Resurse
- ↳ Cadouri
- Topicuri şi mesaje şterse
- ↳ Arhivă
- ↳ Imagini şi videoclipuri
- ↳ Discuţii generale
- ↳ Bug-uri (Erori)
- ↳ Reclamaţii
- ↳ Reclamaţii jucători
- ↳ Reclamaţii echipă
- ↳ Deblocare cont
- ↳ Punct de negoţ
- ↳ Vânzări
- ↳ Cumpărări
- ↳ Idei şi sugestii
- ↳ Cerere Moderator
- ↳ Arhivă
- ↳ Metin2 - Site-ul serverului.
- ↳ Punct de negoţ
- ↳ Vânzări
- ↳ Cumpărări
- ↳ Probleme şi întrebări
- ↳ Idei şi sugestii
- ↳ Metin2 - Loc Liber
- ↳ Anunţuri şi Noutăţi
- ↳ Loc Liber- Facebook
- ↳ Reclamaţii
- ↳ Reclamaţii jucători
- ↳ Reclamaţii echipă
- ↳ Bug-uri (Erori)
- ↳ Prezentări
- ↳ Prezentare breaslă
- ↳ Imagini şi videoclipuri
- ↳ Contestaţii
- ↳ Discuţii generale
- ↳ Arhivă
- ↳ Cerere Moderator
- Clubul Just4Metin
- ↳ Clubul Just4Metin - Alătură-te nouă
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 6 vizitatori

