Advertisement
Guest User

vaaaaa

a guest
Nov 11th, 2018
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.09 KB | None | 0 0
  1. import app
  2. import constInfo
  3. import background
  4.  
  5. if app.ENABLE_BATTLE_FIELD:
  6. import shop
  7.  
  8. MAP_TRENT02 = "MAP_TRENT02" # ÀÓ½Ã
  9. MAP_WL = "MAP_WL" # ÀÓ½Ã
  10. MAP_NUSLUCK = "MAP_NUSLUCK" # ÀÓ½Ã
  11. MAP_TREE2 = "MAP_TREE2"
  12.  
  13. BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
  14. BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"
  15.  
  16. APP_TITLE = "METIN2"
  17.  
  18. GUILD_HEADQUARTER = "Main Building"
  19. GUILD_FACILITY = "Facility"
  20. GUILD_OBJECT = "Object"
  21. GUILD_MEMBER_COUNT_INFINITY = "INFINITY"
  22.  
  23. LOGIN_FAILURE_WEB_BLOCK = "BLOCK_LOGIN(WEB)"
  24. LOGIN_FAILURE_BLOCK_LOGIN = "BLOCK_LOGIN"
  25. CHANNEL_NOTIFY_FULL = "CHANNEL_NOTIFY_FULL"
  26.  
  27. GUILD_BUILDING_LIST_TXT = app.GetLocalePath() + "/GuildBuildingList.txt"
  28.  
  29. GUILD_MARK_MIN_LEVEL = "3"
  30. GUILD_MARK_NOT_ENOUGH_LEVEL = "±æµå·¹º§ 3ÀÌ»ó ºÎÅÍ °¡´ÉÇÕ´Ï´Ù."
  31.  
  32. ERROR_MARK_UPLOAD_NEED_RECONNECT = "UploadMark: Reconnect to game"
  33. ERROR_MARK_CHECK_NEED_RECONNECT = "CheckMark: Reconnect to game"
  34.  
  35. VIRTUAL_KEY_ALPHABET_LOWERS = r"[1234567890]/qwertyuiop\=asdfghjkl;`'zxcvbnm.,"
  36. VIRTUAL_KEY_ALPHABET_UPPERS = r'{1234567890}?QWERTYUIOP|+ASDFGHJKL:~"ZXCVBNM<>'
  37. VIRTUAL_KEY_SYMBOLS = '!@#$%^&*()_+|{}:"<>?~'
  38. VIRTUAL_KEY_NUMBERS = "1234567890-=\[];',./`"
  39. VIRTUAL_KEY_SYMBOLS_BR = '!@#$%^&*()_+|{}:"<>?~áàãâéèêíìóòôõúùç'
  40.  
  41. __IS_ENGLISH = "ENGLISH" == app.GetLocaleServiceName()
  42. __IS_HONGKONG = "HONGKONG" == app.GetLocaleServiceName()
  43. __IS_NEWCIBN = "locale/newcibn" == app.GetLocalePath()
  44. __IS_EUROPE = "EUROPE" == app.GetLocaleServiceName()
  45. __IS_CANADA = "locale/ca" == app.GetLocalePath()
  46. __IS_BRAZIL = "locale/br" == app.GetLocalePath()
  47. __IS_SINGAPORE = "locale/sg" == app.GetLocalePath()
  48. __IS_VIETNAM = "locale/vn" == app.GetLocalePath()
  49. __IS_ARABIC = "locale/ae" == app.GetLocalePath()
  50. __IS_CIBN10 = "locale/cibn10" == app.GetLocalePath()
  51. __IS_WE_KOREA = "locale/we_korea" == app.GetLocalePath()
  52. __IS_TAIWAN = "locale/taiwan" == app.GetLocalePath()
  53. __IS_JAPAN = "locale/japan" == app.GetLocalePath()
  54. LOGIN_FAILURE_WRONG_SOCIALID = "ASDF"
  55. LOGIN_FAILURE_SHUTDOWN_TIME = "ASDF"
  56.  
  57. if __IS_CANADA:
  58. __IS_EUROPE = True
  59.  
  60. def IsYMIR():
  61. return "locale/ymir" == app.GetLocalePath()
  62.  
  63. def IsJAPAN():
  64. return "locale/japan" == app.GetLocalePath()
  65.  
  66. def IsENGLISH():
  67. global __IS_ENGLISH
  68. return __IS_ENGLISH
  69.  
  70. def IsHONGKONG():
  71. global __IS_HONGKONG
  72. return __IS_HONGKONG
  73.  
  74. def IsTAIWAN():
  75. return "locale/taiwan" == app.GetLocalePath()
  76.  
  77. def IsNEWCIBN():
  78. return "locale/newcibn" == app.GetLocalePath()
  79.  
  80. def IsCIBN10():
  81. global __IS_CIBN10
  82. return __IS_CIBN10
  83.  
  84. def IsEUROPE():
  85. global __IS_EUROPE
  86. return __IS_EUROPE
  87.  
  88. def IsCANADA():
  89. global __IS_CANADA
  90. return __IS_CANADA
  91.  
  92. def IsBRAZIL():
  93. global __IS_BRAZIL
  94. return __IS_BRAZIL
  95.  
  96. def IsVIETNAM():
  97. global __IS_VIETNAM
  98. return __IS_VIETNAM
  99.  
  100. def IsSINGAPORE():
  101. global __IS_SINGAPORE
  102. return __IS_SINGAPORE
  103.  
  104. def IsARABIC():
  105. global __IS_ARABIC
  106. return __IS_ARABIC
  107.  
  108. def IsWE_KOREA():
  109. return "locale/we_korea" == app.GetLocalePath()
  110.  
  111. # SUPPORT_NEW_KOREA_SERVER
  112. def LoadLocaleData():
  113. if IsYMIR():
  114. import m2netm2g
  115. SERVER = "Äèµµ ¼­¹ö"
  116. if SERVER == m2netm2g.GetServerInfo()[:len(SERVER)]:
  117. app.SetCHEONMA(0)
  118. app.LoadLocaleData("locale/we_korea")
  119. constInfo.ADD_DEF_BONUS_ENABLE = 0
  120. else:
  121. app.SetCHEONMA(1)
  122. app.LoadLocaleData("locale/ymir")
  123. constInfo.ADD_DEF_BONUS_ENABLE = 1
  124. else:
  125. app.LoadLocaleData(app.GetLocalePath())
  126.  
  127. def IsCHEONMA():
  128. return IsYMIR() # ÀÌÁ¦ YMIR ·ÎÄÉÀÏÀº ¹«Á¶°Ç õ¸¶¼­¹öÀÓ. õ¸¶¼­¹ö°¡ ¹®À» ´Ý±â Àü±îÁö º¯ÇÒ ÀÏ ¾øÀ½.
  129.  
  130. # END_OF_SUPPORT_NEW_KOREA_SERVER
  131.  
  132. def mapping(**kwargs): return kwargs
  133.  
  134. def SNA(text):
  135. def f(x):
  136. return text
  137. return f
  138.  
  139. def SA(text):
  140. def f(x):
  141. return text % x
  142. return f
  143.  
  144. def SAA(text):
  145. def f(x1, x2):
  146. return text % (x1, x2)
  147. return f
  148.  
  149. def SAN(text):
  150. def f(x1, x2):
  151. return text % x1
  152. return f
  153.  
  154. def LoadLocaleFile(srcFileName, localeDict):
  155.  
  156. funcDict = {"SA":SA, "SNA":SNA, "SAA":SAA, "SAN":SAN}
  157.  
  158. lineIndex = 1
  159.  
  160. try:
  161. lines = open(srcFileName, "r").readlines()
  162. except IOError:
  163. import dbg
  164. dbg.LogBox("LoadLocaleError(%(srcFileName)s)" % locals())
  165. app.Abort()
  166.  
  167. for line in lines:
  168. try:
  169. tokens = line[:-1].split("\t")
  170. if len(tokens) == 2:
  171. localeDict[tokens[0]] = tokens[1]
  172. elif len(tokens) >= 3:
  173. type = tokens[2].strip()
  174. if type:
  175. localeDict[tokens[0]] = funcDict[type](tokens[1])
  176. else:
  177. localeDict[tokens[0]] = tokens[1]
  178. else:
  179. raise RuntimeError, "Unknown TokenSize"
  180.  
  181. lineIndex += 1
  182. except:
  183. import dbg
  184. dbg.LogBox("%s: line(%d): %s" % (srcFileName, lineIndex, line), "Error")
  185. raise
  186.  
  187.  
  188.  
  189. all = ["locale","error"]
  190.  
  191. if IsEUROPE() and IsBRAZIL() :
  192. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  193. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  194. constInfo.IN_GAME_SHOP_ENABLE = 0
  195. elif IsSINGAPORE() :
  196. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  197. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  198. constInfo.IN_GAME_SHOP_ENABLE = 0
  199. elif IsNEWCIBN() :
  200. ##°ÔÀÓ¸íÀ̱úÁø´Ù.
  201. APP_TITLE = "ÐÂÒÐÌì2"
  202. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  203. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  204. constInfo.IN_GAME_SHOP_ENABLE = 1
  205. elif IsTAIWAN():
  206. APP_TITLE = "°«III°ê"
  207. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  208. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  209.  
  210. constInfo.IN_GAME_SHOP_ENABLE = 1
  211.  
  212. else:
  213. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  214. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  215.  
  216. constInfo.IN_GAME_SHOP_ENABLE = 1
  217.  
  218. LoadLocaleFile(LOCALE_FILE_NAME, locals())
  219.  
  220. ########################################################################################################
  221. ## NOTE : ¾ÆÀÌÅÛÀ» ¹ö¸±¶§ "¹«¾ùÀ»/¸¦ ¹ö¸®½Ã°Ú½À´Ï±î?" ¹®ÀÚ¿­ÀÇ Á¶»ç ¼±ÅÃÀ» À§ÇÑ ÄÚµå
  222. dictSingleWord = {
  223. "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,
  224. }
  225.  
  226. dictDoubleWord = {
  227. "°¡":1, "°¼":1, "°Å":1, "°Ü":1, "°í":1, "±³":1, "±¸":1, "±Ô":1, "±×":1, "±â":1, "°³":1, "°Â":1, "°Ô":1, "°è":1, "°ú":1, "±¥":1, "±Å":1, "±Ë":1, "±«":1, "±Í":1, "±á":1,
  228. "±î":1, "²¥":1, "²¨":1, "²¸":1, "²¿":1, "²Ø":1, "²Ù":1, "²ó":1, "²ô":1, "³¢":1, "±ú":1, "ƒÆ":1, "²²":1, "²¾":1, "²Ê":1, "²Ï":1, "²ã":1, "²ç":1, "²Ò":1, "²î":1, "…Ê":1,
  229. "³ª":1, "³Ä":1, "³Ê":1, "³à":1, "³ë":1, "´¢":1, "´©":1, "´º":1, "´À":1, "´Ï":1, "³»":1, "†v":1, "³×":1, "³é":1, "³ö":1, "‡R":1, "´²":1, "´´":1, "³ú":1, "´µ":1, "´Ì":1,
  230. "´Ù":1, "´ô":1, "´õ":1, "µ®":1, "µµ":1, "µÍ":1, "µÎ":1, "µà":1, "µå":1, "µð":1, "´ë":1, "ˆÛ":1, "µ¥":1, "µ³":1, "µÂ":1, "µÅ":1, "µÖ":1, "µØ":1, "µÇ":1, "µÚ":1, "µï":1,
  231. "µû":1, "‹x":1, "¶°":1, "¶Å":1, "¶Ç":1, "ŒÃ":1, "¶Ñ":1, "":1, "¶ß":1, "¶ì":1, "¶§":1, "‹š":1, "¶¼":1, "‹ó":1, "¶Ì":1, "¶Î":1, "Œô":1, "¶Ø":1, "¶Ï":1, "¶Ù":1, "¶ç":1,
  232. "¶ó":1, "·ª":1, "·¯":1, "·Á":1, "·Î":1, "·á":1, "·ç":1, "·ù":1, "¸£":1, "¸®":1, "·¡":1, "Žm":1, "·¹":1, "·Ê":1, "·Ö":1, "O":1, "·ï":1, "·ñ":1, "·Ú":1, "·ò":1, "l":1,
  233. "¸¶":1, "¸Ï":1, "¸Ó":1, "¸ç":1, "¸ð":1, "¹¦":1, "¹«":1, "¹Â":1, "¹Ç":1, "¹Ì":1, "¸Å":1, "Ù":1, "¸Þ":1, "¸ï":1, "¸ú":1, "‘À":1, "¹¹":1, "¹¾":1, "¸þ":1, "¹¿":1, "’Þ":1,
  234. "¹Ù":1, "¹ò":1, "¹ö":1, "º­":1, "º¸":1, "ºÌ":1, "ºÎ":1, "ºä":1, "ºê":1, "ºñ":1, "¹è":1, "“Ž":1, "º£":1, "º¶":1, "ºÁ":1, "ºÄ":1, "ºÛ":1, "ºÞ":1, "ºÆ":1, "ºß":1, "•‘":1,
  235. "ºü":1, "»²":1, "»µ":1, "»À":1, "»Ç":1, "»Ï":1, "»Ñ":1, "»Ø":1, "»Ú":1, "»ß":1, "»©":1, "•û":1, "»¾":1, "–§":1, "–Ø":1, "–ô":1, "—¨":1, "—Ä":1, "»Î":1, "—à":1, "˜u":1,
  236. "»ç":1, "»þ":1, "¼­":1, "¼Å":1, "¼Ò":1, "¼î":1, "¼ö":1, "½´":1, "½º":1, "½Ã":1, "»õ":1, "¼¨":1, "¼¼":1, "¼Î":1, "¼Ý":1, "¼â":1, "½¤":1, "½¦":1, "¼è":1, "½¬":1, "šÃ":1,
  237. "½Î":1, "›X":1, "½á":1, "›Ç":1, "½î":1, "¾¤":1, "¾¥":1, "o":1, "¾²":1, "¾¾":1, "½Ø":1, "›y":1, "½ê":1, "›ã":1, "½÷":1, "½û":1, "¾¬":1, "¾®":1, "½ý":1, "¾¯":1, "¾º":1,
  238. "¾Æ":1, "¾ß":1, "¾î":1, "¿©":1, "¿À":1, "¿ä":1, "¿ì":1, "À¯":1, "À¸":1, "ÀÌ":1, "¾Ö":1, "¾ê":1, "¿¡":1, "¿¹":1, "¿Í":1, "¿Ö":1, "¿ö":1, "¿þ":1, "¿Ü":1, "À§":1, "ÀÇ":1,
  239. "ÀÚ":1, "Àð":1, "Àú":1, "Á®":1, "Á¶":1, "ÁÒ":1, "ÁÖ":1, "Áê":1, "Áî":1, "Áö":1, "Àç":1, "À÷":1, "Á¦":1, "Áµ":1, "ÁÂ":1, "ÁÈ":1, "Áà":1, "Áâ":1, "ÁË":1, "Áã":1, "£p":1,
  240. "Â¥":1, "¹":1, "¼":1, "ÂÇ":1, "ÂÉ":1, "§c":1, "ÂÞ":1, "Âé":1, "Âê":1, "Âî":1, "°":1, "¤Š":1, "ÂÅ":1, "¥™":1, "ÂÒ":1, "ÂÖ":1, "Âå":1, "¨R":1, "ÂØ":1, "Âè":1, "©n":1,
  241. "Â÷":1, "í":1, "ó":1, "ÃÄ":1, "ÃÊ":1, "ÃÝ":1, "Ãß":1, "Ãò":1, "Ã÷":1, "Ä¡":1, "ä":1, "ª‰":1, "ü":1, "ÃÇ":1, "ÃÒ":1, "¬‚":1, "Ãç":1, "Ãé":1, "ÃÖ":1, "Ãë":1, "¯M":1,
  242. "Ä«":1, "ļ":1, "Ä¿":1, "ÄÑ":1, "ÄÚ":1, "Äì":1, "Äí":1, "Å¥":1, "Å©":1, "Å°":1, "ij":1, "°m":1, "ÄÉ":1, "ÄÙ":1, "Äâ":1, "Äè":1, "Äõ":1, "Äù":1, "Äê":1, "Äû":1, "´”":1,
  243. "Ÿ":1, "ÅË":1, "ÅÍ":1, "Åß":1, "Åä":1, "Åô":1, "Åõ":1, "Æ©":1, "Æ®":1, "Ƽ":1, "ÅÂ":1, "¶O":1, "Å×":1, "Åâ":1, "Åí":1, "Åï":1, "Åý":1, "Æ¡":1, "Åð":1, "Æ¢":1, "Æ·":1,
  244. "ÆÄ":1, "ÆÙ":1, "ÆÛ":1, "Æì":1, "Æ÷":1, "Ç¥":1, "Ǫ":1, "Ç»":1, "ÇÁ":1, "ÇÇ":1, "ÆÐ":1, "»—":1, "Æä":1, "Æó":1, "Ç¡":1, "½":1, "Ç´":1, "¿R":1, "Ç£":1, "Ƕ":1, "Àc":1,
  245. "ÇÏ":1, "Çá":1, "Çã":1, "Çô":1, "È£":1, "È¿":1, "ÈÄ":1, "ÈÞ":1, "Èå":1, "È÷":1, "ÇØ":1, "Á…":1, "Çì":1, "Çý":1, "È­":1, "ȳ":1, "ÈÌ":1, "ÈÑ":1, "ȸ":1, "ÈÖ":1, "Èñ":1,
  246. }
  247.  
  248. locale = mapping(
  249. )
  250.  
  251.  
  252. def GetAuxiliaryWordType(text):
  253.  
  254. textLength = len(text)
  255.  
  256. if textLength > 1:
  257.  
  258. singleWord = text[-1]
  259.  
  260. if (singleWord >= '0' and singleWord <= '9') or\
  261. (singleWord >= 'a' and singleWord <= 'z') or\
  262. (singleWord >= 'A' and singleWord <= 'Z'):
  263. if not dictSingleWord.has_key(singleWord):
  264. return 1
  265.  
  266. elif dictDoubleWord.has_key(text[-2:]):
  267. return 1
  268.  
  269. return 0
  270.  
  271.  
  272.  
  273. def CutMoneyString(sourceText, startIndex, endIndex, insertingText, backText):
  274.  
  275. sourceLength = len(sourceText)
  276.  
  277. if sourceLength < startIndex:
  278. return backText
  279.  
  280. text = sourceText[max(0, sourceLength-endIndex):sourceLength-startIndex]
  281.  
  282. if not text:
  283. return backText
  284.  
  285. if int(text) <= 0:
  286. return backText
  287.  
  288. text = str(int(text))
  289.  
  290. if backText:
  291. backText = " " + backText
  292.  
  293. return text + insertingText + backText
  294.  
  295. if app.ENABLE_GEM_SYSTEM:
  296. def SecondToHMGolbal(time):
  297. if time < 60:
  298. return "00:01"
  299.  
  300. minute = int((time / 60) % 60)
  301. hour = int((time / 60) / 60)
  302.  
  303. text = ""
  304.  
  305. if hour > 0:
  306. if hour >= 10:
  307. text += str(hour) + ":"
  308. else:
  309. text += "0" + str(hour) + ":"
  310. else:
  311. text += "00:"
  312.  
  313. if minute > 0:
  314. if minute >= 10:
  315. text += str(minute)
  316. else:
  317. text += "0" + str(minute)
  318.  
  319. return text
  320.  
  321.  
  322. def SecondToDHM(time):
  323. if time < 60:
  324. if IsARABIC():
  325. return "%.2f %s" % (time, SECOND)
  326. else:
  327. return "0" + MINUTE
  328.  
  329. second = int(time % 60)
  330. minute = int((time / 60) % 60)
  331. hour = int((time / 60) / 60) % 24
  332. day = int(int((time / 60) / 60) / 24)
  333.  
  334. text = ""
  335.  
  336. if day > 0:
  337. text += str(day) + DAY
  338. text += " "
  339.  
  340. if hour > 0:
  341. text += str(hour) + HOUR
  342. text += " "
  343.  
  344. if minute > 0:
  345. text += str(minute) + MINUTE
  346.  
  347. return text
  348.  
  349. def SecondToHM(time):
  350.  
  351. if time < 60:
  352. if IsARABIC():
  353. return "%.2f %s" % (time, SECOND)
  354. else:
  355. return "0" + MINUTE
  356.  
  357. second = int(time % 60)
  358. minute = int((time / 60) % 60)
  359. hour = int((time / 60) / 60)
  360.  
  361. text = ""
  362.  
  363. if hour > 0:
  364. text += str(hour) + HOUR
  365. if hour > 0:
  366. text += " "
  367.  
  368. if minute > 0:
  369. text += str(minute) + MINUTE
  370.  
  371. return text
  372.  
  373. if app.ENABLE_GROWTH_PET_SYSTEM:
  374. def SecondToDay(time):
  375. if time < 60:
  376. return "1" + DAY
  377.  
  378. second = int(time % 60)
  379. minute = int((time / 60) % 60)
  380. hour = int((time / 60) / 60) % 24
  381. day = int(int((time / 60) / 60) / 24)
  382.  
  383. if day < 1:
  384. day = 1
  385.  
  386. if day > 9999:
  387. day = 9999
  388.  
  389. text = str(day) + DAY
  390. return text
  391.  
  392. if app.ENABLE_GROWTH_PET_SYSTEM:
  393. def SecondToDayNumber(time):
  394. if time < 60:
  395. return 1
  396.  
  397. second = int(time % 60)
  398. minute = int((time / 60) % 60)
  399. hour = int((time / 60) / 60) % 24
  400. day = int(int((time / 60) / 60) / 24)
  401.  
  402. if day < 1:
  403. day = 1
  404.  
  405. if day > 9999:
  406. day = 9999
  407.  
  408. return day
  409.  
  410. if app.ENABLE_GROWTH_PET_SYSTEM:
  411. def SecondToH(time):
  412. hour = int((time / 60) / 60)
  413.  
  414. text = ""
  415. hour = max( 0, hour )
  416. text += str(hour)
  417.  
  418. return text
  419.  
  420. if app.ENABLE_BATTLE_FIELD:
  421. def SecondToColonTypeHM(time):
  422. if time < 60:
  423. return "00:00"
  424.  
  425. minute = int((time / 60) % 60)
  426. hour = int((time / 60) / 60)
  427.  
  428. return "%02d:%02d" % (hour, minute)
  429.  
  430. if app.ENABLE_GUILD_DRAGONLAIR_PARTY_SYSTEM or app.ENABLE_12ZI:
  431. def SecondToColonTypeHMS(time):
  432. if time < 60:
  433. return "00:00:%02d" % (time)
  434.  
  435. second = int(time % 60)
  436. minute = int((time / 60) % 60)
  437. hour = int((time / 60) / 60)
  438.  
  439. return "%02d:%02d:%02d" % (hour, minute, second)
  440.  
  441. def SecondToColonTypeMS(time):
  442.  
  443. second = int(time % 60)
  444. minute = int((time / 60) % 60)
  445.  
  446. return "%02d:%02d" % (minute, second)
  447.  
  448. def GetAlignmentTitleName(alignment):
  449. if alignment >= 12000:
  450. return TITLE_NAME_LIST[0]
  451. elif alignment >= 8000:
  452. return TITLE_NAME_LIST[1]
  453. elif alignment >= 4000:
  454. return TITLE_NAME_LIST[2]
  455. elif alignment >= 1000:
  456. return TITLE_NAME_LIST[3]
  457. elif alignment >= 0:
  458. return TITLE_NAME_LIST[4]
  459. elif alignment > -4000:
  460. return TITLE_NAME_LIST[5]
  461. elif alignment > -8000:
  462. return TITLE_NAME_LIST[6]
  463. elif alignment > -12000:
  464. return TITLE_NAME_LIST[7]
  465.  
  466. return TITLE_NAME_LIST[8]
  467.  
  468.  
  469. OPTION_PVPMODE_MESSAGE_DICT = {
  470. 0 : PVP_MODE_NORMAL,
  471. 1 : PVP_MODE_REVENGE,
  472. 2 : PVP_MODE_KILL,
  473. 3 : PVP_MODE_PROTECT,
  474. 4 : PVP_MODE_GUILD,
  475. }
  476.  
  477. error = mapping(
  478. CREATE_WINDOW = GAME_INIT_ERROR_MAIN_WINDOW,
  479. CREATE_CURSOR = GAME_INIT_ERROR_CURSOR,
  480. CREATE_NETWORK = GAME_INIT_ERROR_NETWORK,
  481. CREATE_ITEM_PROTO = GAME_INIT_ERROR_ITEM_PROTO,
  482. CREATE_MOB_PROTO = GAME_INIT_ERROR_MOB_PROTO,
  483. CREATE_NO_DIRECTX = GAME_INIT_ERROR_DIRECTX,
  484. CREATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_NOT_EXIST,
  485. CREATE_NO_APPROPRIATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_BAD_PERFORMANCE,
  486. CREATE_FORMAT = GAME_INIT_ERROR_GRAPHICS_NOT_SUPPORT_32BIT,
  487. NO_ERROR = ""
  488. )
  489.  
  490.  
  491. GUILDWAR_NORMAL_DESCLIST = [GUILD_WAR_USE_NORMAL_MAP, GUILD_WAR_LIMIT_30MIN, GUILD_WAR_WIN_CHECK_SCORE]
  492. GUILDWAR_WARP_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_WIPE_OUT_GUILD, GUILD_WAR_REWARD_POTION]
  493. GUILDWAR_CTF_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_TAKE_AWAY_FLAG1, GUILD_WAR_WIN_TAKE_AWAY_FLAG2, GUILD_WAR_REWARD_POTION]
  494.  
  495. MINIMAP_ZONE_NAME_DICT = {
  496. "metin2_map_a1" : MAP_A1,
  497. "map_a2" : MAP_A2,
  498. "metin2_map_a3" : MAP_A3,
  499. "metin2_map_b1" : MAP_B1,
  500. "map_b2" : MAP_B2,
  501. "metin2_map_b3" : MAP_B3,
  502. "metin2_map_c1" : MAP_C1,
  503. "map_c2" : MAP_C2,
  504. "metin2_map_c3" : MAP_C3,
  505. "map_n_snowm_01" : MAP_SNOW,
  506. "metin2_map_n_flame_01" : MAP_FLAME,
  507. "metin2_map_n_desert_01" : MAP_DESERT,
  508. "metin2_map_milgyo" : MAP_TEMPLE,
  509. "metin2_map_spiderdungeon" : MAP_SPIDER,
  510. "metin2_map_deviltower1" : MAP_SKELTOWER,
  511. "metin2_map_guild_01" : MAP_AG,
  512. "metin2_map_guild_02" : MAP_BG,
  513. "metin2_map_guild_03" : MAP_CG,
  514. "metin2_map_trent" : MAP_TREE,
  515. "metin2_map_trent02" : MAP_TREE2,
  516. "season1/metin2_map_WL_01" : MAP_WL,
  517. "season1/metin2_map_nusluck01" : MAP_NUSLUCK,
  518. "Metin2_map_CapeDragonHead" : MAP_CAPE,
  519. "metin2_map_Mt_Thunder" : MAP_THUNDER,
  520. "metin2_map_dawnmistwood" : MAP_DAWN,
  521. "metin2_map_BayBlackSand" : MAP_BAY,
  522. }
  523.  
  524. if app.WJ_SHOW_PARTY_ON_MINIMAP or app.ENABLE_MONSTER_CARD or app.ENABLE_PARTY_MATCH:
  525. MINIMAP_ZONE_NAME_DICT_BY_IDX = {
  526. 0 : "",
  527. 1 : MAP_A1,
  528. 3 : MAP_A3,
  529. 4 : MAP_GUILD_01,
  530. 5 : MAP_MONKEY_DUNGEON_11,
  531. 6 : GUILD_VILLAGE_01,
  532. 21 : MAP_B1,
  533. 23 : MAP_B3,
  534. 24 : MAP_GUILD_02,
  535. 25 : MAP_MONKEY_DUNGEON_12,
  536. 26 : GUILD_VILLAGE_02,
  537. 41 : MAP_C1,
  538. 43 : MAP_C3,
  539. 44 : MAP_GUILD_03,
  540. 45 : MAP_MONKEY_DUNGEON_13,
  541. 46 : GUILD_VILLAGE_03,
  542. 61 : MAP_N_SNOWM_01,
  543. 62 : MAP_N_FLAME_01,
  544. 63 : MAP_N_DESERT_01,
  545. 64 : MAP_N_THREEWAY,
  546. 65 : MAP_MILGYO,
  547. 66 : MAP_DEVILTOWER1,
  548. 67 : MAP_TRENT,
  549. 68 : MAP_TRENT02,
  550. 69 : MAP_WL_01,
  551. 70 : MAP_NUSLUCK01,
  552. 71 : MAP_SPIDERDUNGEON_02,
  553. 72 : MAP_SKIPIA_DUNGEON_01,
  554. 73 : MAP_SKIPIA_DUNGEON_02,
  555. 74 : MAP_N_SNOWM_02,
  556. 75 : MAP_N_FLAME_02,
  557. 76 : MAP_N_DESERT_02,
  558. 77 : MAP_A2_1,
  559. 78 : MAP_MILGYO_A,
  560. 79 : MAP_TRENT_A,
  561. 80 : MAP_TRENT02_A,
  562. 81 : MAP_WEDDING_01,
  563. 91 : MAP_E,
  564. 92 : MAP_E,
  565. 93 : MAP_E,
  566. 103 : MAP_T1,
  567. 104 : MAP_SPIDERDUNGEON,
  568. 105 : MAP_T2,
  569. 107 : MAP_MONKEY_DUNGEON,
  570. 108 : MAP_MONKEY_DUNGEON2,
  571. 109 : MAP_MONKEY_DUNGEON3,
  572. 110 : MAP_T3,
  573. 111 : MAP_T4,
  574. 112 : MAP_DUEL,
  575. 113 : MAP_OXEVENT,
  576. 114 : MAP_SUNGZI,
  577. 118 : MAP_SUNGZI_FLAME_HILL_01,
  578. 119 : MAP_SUNGZI_FLAME_HILL_02,
  579. 120 : MAP_SUNGZI_FLAME_HILL_03,
  580. 121 : MAP_SUNGZI_SNOW,
  581. 122 : MAP_SUNGZI_SNOW_PASS01,
  582. 123 : MAP_SUNGZI_SNOW_PASS02,
  583. 124 : MAP_SUNGZI_SNOW_PASS03,
  584. 125 : MAP_SUNGZI_DESERT_01,
  585. 126 : MAP_SUNGZI_DESERT_HILL_01,
  586. 127 : MAP_SUNGZI_DESERT_HILL_02,
  587. 128 : MAP_SUNGZI_DESERT_HILL_03,
  588. 130 : GUILD_WAR1,
  589. 131 : GUILD_WAR2,
  590. 132 : GUILD_WAR3,
  591. 133 : GUILD_WAR4,
  592. 180 : METIN_TEST,
  593. 181 : MAP_EMPIREWAR01,
  594. 182 : MAP_EMPIREWAR02,
  595. 183 : MAP_EMPIREWAR03,
  596. 184 : MAP_SKIPIA_DUNGEON_011,
  597. 185 : MAP_SKIPIA_DUNGEON_021,
  598. 186 : MAP_SKIPIA_DUNGEON_012,
  599. 187 : MAP_SKIPIA_DUNGEON_022,
  600. 188 : MAP_SKIPIA_DUNGEON_013,
  601. 189 : MAP_SKIPIA_DUNGEON_023,
  602. 193 : MAP_SPIDERDUNGEON_02_1,
  603. 194 : MAP_HOLYPLACE_FLAME,
  604. 195 : MAP_PATHWAY_FLAME_01,
  605. 196 : MAP_PATHWAY_FLAME_02,
  606. 197 : MAP_PATHWAY_FLAME_03,
  607. 198 : MAP_HOLYPLACE_ICE,
  608. 199 : MAP_PATHWAY_ICE_01,
  609. 200 : MAP_PATHWAY_ICE_02,
  610. 201 : MAP_PATHWAY_ICE_03,
  611. 202 : MAP_HOLYPLACE_DESERT,
  612. 203 : MAP_PATHWAY_DESERT_01,
  613. 204 : MAP_PATHWAY_DESERT_02,
  614. 205 : MAP_PATHWAY_DESERT_03,
  615. 208 : MAP_SKIPIA_DUNGEON_BOSS,
  616. 209 : MAP_SKIPIA_DUNGEON_BOSS_1,
  617. 210 : MAP_SKIPIA_DUNGEON_BOSS_2,
  618. 211 : MAP_SKIPIA_DUNGEON_BOSS_3,
  619. 216 : MAP_DEVILCATACOMB,
  620. 217 : MAP_SPIDERDUNGEON_03,
  621. 301 : MAP_CAPEDRAGONHEAD,
  622. 302 : MAP_DAWNMISTWOOD,
  623. 303 : MAP_BAYBLACKSAND,
  624. 304 : MAP_MT_THUNDER,
  625. 351 : MAP_N_FLAME_DUNGEON_01,
  626. 352 : MAP_N_SNOW_DUNGEON_01,
  627. }
  628. if background.IsMapInfoByMapName("metin2_map_dawnmist_dungeon_01"):
  629. MINIMAP_ZONE_NAME_DICT_BY_IDX[353] = MAP_DAWNMIST_DUNGEON_01
  630. if background.IsMapInfoByMapName("metin2_map_Mt_Th_dungeon_01"):
  631. MINIMAP_ZONE_NAME_DICT_BY_IDX[354] = MAP_MT_TH_DUNGEON_01
  632. if background.IsMapInfoByMapName("metin2_map_n_flame_dragon"):
  633. MINIMAP_ZONE_NAME_DICT_BY_IDX[356] = MAP_N_FLAME_DRAGON
  634. if background.IsMapInfoByMapName("metin2_map_battlefied"):
  635. MINIMAP_ZONE_NAME_DICT_BY_IDX[357] = MAP_BATTLE_FIELD
  636. if background.IsMapInfoByMapName("metin2_12zi_stage"):
  637. MINIMAP_ZONE_NAME_DICT_BY_IDX[355] = MAP_CZ_DUNGEON
  638.  
  639. # ij¸¯ÅÍâ¿¡¼­ ij¸¯ÅÍÀÇ ¾ó±¼¿¡ ¸¶¿ì½º ¿À¹ö ÇßÀ» ¶§ ³ª¿À´Â ¼³¸íÀÇ ¸Ç À§ JOB_TITLE
  640. if app.ENABLE_WOLFMAN_CHARACTER:
  641. JOBINFO_TITLE = [
  642. [JOB_WARRIOR0, JOB_WARRIOR1, JOB_WARRIOR2,],
  643. [JOB_ASSASSIN0, JOB_ASSASSIN1, JOB_ASSASSIN2,],
  644. [JOB_SURA0, JOB_SURA1, JOB_SURA2,],
  645. [JOB_SHAMAN0, JOB_SHAMAN1, JOB_SHAMAN2,],
  646. [JOB_WOLFMAN0, JOB_WOLFMAN1, JOB_WOLFMAN1,],
  647. ]
  648. else:
  649. JOBINFO_TITLE = [
  650. [JOB_WARRIOR0, JOB_WARRIOR1, JOB_WARRIOR2,],
  651. [JOB_ASSASSIN0, JOB_ASSASSIN1, JOB_ASSASSIN2,],
  652. [JOB_SURA0, JOB_SURA1, JOB_SURA2,],
  653. [JOB_SHAMAN0, JOB_SHAMAN1, JOB_SHAMAN2,],
  654. ]
  655.  
  656.  
  657. # ij¸¯ÅÍâ¿¡¼­ ij¸¯ÅÍÀÇ ¾ó±¼¿¡ ¸¶¿ì½º ¿À¹ö ÇßÀ» ¶§ ³ª¿À´Â ¼³¸í.
  658. JOBINFO_DATA_LIST = [
  659. [
  660. ["Ÿ°í³­ ¿ë¸Í°ú ±ÁÈ÷Áö ¾Ê´Â ¹«»çÀÇ",
  661. "±â°³¸¦ »ç¶÷µéÀº ÀÏÄþî [¿ëÀÚ]¶ó°í",
  662. "ºÎ¸¥´Ù. ¾î¶°ÇÑ À§±â¿¡¼­µµ ±×µéÀº ",
  663. "µÚ·Î ¹°·¯¼­Áö ¾ÊÀ¸¸ç, ´ÙÄ¡°í ¿òÁ÷",
  664. "À̱â Èûµç µ¿·á¸¦ À§ÇØ ´Ü½ÅÀ¸·Î",
  665. "Àûµé°ú ¸¶ÁÖ ½Î¿ì±âµµ ÇÑ´Ù. À̵éÀº",
  666. "Àß ´Ü·ÃµÈ ±ÙÀ°°ú Èû, °­·ÂÇÑ °ø°Ý·Â",
  667. "À¸·Î ÀüÀå ÃÖ¼±µÎ¿¡¼­ °ø°ÝÁøÀ¸·Î",
  668. "È°¾àÇÑ´Ù. ",],
  669. ["°¡Àå ÀϹÝÀûÀÎ °ø°ÝÇü ¹«»ç·Î, ",
  670. "ÀûÁ¢Àü¿¡ µû¸¥ Á÷Á¢ °ø°ÝÀ¸·Î ÀüÀå",
  671. "¿¡¼­ È°¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ»",
  672. "¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
  673. "ÀûÁ¢Àü¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
  674. "È®º¸¸¦ À§ÇØ Ã¼·ÂÀ» ¿Ã¸°´Ù. ¶ÇÇÑ",
  675. "°ø°ÝÀÇ Á¤È®¼ºÀ» ³ôÀ̱â À§ÇØ ¹Îø",
  676. "¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.",],
  677. ["»ó´ç ¼öÁØÀÇ Á¤½Å·ÂÀ» ÀÌ¿ëÇÏ´Â",
  678. "Áß/±Ù°Å¸® Á¢ÀüÇü ¹«»ç·Î, °¢ ±â¼ú",
  679. "ÇϳªÇϳªÀÇ ³ôÀº °ø°Ý·ÂÀ¸·Î ÀüÀå¿¡¼­",
  680. "È°¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ» ¸ÞÀÎ",
  681. "À¸·Î ½ºÅÈ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
  682. "Áß/±Ù°Å¸® °ø°ÝÀÇ Á¤È®¼º°ú ¸íÁß·üÀ»",
  683. "À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù. ¶ÇÇÑ Á¢Àü ½Ã ",
  684. "Àû °ø°Ý¿¡ µû¸¥ »ý¸í·Â / ¹æ¾î·Â",
  685. "È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
  686. "ÅõÀÚÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ",],
  687. ],
  688. [
  689. ["ÀÚ°´Àº ¾î¶°ÇÑ »óȲ¿¡¼­µµ ÀÚ½ÅÀÇ",
  690. "¸öÀ» ¼û±â°í Àº¹ÐÇÑ ¾îµÒÀÇ ÀÓ¹«¸¦",
  691. "¼öÇàÇϸ鼭 ÀüÀåÀÇ ÈÄÀ§¸¦ Áö¿øÇÏ´Â",
  692. "ÀÚµéÀÌ´Ù. À̵éÀº ¾ÆÁÖ ºü¸£°í ½Å¼Ó",
  693. "Çϸç, ºñÇÒ µ¥ ¾øÀÌ °ú°¨ÇÏ°í ÀýÁ¦µÈ",
  694. "ÇൿÀ¸·Î ÀûÀÇ ±Þ¼Ò¿¡ Ä¡¸íŸ¸¦ ³¯¸®",
  695. "µÇ, ÀüÀå¿¡¼± ÀûÁøÀ» ÇâÇØ ¹«¼öÇÑ",
  696. "È­»ìÀ» ³»»ÕÀ¸¸ç ÀÚ½ÅÀÇ ¿ë¸ÍÀ»",
  697. "¼±º¸ÀδÙ. "],
  698. ["µÎ¼Õ ´Ü°ËÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ½Å¼Ó",
  699. "ÇÏ°Ô Ä¡°í ºüÁö´Â ÀÚ°´ ƯÀ¯ÀÇ ¿òÁ÷ÀÓ",
  700. "À¸·Î ÀüÀå¿¡¼­ È°¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
  701. "¹ÎøÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚ",
  702. "ÇϵÇ, ±Ù·ÂÀ» ¿Ã·Á °ø°Ý·ÂÀ» ³ôÀδÙ.",
  703. "¶ÇÇÑ ±ÙÁ¢Àü¿¡ µû¸¥ »ý¸í·Â/¹æ¾î·Â ",
  704. "»ó½ÂÀ» À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
  705. "ÅõÀÚÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ",],
  706. ["È°À» ÁÖ¹«±â·Î ´Ù·ç¸ç, ±ä ½Ã¾ß¿Í",
  707. "»çÁ¤°Å¸®¿¡ µû¸¥ ¿ø°Å¸® °ø°ÝÀ¸·Î",
  708. "ÀüÀå¿¡¼­ È°¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
  709. "°ø°Ý ¼º°ø·üÀÇ Áõ°¡¸¦ À§ÇØ ¹ÎøÀ»",
  710. "¸ÞÀÎÀ¸·Î ¿Ã·Á¾ß Çϸç, ¿ø°Å¸®",
  711. "°ø°ÝÀÇ µ¥¹ÌÁö Áõ°¡¸¦ À§ÇØ ±Ù·ÂÀ»",
  712. "¿Ã¸± ÇÊ¿ä°¡ ÀÖ´Ù. ¶ÇÇÑ Àûµé¿¡°Ô",
  713. "Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ ¹öƼ±â",
  714. "À§ÇÑ »ý¸í·Â/¹æ¾î·Â »ó½ÂÀ» À§ÇØ",
  715. "ü·Â¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ ÇÊ¿ä°¡",
  716. "ÀÖ´Ù. ", ],
  717. ],
  718. [
  719. ["¼ö¶ó´Â [µ¶Àº µ¶À¸·Î]ÀÇ ¼Ó¼ºÀ¸·Î",
  720. "â¼³µÈ Ư¼ö ¼Ó¼ºÀÇ ±ºÁ÷ÀÌ´Ù. ",
  721. "±×µéÀº ÀüÀå¿¡¼­ ÀûµéÀÇ »ç±â¸¦ ÀúÇÏ",
  722. "½ÃÅ°°í, ¾Ç¸¶ÀÇ ÈûÀ» ½ÇÀº ¸¶ÅºÀ¸·Î",
  723. "ÀûÀÇ ¿µÈ¥°ú À°½ÅÀ» Áþ¹¶°µ´Ù. ¶§·Î",
  724. "À̵éÀº ÀÚ½ÅÀÇ °Ë°ú °©¿Ê¿¡ ¾îµÒÀÇ",
  725. "ÈûÀ» ½Ç¾î, ÀüÀå¿¡¼­ ¹«»ç ¸øÁö ¾ÊÀº",
  726. "°ø°Ý·ÂÀ» ¹ßÈÖÇϱ⵵ Çϴµ¥, ÀûµéÀ»",
  727. "Á׿©´ë´Â±× ¸ð½ÀÀÌ ¿ö³«¿¡ ²ûÂïÇØ",
  728. "»ç¶÷µéÀº ¼ö¶ó¸¦ ÀÏÄþî [¸¶½Å]À̶ó",
  729. "ºÎ¸£±â¸¦ ÁÖÀú ¾É´Â´Ù."],
  730. ["ȯ¹«±ºÀÇ ¼ö¶ó´Â ¾Ç¸¶ÀÇ ¾¾¿¡¼­",
  731. "¾ò¾îÁö´Â ¸¶·ÂÀ» ¹«±â³ª ¹æ¾î±¸¿¡",
  732. "½Ç¾î ¹«»ç ¸øÁö ¾ÊÀº ÀüÅõ·ÂÀ¸·Î",
  733. "ÀüÀå¿¡¼­ È°¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
  734. "Áö´ÉÀÌ ³ô¾ÆÁú¼ö·Ï Âø¿ë Àåºñ¿¡",
  735. "½Ç¸®´Â ¸¶·ÂÀÇ À§·ÂÀÌ Áõ´ëµÇ¹Ç·Î,",
  736. "Áö´É°ú ±Ù·ÂÀ» ¸ÞÀÎÀ¸·Î ½ºÅÈ",
  737. "Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, Á¢Àü¿¡ µû¸¥",
  738. "»ý¸í·Â/¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
  739. "¿Ã¸°´Ù. ¶ÇÇÑ °ø°ÝÀÇ Á¤È®¼º°ú",
  740. "ȸÇǸ¦ À§Çؼ­ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
  741. "ÅõÀÚÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ",],
  742. ["È渶±ºÀÇ ¼ö¶óµéÀº °¢Á¾ ¾îµÒÀÇ",
  743. "ÁÖ¹®°ú ¾Ç¸¶ÀÇ ¸¶¹ýÀ¸·Î ÀüÀå¿¡¼­",
  744. "È°¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ¸¶¹ý °ø°ÝÀÌ",
  745. "ÁÖÀ̹ǷΠÁö´ÉÀ» ¸ÞÀÎÀ¸·Î ½ºÅÝ",
  746. "Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ¿ø°Å¸® ¸¶¹ý",
  747. "°ø°ÝÀÇ Á¤È®¼ºÀ» À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù.",
  748. "¶ÇÇÑ Æ÷À§ µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
  749. "»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ",
  750. "Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ",],
  751. ],
  752. [
  753. ["¹«´çÀº ¿ë½Å°ú ÀÚ¿¬, µÎ °í´ëÀÇ",
  754. "ÈûÀ» ´Ù·ê ¼ö ÀÖ´Â À¯ÀÏÇÑ Á÷Á¾ÀÌ´Ù.",
  755. "±×µéÀº ÈĹ濡¼­ ¾Æ±ºÀ» º¸Á¶ÇÏ°í",
  756. "´ÙÄ£ µ¿·áÀÇ ºÎ»óÀ» ȸº¹ ½ÃÅ°¸ç",
  757. "¶³¾îÁø »ç±â¸¦ »ó½Â½ÃŲ´Ù. ±×µéÀº",
  758. "¾Æ±ºÀÇ ¼ö¸é°ú ÈÞ½ÄÀ» ¹æÇØÇÏ´Â ÀÚ¸¦ ",
  759. "Àý´ë ¿ë¼­ÇÏÁö ¾ÊÀ¸¸ç, ±×·± ÀÚµé",
  760. "¿¡°Ô´Â ÇÑ Á¡ ÁÖÀú ¾øÀÌ ÁÖ¹®À»",
  761. "ÅÍÆ®·Á ±× ºñ°ÌÇÔÀ» ¾öÈ÷ ¡°èÇÑ´Ù.",],
  762. ["õ·æ±ºÀÇ ¹«´çµéÀº °¢Á¾ ºÎÀû¼ú°ú",
  763. "º¸Á¶ÁÖ¹®¿¡ ´ÉÇϸç, ÀûÀÇ Á÷ / °£Á¢",
  764. "°ø°ÝÀ¸·ÎºÎÅÍ ¾Æ±ºÀ» ÁöŲ´Ù. ±ºÁ÷",
  765. "Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
  766. "¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
  767. "Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°Ý¿¡ µû¸¥",
  768. "»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
  769. "¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
  770. "Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
  771. "ÅõÀÚÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ",],
  772. ["±¤·Ú±ºÀÇ ¹«´çµéÀº ÀÚ¿¬ÀÇ ÈûÀ»",
  773. "ºô·Á ¾Æ±ºÀ» ȸº¹ÇÏ°í, ³ú½ÅÀÇ ",
  774. "ÈûÀ¸·Î ¹ÐÁýÇÑ Àûµé¿¡°Ô Å« Ãæ°ÝÀ»",
  775. "ÀÔÈú ¼ö ÀÖ´Â À̵éÀÌ´Ù. ±ºÁ÷ÀÇ",
  776. "Ư¼º»ó ¸¶¹ý ´É·ÂÀÌ ÁÖÀ̹ǷΠÁö´ÉÀ»",
  777. "¸ÞÀÎÀ¸·Î ½ºÅÝ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ,",
  778. "Æ÷À§µÇ¾úÀ»½Ã, Àû °ø°Ý¿¡ µû¸¥",
  779. "»ý¸í·Â / ¹æ¾î·Â È®º¸¸¦ À§ÇØ Ã¼·ÂÀ»",
  780. "¿Ã¸°´Ù. ¶ÇÇÑ ¿ø°Å¸® ¸¶¹ý °ø°ÝÀÇ",
  781. "Á¤È®¼ºÀ» À§¿¡ ¹Îø¿¡µµ Æ÷ÀÎÆ®¸¦",
  782. "ÅõÀÚÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. "],
  783. ],
  784. [
  785. ["¼öÀÎ",],
  786. ["¼öÀÎÀº [ºùÀÇ¿Í Äè]ÀÇ ¼Ó¼ºÀ¸·Î",
  787. "â¼³ÀÌ µÈ Ư¼ö ±ºÁ÷ÀÌ´Ù.",
  788. "±×µéÀº ÀüÀå¿¡¼­ ¼±ºÀ¿¡ ¼­¸ç, ¸¶¹°µéÀÇ",
  789. "»ç±â¸¦ ÀúÇϽÃÅ°°í À°½ÅÀ» Âõ¾î ¹ß±ä´Ù.",
  790. "¶§·Î´Â ÀڽŵéÀÇ ¸ö¿¡ ´Á´ëÀÇ ¿µÈ¥À» À̾î",
  791. "¹Þ¾Æ, ÀüÀå¿¡¼­ ¹«»ç¸¦ ÃÊ¿ùÇÏ´Â ¼ø°£ÀûÀÎ",
  792. "°ø°Ý·ÂÀ» ¹ßÃëÇϱ⵵ Çϴµ¥, ÀûµéÀº ±×",
  793. "¸ð½ÀÀÌ Èí»ç [´ë¶û]À» ´à¾Æ [»ç½Å]À̶ó",
  794. "ºÎ¸£±âµµ ÇÑ´Ù."],
  795. ["ÇØ´ç¾øÀ½"],
  796. ],
  797. ]
  798.  
  799.  
  800. WHISPER_ERROR = {
  801. 1 : CANNOT_WHISPER_NOT_LOGON,
  802. 2 : CANNOT_WHISPER_DEST_REFUSE,
  803. 3 : CANNOT_WHISPER_SELF_REFUSE,
  804. }
  805.  
  806. NOTIFY_MESSAGE = {
  807. "CANNOT_EQUIP_SHOP" : CANNOT_EQUIP_IN_SHOP,
  808. "CANNOT_EQUIP_EXCHANGE" : CANNOT_EQUIP_IN_EXCHANGE,
  809. }
  810.  
  811.  
  812. ATTACK_ERROR_TAIL_DICT = {
  813. "IN_SAFE" : CANNOT_ATTACK_SELF_IN_SAFE,
  814. "DEST_IN_SAFE" : CANNOT_ATTACK_DEST_IN_SAFE,
  815. }
  816.  
  817. SHOT_ERROR_TAIL_DICT = {
  818. "EMPTY_ARROW" : CANNOT_SHOOT_EMPTY_ARROW,
  819. "IN_SAFE" : CANNOT_SHOOT_SELF_IN_SAFE,
  820. "DEST_IN_SAFE" : CANNOT_SHOOT_DEST_IN_SAFE,
  821. }
  822.  
  823. USE_SKILL_ERROR_TAIL_DICT = {
  824. "IN_SAFE" : CANNOT_SKILL_SELF_IN_SAFE,
  825. "NEED_TARGET" : CANNOT_SKILL_NEED_TARGET,
  826. "NEED_EMPTY_BOTTLE" : CANNOT_SKILL_NEED_EMPTY_BOTTLE,
  827. "NEED_POISON_BOTTLE" : CANNOT_SKILL_NEED_POISON_BOTTLE,
  828. "REMOVE_FISHING_ROD" : CANNOT_SKILL_REMOVE_FISHING_ROD,
  829. "NOT_YET_LEARN" : CANNOT_SKILL_NOT_YET_LEARN,
  830. "NOT_MATCHABLE_WEAPON" : CANNOT_SKILL_NOT_MATCHABLE_WEAPON,
  831. "WAIT_COOLTIME" : CANNOT_SKILL_WAIT_COOLTIME,
  832. "NOT_ENOUGH_HP" : CANNOT_SKILL_NOT_ENOUGH_HP,
  833. "NOT_ENOUGH_SP" : CANNOT_SKILL_NOT_ENOUGH_SP,
  834. "CANNOT_USE_SELF" : CANNOT_SKILL_USE_SELF,
  835. "ONLY_FOR_ALLIANCE" : CANNOT_SKILL_ONLY_FOR_ALLIANCE,
  836. "CANNOT_ATTACK_ENEMY_IN_SAFE_AREA" : CANNOT_SKILL_DEST_IN_SAFE,
  837. "CANNOT_APPROACH" : CANNOT_SKILL_APPROACH,
  838. "CANNOT_ATTACK" : CANNOT_SKILL_ATTACK,
  839. "ONLY_FOR_CORPSE" : CANNOT_SKILL_ONLY_FOR_CORPSE,
  840. "EQUIP_FISHING_ROD" : CANNOT_SKILL_EQUIP_FISHING_ROD,
  841. "NOT_HORSE_SKILL" : CANNOT_SKILL_NOT_HORSE_SKILL,
  842. "HAVE_TO_RIDE" : CANNOT_SKILL_HAVE_TO_RIDE,
  843. }
  844.  
  845. LEVEL_LIST=["", HORSE_LEVEL1, HORSE_LEVEL2, HORSE_LEVEL3]
  846.  
  847. HEALTH_LIST=[
  848. HORSE_HEALTH0,
  849. HORSE_HEALTH1,
  850. HORSE_HEALTH2,
  851. HORSE_HEALTH3,
  852. ]
  853.  
  854.  
  855. USE_SKILL_ERROR_CHAT_DICT = {
  856. "NEED_EMPTY_BOTTLE" : SKILL_NEED_EMPTY_BOTTLE,
  857. "NEED_POISON_BOTTLE" : SKILL_NEED_POISON_BOTTLE,
  858. "ONLY_FOR_GUILD_WAR" : SKILL_ONLY_FOR_GUILD_WAR,
  859. }
  860.  
  861. if app.ENABLE_BATTLE_FIELD:
  862. SHOP_ERROR_DICT = {
  863. "NOT_ENOUGH_MONEY" : SHOP_NOT_ENOUGH_MONEY,
  864. "SOLDOUT" : SHOP_SOLDOUT,
  865. "INVENTORY_FULL" : SHOP_INVENTORY_FULL,
  866. "INVALID_POS" : SHOP_INVALID_POS,
  867. "NOT_ENOUGH_MONEY_EX" : SHOP_NOT_ENOUGH_MONEY_EX,
  868. "NOT_ENOUGH_BP" : SHOP_NOT_ENOUGH_BATTLE_POINT,
  869. "EXCEED_LIMIT_TODAY" : SHOP_EXCEED_LIMIT_TODAY,
  870. }
  871. else:
  872. SHOP_ERROR_DICT = {
  873. "NOT_ENOUGH_MONEY" : SHOP_NOT_ENOUGH_MONEY,
  874. "SOLDOUT" : SHOP_SOLDOUT,
  875. "INVENTORY_FULL" : SHOP_INVENTORY_FULL,
  876. "INVALID_POS" : SHOP_INVALID_POS,
  877. "NOT_ENOUGH_MONEY_EX" : SHOP_NOT_ENOUGH_MONEY_EX,
  878. }
  879. if app.ENABLE_10TH_EVENT:
  880. SHOP_ERROR_DICT["NOT_ENOUGH_10TH_COIN"] = SHOP_NOT_ENOUGH_10TH_COIN
  881.  
  882. if app.ENABLE_12ZI:
  883. SHOP_ERROR_DICT["LIMITED_PURCHASE_OVER"] = SHOP_LIMITED_PURCHASE_OVER
  884. SHOP_ERROR_DICT["LIMITED_DATA_LOADING"] = SHOP_LIMITED_DATA_LOADING
  885.  
  886. STAT_MINUS_DESCRIPTION = {
  887. "HTH-" : STAT_MINUS_CON,
  888. "INT-" : STAT_MINUS_INT,
  889. "STR-" : STAT_MINUS_STR,
  890. "DEX-" : STAT_MINUS_DEX,
  891. }
  892.  
  893. MODE_NAME_LIST = ( PVP_OPTION_NORMAL, PVP_OPTION_REVENGE, PVP_OPTION_KILL, PVP_OPTION_PROTECT, )
  894. TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, )
  895.  
  896. def GetLetterImageName():
  897. return "season1/icon/scroll_close.tga"
  898. def GetLetterOpenImageName():
  899. return "season1/icon/scroll_open.tga"
  900. def GetLetterCloseImageName():
  901. return "season1/icon/scroll_close.tga"
  902.  
  903. if app.ENABLE_MONSTER_BACK or app.ENABLE_CARNIVAL2016:
  904. def GetBlueLetterImageName():
  905. return "icon/item/scroll_close_blue.tga"
  906. def GetBlueLetterOpenImageName():
  907. return "icon/item/scroll_open_blue.tga"
  908. def GetBlueLetterCloseImageName():
  909. return "icon/item/scroll_close_blue.tga"
  910.  
  911. if 949 == app.GetDefaultCodePage():
  912. def EUL(name):
  913. if GetAuxiliaryWordType(name):
  914. return "¸¦ "
  915. else:
  916. return "À» "
  917.  
  918. def I(name):
  919. if GetAuxiliaryWordType(name):
  920. return "°¡ "
  921. else:
  922. return "ÀÌ "
  923.  
  924. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  925. name = sellItemName
  926. if sellItemCount > 1:
  927. name += " "
  928. name += str(sellItemCount)
  929. name += "°³"
  930.  
  931. return name + EUL(name) + str(sellItemPrice) + "³É¿¡ ÆĽðڽÀ´Ï±î?"
  932.  
  933. if app.ENABLE_CHEQUE_SYSTEM:
  934. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice, sellItemCheque = 0):
  935. if sellItemCheque > 0:
  936. if buyItemCount > 1 :
  937. return DO_YOU_BUY_ITEM4 % ( buyItemName, buyItemCount, sellItemCheque, buyItemPrice )
  938. else:
  939. return DO_YOU_BUY_ITEM3 % ( buyItemName, sellItemCheque, buyItemPrice )
  940. else:
  941. if buyItemCount > 1 :
  942. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  943. else:
  944. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  945. else:
  946. def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
  947. name = sellItemName
  948. if sellItemCount > 1:
  949. name += " "
  950. name += str(sellItemCount)
  951. name += "°³"
  952.  
  953. return name + EUL(name) + str(sellItemPrice) + "¿¡ »ç½Ã°Ú½À´Ï±î?"
  954.  
  955. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
  956. return attachedItemName+EUL(attachedItemName)+"ºÎÂøÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù"
  957.  
  958. def REFINE_FAILURE_NO_SOCKET(attachedItemName):
  959. return attachedItemName+EUL(attachedItemName)+"ºÎÂøÇÒ ¼ö ÀÖ´Â ¼ÒÄÏÀÌ ¾ø½À´Ï´Ù"
  960.  
  961. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
  962. return attachedItemName+EUL(attachedItemName)+"ºÎÂøÇÒ ¼ö Àִ Ȳ±Ý ¼ÒÄÏÀÌ ¾ø½À´Ï´Ù"
  963.  
  964. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
  965. name = dropItemName
  966. if dropItemCount > 1:
  967. name += " "
  968. name += str(dropItemCount)
  969. name += "°³"
  970.  
  971. return name+EUL(name)+"¹ö¸®½Ã°Ú½À´Ï±î?"
  972.  
  973. def NumberToMoneyString(n):
  974. if app.ENABLE_CHEQUE_SYSTEM:
  975. if n <= 0 :
  976. return "0"
  977.  
  978. return "%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 ]))
  979. else:
  980. if n <= 0:
  981. return "0³É"
  982.  
  983. n = str(n)
  984. result = CutMoneyString(n, 0, 4, "", "")
  985. result = CutMoneyString(n, 4, 8, "¸¸", result)
  986. result = CutMoneyString(n, 8, 12, "¾ï", result)
  987. result = result + "³É"
  988.  
  989. return result
  990.  
  991. if app.ENABLE_BATTLE_FIELD:
  992. def NumberToSecondaryCoinString(number, coinType):
  993. if number <= 0:
  994. number = 0
  995.  
  996. coinTypeString = ""
  997.  
  998. if coinType == shop.SHOP_COIN_TYPE_SECONDARY_COIN:
  999. coinTypeString = "Àü"
  1000. elif coinType == shop.SHOP_COIN_TYPE_BATTLE_POINT:
  1001. coinTypeString = "¹èƲÆ÷ÀÎÆ®"
  1002. elif app.ENABLE_10TH_EVENT and coinType == shop.SHOP_COIN_TYPE_10TH_EVENT:
  1003. coinTypeString = "±â³äÁÖÈ­"
  1004. else:
  1005. return "Not Valied"
  1006.  
  1007. number = str(number)
  1008. result = CutMoneyString(number, 0, 4, "", "")
  1009. result = CutMoneyString(number, 4, 8, "¸¸", result)
  1010. result = CutMoneyString(number, 8, 12, "¾ï", result)
  1011.  
  1012. return "%s %s" % (result, coinTypeString)
  1013. else:
  1014. def NumberToSecondaryCoinString(number):
  1015. if number <= 0:
  1016. return "0Àü"
  1017.  
  1018. number = str(number)
  1019. result = CutMoneyString(number, 0, 4, "", "")
  1020. result = CutMoneyString(number, 4, 8, "¸¸", result)
  1021. result = CutMoneyString(number, 8, 12, "¾ï", result)
  1022. result = result + "Àü"
  1023.  
  1024. return result
  1025. def FISHING_NOTIFY(isFish, fishName):
  1026. if isFish:
  1027. return fishName + I(fishName) + "¹® µí ÇÕ´Ï´Ù."
  1028. else:
  1029. return fishName + I(fishName) + "°É¸°µí ÇÕ´Ï´Ù."
  1030.  
  1031. def FISHING_SUCCESS(isFish, fishName):
  1032. if isFish:
  1033. return fishName + EUL(fishName) + "Àâ¾Ò½À´Ï´Ù!"
  1034. else:
  1035. return fishName + EUL(fishName) + "¾ò¾ú½À´Ï´Ù!"
  1036.  
  1037. elif 932 == app.GetDefaultCodePage():
  1038. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  1039. if sellItemCount > 1 :
  1040. return "%s %s ŒÂ‚ð %s‚É”„‚è‚Ü‚·‚©H" % ( sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  1041. else:
  1042. return "%s ‚ð %s‚Å”„‚è‚Ü‚·‚©H" % (sellItemName, NumberToMoneyString(sellItemPrice) )
  1043.  
  1044. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  1045. if buyItemCount > 1 :
  1046. return "%s %sŒÂ‚ð %s‚Å”ƒ‚¢‚Ü‚·‚©H" % ( buyItemName, buyItemCount, buyItemPrice )
  1047. else:
  1048. return "%s‚ð %s‚Å”ƒ‚¢‚Ü‚·‚©H" % ( buyItemName, buyItemPrice )
  1049.  
  1050. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  1051. return "%s‚ð‘•’…‚Å‚«‚È‚¢ƒAƒCƒe?‚Å‚·B" % (attachedItemName)
  1052.  
  1053. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  1054. return "%s‚ð‘•’…‚·‚é?ƒPƒbƒg‚ª‚ ‚è‚Ü‚¹‚ñB" % (attachedItemName)
  1055.  
  1056. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  1057. return "%s‚ð‘•’…‚Å‚«‚鉩‹à?ƒPƒbƒg‚ª‚ ‚è‚Ü‚¹‚ñB" % (attachedItemName)
  1058.  
  1059. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  1060. if dropItemCount > 1 :
  1061. return "%s %d ŒÂ‚ðŽÌ‚Ä‚Ü‚·‚©H" % (dropItemName, dropItemCount)
  1062. else :
  1063. return "%s‚ðŽÌ‚Ä‚Ü‚·‚©H" % (dropItemName)
  1064.  
  1065. def FISHING_NOTIFY(isFish, fishName) :
  1066. if isFish :
  1067. return "%s ‚ªH‚¢‚‚¢‚½‚悤‚Å‚·" % ( fishName )
  1068. else :
  1069. return "%s ‚ª‚©‚©‚Á‚½‚悤‚Å‚·" % ( fishName )
  1070.  
  1071. def FISHING_SUCCESS(isFish, fishName) :
  1072. if isFish :
  1073. return "%s ‚ð•ß‚Ü‚¦‚Ü‚µ‚½I" % (fishName)
  1074. else :
  1075. return "%s ‚ðŽè‚É“ü‚ê‚Ü‚µ‚½I" % (fishName)
  1076.  
  1077. def NumberToMoneyString(number) :
  1078. if number <= 0 :
  1079. return "0—¼"
  1080.  
  1081. number = str(number)
  1082. result = CutMoneyString(number, 0, 4, "", "")
  1083. result = CutMoneyString(number, 4, 8, "–œ", result)
  1084. result = CutMoneyString(number, 8, 12, "‰­", result)
  1085. result = result + "—¼"
  1086.  
  1087. return result
  1088.  
  1089. if app.ENABLE_BATTLE_FIELD:
  1090. def NumberToSecondaryCoinString(number, coinType) :
  1091. if number <= 0:
  1092. number = 0
  1093.  
  1094. coinTypeString = ""
  1095.  
  1096. if coinType == shop.SHOP_COIN_TYPE_SECONDARY_COIN:
  1097. coinTypeString = "jun"
  1098. elif coinType == shop.SHOP_COIN_TYPE_BATTLE_POINT:
  1099. coinTypeString = "battlePoint"
  1100. elif app.ENABLE_10TH_EVENT and coinType == shop.SHOP_COIN_TYPE_10TH_EVENT:
  1101. coinTypeString = "10thCoin"
  1102. else:
  1103. return "Not Valied"
  1104.  
  1105. number = str(number)
  1106. result = CutMoneyString(number, 0, 4, "", "")
  1107. result = CutMoneyString(number, 4, 8, "–œ", result)
  1108. result = CutMoneyString(number, 8, 12, "‰­", result)
  1109.  
  1110. return "%s %s" % (result, coinTypeString)
  1111. else:
  1112. def NumberToSecondaryCoinString(number) :
  1113. if number <= 0 :
  1114. return "0jun"
  1115.  
  1116. number = str(number)
  1117. result = CutMoneyString(number, 0, 4, "", "")
  1118. result = CutMoneyString(number, 4, 8, "–œ", result)
  1119. result = CutMoneyString(number, 8, 12, "‰­", result)
  1120. result = result + "jun"
  1121.  
  1122. return result
  1123.  
  1124. elif IsHONGKONG():
  1125. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  1126. if sellItemCount > 1 :
  1127. return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  1128. else:
  1129. return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )
  1130.  
  1131. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  1132. if buyItemCount > 1 :
  1133. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  1134. else:
  1135. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  1136.  
  1137. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  1138. return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)
  1139.  
  1140. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  1141. return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)
  1142.  
  1143. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  1144. return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
  1145.  
  1146. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  1147. if dropItemCount > 1 :
  1148. return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
  1149. else :
  1150. return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)
  1151.  
  1152. def FISHING_NOTIFY(isFish, fishName) :
  1153. if isFish :
  1154. return FISHING_NOTIFY1 % ( fishName )
  1155. else :
  1156. return FISHING_NOTIFY2 % ( fishName )
  1157.  
  1158. def FISHING_SUCCESS(isFish, fishName) :
  1159. if isFish :
  1160. return FISHING_SUCCESS1 % (fishName)
  1161. else :
  1162. return FISHING_SUCCESS2 % (fishName)
  1163.  
  1164. def NumberToMoneyString(number) :
  1165. if number <= 0 :
  1166. return "0 %s" % (MONETARY_UNIT0)
  1167.  
  1168. number = str(number)
  1169. result = CutMoneyString(number, 0, 4, "", "")
  1170. result = CutMoneyString(number, 4, 8, MONETARY_UNIT1, result)
  1171. result = CutMoneyString(number, 8, 12, MONETARY_UNIT2, result)
  1172. result = result + MONETARY_UNIT0
  1173.  
  1174. return result
  1175.  
  1176. if app.ENABLE_BATTLE_FIELD:
  1177. def NumberToSecondaryCoinString(number, coinType) :
  1178. if number <= 0:
  1179. number = 0
  1180.  
  1181. coinTypeString = ""
  1182.  
  1183. if coinType == shop.SHOP_COIN_TYPE_SECONDARY_COIN:
  1184. coinTypeString = MONETARY_UNIT_JUN
  1185. elif coinType == shop.SHOP_COIN_TYPE_BATTLE_POINT:
  1186. coinTypeString = "BP"
  1187. elif app.ENABLE_10TH_EVENT and coinType == shop.SHOP_COIN_TYPE_10TH_EVENT:
  1188. coinTypeString = "10thCoin"
  1189. else:
  1190. return "Not Valied"
  1191.  
  1192. number = str(number)
  1193. result = CutMoneyString(number, 0, 4, "", "")
  1194. result = CutMoneyString(number, 4, 8, MONETARY_UNIT1, result)
  1195. result = CutMoneyString(number, 8, 12, MONETARY_UNIT2, result)
  1196.  
  1197. return "%s %s" % (result, coinTypeString)
  1198. else:
  1199. def NumberToSecondaryCoinString(number) :
  1200. if number <= 0 :
  1201. return "0 %s" % (MONETARY_UNIT_JUN)
  1202.  
  1203. number = str(number)
  1204. result = CutMoneyString(number, 0, 4, "", "")
  1205. result = CutMoneyString(number, 4, 8, MONETARY_UNIT1, result)
  1206. result = CutMoneyString(number, 8, 12, MONETARY_UNIT2, result)
  1207. result = result + MONETARY_UNIT_JUN
  1208.  
  1209. return result
  1210.  
  1211. elif IsNEWCIBN() or IsCIBN10():
  1212. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  1213. if sellItemCount>1:
  1214. return "È·¶¨Òª°Ñ%s¸ö%sÒÔ%s½ð±ÒÂôµôÂð£¿" % (str(sellItemCount), sellItemName, str(sellItemPrice))
  1215. else:
  1216. return "È·¶¨Òª°Ñ%sÒÔ%s½ð±ÒÂôµôÂð£¿" % (sellItemName, str(sellItemPrice))
  1217.  
  1218. def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
  1219. if sellItemCount>1:
  1220. return "È·¶¨Òª°Ñ%s¸ö%sÒÔ%s½ð±ÒÂò½øÂð£¿" % (str(sellItemCount), sellItemName, str(sellItemPrice))
  1221. else:
  1222. return "È·¶¨Òª°Ñ%sÒÔ%s½ð±ÒÂò½øÂð£¿" % (sellItemName, str(sellItemPrice))
  1223.  
  1224. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
  1225. return "ÎÞ·¨ÏâǶ%s µÄ×°±¸" % (attachedItemName)
  1226.  
  1227. def REFINE_FAILURE_NO_SOCKET(attachedItemName):
  1228. return "ûÓпÉÒÔÏâǶ%s µÄ¿×" % (attachedItemName)
  1229.  
  1230. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
  1231. return "ûÓпÉÒÔÏâǶ%s µÄ»Æ½ð¿×" % (attachedItemName)
  1232.  
  1233. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
  1234. if dropItemCount>1:
  1235. return "È·¶¨ÒªÈÓµô%d¸ö%sÂð?" % (dropItemCount, dropItemName)
  1236. else:
  1237. return "È·¶¨ÒªÈÓµô%sÂð?" % (dropItemName)
  1238.  
  1239. def FISHING_NOTIFY(isFish, fishName):
  1240. if isFish:
  1241. return fishName # º»·¡ ¿©±â¿¡ ¾î¶² ¸»ÀÌ ºÙ¾îÀִµ¥, ÀÎÄÚµùÀÌ ±úÁ®À־ º¹¿øÇÒ ¼ö°¡ ¾ø´Ù ¤Ð¤Ð... cython¿¡¼­ ÀÎÄÚµù ¿¡·¯ ³ª¼­ Áö¿ö¹ö¸²...
  1242. else:
  1243. return "µö×Å" + fishName + "ÁË¡£"
  1244.  
  1245. def FISHING_SUCCESS(isFish, fishName):
  1246. if isFish:
  1247. return "µö×Å" + fishName + "ÁË¡£"
  1248. else:
  1249. return "»ñµÃ" + fishName + "ÁË¡£"
  1250.  
  1251. def NumberToMoneyString(number):
  1252.  
  1253. if number <= 0:
  1254. return "0Á½"
  1255.  
  1256. number = str(number)
  1257. result = CutMoneyString(number, 0, 4, "", "")
  1258. result = CutMoneyString(number, 4, 8, "Íò", result)
  1259. result = CutMoneyString(number, 8, 12, "ÒÚ", result)
  1260. result = result + "Á½"
  1261.  
  1262. return result
  1263.  
  1264. if app.ENABLE_BATTLE_FIELD:
  1265. def NumberToSecondaryCoinString(number, coinType):
  1266.  
  1267. if number <= 0:
  1268. number = 0
  1269.  
  1270. coinTypeString = ""
  1271.  
  1272. if coinType == shop.SHOP_COIN_TYPE_SECONDARY_COIN:
  1273. coinTypeString = "JUN"
  1274. elif coinType == shop.SHOP_COIN_TYPE_BATTLE_POINT:
  1275. coinTypeString = "BP"
  1276. elif app.ENABLE_10TH_EVENT and coinType == shop.SHOP_COIN_TYPE_10TH_EVENT:
  1277. coinTypeString = "10thCoin"
  1278. else:
  1279. return "Not Valied"
  1280.  
  1281. number = str(number)
  1282. result = CutMoneyString(number, 0, 4, "", "")
  1283. result = CutMoneyString(number, 4, 8, "Íò", result)
  1284. result = CutMoneyString(number, 8, 12, "ÒÚ", result)
  1285.  
  1286. return "%s %s" % (result, coinTypeString)
  1287. else:
  1288. def NumberToSecondaryCoinString(number):
  1289.  
  1290. if number <= 0:
  1291. return "0JUN"
  1292.  
  1293. number = str(number)
  1294. result = CutMoneyString(number, 0, 4, "", "")
  1295. result = CutMoneyString(number, 4, 8, "Íò", result)
  1296. result = CutMoneyString(number, 8, 12, "ÒÚ", result)
  1297. result = result + "JUN"
  1298.  
  1299. return result
  1300. elif IsEUROPE() and not IsWE_KOREA() and not IsYMIR():
  1301. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  1302. if sellItemCount > 1 :
  1303. return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  1304. else:
  1305. return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )
  1306.  
  1307. if app.ENABLE_CHEQUE_SYSTEM:
  1308. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice, sellItemCheque = 0):
  1309. if sellItemCheque > 0:
  1310. if buyItemCount > 1 :
  1311. return DO_YOU_BUY_ITEM4 % ( buyItemName, buyItemCount, sellItemCheque, buyItemPrice )
  1312. else:
  1313. return DO_YOU_BUY_ITEM3 % ( buyItemName, sellItemCheque, buyItemPrice )
  1314. else:
  1315. if buyItemCount > 1 :
  1316. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  1317. else:
  1318. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  1319. else:
  1320. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  1321. if buyItemCount > 1 :
  1322. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  1323. else:
  1324. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  1325.  
  1326. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  1327. return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)
  1328.  
  1329. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  1330. return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)
  1331.  
  1332. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  1333. return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
  1334.  
  1335. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  1336. if dropItemCount > 1 :
  1337. return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
  1338. else :
  1339. return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)
  1340.  
  1341. def FISHING_NOTIFY(isFish, fishName) :
  1342. if isFish :
  1343. return FISHING_NOTIFY1 % ( fishName )
  1344. else :
  1345. return FISHING_NOTIFY2 % ( fishName )
  1346.  
  1347. def FISHING_SUCCESS(isFish, fishName) :
  1348. if isFish :
  1349. return FISHING_SUCCESS1 % (fishName)
  1350. else :
  1351. return FISHING_SUCCESS2 % (fishName)
  1352.  
  1353. if app.ENABLE_CHEQUE_SYSTEM:
  1354. def NumberToMoneyString(n) :
  1355. if n <= 0 :
  1356. return "0"
  1357.  
  1358. return "%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 ]))
  1359. else:
  1360. def NumberToMoneyString(n) :
  1361. if n <= 0 :
  1362. return "0 %s" % (MONETARY_UNIT0)
  1363.  
  1364. 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)
  1365.  
  1366. if app.ENABLE_BATTLE_FIELD:
  1367. def NumberToSecondaryCoinString(n, coinType) :
  1368.  
  1369. if n <= 0:
  1370. n = 0
  1371.  
  1372. coinTypeString = ""
  1373.  
  1374. if coinType == shop.SHOP_COIN_TYPE_SECONDARY_COIN:
  1375. coinTypeString = MONETARY_UNIT_JUN
  1376. elif coinType == shop.SHOP_COIN_TYPE_BATTLE_POINT:
  1377. coinTypeString = BATTLE_POINT
  1378. elif app.ENABLE_10TH_EVENT and coinType == shop.SHOP_COIN_TYPE_10TH_EVENT:
  1379. coinTypeString = TENTH_COIN
  1380. else:
  1381. return "Not Valied"
  1382.  
  1383. 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 ]), coinTypeString)
  1384. else:
  1385. def NumberToSecondaryCoinString(n) :
  1386. if n <= 0 :
  1387. return "0 %s" % (MONETARY_UNIT_JUN)
  1388.  
  1389. return "%s %s" % ('.'.join([ i-3<0 and str(n)[:i] or str(n)[i-3:i] for i in range(len(str(n))%3, len(str(n))+1, 3) if i ]), MONETARY_UNIT_JUN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement