Advertisement
Guest User

Untitled

a guest
Feb 16th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.83 KB | None | 0 0
  1. import app
  2. import constInfo
  3.  
  4. MAP_TRENT02 = "MAP_TRENT02" # ŔÓ˝Ă
  5. MAP_WL = "MAP_WL" # ŔÓ˝Ă
  6. MAP_NUSLUCK = "MAP_NUSLUCK" # ŔÓ˝Ă
  7. MAP_TREE2 = "MAP_TREE2"
  8.  
  9. BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
  10. BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"
  11.  
  12. APP_TITLE = "Zoria 2"
  13.  
  14. GUILD_HEADQUARTER = "Main Building"
  15. GUILD_FACILITY = "Facility"
  16. GUILD_OBJECT = "Object"
  17. GUILD_MEMBER_COUNT_INFINITY = "INFINITY"
  18.  
  19. LOGIN_FAILURE_WEB_BLOCK = "BLOCK_LOGIN(WEB)"
  20. LOGIN_FAILURE_BLOCK_LOGIN = "BLOCK_LOGIN"
  21. CHANNEL_NOTIFY_FULL = "CHANNEL_NOTIFY_FULL"
  22.  
  23. GUILD_BUILDING_LIST_TXT = app.GetLocalePath() + "/GuildBuildingList.txt"
  24.  
  25. GUILD_MARK_MIN_LEVEL = "3"
  26. GUILD_MARK_NOT_ENOUGH_LEVEL = "±ćµĺ·ąş§ 3ŔĚ»ó şÎĹÍ °ˇ´ÉÇŐ´Ď´Ů."
  27.  
  28. ERROR_MARK_UPLOAD_NEED_RECONNECT = "UploadMark: Reconnect to game"
  29. ERROR_MARK_CHECK_NEED_RECONNECT = "CheckMark: Reconnect to game"
  30.  
  31. VIRTUAL_KEY_ALPHABET_LOWERS = r"[1234567890]/qwertyuiop\=asdfghjkl;`'zxcvbnm.,"
  32. VIRTUAL_KEY_ALPHABET_UPPERS = r'{1234567890}?QWERTYUIOP|+ASDFGHJKL:~"ZXCVBNM<>'
  33. VIRTUAL_KEY_SYMBOLS = '!@#$%^&*()_+|{}:"<>?~'
  34. VIRTUAL_KEY_NUMBERS = "1234567890-=\[];',./`"
  35. VIRTUAL_KEY_SYMBOLS_BR = '!@#$%^&*()_+|{}:"<>?~áŕăâéčęíěóňôőúůç'
  36.  
  37. __IS_ENGLISH = "ENGLISH" == app.GetLocaleServiceName()
  38. __IS_HONGKONG = "HONGKONG" == app.GetLocaleServiceName()
  39. __IS_NEWCIBN = "locale/newcibn" == app.GetLocalePath()
  40. __IS_EUROPE = "EUROPE" == app.GetLocaleServiceName()
  41. __IS_CANADA = "locale/ca" == app.GetLocalePath()
  42. __IS_BRAZIL = "locale/br" == app.GetLocalePath()
  43. __IS_SINGAPORE = "locale/sg" == app.GetLocalePath()
  44. __IS_VIETNAM = "locale/vn" == app.GetLocalePath()
  45. __IS_ARABIC = "locale/ae" == app.GetLocalePath()
  46. __IS_CIBN10 = "locale/cibn10" == app.GetLocalePath()
  47. __IS_WE_KOREA = "locale/we_korea" == app.GetLocalePath()
  48. __IS_TAIWAN = "locale/taiwan" == app.GetLocalePath()
  49. __IS_JAPAN = "locale/japan" == app.GetLocalePath()
  50.  
  51. if __IS_CANADA:
  52. __IS_EUROPE = TRUE
  53.  
  54. def IsYMIR():
  55. return "locale/ymir" == app.GetLocalePath()
  56.  
  57. def IsJAPAN():
  58. return "locale/japan" == app.GetLocalePath()
  59.  
  60. def IsENGLISH():
  61. global __IS_ENGLISH
  62. return __IS_ENGLISH
  63.  
  64. def IsHONGKONG():
  65. global __IS_HONGKONG
  66. return __IS_HONGKONG
  67.  
  68. def IsTAIWAN():
  69. return "locale/taiwan" == app.GetLocalePath()
  70.  
  71. def IsNEWCIBN():
  72. return "locale/newcibn" == app.GetLocalePath()
  73.  
  74. def IsCIBN10():
  75. global __IS_CIBN10
  76. return __IS_CIBN10
  77.  
  78. def IsEUROPE():
  79. global __IS_EUROPE
  80. return __IS_EUROPE
  81.  
  82. def IsCANADA():
  83. global __IS_CANADA
  84. return __IS_CANADA
  85.  
  86. def IsBRAZIL():
  87. global __IS_BRAZIL
  88. return __IS_BRAZIL
  89.  
  90. def IsVIETNAM():
  91. global __IS_VIETNAM
  92. return __IS_VIETNAM
  93.  
  94. def IsSINGAPORE():
  95. global __IS_SINGAPORE
  96. return __IS_SINGAPORE
  97.  
  98. def IsARABIC():
  99. global __IS_ARABIC
  100. return __IS_ARABIC
  101.  
  102. def IsWE_KOREA():
  103. return "locale/we_korea" == app.GetLocalePath()
  104.  
  105. # SUPPORT_NEW_KOREA_SERVER
  106. def LoadLocaleData():
  107. if IsYMIR():
  108. import net
  109. SERVER = "Äčµµ Ľ­ąö"
  110. if SERVER == net.GetServerInfo()[:len(SERVER)]:
  111. app.SetCHEONMA(0)
  112. app.LoadLocaleData("locale/we_korea")
  113. constInfo.ADD_DEF_BONUS_ENABLE = 0
  114. else:
  115. app.SetCHEONMA(1)
  116. app.LoadLocaleData("locale/ymir")
  117. constInfo.ADD_DEF_BONUS_ENABLE = 1
  118. else:
  119. app.LoadLocaleData(app.GetLocalePath())
  120.  
  121. def IsCHEONMA():
  122. return IsYMIR() # ŔĚÁ¦ YMIR ·ÎÄÉŔĎŔş ą«Á¶°Ç õ¸¶Ľ­ąöŔÓ. õ¸¶Ľ­ąö°ˇ ą®Ŕ» ´Ý±â Ŕü±îÁö şŻÇŇ ŔĎ ľřŔ˝.
  123.  
  124. # END_OF_SUPPORT_NEW_KOREA_SERVER
  125.  
  126. def mapping(**kwargs): return kwargs
  127.  
  128. def SNA(text):
  129. def f(x):
  130. return text
  131. return f
  132.  
  133. def SA(text):
  134. def f(x):
  135. return text % x
  136. return f
  137.  
  138. def LoadLocaleFile(srcFileName, localeDict):
  139.  
  140. funcDict = {"SA":SA, "SNA":SNA}
  141.  
  142. lineIndex = 1
  143.  
  144. try:
  145. lines = pack_open(srcFileName, "r").readlines()
  146. except IOError:
  147. import dbg
  148. dbg.LogBox("LoadLocaleError(%(srcFileName)s)" % locals())
  149. app.Abort()
  150.  
  151. for line in lines:
  152. try:
  153. tokens = line[:-1].split("\t")
  154. if len(tokens) == 2:
  155. localeDict[tokens[0]] = tokens[1]
  156. elif len(tokens) >= 3:
  157. type = tokens[2].strip()
  158. if type:
  159. localeDict[tokens[0]] = funcDict[type](tokens[1])
  160. else:
  161. localeDict[tokens[0]] = tokens[1]
  162. else:
  163. raise RuntimeError, "Unknown TokenSize"
  164.  
  165. lineIndex += 1
  166. except:
  167. import dbg
  168. dbg.LogBox("%s: line(%d): %s" % (srcFileName, lineIndex, line), "Error")
  169. raise
  170.  
  171.  
  172.  
  173. all = ["locale","error"]
  174.  
  175. if IsEUROPE() and IsBRAZIL() :
  176. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  177. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  178. constInfo.IN_GAME_SHOP_ENABLE = 0
  179. elif IsSINGAPORE() :
  180. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  181. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  182. constInfo.IN_GAME_SHOP_ENABLE = 0
  183. elif IsNEWCIBN() :
  184. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  185. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  186. constInfo.IN_GAME_SHOP_ENABLE = 0
  187. elif IsTAIWAN():
  188. APP_TITLE = "°«III°ę"
  189. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  190. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  191.  
  192. constInfo.IN_GAME_SHOP_ENABLE = 1
  193. elif IsJAPAN():
  194. APP_TITLE = "CRUEL WAR - Return of the Metin2"
  195. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  196. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  197.  
  198. constInfo.IN_GAME_SHOP_ENABLE = 1
  199. else:
  200. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  201. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  202.  
  203. constInfo.IN_GAME_SHOP_ENABLE = 1
  204.  
  205. LoadLocaleFile(LOCALE_FILE_NAME, locals())
  206.  
  207. ########################################################################################################
  208. ## NOTE : ľĆŔĚĹŰŔ» ąö¸±¶§ "ą«ľůŔ»/¸¦ ąö¸®˝Ă°Ú˝Ŕ´Ď±î?" ą®ŔÚż­ŔÇ Á¶»ç Ľ±ĹĂŔ» Ŕ§ÇŃ ÄÚµĺ
  209. dictSingleWord = {
  210. "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,
  211. }
  212.  
  213. dictDoubleWord = {
  214. "°ˇ":1, "°Ľ":1, "°Ĺ":1, "°Ü":1, "°í":1, "±ł":1, "±¸":1, "±Ô":1, "±×":1, "±â":1, "°ł":1, "°Â":1, "°Ô":1, "°č":1, "°ú":1, "±Ą":1, "±Ĺ":1, "±Ë":1, "±«":1, "±Í":1, "±á":1,
  215. "±î":1, "˛Ą":1, "˛¨":1, "˛¸":1, "˛ż":1, "˛Ř":1, "˛Ů":1, "˛ó":1, "˛ô":1, "ł˘":1, "±ú":1, "ƒĆ":1, "˛˛":1, "˛ľ":1, "˛Ę":1, "˛Ď":1, "˛ă":1, "˛ç":1, "˛Ň":1, "˛î":1, "…Ę":1,
  216. "łŞ":1, "łÄ":1, "łĘ":1, "łŕ":1, "łë":1, "´˘":1, "´©":1, "´ş":1, "´Ŕ":1, "´Ď":1, "ł»":1, "†v":1, "ł×":1, "łé":1, "łö":1, "‡R":1, "´˛":1, "´´":1, "łú":1, "´µ":1, "´Ě":1,
  217. "´Ů":1, "´ô":1, "´ő":1, "µ®":1, "µµ":1, "µÍ":1, "µÎ":1, "µŕ":1, "µĺ":1, "µđ":1, "´ë":1, "ˆŰ":1, "µĄ":1, "µł":1, "µÂ":1, "µĹ":1, "µÖ":1, "µŘ":1, "µÇ":1, "µÚ":1, "µď":1,
  218. "µű":1, "‹x":1, "¶°":1, "¶Ĺ":1, "¶Ç":1, "ŚĂ":1, "¶Ń":1, "ŤŹ":1, "¶ß":1, "¶ě":1, "¶§":1, "‹š":1, "¶Ľ":1, "‹ó":1, "¶Ě":1, "¶Î":1, "Śô":1, "¶Ř":1, "¶Ď":1, "¶Ů":1, "¶ç":1,
  219. "¶ó":1, "·Ş":1, "·Ż":1, "·Á":1, "·Î":1, "·á":1, "·ç":1, "·ů":1, "¸Ł":1, "¸®":1, "·ˇ":1, "Žm":1, "·ą":1, "·Ę":1, "·Ö":1, "ŹO":1, "·ď":1, "·ń":1, "·Ú":1, "·ň":1, "l":1,
  220. "¸¶":1, "¸Ď":1, "¸Ó":1, "¸ç":1, "¸đ":1, "ą¦":1, "ą«":1, "ąÂ":1, "ąÇ":1, "ąĚ":1, "¸Ĺ":1, "Ů":1, "¸Ţ":1, "¸ď":1, "¸ú":1, "‘Ŕ":1, "ąą":1, "ąľ":1, "¸ţ":1, "ąż":1, "’Ţ":1,
  221. "ąŮ":1, "ąň":1, "ąö":1, "ş­":1, "ş¸":1, "şĚ":1, "şÎ":1, "şä":1, "şę":1, "şń":1, "ąč":1, "“Ž":1, "şŁ":1, "ş¶":1, "şÁ":1, "şÄ":1, "şŰ":1, "şŢ":1, "şĆ":1, "şß":1, "•‘":1,
  222. "şü":1, "»˛":1, "»µ":1, "»Ŕ":1, "»Ç":1, "»Ď":1, "»Ń":1, "»Ř":1, "»Ú":1, "»ß":1, "»©":1, "•ű":1, "»ľ":1, "–§":1, "–Ř":1, "–ô":1, "—¨":1, "—Ä":1, "»Î":1, "—ŕ":1, "˜u":1,
  223. "»ç":1, "»ţ":1, "Ľ­":1, "ĽĹ":1, "ĽŇ":1, "Ľî":1, "Ľö":1, "˝´":1, "˝ş":1, "˝Ă":1, "»ő":1, "Ľ¨":1, "ĽĽ":1, "ĽÎ":1, "ĽÝ":1, "Ľâ":1, "˝¤":1, "˝¦":1, "Ľč":1, "˝¬":1, "šĂ":1,
  224. "˝Î":1, "›X":1, "˝á":1, "›Ç":1, "˝î":1, "ľ¤":1, "ľĄ":1, "ťo":1, "ľ˛":1, "ľľ":1, "˝Ř":1, "›y":1, "˝ę":1, "›ă":1, "˝÷":1, "˝ű":1, "ľ¬":1, "ľ®":1, "˝ý":1, "ľŻ":1, "ľş":1,
  225. "ľĆ":1, "ľß":1, "ľî":1, "ż©":1, "żŔ":1, "żä":1, "żě":1, "ŔŻ":1, "Ŕ¸":1, "ŔĚ":1, "ľÖ":1, "ľę":1, "żˇ":1, "żą":1, "żÍ":1, "żÖ":1, "żö":1, "żţ":1, "żÜ":1, "Ŕ§":1, "ŔÇ":1,
  226. "ŔÚ":1, "Ŕđ":1, "Ŕú":1, "Á®":1, "Á¶":1, "ÁŇ":1, "ÁÖ":1, "Áę":1, "Áî":1, "Áö":1, "Ŕç":1, "Ŕ÷":1, "Á¦":1, "Áµ":1, "ÁÂ":1, "ÁČ":1, "Áŕ":1, "Áâ":1, "ÁË":1, "Áă":1, "Łp":1,
  227. "ÂĄ":1, "Âą":1, "ÂĽ":1, "ÂÇ":1, "ÂÉ":1, "§c":1, "ÂŢ":1, "Âé":1, "Âę":1, "Âî":1, "°":1, "¤Š":1, "ÂĹ":1, "Ą™":1, "ÂŇ":1, "ÂÖ":1, "Âĺ":1, "¨R":1, "ÂŘ":1, "Âč":1, "©n":1,
  228. "Â÷":1, "Ă­":1, "Ăł":1, "ĂÄ":1, "ĂĘ":1, "ĂÝ":1, "Ăß":1, "Ăň":1, "Ă÷":1, "ġ":1, "ä":1, "މ":1, "ĂĽ":1, "ĂÇ":1, "ĂŇ":1, "¬‚":1, "Ăç":1, "Ăé":1, "ĂÖ":1, "Ăë":1, "ŻM":1,
  229. "Ä«":1, "ÄĽ":1, "Äż":1, "ÄŃ":1, "ÄÚ":1, "Äě":1, "Äí":1, "ĹĄ":1, "Ĺ©":1, "Ĺ°":1, "Äł":1, "°m":1, "ÄÉ":1, "ÄŮ":1, "Äâ":1, "Äč":1, "Äő":1, "Äů":1, "Äę":1, "Äű":1, "´”":1,
  230. "Ÿ":1, "ĹË":1, "ĹÍ":1, "Ĺß":1, "Ĺä":1, "Ĺô":1, "Ĺő":1, "Ć©":1, "Ć®":1, "ĆĽ":1, "ĹÂ":1, "¶O":1, "Ĺ×":1, "Ĺâ":1, "Ĺí":1, "Ĺď":1, "Ĺý":1, "ơ":1, "Ĺđ":1, "Ƣ":1, "Ć·":1,
  231. "ĆÄ":1, "ĆŮ":1, "ĆŰ":1, "Ćě":1, "Ć÷":1, "ÇĄ":1, "ÇŞ":1, "Ç»":1, "ÇÁ":1, "ÇÇ":1, "ĆĐ":1, "»—":1, "Ćä":1, "Ćó":1, "ǡ":1, "˝Ť":1, "Ç´":1, "żR":1, "ÇŁ":1, "Ƕ":1, "Ŕc":1,
  232. "ÇĎ":1, "Çá":1, "Çă":1, "Çô":1, "ČŁ":1, "Čż":1, "ČÄ":1, "ČŢ":1, "Čĺ":1, "Č÷":1, "ÇŘ":1, "Á…":1, "Çě":1, "Çý":1, "Č­":1, "Čł":1, "ČĚ":1, "ČŃ":1, "ȸ":1, "ČÖ":1, "Čń":1,
  233. }
  234.  
  235. locale = mapping(
  236. )
  237.  
  238.  
  239. def GetAuxiliaryWordType(text):
  240.  
  241. textLength = len(text)
  242.  
  243. if textLength > 1:
  244.  
  245. singleWord = text[-1]
  246.  
  247. if (singleWord >= '0' and singleWord <= '9') or\
  248. (singleWord >= 'a' and singleWord <= 'z') or\
  249. (singleWord >= 'A' and singleWord <= 'Z'):
  250. if not dictSingleWord.has_key(singleWord):
  251. return 1
  252.  
  253. elif dictDoubleWord.has_key(text[-2:]):
  254. return 1
  255.  
  256. return 0
  257.  
  258.  
  259.  
  260. def CutMoneyString(sourceText, startIndex, endIndex, insertingText, backText):
  261.  
  262. sourceLength = len(sourceText)
  263.  
  264. if sourceLength < startIndex:
  265. return backText
  266.  
  267. text = sourceText[max(0, sourceLength-endIndex):sourceLength-startIndex]
  268.  
  269. if not text:
  270. return backText
  271.  
  272. if int(text) <= 0:
  273. return backText
  274.  
  275. text = str(int(text))
  276.  
  277. if backText:
  278. backText = " " + backText
  279.  
  280. return text + insertingText + backText
  281.  
  282. def SecondToDHM(time):
  283. if time < 60:
  284. if IsARABIC():
  285. return "%.2f %s" % (time, SECOND)
  286. else:
  287. return "0" + MINUTE
  288.  
  289. second = int(time % 60)
  290. minute = int((time / 60) % 60)
  291. hour = int((time / 60) / 60) % 24
  292. day = int(int((time / 60) / 60) / 24)
  293.  
  294. text = ""
  295.  
  296. if day > 0:
  297. text += str(day) + DAY
  298. text += " "
  299.  
  300. if hour > 0:
  301. text += str(hour) + HOUR
  302. text += " "
  303.  
  304. if minute > 0:
  305. text += str(minute) + MINUTE
  306.  
  307. return text
  308.  
  309. def SecondToHM(time):
  310.  
  311. if time < 60:
  312. if IsARABIC():
  313. return "%.2f %s" % (time, SECOND)
  314. else:
  315. return "0" + MINUTE
  316.  
  317. second = int(time % 60)
  318. minute = int((time / 60) % 60)
  319. hour = int((time / 60) / 60)
  320.  
  321. text = ""
  322.  
  323. if hour > 0:
  324. text += str(hour) + HOUR
  325. if hour > 0:
  326. text += " "
  327.  
  328. if minute > 0:
  329. text += str(minute) + MINUTE
  330.  
  331. return text
  332.  
  333.  
  334. def GetAlignmentTitleName(alignment):
  335. if alignment >= 12000:
  336. return TITLE_NAME_LIST[0]
  337. elif alignment >= 8000:
  338. return TITLE_NAME_LIST[1]
  339. elif alignment >= 4000:
  340. return TITLE_NAME_LIST[2]
  341. elif alignment >= 1000:
  342. return TITLE_NAME_LIST[3]
  343. elif alignment >= 0:
  344. return TITLE_NAME_LIST[4]
  345. elif alignment > -4000:
  346. return TITLE_NAME_LIST[5]
  347. elif alignment > -8000:
  348. return TITLE_NAME_LIST[6]
  349. elif alignment > -12000:
  350. return TITLE_NAME_LIST[7]
  351.  
  352. return TITLE_NAME_LIST[8]
  353.  
  354.  
  355. OPTION_PVPMODE_MESSAGE_DICT = {
  356. 0 : PVP_MODE_NORMAL,
  357. 1 : PVP_MODE_REVENGE,
  358. 2 : PVP_MODE_KILL,
  359. 3 : PVP_MODE_PROTECT,
  360. 4 : PVP_MODE_GUILD,
  361. }
  362.  
  363. error = mapping(
  364. CREATE_WINDOW = GAME_INIT_ERROR_MAIN_WINDOW,
  365. CREATE_CURSOR = GAME_INIT_ERROR_CURSOR,
  366. CREATE_NETWORK = GAME_INIT_ERROR_NETWORK,
  367. CREATE_ITEM_PROTO = GAME_INIT_ERROR_ITEM_PROTO,
  368. CREATE_MOB_PROTO = GAME_INIT_ERROR_MOB_PROTO,
  369. CREATE_NO_DIRECTX = GAME_INIT_ERROR_DIRECTX,
  370. CREATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_NOT_EXIST,
  371. CREATE_NO_APPROPRIATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_BAD_PERFORMANCE,
  372. CREATE_FORMAT = GAME_INIT_ERROR_GRAPHICS_NOT_SUPPORT_32BIT,
  373. NO_ERROR = ""
  374. )
  375.  
  376.  
  377. GUILDWAR_NORMAL_DESCLIST = [GUILD_WAR_USE_NORMAL_MAP, GUILD_WAR_LIMIT_30MIN, GUILD_WAR_WIN_CHECK_SCORE]
  378. GUILDWAR_WARP_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_WIPE_OUT_GUILD, GUILD_WAR_REWARD_POTION]
  379. GUILDWAR_CTF_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_TAKE_AWAY_FLAG1, GUILD_WAR_WIN_TAKE_AWAY_FLAG2, GUILD_WAR_REWARD_POTION]
  380.  
  381. MINIMAP_ZONE_NAME_DICT = {
  382. "metin2_map_a1" : MAP_A1,
  383. "map_a2" : MAP_A2,
  384. "metin2_map_a3" : MAP_A3,
  385. "metin2_map_b1" : MAP_B1,
  386. "map_b2" : MAP_B2,
  387. "metin2_map_b3" : MAP_B3,
  388. "metin2_map_c1" : MAP_C1,
  389. "map_c2" : MAP_C2,
  390. "metin2_map_c3" : MAP_C3,
  391. "map_n_snowm_01" : MAP_SNOW,
  392. "metin2_map_n_flame_01" : MAP_FLAME,
  393. "metin2_map_n_desert_01" : MAP_DESERT,
  394. "metin2_map_milgyo" : MAP_TEMPLE,
  395. "metin2_map_spiderdungeon" : MAP_SPIDER,
  396. "metin2_map_deviltower1" : MAP_SKELTOWER,
  397. "metin2_map_guild_01" : MAP_AG,
  398. "metin2_map_guild_02" : MAP_BG,
  399. "metin2_map_guild_03" : MAP_CG,
  400. "metin2_map_trent" : MAP_TREE,
  401. "metin2_map_trent02" : MAP_TREE2,
  402. "season1/metin2_map_WL_01" : MAP_WL,
  403. "season1/metin2_map_nusluck01" : MAP_NUSLUCK,
  404. "Metin2_map_CapeDragonHead" : MAP_CAPE,
  405. "metin2_map_Mt_Thunder" : MAP_THUNDER,
  406. "metin2_map_dawnmistwood" : MAP_DAWN,
  407. "metin2_map_BayBlackSand" : MAP_BAY,
  408. }
  409.  
  410.  
  411.  
  412. JOBINFO_TITLE = [
  413. [JOB_WARRIOR0, JOB_WARRIOR1, JOB_WARRIOR2,],
  414. [JOB_ASSASSIN0, JOB_ASSASSIN1, JOB_ASSASSIN2,],
  415. [JOB_SURA0, JOB_SURA1, JOB_SURA2,],
  416. [JOB_SHAMAN0, JOB_SHAMAN1, JOB_SHAMAN2,],
  417. ]
  418.  
  419. JOBINFO_DATA_LIST = [
  420. [
  421. ["Ÿ°íł­ żë¸Í°ú ±ÁČ÷Áö ľĘ´Â ą«»çŔÇ",
  422. "±â°ł¸¦ »ç¶÷µéŔş ŔĎÄĂľî [żëŔÚ]¶ó°í",
  423. "şÎ¸Ą´Ů. ľî¶°ÇŃ Ŕ§±âżˇĽ­µµ ±×µéŔş ",
  424. "µÚ·Î ą°·ŻĽ­Áö ľĘŔ¸¸ç, ´Ůġ°í żňÁ÷",
  425. "Ṟ́â Čűµç µż·á¸¦ Ŕ§ÇŘ ´Ü˝ĹŔ¸·Î",
  426. "Ŕűµé°ú ¸¶ÁÖ ˝Îżě±âµµ ÇŃ´Ů. Ŕ̵éŔş",
  427. "Ŕß ´Ü·ĂµČ ±ŮŔ°°ú Čű, °­·ÂÇŃ °ř°Ý·Â",
  428. "Ŕ¸·Î ŔüŔĺ ĂÖĽ±µÎżˇĽ­ °ř°ÝÁřŔ¸·Î",
  429. "Č°ľŕÇŃ´Ů. ",],
  430. ["°ˇŔĺ ŔĎąÝŔűŔÎ °ř°ÝÇü ą«»ç·Î, ",
  431. "ŔűÁ˘Ŕüżˇ µű¸Ą Á÷Á˘ °ř°ÝŔ¸·Î ŔüŔĺ",
  432. "żˇĽ­ Č°ľŕÇŃ´Ů. ±şÁ÷ ĆŻĽş»ó ±Ů·ÂŔ»",
  433. "¸ŢŔÎŔ¸·Î ˝şĹÝ Ć÷ŔÎĆ®¸¦ ĹőŔÚÇϵÇ, ",
  434. "ŔűÁ˘Ŕüżˇ µű¸Ą »ý¸í·Â / ąćľî·Â",
  435. "Č®ş¸¸¦ Ŕ§ÇŘ ĂĽ·ÂŔ» żĂ¸°´Ů. ¶ÇÇŃ",
  436. "°ř°ÝŔÇ Á¤Č®ĽşŔ» łôṞ́â Ŕ§ÇŘ ąÎø",
  437. "żˇµµ Ć÷ŔÎĆ®¸¦ ĹőŔÚÇŇ ÇĘżä°ˇ ŔÖ´Ů.",],
  438. ["»ó´ç ĽöÁŘŔÇ Á¤˝Ĺ·ÂŔ» ŔĚżëÇĎ´Â",
  439. "Áß/±Ů°Ĺ¸® Á˘ŔüÇü ą«»ç·Î, °˘ ±âĽú",
  440. "ÇĎłŞÇĎłŞŔÇ łôŔş °ř°Ý·ÂŔ¸·Î ŔüŔ忡Ľ­",
  441. "Č°ľŕÇŃ´Ů. ±şÁ÷ ĆŻĽş»ó ±Ů·ÂŔ» ¸ŢŔÎ",
  442. "Ŕ¸·Î ˝şĹČ Ć÷ŔÎĆ®¸¦ ĹőŔÚÇϵÇ, ",
  443. "Áß/±Ů°Ĺ¸® °ř°ÝŔÇ Á¤Č®Ľş°ú ¸íÁß·üŔ»",
  444. "Ŕ§ÇŘ ąÎøŔ» żĂ¸°´Ů. ¶ÇÇŃ Á˘Ŕü ˝Ă ",
  445. "Ŕű °ř°Ýżˇ µű¸Ą »ý¸í·Â / ąćľî·Â",
  446. "Č®ş¸¸¦ Ŕ§ÇŘ ĂĽ·Âżˇµµ Ć÷ŔÎĆ®¸¦",
  447. "ĹőŔÚÇŇ ÇĘżä°ˇ ŔÖ´Ů. ",],
  448. ],
  449. [
  450. ["ŔÚ°´Ŕş ľî¶°ÇŃ »óȲżˇĽ­µµ ŔÚ˝ĹŔÇ",
  451. "¸öŔ» Ľű±â°í ŔşąĐÇŃ ľîµŇŔÇ ŔÓą«¸¦",
  452. "ĽöÇŕÇϸ鼭 ŔüŔĺŔÇ ČÄŔ§¸¦ ÁöżřÇĎ´Â",
  453. "ŔÚµéŔĚ´Ů. Ŕ̵éŔş ľĆÁÖ şü¸Ł°í ˝ĹĽÓ",
  454. "Çϸç, şńÇŇ µĄ ľřŔĚ °ú°¨ÇĎ°í ŔýÁ¦µČ",
  455. "ÇൿŔ¸·Î ŔűŔÇ ±ŢĽŇżˇ ġ¸íŸ¸¦ łŻ¸®",
  456. "µÇ, ŔüŔ忡Ľ± ŔűÁřŔ» ÇâÇŘ ą«ĽöÇŃ",
  457. "Č­»ěŔ» ł»»ŐŔ¸¸ç ŔÚ˝ĹŔÇ żë¸ÍŔ»",
  458. "Ľ±ş¸ŔδŮ. "],
  459. ["µÎĽŐ ´Ü°ËŔ» ÁÖą«±â·Î ´Ů·ç¸ç, ˝ĹĽÓ",
  460. "ÇĎ°Ô Äˇ°í şüÁö´Â ŔÚ°´ ĆŻŔŻŔÇ żňÁ÷ŔÓ",
  461. "Ŕ¸·Î ŔüŔ忡Ľ­ Č°ľŕÇŃ´Ů. ±şÁ÷ ĆŻĽş»ó",
  462. "ąÎøŔ» ¸ŢŔÎŔ¸·Î ˝şĹÝ Ć÷ŔÎĆ®¸¦ ĹőŔÚ",
  463. "ÇϵÇ, ±Ů·ÂŔ» żĂ·Á °ř°Ý·ÂŔ» łôŔδŮ.",
  464. "¶ÇÇŃ ±ŮÁ˘Ŕüżˇ µű¸Ą »ý¸í·Â/ąćľî·Â ",
  465. "»ó˝ÂŔ» Ŕ§ÇŘ ĂĽ·Âżˇµµ Ć÷ŔÎĆ®¸¦",
  466. "ĹőŔÚÇŇ ÇĘżä°ˇ ŔÖ´Ů. ",],
  467. ["Č°Ŕ» ÁÖą«±â·Î ´Ů·ç¸ç, ±ä ˝ĂľßżÍ",
  468. "»çÁ¤°Ĺ¸®żˇ µű¸Ą żř°Ĺ¸® °ř°ÝŔ¸·Î",
  469. "ŔüŔ忡Ľ­ Č°ľŕÇŃ´Ů. ±şÁ÷ ĆŻĽş»ó",
  470. "°ř°Ý Ľş°ř·üŔÇ Áő°ˇ¸¦ Ŕ§ÇŘ ąÎøŔ»",
  471. "¸ŢŔÎŔ¸·Î żĂ·Áľß Çϸç, żř°Ĺ¸®",
  472. "°ř°ÝŔÇ µĄąĚÁö Áő°ˇ¸¦ Ŕ§ÇŘ ±Ů·ÂŔ»",
  473. "żĂ¸± ÇĘżä°ˇ ŔÖ´Ů. ¶ÇÇŃ Ŕűµéżˇ°Ô",
  474. "Ć÷Ŕ§µÇľúŔ» ˝Ă, Ŕű °ř°Ýżˇ ąöĆĽ±â",
  475. "Ŕ§ÇŃ »ý¸í·Â/ąćľî·Â »ó˝ÂŔ» Ŕ§ÇŘ",
  476. "ĂĽ·Âżˇµµ Ć÷ŔÎĆ®¸¦ ĹőŔÚÇŇ ÇĘżä°ˇ",
  477. "ŔÖ´Ů. ", ],
  478. ],
  479. [
  480. ["Ľö¶ó´Â [µ¶Ŕş µ¶Ŕ¸·Î]ŔÇ ĽÓĽşŔ¸·Î",
  481. "⼳µČ ĆŻĽö ĽÓĽşŔÇ ±şÁ÷ŔĚ´Ů. ",
  482. "±×µéŔş ŔüŔ忡Ľ­ ŔűµéŔÇ »ç±â¸¦ ŔúÇĎ",
  483. "˝ĂĹ°°í, ľÇ¸¶ŔÇ ČűŔ» ˝ÇŔş ¸¶ĹşŔ¸·Î",
  484. "ŔűŔÇ żµČĄ°ú Ŕ°˝ĹŔ» Áţą¶°µ´Ů. ¶§·Î",
  485. "Ŕ̵éŔş ŔÚ˝ĹŔÇ °Ë°ú °©żĘżˇ ľîµŇŔÇ",
  486. "ČűŔ» ˝Çľî, ŔüŔ忡Ľ­ ą«»ç ¸řÁö ľĘŔş",
  487. "°ř°Ý·ÂŔ» ąßČÖÇϱ⵵ ÇϴµĄ, ŔűµéŔ»",
  488. "Á׿©´ë´Â±× ¸đ˝ŔŔĚ żöł«żˇ ˛űÂďÇŘ",
  489. "»ç¶÷µéŔş Ľö¶ó¸¦ ŔĎÄĂľî [¸¶˝Ĺ]Ŕ̶ó",
  490. "şÎ¸Ł±â¸¦ ÁÖŔú ľÉ´Â´Ů."],
  491. ["ČŻą«±şŔÇ Ľö¶ó´Â ľÇ¸¶ŔÇ ľľżˇĽ­",
  492. "ľňľîÁö´Â ¸¶·ÂŔ» ą«±âłŞ ąćľî±¸żˇ",
  493. "˝Çľî ą«»ç ¸řÁö ľĘŔş ŔüĹő·ÂŔ¸·Î",
  494. "ŔüŔ忡Ľ­ Č°ľŕÇŃ´Ů. ±şÁ÷ ĆŻĽş»ó",
  495. "Áö´ÉŔĚ łôľĆÁúĽö·Ď Âřżë Ŕĺşńżˇ",
  496. "˝Ç¸®´Â ¸¶·ÂŔÇ Ŕ§·ÂŔĚ Áő´ëµÇąÇ·Î,",
  497. "Áö´É°ú ±Ů·ÂŔ» ¸ŢŔÎŔ¸·Î ˝şĹČ",
  498. "Ć÷ŔÎĆ®¸¦ ĹőŔÚÇϵÇ, Á˘Ŕüżˇ µű¸Ą",
  499. "»ý¸í·Â/ąćľî·Â Č®ş¸¸¦ Ŕ§ÇŘ ĂĽ·ÂŔ»",
  500. "żĂ¸°´Ů. ¶ÇÇŃ °ř°ÝŔÇ Á¤Č®Ľş°ú",
  501. "ȸÇǸ¦ Ŕ§ÇŘĽ­ ąÎøżˇµµ Ć÷ŔÎĆ®¸¦",
  502. "ĹőŔÚÇŇ ÇĘżä°ˇ ŔÖ´Ů. ",],
  503. ["Č渶±şŔÇ Ľö¶óµéŔş °˘Áľ ľîµŇŔÇ",
  504. "ÁÖą®°ú ľÇ¸¶ŔÇ ¸¶ąýŔ¸·Î ŔüŔ忡Ľ­",
  505. "Č°ľŕÇŃ´Ů. ±şÁ÷ ĆŻĽş»ó ¸¶ąý °ř°ÝŔĚ",
  506. "ÁÖŔ̹ǷΠÁö´ÉŔ» ¸ŢŔÎŔ¸·Î ˝şĹÝ",
  507. "Ć÷ŔÎĆ®¸¦ ĹőŔÚÇϵÇ, żř°Ĺ¸® ¸¶ąý",
  508. "°ř°ÝŔÇ Á¤Č®ĽşŔ» Ŕ§ÇŘ ąÎøŔ» żĂ¸°´Ů.",
  509. "¶ÇÇŃ Ć÷Ŕ§ µÇľúŔ»˝Ă, Ŕű °ř°Ýżˇ µű¸Ą",
  510. "»ý¸í·Â / ąćľî·Â Č®ş¸¸¦ Ŕ§ÇŘ ĂĽ·Âżˇµµ",
  511. "Ć÷ŔÎĆ®¸¦ ĹőŔÚÇŇ ÇĘżä°ˇ ŔÖ´Ů. ",],
  512. ],
  513. [
  514. ["ą«´çŔş żë˝Ĺ°ú ŔÚż¬, µÎ °í´ëŔÇ",
  515. "ČűŔ» ´Ů·ę Ľö ŔÖ´Â ŔŻŔĎÇŃ Á÷ÁľŔĚ´Ů.",
  516. "±×µéŔş ČĹ濡Ľ­ ľĆ±şŔ» ş¸Á¶ÇĎ°í",
  517. "´ŮÄŁ µż·áŔÇ şÎ»óŔ» ȸşą ˝ĂĹ°¸ç",
  518. "¶łľîÁř »ç±â¸¦ »ó˝Â˝ĂŲ´Ů. ±×µéŔş",
  519. "ľĆ±şŔÇ Ľö¸é°ú ČŢ˝ÄŔ» ąćÇŘÇĎ´Â ŔÚ¸¦ ",
  520. "Ŕý´ë żëĽ­ÇĎÁö ľĘŔ¸¸ç, ±×·± ŔÚµé",
  521. "żˇ°Ô´Â ÇŃ Áˇ ÁÖŔú ľřŔĚ ÁÖą®Ŕ»",
  522. "ĹÍĆ®·Á ±× şń°ĚÇÔŔ» ľöČ÷ ¡°čÇŃ´Ů.",],
  523. ["õ·ć±şŔÇ ą«´çµéŔş °˘Áľ şÎŔűĽú°ú",
  524. "ş¸Á¶ÁÖą®żˇ ´ÉÇϸç, ŔűŔÇ Á÷ / °ŁÁ˘",
  525. "°ř°ÝŔ¸·ÎşÎĹÍ ľĆ±şŔ» ÁöŲ´Ů. ±şÁ÷",
  526. "ĆŻĽş»ó ¸¶ąý ´É·ÂŔĚ ÁÖŔ̹ǷΠÁö´ÉŔ»",
  527. "¸ŢŔÎŔ¸·Î ˝şĹÝ Ć÷ŔÎĆ®¸¦ ĹőŔÚÇϵÇ,",
  528. "Ć÷Ŕ§µÇľúŔ» ˝Ă, Ŕű °ř°Ýżˇ µű¸Ą",
  529. "»ý¸í·Â / ąćľî·Â Č®ş¸¸¦ Ŕ§ÇŘ ĂĽ·ÂŔ»",
  530. "żĂ¸°´Ů. ¶ÇÇŃ żř°Ĺ¸® ¸¶ąý °ř°ÝŔÇ",
  531. "Á¤Č®ĽşŔ» Ŕ§żˇ ąÎøżˇµµ Ć÷ŔÎĆ®¸¦",
  532. "ĹőŔÚÇŇ ÇĘżä°ˇ ŔÖ´Ů. ",],
  533. ["±¤·Ú±şŔÇ ą«´çµéŔş ŔÚż¬ŔÇ ČűŔ»",
  534. "şô·Á ľĆ±şŔ» ȸşąÇĎ°í, łú˝ĹŔÇ ",
  535. "ČűŔ¸·Î ąĐÁýÇŃ Ŕűµéżˇ°Ô Ĺ« Ăć°ÝŔ»",
  536. "ŔÔČú Ľö ŔÖ´Â Ŕ̵éŔĚ´Ů. ±şÁ÷ŔÇ",
  537. "ĆŻĽş»ó ¸¶ąý ´É·ÂŔĚ ÁÖŔ̹ǷΠÁö´ÉŔ»",
  538. "¸ŢŔÎŔ¸·Î ˝şĹÝ Ć÷ŔÎĆ®¸¦ ĹőŔÚÇϵÇ,",
  539. "Ć÷Ŕ§µÇľúŔ»˝Ă, Ŕű °ř°Ýżˇ µű¸Ą",
  540. "»ý¸í·Â / ąćľî·Â Č®ş¸¸¦ Ŕ§ÇŘ ĂĽ·ÂŔ»",
  541. "żĂ¸°´Ů. ¶ÇÇŃ żř°Ĺ¸® ¸¶ąý °ř°ÝŔÇ",
  542. "Á¤Č®ĽşŔ» Ŕ§żˇ ąÎøżˇµµ Ć÷ŔÎĆ®¸¦",
  543. "ĹőŔÚÇŇ ÇĘżä°ˇ ŔÖ´Ů. "],
  544. ],
  545. ]
  546.  
  547.  
  548. WHISPER_ERROR = {
  549. 1 : CANNOT_WHISPER_NOT_LOGON,
  550. 2 : CANNOT_WHISPER_DEST_REFUSE,
  551. 3 : CANNOT_WHISPER_SELF_REFUSE,
  552. }
  553.  
  554. NOTIFY_MESSAGE = {
  555. "CANNOT_EQUIP_SHOP" : CANNOT_EQUIP_IN_SHOP,
  556. "CANNOT_EQUIP_EXCHANGE" : CANNOT_EQUIP_IN_EXCHANGE,
  557. }
  558.  
  559.  
  560. ATTACK_ERROR_TAIL_DICT = {
  561. "IN_SAFE" : CANNOT_ATTACK_SELF_IN_SAFE,
  562. "DEST_IN_SAFE" : CANNOT_ATTACK_DEST_IN_SAFE,
  563. }
  564.  
  565. SHOT_ERROR_TAIL_DICT = {
  566. "EMPTY_ARROW" : CANNOT_SHOOT_EMPTY_ARROW,
  567. "IN_SAFE" : CANNOT_SHOOT_SELF_IN_SAFE,
  568. "DEST_IN_SAFE" : CANNOT_SHOOT_DEST_IN_SAFE,
  569. }
  570.  
  571. USE_SKILL_ERROR_TAIL_DICT = {
  572. "IN_SAFE" : CANNOT_SKILL_SELF_IN_SAFE,
  573. "NEED_TARGET" : CANNOT_SKILL_NEED_TARGET,
  574. "NEED_EMPTY_BOTTLE" : CANNOT_SKILL_NEED_EMPTY_BOTTLE,
  575. "NEED_POISON_BOTTLE" : CANNOT_SKILL_NEED_POISON_BOTTLE,
  576. "REMOVE_FISHING_ROD" : CANNOT_SKILL_REMOVE_FISHING_ROD,
  577. "NOT_YET_LEARN" : CANNOT_SKILL_NOT_YET_LEARN,
  578. "NOT_MATCHABLE_WEAPON" : CANNOT_SKILL_NOT_MATCHABLE_WEAPON,
  579. "WAIT_COOLTIME" : CANNOT_SKILL_WAIT_COOLTIME,
  580. "NOT_ENOUGH_HP" : CANNOT_SKILL_NOT_ENOUGH_HP,
  581. "NOT_ENOUGH_SP" : CANNOT_SKILL_NOT_ENOUGH_SP,
  582. "CANNOT_USE_SELF" : CANNOT_SKILL_USE_SELF,
  583. "ONLY_FOR_ALLIANCE" : CANNOT_SKILL_ONLY_FOR_ALLIANCE,
  584. "CANNOT_ATTACK_ENEMY_IN_SAFE_AREA" : CANNOT_SKILL_DEST_IN_SAFE,
  585. "CANNOT_APPROACH" : CANNOT_SKILL_APPROACH,
  586. "CANNOT_ATTACK" : CANNOT_SKILL_ATTACK,
  587. "ONLY_FOR_CORPSE" : CANNOT_SKILL_ONLY_FOR_CORPSE,
  588. "EQUIP_FISHING_ROD" : CANNOT_SKILL_EQUIP_FISHING_ROD,
  589. "NOT_HORSE_SKILL" : CANNOT_SKILL_NOT_HORSE_SKILL,
  590. "HAVE_TO_RIDE" : CANNOT_SKILL_HAVE_TO_RIDE,
  591. }
  592.  
  593. LEVEL_LIST=["", HORSE_LEVEL1, HORSE_LEVEL2, HORSE_LEVEL3]
  594.  
  595. HEALTH_LIST=[
  596. HORSE_HEALTH0,
  597. HORSE_HEALTH1,
  598. HORSE_HEALTH2,
  599. HORSE_HEALTH3,
  600. ]
  601.  
  602.  
  603. USE_SKILL_ERROR_CHAT_DICT = {
  604. "NEED_EMPTY_BOTTLE" : SKILL_NEED_EMPTY_BOTTLE,
  605. "NEED_POISON_BOTTLE" : SKILL_NEED_POISON_BOTTLE,
  606. "ONLY_FOR_GUILD_WAR" : SKILL_ONLY_FOR_GUILD_WAR,
  607. }
  608.  
  609. SHOP_ERROR_DICT = {
  610. "NOT_ENOUGH_MONEY" : SHOP_NOT_ENOUGH_MONEY,
  611. "SOLDOUT" : SHOP_SOLDOUT,
  612. "INVENTORY_FULL" : SHOP_INVENTORY_FULL,
  613. "INVALID_POS" : SHOP_INVALID_POS,
  614. }
  615.  
  616. STAT_MINUS_DESCRIPTION = {
  617. "HTH-" : STAT_MINUS_CON,
  618. "INT-" : STAT_MINUS_INT,
  619. "STR-" : STAT_MINUS_STR,
  620. "DEX-" : STAT_MINUS_DEX,
  621. }
  622.  
  623. MODE_NAME_LIST = ( PVP_OPTION_NORMAL, PVP_OPTION_REVENGE, PVP_OPTION_KILL, PVP_OPTION_PROTECT, )
  624. TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, )
  625.  
  626. def GetLetterImageName():
  627. return "season1/icon/scroll_close.tga"
  628. def GetLetterOpenImageName():
  629. return "season1/icon/scroll_open.tga"
  630. def GetLetterCloseImageName():
  631. return "season1/icon/scroll_close.tga"
  632.  
  633. if 949 == app.GetDefaultCodePage():
  634. def EUL(name):
  635. if GetAuxiliaryWordType(name):
  636. return "¸¦ "
  637. else:
  638. return "Ŕ» "
  639.  
  640. def I(name):
  641. if GetAuxiliaryWordType(name):
  642. return "°ˇ "
  643. else:
  644. return "ŔĚ "
  645.  
  646. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  647. name = sellItemName
  648. if sellItemCount > 1:
  649. name += " "
  650. name += str(sellItemCount)
  651. name += "°ł"
  652.  
  653. return name + EUL(name) + str(sellItemPrice) + "łÉżˇ ĆĽðڽŔ´Ď±î?"
  654.  
  655. def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
  656. name = sellItemName
  657. if sellItemCount > 1:
  658. name += " "
  659. name += str(sellItemCount)
  660. name += "°ł"
  661.  
  662. return name + EUL(name) + str(sellItemPrice) + "żˇ »ç˝Ă°Ú˝Ŕ´Ď±î?"
  663.  
  664. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
  665. return attachedItemName+EUL(attachedItemName)+"şÎÂřÇŇ Ľö ľř´Â ľĆŔĚĹŰŔÔ´Ď´Ů"
  666.  
  667. def REFINE_FAILURE_NO_SOCKET(attachedItemName):
  668. return attachedItemName+EUL(attachedItemName)+"şÎÂřÇŇ Ľö ŔÖ´Â ĽŇÄĎŔĚ ľř˝Ŕ´Ď´Ů"
  669.  
  670. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
  671. return attachedItemName+EUL(attachedItemName)+"şÎÂřÇŇ Ľö Ŕִ Ȳ±Ý ĽŇÄĎŔĚ ľř˝Ŕ´Ď´Ů"
  672.  
  673. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
  674. name = dropItemName
  675. if dropItemCount > 1:
  676. name += " "
  677. name += str(dropItemCount)
  678. name += "°ł"
  679.  
  680. return name+EUL(name)+"ąö¸®˝Ă°Ú˝Ŕ´Ď±î?"
  681.  
  682. def NumberToMoneyString(number):
  683. if number <= 0:
  684. return "0łÉ"
  685.  
  686. number = str(number)
  687. result = CutMoneyString(number, 0, 4, "", "")
  688. result = CutMoneyString(number, 4, 8, "¸¸", result)
  689. result = CutMoneyString(number, 8, 12, "ľď", result)
  690. result = result + "łÉ"
  691.  
  692. return result
  693.  
  694. def FISHING_NOTIFY(isFish, fishName):
  695. if isFish:
  696. return fishName + I(fishName) + "ą® µí ÇŐ´Ď´Ů."
  697. else:
  698. return fishName + I(fishName) + "°É¸°µí ÇŐ´Ď´Ů."
  699.  
  700. def FISHING_SUCCESS(isFish, fishName):
  701. if isFish:
  702. return fishName + EUL(fishName) + "ŔâľŇ˝Ŕ´Ď´Ů!"
  703. else:
  704. return fishName + EUL(fishName) + "ľňľú˝Ŕ´Ď´Ů!"
  705.  
  706. elif 932 == app.GetDefaultCodePage():
  707. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  708. if sellItemCount > 1 :
  709. return "%s %s ŚÂ‚đ %s‚É”„‚č‚Ü‚·‚©H" % ( sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  710. else:
  711. return "%s ‚đ %s‚Ĺ”„‚č‚Ü‚·‚©H" % (sellItemName, NumberToMoneyString(sellItemPrice) )
  712.  
  713. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  714. if buyItemCount > 1 :
  715. return "%s %sŚÂ‚đ %s‚Ĺ”ƒ‚˘‚Ü‚·‚©H" % ( buyItemName, buyItemCount, buyItemPrice )
  716. else:
  717. return "%s‚đ %s‚Ĺ”ƒ‚˘‚Ü‚·‚©H" % ( buyItemName, buyItemPrice )
  718.  
  719. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  720. return "%s‚đ‘•’…‚Ĺ‚«‚Č‚˘ƒAƒCƒe?‚Ĺ‚·B" % (attachedItemName)
  721.  
  722. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  723. return "%s‚đ‘•’…‚·‚é?ƒPƒbƒg‚Ş‚ ‚č‚Ü‚ą‚ńB" % (attachedItemName)
  724.  
  725. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  726. return "%s‚đ‘•’…‚Ĺ‚«‚鉩‹ŕ?ƒPƒbƒg‚Ş‚ ‚č‚Ü‚ą‚ńB" % (attachedItemName)
  727.  
  728. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  729. if dropItemCount > 1 :
  730. return "%s %d ŚÂ‚đŽĚ‚Ä‚Ü‚·‚©H" % (dropItemName, dropItemCount)
  731. else :
  732. return "%s‚đŽĚ‚Ä‚Ü‚·‚©H" % (dropItemName)
  733.  
  734. def FISHING_NOTIFY(isFish, fishName) :
  735. if isFish :
  736. return "%s ‚ސH‚˘‚‚˘‚˝‚悤‚Ĺ‚·" % ( fishName )
  737. else :
  738. return "%s ‚Ş‚©‚©‚Á‚˝‚悤‚Ĺ‚·" % ( fishName )
  739.  
  740. def FISHING_SUCCESS(isFish, fishName) :
  741. if isFish :
  742. return "%s ‚đ•ß‚Ü‚¦‚Ü‚µ‚˝I" % (fishName)
  743. else :
  744. return "%s ‚đŽč‚É“ü‚ę‚Ü‚µ‚˝I" % (fishName)
  745.  
  746. def NumberToMoneyString(number) :
  747. if number <= 0 :
  748. return "0—Ľ"
  749.  
  750. number = str(number)
  751. result = CutMoneyString(number, 0, 4, "", "")
  752. result = CutMoneyString(number, 4, 8, "–ś", result)
  753. result = CutMoneyString(number, 8, 12, "‰­", result)
  754. result = result + "—Ľ"
  755.  
  756. return result
  757. elif IsHONGKONG():
  758. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  759. if sellItemCount > 1 :
  760. return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  761. else:
  762. return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )
  763.  
  764. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  765. if buyItemCount > 1 :
  766. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  767. else:
  768. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  769.  
  770. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  771. return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)
  772.  
  773. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  774. return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)
  775.  
  776. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  777. return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
  778.  
  779. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  780. if dropItemCount > 1 :
  781. return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
  782. else :
  783. return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)
  784.  
  785. def FISHING_NOTIFY(isFish, fishName) :
  786. if isFish :
  787. return FISHING_NOTIFY1 % ( fishName )
  788. else :
  789. return FISHING_NOTIFY2 % ( fishName )
  790.  
  791. def FISHING_SUCCESS(isFish, fishName) :
  792. if isFish :
  793. return FISHING_SUCCESS1 % (fishName)
  794. else :
  795. return FISHING_SUCCESS2 % (fishName)
  796.  
  797. def NumberToMoneyString(number) :
  798. if number <= 0 :
  799. return "0 %s" % (MONETARY_UNIT0)
  800.  
  801. number = str(number)
  802. result = CutMoneyString(number, 0, 4, "", "")
  803. result = CutMoneyString(number, 4, 8, MONETARY_UNIT1, result)
  804. result = CutMoneyString(number, 8, 12, MONETARY_UNIT2, result)
  805. result = result + MONETARY_UNIT0
  806.  
  807. return result
  808. elif IsNEWCIBN() or IsCIBN10():
  809. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  810. if sellItemCount>1:
  811. return "Č·¶¨ŇŞ°Ń%s¸ö%sŇÔ%s˝đ±ŇÂôµôÂđŁż" % (str(sellItemCount), sellItemName, str(sellItemPrice))
  812. else:
  813. return "Č·¶¨ŇŞ°Ń%sŇÔ%s˝đ±ŇÂôµôÂđŁż" % (sellItemName, str(sellItemPrice))
  814.  
  815. def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
  816. if sellItemCount>1:
  817. return "Č·¶¨ŇŞ°Ń%s¸ö%sŇÔ%s˝đ±ŇÂň˝řÂđŁż" % (str(sellItemCount), sellItemName, str(sellItemPrice))
  818. else:
  819. return "Č·¶¨ŇŞ°Ń%sŇÔ%s˝đ±ŇÂň˝řÂđŁż" % (sellItemName, str(sellItemPrice))
  820.  
  821. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
  822. return "ÎŢ·¨ĎâǶ%s µÄ×°±¸" % (attachedItemName)
  823.  
  824. def REFINE_FAILURE_NO_SOCKET(attachedItemName):
  825. return "Ă»ÓĐżÉŇÔĎâǶ%s µÄż×" % (attachedItemName)
  826.  
  827. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
  828. return "Ă»ÓĐżÉŇÔĎâǶ%s µÄ»Ć˝đż×" % (attachedItemName)
  829.  
  830. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
  831. if dropItemCount>1:
  832. return "Č·¶¨ŇŞČÓµô%d¸ö%sÂđ?" % (dropItemCount, dropItemName)
  833. else:
  834. return "Č·¶¨ŇŞČÓµô%sÂđ?" % (dropItemName)
  835.  
  836. def FISHING_NOTIFY(isFish, fishName):
  837. if isFish:
  838. return fishName + "ÉĎąłÁˡŁ"
  839. else:
  840. return "µö×Ĺ" + fishName + "ÁˡŁ"
  841.  
  842. def FISHING_SUCCESS(isFish, fishName):
  843. if isFish:
  844. return "µö×Ĺ" + fishName + "ÁˡŁ"
  845. else:
  846. return "»ńµĂ" + fishName + "ÁˡŁ"
  847.  
  848. def NumberToMoneyString(number):
  849.  
  850. if number <= 0:
  851. return "0Á˝"
  852.  
  853. number = str(number)
  854. result = CutMoneyString(number, 0, 4, "", "")
  855. result = CutMoneyString(number, 4, 8, "Íň", result)
  856. result = CutMoneyString(number, 8, 12, "ŇÚ", result)
  857. result = result + "Á˝"
  858.  
  859. return result
  860. elif IsEUROPE() and not IsWE_KOREA() and not IsYMIR():
  861. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  862. if sellItemCount > 1 :
  863. return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  864. else:
  865. return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )
  866.  
  867. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  868. if buyItemCount > 1 :
  869. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  870. else:
  871. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  872.  
  873. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  874. return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)
  875.  
  876. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  877. return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)
  878.  
  879. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  880. return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
  881.  
  882. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  883. if dropItemCount > 1 :
  884. return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
  885. else :
  886. return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)
  887.  
  888. def FISHING_NOTIFY(isFish, fishName) :
  889. if isFish :
  890. return FISHING_NOTIFY1 % ( fishName )
  891. else :
  892. return FISHING_NOTIFY2 % ( fishName )
  893.  
  894. def FISHING_SUCCESS(isFish, fishName) :
  895. if isFish :
  896. return FISHING_SUCCESS1 % (fishName)
  897. else :
  898. return FISHING_SUCCESS2 % (fishName)
  899.  
  900. def NumberToMoneyString(n) :
  901. if n <= 0 :
  902. return "0 %s" % (MONETARY_UNIT0)
  903.  
  904. 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)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement