1. import app
  2. import constInfo
  3. MAP_TRENT02 = "MAP_TRENT02" # ÀÓ½Ã
  4. MAP_WL = "MAP_WL" # ÀÓ½Ã
  5. MAP_NUSLUCK = "MAP_NUSLUCK" # ÀÓ½Ã
  6. MAP_TREE2 = "MAP_TREE2"
  7. BLEND_POTION_NO_TIME = "BLEND_POTION_NO_TIME"
  8. BLEND_POTION_NO_INFO = "BLEND_POTION_NO_INFO"
  9. APP_TITLE = "[DEV]Casper "
  10. GUILD_HEADQUARTER = "Main Building"
  11. GUILD_FACILITY = "Facility"
  12. GUILD_OBJECT = "Object"
  13. GUILD_MEMBER_COUNT_INFINITY = "INFINITY"
  14. LOGIN_FAILURE_WEB_BLOCK = "BLOCK_LOGIN(WEB)"
  15. LOGIN_FAILURE_BLOCK_LOGIN = "BLOCK_LOGIN"
  16. CHANNEL_NOTIFY_FULL = "CHANNEL_NOTIFY_FULL"
  17. GUILD_BUILDING_LIST_TXT = app.GetLocalePath() + "/GuildBuildingList.txt"
  18. GUILD_MARK_MIN_LEVEL = "3"
  19. GUILD_MARK_NOT_ENOUGH_LEVEL = "±æµå·¹º§ 3ÀÌ»ó ºÎÅÍ °¡´ÉÇÕ´Ï´Ù."
  20. ERROR_MARK_UPLOAD_NEED_RECONNECT = "UploadMark: Reconnect to game"
  21. ERROR_MARK_CHECK_NEED_RECONNECT = "CheckMark: Reconnect to game"
  22. VIRTUAL_KEY_ALPHABET_LOWERS = r"[1234567890]/qwertyuiop\=asdfghjkl;`'zxcvbnm.,"
  23. VIRTUAL_KEY_ALPHABET_UPPERS = r'{1234567890}?QWERTYUIOP|+ASDFGHJKL:~"ZXCVBNM<>'
  24. VIRTUAL_KEY_SYMBOLS = '!@#$%^&*()_+|{}:"<>?~'
  25. VIRTUAL_KEY_NUMBERS = "1234567890-=\[];',./`"
  26. VIRTUAL_KEY_SYMBOLS_BR = '!@#$%^&*()_+|{}:"<>?~áàãâéèêíìóòôõúùç'
  27. __IS_ENGLISH = "ENGLISH" == app.GetLocaleServiceName()
  28. __IS_HONGKONG = "HONGKONG" == app.GetLocaleServiceName()
  29. __IS_NEWCIBN = "locale/newcibn" == app.GetLocalePath()
  30. __IS_EUROPE = "EUROPE" == app.GetLocaleServiceName()
  31. __IS_CANADA = "locale/ca" == app.GetLocalePath()
  32. __IS_BRAZIL = "locale/br" == app.GetLocalePath()
  33. __IS_SINGAPORE = "locale/sg" == app.GetLocalePath()
  34. __IS_VIETNAM = "locale/vn" == app.GetLocalePath()
  35. __IS_ARABIC = "locale/ae" == app.GetLocalePath()
  36. __IS_CIBN10 = "locale/cibn10" == app.GetLocalePath()
  37. __IS_WE_KOREA = "locale/we_korea" == app.GetLocalePath()
  38. __IS_TAIWAN = "locale/taiwan" == app.GetLocalePath()
  39. __IS_JAPAN = "locale/japan" == app.GetLocalePath()
  40. LOGIN_FAILURE_WRONG_SOCIALID = "ASDF"
  41. LOGIN_FAILURE_SHUTDOWN_TIME = "ASDF"
  42. if app.ENABLE_CHEQUE_SYSTEM:
  43. def NumberToGold(n) :
  44. if n <= 0 :
  45. return "0 %s" % (MONETARY_UNIT0)
  46. 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)
  47. def NumberToGoldNotText(n) :
  48. if n <= 0 :
  49. return "0 %s" % ("")
  50. 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 ]), "")
  51. def NumberToCheque(n) :
  52. if n <= 0 :
  53. return "0 %s" % (CHEQUE_SYSTEM_UNIT_CHEQUE)
  54. 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 ]), CHEQUE_SYSTEM_UNIT_CHEQUE)
  55. def DO_YOU_BUY_ITEM_YANG_CHEQUE(buyItemName, buyItemCount, buyItemPrice, buyItemCheque) :
  56. if buyItemCount > 1 :
  57. return DO_YOU_BUY_ITEM2_CHEQUE % ( buyItemName, buyItemCount, buyItemCheque, buyItemPrice)
  58. else:
  59. return DO_YOU_BUY_ITEM1_CHEQUE % ( buyItemName, buyItemCheque, buyItemPrice)
  60. def DO_YOU_BUY_ITEM_CHEQUE_SIN_YANG(buyItemName, buyItemCount, buyItemCheque) :
  61. if buyItemCount > 1 :
  62. return DO_YOU_BUY_ITEM2_CHEQUE1 % ( buyItemName, buyItemCount, buyItemCheque)
  63. else:
  64. return DO_YOU_BUY_ITEM1_CHEQUE1 % ( buyItemName, buyItemCheque)
  65. if __IS_CANADA:
  66. __IS_EUROPE = True
  67. def IsYMIR():
  68. return "locale/ymir" == app.GetLocalePath()
  69. def IsJAPAN():
  70. return "locale/japan" == app.GetLocalePath()
  71. def IsENGLISH():
  72. global __IS_ENGLISH
  73. return __IS_ENGLISH
  74. def IsHONGKONG():
  75. global __IS_HONGKONG
  76. return __IS_HONGKONG
  77. def IsTAIWAN():
  78. return "locale/taiwan" == app.GetLocalePath()
  79. def IsNEWCIBN():
  80. return "locale/newcibn" == app.GetLocalePath()
  81. def IsCIBN10():
  82. global __IS_CIBN10
  83. return __IS_CIBN10
  84. def IsEUROPE():
  85. global __IS_EUROPE
  86. return __IS_EUROPE
  87. def IsCANADA():
  88. global __IS_CANADA
  89. return __IS_CANADA
  90. def IsBRAZIL():
  91. global __IS_BRAZIL
  92. return __IS_BRAZIL
  93. def IsVIETNAM():
  94. global __IS_VIETNAM
  95. return __IS_VIETNAM
  96. def IsSINGAPORE():
  97. global __IS_SINGAPORE
  98. return __IS_SINGAPORE
  99. def IsARABIC():
  100. global __IS_ARABIC
  101. return __IS_ARABIC
  102. def IsWE_KOREA():
  103. return "locale/we_korea" == app.GetLocalePath()
  104. # SUPPORT_NEW_KOREA_SERVER
  105. def LoadLocaleData():
  106. if IsYMIR():
  107. import net
  108. SERVER = "Äèµµ ¼­¹ö"
  109. if SERVER == net.GetServerInfo()[:len(SERVER)]:
  110. app.SetCHEONMA(0)
  111. app.LoadLocaleData("locale/we_korea")
  112. constInfo.ADD_DEF_BONUS_ENABLE = 0
  113. else:
  114. app.SetCHEONMA(1)
  115. app.LoadLocaleData("locale/ymir")
  116. constInfo.ADD_DEF_BONUS_ENABLE = 1
  117. else:
  118. app.LoadLocaleData(app.GetLocalePath())
  119. def IsCHEONMA():
  120. return IsYMIR() # ÀÌÁ¦ YMIR ·ÎÄÉÀÏÀº ¹«Á¶°Ç õ¸¶¼­¹öÀÓ. õ¸¶¼­¹ö°¡ ¹®À» ´İ±â Àü±îÁö º¯ÇÒ ÀÏ ¾øÀ½.
  121. # END_OF_SUPPORT_NEW_KOREA_SERVER
  122. def mapping(**kwargs): return kwargs
  123. def SNA(text):
  124. def f(x):
  125. return text
  126. return f
  127. def SA(text):
  128. def f(x):
  129. return text % x
  130. return f
  131. ## PET_SKILL_INFO FNCS BEGIN
  132. def SAN(text):
  133. def f(x):
  134. return text % x
  135. return f
  136. def SAA(text):
  137. def f(x):
  138. return text % x
  139. return f
  140. ## PET_SKILL_INFO FNCS END
  141. def LoadLocaleFile(srcFileName, localeDict):
  142. funcDict = {"SA":SA, "SNA":SNA, "SAA":SAA, "SAN":SAN}
  143. lineIndex = 1
  144. try:
  145. lines = open(srcFileName, "r").readlines()
  146. except IOError:
  147. import dbg
  148. dbg.LogBox("LoadLocaleError(%(srcFileName)s)" % locals())
  149. app.Abort()
  150. for line in lines:
  151. try:
  152. tokens = line[:-1].split("\t")
  153. if len(tokens) == 2:
  154. localeDict[tokens[0]] = tokens[1]
  155. elif len(tokens) >= 3:
  156. type = tokens[2].strip()
  157. if type:
  158. localeDict[tokens[0]] = funcDict[type](tokens[1])
  159. else:
  160. localeDict[tokens[0]] = tokens[1]
  161. else:
  162. raise RuntimeError, "Unknown TokenSize"
  163. lineIndex += 1
  164. except:
  165. import dbg
  166. dbg.LogBox("%s: line(%d): %s" % (srcFileName, lineIndex, line), "Error")
  167. raise
  168. all = ["locale","error"]
  169. if IsEUROPE() and IsBRAZIL() :
  170. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  171. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  172. constInfo.IN_GAME_SHOP_ENABLE = 0
  173. elif IsSINGAPORE() :
  174. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  175. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  176. constInfo.IN_GAME_SHOP_ENABLE = 0
  177. elif IsNEWCIBN() :
  178. ##°ÔÀÓ¸íÀ̱úÁø´Ù.
  179. APP_TITLE = "ĞÂÒĞÌì2"
  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 = 1
  183. elif IsTAIWAN():
  184. APP_TITLE = "°«III°ê"
  185. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  186. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  187. constInfo.IN_GAME_SHOP_ENABLE = 1
  188. else:
  189. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  190. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  191. constInfo.IN_GAME_SHOP_ENABLE = 1
  192. LoadLocaleFile(LOCALE_FILE_NAME, locals())
  193. ########################################################################################################
  194. ## NOTE : ¾ÆÀÌÅÛÀ» ¹ö¸±¶§ "¹«¾ùÀ»/¸¦ ¹ö¸®½Ã°Ú½À´Ï±î?" ¹®ÀÚ¿­ÀÇ Á¶»ç ¼±ÅÃÀ» À§ÇÑ ÄÚµå
  195. dictSingleWord = {
  196. "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,
  197. }
  198. dictDoubleWord = {
  199. "°¡":1, "°¼":1, "°Å":1, "°Ü":1, "°í":1, "±³":1, "±¸":1, "±Ô":1, "±×":1, "±â":1, "°³":1, "°Â":1, "°Ô":1, "°è":1, "°ú":1, "±¥":1, "±Å":1, "±Ë":1, "±«":1, "±Í":1, "±á":1,
  200. "±î":1, "²¥":1, "²¨":1, "²¸":1, "²¿":1, "²Ø":1, "²Ù":1, "²ó":1, "²ô":1, "³¢":1, "±ú":1, "ƒÆ":1, "²²":1, "²¾":1, "²Ê":1, "²Ï":1, "²ã":1, "²ç":1, "²Ò":1, "²î":1, "…Ê":1,
  201. "³ª":1, "³Ä":1, "³Ê":1, "³à":1, "³ë":1, "´¢":1, "´©":1, "´º":1, "´À":1, "´Ï":1, "³»":1, "†v":1, "³×":1, "³é":1, "³ö":1, "‡R":1, "´²":1, "´´":1, "³ú":1, "´µ":1, "´Ì":1,
  202. "´Ù":1, "´ô":1, "´õ":1, "µ®":1, "µµ":1, "µÍ":1, "µÎ":1, "µà":1, "µå":1, "µğ":1, "´ë":1, "ˆÛ":1, "µ¥":1, "µ³":1, "µÂ":1, "µÅ":1, "µÖ":1, "µØ":1, "µÇ":1, "µÚ":1, "µï":1,
  203. "µû":1, "‹x":1, "¶°":1, "¶Å":1, "¶Ç":1, "ŒÃ":1, "¶Ñ":1, "":1, "¶ß":1, "¶ì":1, "¶§":1, "‹š":1, "¶¼":1, "‹ó":1, "¶Ì":1, "¶Î":1, "Œô":1, "¶Ø":1, "¶Ï":1, "¶Ù":1, "¶ç":1,
  204. "¶ó":1, "·ª":1, "·¯":1, "·Á":1, "·Î":1, "·á":1, "·ç":1, "·ù":1, "¸£":1, "¸®":1, "·¡":1, "Žm":1, "·¹":1, "·Ê":1, "·Ö":1, "O":1, "·ï":1, "·ñ":1, "·Ú":1, "·ò":1, "l":1,
  205. "¸¶":1, "¸Ï":1, "¸Ó":1, "¸ç":1, "¸ğ":1, "¹¦":1, "¹«":1, "¹Â":1, "¹Ç":1, "¹Ì":1, "¸Å":1, "Ù":1, "¸Ş":1, "¸ï":1, "¸ú":1, "‘À":1, "¹¹":1, "¹¾":1, "¸ş":1, "¹¿":1, "’Ş":1,
  206. "¹Ù":1, "¹ò":1, "¹ö":1, "º­":1, "º¸":1, "ºÌ":1, "ºÎ":1, "ºä":1, "ºê":1, "ºñ":1, "¹è":1, "“Ž":1, "º£":1, "º¶":1, "ºÁ":1, "ºÄ":1, "ºÛ":1, "ºŞ":1, "ºÆ":1, "ºß":1, "•‘":1,
  207. "ºü":1, "»²":1, "»µ":1, "»À":1, "»Ç":1, "»Ï":1, "»Ñ":1, "»Ø":1, "»Ú":1, "»ß":1, "»©":1, "•û":1, "»¾":1, "–§":1, "–Ø":1, "–ô":1, "—¨":1, "—Ä":1, "»Î":1, "—à":1, "˜u":1,
  208. "»ç":1, "»ş":1, "¼­":1, "¼Å":1, "¼Ò":1, "¼î":1, "¼ö":1, "½´":1, "½º":1, "½Ã":1, "»õ":1, "¼¨":1, "¼¼":1, "¼Î":1, "¼İ":1, "¼â":1, "½¤":1, "½¦":1, "¼è":1, "½¬":1, "šÃ":1,
  209. "½Î":1, "›X":1, "½á":1, "›Ç":1, "½î":1, "¾¤":1, "¾¥":1, "o":1, "¾²":1, "¾¾":1, "½Ø":1, "›y":1, "½ê":1, "›ã":1, "½÷":1, "½û":1, "¾¬":1, "¾®":1, "½ı":1, "¾¯":1, "¾º":1,
  210. "¾Æ":1, "¾ß":1, "¾î":1, "¿©":1, "¿À":1, "¿ä":1, "¿ì":1, "À¯":1, "À¸":1, "ÀÌ":1, "¾Ö":1, "¾ê":1, "¿¡":1, "¿¹":1, "¿Í":1, "¿Ö":1, "¿ö":1, "¿ş":1, "¿Ü":1, "À§":1, "ÀÇ":1,
  211. "ÀÚ":1, "Àğ":1, "Àú":1, "Á®":1, "Á¶":1, "ÁÒ":1, "ÁÖ":1, "Áê":1, "Áî":1, "Áö":1, "Àç":1, "À÷":1, "Á¦":1, "Áµ":1, "ÁÂ":1, "ÁÈ":1, "Áà":1, "Áâ":1, "ÁË":1, "Áã":1, "£p":1,
  212. "Â¥":1, "¹":1, "¼":1, "ÂÇ":1, "ÂÉ":1, "§c":1, "ÂŞ":1, "Âé":1, "Âê":1, "Âî":1, "°":1, "¤Š":1, "ÂÅ":1, "¥™":1, "ÂÒ":1, "ÂÖ":1, "Âå":1, "¨R":1, "ÂØ":1, "Âè":1, "©n":1,
  213. "Â÷":1, "í":1, "ó":1, "ÃÄ":1, "ÃÊ":1, "Ãİ":1, "Ãß":1, "Ãò":1, "Ã÷":1, "Ä¡":1, "ä":1, "ª‰":1, "ü":1, "ÃÇ":1, "ÃÒ":1, "¬‚":1, "Ãç":1, "Ãé":1, "ÃÖ":1, "Ãë":1, "¯M":1,
  214. "Ä«":1, "ļ":1, "Ä¿":1, "ÄÑ":1, "ÄÚ":1, "Äì":1, "Äí":1, "Å¥":1, "Å©":1, "Ű":1, "ij":1, "°m":1, "ÄÉ":1, "ÄÙ":1, "Äâ":1, "Äè":1, "Äõ":1, "Äù":1, "Äê":1, "Äû":1, "´”":1,
  215. "Ÿ":1, "ÅË":1, "ÅÍ":1, "Åß":1, "Åä":1, "Åô":1, "Åõ":1, "Æ©":1, "Æ®":1, "Ƽ":1, "ÅÂ":1, "¶O":1, "Å×":1, "Åâ":1, "Åí":1, "Åï":1, "Åı":1, "Æ¡":1, "Åğ":1, "Æ¢":1, "Æ·":1,
  216. "ÆÄ":1, "ÆÙ":1, "ÆÛ":1, "Æì":1, "Æ÷":1, "Ç¥":1, "Ǫ":1, "Ç»":1, "ÇÁ":1, "ÇÇ":1, "ÆĞ":1, "»—":1, "Æä":1, "Æó":1, "Ç¡":1, "½":1, "Ç´":1, "¿R":1, "Ç£":1, "Ƕ":1, "Àc":1,
  217. "ÇÏ":1, "Çá":1, "Çã":1, "Çô":1, "È£":1, "È¿":1, "ÈÄ":1, "ÈŞ":1, "Èå":1, "È÷":1, "ÇØ":1, "Á…":1, "Çì":1, "Çı":1, "È­":1, "ȳ":1, "ÈÌ":1, "ÈÑ":1, "ȸ":1, "ÈÖ":1, "Èñ":1,
  218. }
  219. locale = mapping(
  220. )
  221. def GetAuxiliaryWordType(text):
  222. textLength = len(text)
  223. if textLength > 1:
  224. singleWord = text[-1]
  225. if (singleWord >= '0' and singleWord <= '9') or\
  226. (singleWord >= 'a' and singleWord <= 'z') or\
  227. (singleWord >= 'A' and singleWord <= 'Z'):
  228. if not dictSingleWord.has_key(singleWord):
  229. return 1
  230. elif dictDoubleWord.has_key(text[-2:]):
  231. return 1
  232. return 0
  233. def CutMoneyString(sourceText, startIndex, endIndex, insertingText, backText):
  234. sourceLength = len(sourceText)
  235. if sourceLength < startIndex:
  236. return backText
  237. text = sourceText[max(0, sourceLength-endIndex):sourceLength-startIndex]
  238. if not text:
  239. return backText
  240. if int(text) <= 0:
  241. return backText
  242. text = str(int(text))
  243. if backText:
  244. backText = " " + backText
  245. return text + insertingText + backText
  246. def SecondToDHM(time):
  247. if time < 60:
  248. if IsARABIC():
  249. return "%.2f %s" % (time, SECOND)
  250. else:
  251. return "0" + MINUTE
  252. second = int(time % 60)
  253. minute = int((time / 60) % 60)
  254. hour = int((time / 60) / 60) % 24
  255. day = int(int((time / 60) / 60) / 24)
  256. text = ""
  257. if day > 0:
  258. text += str(day) + DAY
  259. text += " "
  260. if hour > 0:
  261. text += str(hour) + HOUR
  262. text += " "
  263. if minute > 0:
  264. text += str(minute) + MINUTE
  265. return text
  266. def SecondToHM(time):
  267. if time < 60:
  268. if IsARABIC():
  269. return "%.2f %s" % (time, SECOND)
  270. else:
  271. return "0" + MINUTE
  272. second = int(time % 60)
  273. minute = int((time / 60) % 60)
  274. hour = int((time / 60) / 60)
  275. text = ""
  276. if hour > 0:
  277. text += str(hour) + HOUR
  278. if hour > 0:
  279. text += " "
  280. if minute > 0:
  281. text += str(minute) + MINUTE
  282. return text
  283. def GetAlignmentTitleName(alignment):
  284. if alignment >= 12000:
  285. return TITLE_NAME_LIST[0]
  286. elif alignment >= 8000:
  287. return TITLE_NAME_LIST[1]
  288. elif alignment >= 4000:
  289. return TITLE_NAME_LIST[2]
  290. elif alignment >= 1000:
  291. return TITLE_NAME_LIST[3]
  292. elif alignment >= 0:
  293. return TITLE_NAME_LIST[4]
  294. elif alignment > -4000:
  295. return TITLE_NAME_LIST[5]
  296. elif alignment > -8000:
  297. return TITLE_NAME_LIST[6]
  298. elif alignment > -12000:
  299. return TITLE_NAME_LIST[7]
  300. return TITLE_NAME_LIST[8]
  301. OPTION_PVPMODE_MESSAGE_DICT = {
  302. 0 : PVP_MODE_NORMAL,
  303. 1 : PVP_MODE_REVENGE,
  304. 2 : PVP_MODE_KILL,
  305. 3 : PVP_MODE_PROTECT,
  306. 4 : PVP_MODE_GUILD,
  307. }
  308. error = mapping(
  309. CREATE_WINDOW = GAME_INIT_ERROR_MAIN_WINDOW,
  310. CREATE_CURSOR = GAME_INIT_ERROR_CURSOR,
  311. CREATE_NETWORK = GAME_INIT_ERROR_NETWORK,
  312. CREATE_ITEM_PROTO = GAME_INIT_ERROR_ITEM_PROTO,
  313. CREATE_MOB_PROTO = GAME_INIT_ERROR_MOB_PROTO,
  314. CREATE_NO_DIRECTX = GAME_INIT_ERROR_DIRECTX,
  315. CREATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_NOT_EXIST,
  316. CREATE_NO_APPROPRIATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_BAD_PERFORMANCE,
  317. CREATE_FORMAT = GAME_INIT_ERROR_GRAPHICS_NOT_SUPPORT_32BIT,
  318. NO_ERROR = ""
  319. )
  320. GUILDWAR_NORMAL_DESCLIST = [GUILD_WAR_USE_NORMAL_MAP, GUILD_WAR_LIMIT_30MIN, GUILD_WAR_WIN_CHECK_SCORE]
  321. GUILDWAR_WARP_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_WIPE_OUT_GUILD, GUILD_WAR_REWARD_POTION]
  322. GUILDWAR_CTF_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_TAKE_AWAY_FLAG1, GUILD_WAR_WIN_TAKE_AWAY_FLAG2, GUILD_WAR_REWARD_POTION]
  323. MINIMAP_ZONE_NAME_DICT = {
  324. "metin2_map_a1" : MAP_A1,
  325. "map_a2" : MAP_A2,
  326. "metin2_map_a3" : MAP_A3,
  327. "metin2_map_b1" : MAP_B1,
  328. "map_b2" : MAP_B2,
  329. "metin2_map_b3" : MAP_B3,
  330. "metin2_map_c1" : MAP_C1,
  331. "map_c2" : MAP_C2,
  332. "metin2_map_c3" : MAP_C3,
  333. "map_n_snowm_01" : MAP_SNOW,
  334. "metin2_map_n_flame_01" : MAP_FLAME,
  335. "metin2_map_n_desert_01" : MAP_DESERT,
  336. "metin2_map_milgyo" : MAP_TEMPLE,
  337. "metin2_map_spiderdungeon" : MAP_SPIDER,
  338. "metin2_map_deviltower1" : MAP_SKELTOWER,
  339. "metin2_map_guild_01" : MAP_AG,
  340. "metin2_map_guild_02" : MAP_BG,
  341. "metin2_map_guild_03" : MAP_CG,
  342. "metin2_map_trent" : MAP_TREE,
  343. "metin2_map_trent02" : MAP_TREE2,
  344. "season1/metin2_map_WL_01" : MAP_WL,
  345. "season1/metin2_map_nusluck01" : MAP_NUSLUCK,
  346. "Metin2_map_CapeDragonHead" : MAP_CAPE,
  347. "metin2_map_Mt_Thunder" : MAP_THUNDER,
  348. "metin2_map_dawnmistwood" : MAP_DAWN,
  349. "metin2_map_BayBlackSand" : MAP_BAY,
  350. }
  351. JOBINFO_TITLE = [
  352. [JOB_WARRIOR0, JOB_WARRIOR1, JOB_WARRIOR2,],
  353. [JOB_ASSASSIN0, JOB_ASSASSIN1, JOB_ASSASSIN2,],
  354. [JOB_SURA0, JOB_SURA1, JOB_SURA2,],
  355. [JOB_SHAMAN0, JOB_SHAMAN1, JOB_SHAMAN2,],
  356. ]
  357. if app.ENABLE_WOLFMAN_CHARACTER:
  358. JOBINFO_TITLE += [[JOB_WOLFMAN0,JOB_WOLFMAN1,JOB_WOLFMAN2,],]
  359. JOBINFO_DATA_LIST = [
  360. [
  361. ["Ÿ°í³­ ¿ë¸Í°ú ±ÁÈ÷Áö ¾Ê´Â ¹«»çÀÇ",
  362. "±â°³¸¦ »ç¶÷µéÀº ÀÏÄþî [¿ëÀÚ]¶ó°í",
  363. "ºÎ¸¥´Ù. ¾î¶°ÇÑ À§±â¿¡¼­µµ ±×µéÀº ",
  364. "µÚ·Î ¹°·¯¼­Áö ¾ÊÀ¸¸ç, ´ÙÄ¡°í ¿òÁ÷",
  365. "À̱â Èûµç µ¿·á¸¦ À§ÇØ ´Ü½ÅÀ¸·Î",
  366. "Àûµé°ú ¸¶ÁÖ ½Î¿ì±âµµ ÇÑ´Ù. À̵éÀº",
  367. "Àß ´Ü·ÃµÈ ±ÙÀ°°ú Èû, °­·ÂÇÑ °ø°İ·Â",
  368. "À¸·Î ÀüÀå ÃÖ¼±µÎ¿¡¼­ °ø°İÁøÀ¸·Î",
  369. "Ȱ¾àÇÑ´Ù. ",],
  370. ["°¡Àå ÀϹİÀûÀÎ °ø°İÇü ¹«»ç·Î, ",
  371. "ÀûÁ¢Àü¿¡ µû¸¥ Á÷Á¢ °ø°İÀ¸·Î ÀüÀå",
  372. "¿¡¼­ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ»",
  373. "¸ŞÀÎÀ¸·Î ½ºÅİ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
  374. "ÀûÁ¢Àü¿¡ µû¸¥ »ı¸í·Â / ¹æ¾î·Â",
  375. "È®º¸¸¦ À§ÇØ Ã¼·ÂÀ» ¿Ã¸°´Ù. ¶ÇÇÑ",
  376. "°ø°İÀÇ Á¤È®¼ºÀ» ³ôÀ̱â À§ÇØ ¹Îø",
  377. "¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù.",],
  378. ["»ó´ç ¼öÁØÀÇ Á¤½Å·ÂÀ» ÀÌ¿ëÇÏ´Â",
  379. "Áß/±Ù°Å¸® Á¢ÀüÇü ¹«»ç·Î, °¢ ±â¼ú",
  380. "ÇϳªÇϳªÀÇ ³ôÀº °ø°İ·ÂÀ¸·Î ÀüÀå¿¡¼­",
  381. "Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó ±Ù·ÂÀ» ¸ŞÀÎ",
  382. "À¸·Î ½ºÅÈ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇϵÇ, ",
  383. "Áß/±Ù°Å¸® °ø°İÀÇ Á¤È®¼º°ú ¸íÁß·üÀ»",
  384. "À§ÇØ ¹ÎøÀ» ¿Ã¸°´Ù. ¶ÇÇÑ Á¢Àü ½Ã ",
  385. "Àû °ø°İ¿¡ µû¸¥ »ı¸í·Â / ¹æ¾î·Â",
  386. "È®º¸¸¦ À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
  387. "ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
  388. ],
  389. [
  390. ["ÀÚ°´Àº ¾î¶°ÇÑ »óȲ¿¡¼­µµ ÀÚ½ÅÀÇ",
  391. "¸öÀ» ¼û±â°í Àº¹ĞÇÑ ¾îµÒÀÇ ÀÓ¹«¸¦",
  392. "¼öÇàÇϸ鼭 ÀüÀåÀÇ ÈÄÀ§¸¦ Áö¿øÇÏ´Â",
  393. "ÀÚµéÀÌ´Ù. À̵éÀº ¾ÆÁÖ ºü¸£°í ½Å¼Ó",
  394. "Çϸç, ºñÇÒ µ¥ ¾øÀÌ °ú°¨Çϰí ÀıÁ¦µÈ",
  395. "ÇൿÀ¸·Î ÀûÀÇ ±Ş¼Ò¿¡ Ä¡¸íŸ¸¦ ³¯¸®",
  396. "µÇ, ÀüÀå¿¡¼± ÀûÁøÀ» ÇâÇØ ¹«¼öÇÑ",
  397. "È­»ìÀ» ³»»ÕÀ¸¸ç ÀÚ½ÅÀÇ ¿ë¸ÍÀ»",
  398. "¼±º¸ÀδÙ. "],
  399. ["µÎ¼Õ ´Ü°ËÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ½Å¼Ó",
  400. "ÇÏ°Ô Ä¡°í ºüÁö´Â ÀÚ°´ ƯÀ¯ÀÇ ¿òÁ÷ÀÓ",
  401. "À¸·Î ÀüÀå¿¡¼­ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
  402. "¹ÎøÀ» ¸ŞÀÎÀ¸·Î ½ºÅİ Æ÷ÀÎÆ®¸¦ ÅõÀÚ",
  403. "ÇϵÇ, ±Ù·ÂÀ» ¿Ã·Á °ø°İ·ÂÀ» ³ôÀδÙ.",
  404. "¶ÇÇÑ ±ÙÁ¢Àü¿¡ µû¸¥ »ı¸í·Â/¹æ¾î·Â ",
  405. "»ó½ÂÀ» À§ÇØ Ã¼·Â¿¡µµ Æ÷ÀÎÆ®¸¦",
  406. "ÅõÀÚÇÒ Çʿ䰡 ÀÖ´Ù. ",],
  407. ["ȰÀ» ÁÖ¹«±â·Î ´Ù·ç¸ç, ±ä ½Ã¾ß¿Í",
  408. "»çÁ¤°Å¸®¿¡ µû¸¥ ¿ø°Å¸® °ø°İÀ¸·Î",
  409. "ÀüÀå¿¡¼­ Ȱ¾àÇÑ´Ù. ±ºÁ÷ Ư¼º»ó",
  410. "°ø°İ ¼º°ø·üÀÇ Áõ°¡¸¦ À§ÇØ ¹ÎøÀ»",
  411. "¸ŞÀÎÀ¸·Î ¿Ã·Á¾ß Çϸç, ¿ø°Å¸®",
  412. "°ø°İÀÇ µ¥¹ÌÁö Áõ°¡¸¦ À§ÇØ ±Ù·ÂÀ»",
  413. "¿Ã¸± Çʿ䰡 ÀÖ´Ù. ¶ÇÇÑ Àûµé¿¡°Ô",
  414. "Æ÷À§µÇ¾úÀ» ½Ã, Àû °ø°İ¿¡ ¹öƼ±â",
  415. "À§ÇÑ »ı¸í·Â/¹æ¾î·Â »ó½ÂÀ» À§ÇØ",
  416. "ü·Â¿¡µµ Æ÷ÀÎÆ®¸¦ ÅõÀÚÇÒ Çʿ䰡",
  417. "ÀÖ´Ù. ", ],
  418. ],
  419. [
  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. WHISPER_ERROR = {
  487. 1 : CANNOT_WHISPER_NOT_LOGON,
  488. 2 : CANNOT_WHISPER_DEST_REFUSE,
  489. 3 : CANNOT_WHISPER_SELF_REFUSE,
  490. }
  491. NOTIFY_MESSAGE = {
  492. "CANNOT_EQUIP_SHOP" : CANNOT_EQUIP_IN_SHOP,
  493. "CANNOT_EQUIP_EXCHANGE" : CANNOT_EQUIP_IN_EXCHANGE,
  494. }
  495. ATTACK_ERROR_TAIL_DICT = {
  496. "IN_SAFE" : CANNOT_ATTACK_SELF_IN_SAFE,
  497. "DEST_IN_SAFE" : CANNOT_ATTACK_DEST_IN_SAFE,
  498. }
  499. SHOT_ERROR_TAIL_DICT = {
  500. "EMPTY_ARROW" : CANNOT_SHOOT_EMPTY_ARROW,
  501. "IN_SAFE" : CANNOT_SHOOT_SELF_IN_SAFE,
  502. "DEST_IN_SAFE" : CANNOT_SHOOT_DEST_IN_SAFE,
  503. }
  504. USE_SKILL_ERROR_TAIL_DICT = {
  505. "IN_SAFE" : CANNOT_SKILL_SELF_IN_SAFE,
  506. "NEED_TARGET" : CANNOT_SKILL_NEED_TARGET,
  507. "NEED_EMPTY_BOTTLE" : CANNOT_SKILL_NEED_EMPTY_BOTTLE,
  508. "NEED_POISON_BOTTLE" : CANNOT_SKILL_NEED_POISON_BOTTLE,
  509. "REMOVE_FISHING_ROD" : CANNOT_SKILL_REMOVE_FISHING_ROD,
  510. "NOT_YET_LEARN" : CANNOT_SKILL_NOT_YET_LEARN,
  511. "NOT_MATCHABLE_WEAPON" : CANNOT_SKILL_NOT_MATCHABLE_WEAPON,
  512. "WAIT_COOLTIME" : CANNOT_SKILL_WAIT_COOLTIME,
  513. "NOT_ENOUGH_HP" : CANNOT_SKILL_NOT_ENOUGH_HP,
  514. "NOT_ENOUGH_SP" : CANNOT_SKILL_NOT_ENOUGH_SP,
  515. "CANNOT_USE_SELF" : CANNOT_SKILL_USE_SELF,
  516. "ONLY_FOR_ALLIANCE" : CANNOT_SKILL_ONLY_FOR_ALLIANCE,
  517. "CANNOT_ATTACK_ENEMY_IN_SAFE_AREA" : CANNOT_SKILL_DEST_IN_SAFE,
  518. "CANNOT_APPROACH" : CANNOT_SKILL_APPROACH,
  519. "CANNOT_ATTACK" : CANNOT_SKILL_ATTACK,
  520. "ONLY_FOR_CORPSE" : CANNOT_SKILL_ONLY_FOR_CORPSE,
  521. "EQUIP_FISHING_ROD" : CANNOT_SKILL_EQUIP_FISHING_ROD,
  522. "NOT_HORSE_SKILL" : CANNOT_SKILL_NOT_HORSE_SKILL,
  523. "HAVE_TO_RIDE" : CANNOT_SKILL_HAVE_TO_RIDE,
  524. }
  525. LEVEL_LIST=["", HORSE_LEVEL1, HORSE_LEVEL2, HORSE_LEVEL3]
  526. HEALTH_LIST=[
  527. HORSE_HEALTH0,
  528. HORSE_HEALTH1,
  529. HORSE_HEALTH2,
  530. HORSE_HEALTH3,
  531. ]
  532. USE_SKILL_ERROR_CHAT_DICT = {
  533. "NEED_EMPTY_BOTTLE" : SKILL_NEED_EMPTY_BOTTLE,
  534. "NEED_POISON_BOTTLE" : SKILL_NEED_POISON_BOTTLE,
  535. "ONLY_FOR_GUILD_WAR" : SKILL_ONLY_FOR_GUILD_WAR,
  536. }
  537. SHOP_ERROR_DICT = {
  538. "NOT_ENOUGH_MONEY" : SHOP_NOT_ENOUGH_MONEY,
  539. "SOLDOUT" : SHOP_SOLDOUT,
  540. "INVENTORY_FULL" : SHOP_INVENTORY_FULL,
  541. "INVALID_POS" : SHOP_INVALID_POS,
  542. "NOT_ENOUGH_MONEY_EX" : SHOP_NOT_ENOUGH_MONEY_EX,
  543. }
  544. if app.ENABLE_CHEQUE_SYSTEM:
  545. SHOP_ERROR_DICT["NOT_ENOUGH_CHEQUE"] = SHOP_NOT_ENOUGH_CHEQUE
  546. SHOP_ERROR_DICT["NOT_ENOUGH_MONEY_CHEQUE"] = SHOP_NOT_ENOUGH_MONEY_CHEQUE
  547. STAT_MINUS_DESCRIPTION = {
  548. "HTH-" : STAT_MINUS_CON,
  549. "INT-" : STAT_MINUS_INT,
  550. "STR-" : STAT_MINUS_STR,
  551. "DEX-" : STAT_MINUS_DEX,
  552. }
  553. MODE_NAME_LIST = ( PVP_OPTION_NORMAL, PVP_OPTION_REVENGE, PVP_OPTION_KILL, PVP_OPTION_PROTECT, )
  554. TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, )
  555. def GetLetterImageName():
  556. return "season1/icon/scroll_close.tga"
  557. def GetLetterOpenImageName():
  558. return "season1/icon/scroll_open.tga"
  559. def GetLetterCloseImageName():
  560. return "season1/icon/scroll_close.tga"
  561. if 949 == app.GetDefaultCodePage():
  562. def EUL(name):
  563. if GetAuxiliaryWordType(name):
  564. return "¸¦ "
  565. else:
  566. return "À» "
  567. def I(name):
  568. if GetAuxiliaryWordType(name):
  569. return "°¡ "
  570. else:
  571. return "ÀÌ "
  572. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  573. name = sellItemName
  574. if sellItemCount > 1:
  575. name += " "
  576. name += str(sellItemCount)
  577. name += "°³"
  578. return name + EUL(name) + str(sellItemPrice) + "³É¿¡ ÆÄ½Ã°Ú½À´Ï±î?"
  579. def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
  580. name = sellItemName
  581. if sellItemCount > 1:
  582. name += " "
  583. name += str(sellItemCount)
  584. name += "°³"
  585. return name + EUL(name) + str(sellItemPrice) + "¿¡ »ç½Ã°Ú½À´Ï±î?"
  586. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
  587. return attachedItemName+EUL(attachedItemName)+"ºÎÂøÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù"
  588. def REFINE_FAILURE_NO_SOCKET(attachedItemName):
  589. return attachedItemName+EUL(attachedItemName)+"ºÎÂøÇÒ ¼ö ÀÖ´Â ¼ÒÄÏÀÌ ¾ø½À´Ï´Ù"
  590. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
  591. return attachedItemName+EUL(attachedItemName)+"ºÎÂøÇÒ ¼ö Àִ Ȳ±İ ¼ÒÄÏÀÌ ¾ø½À´Ï´Ù"
  592. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
  593. name = dropItemName
  594. if dropItemCount > 1:
  595. name += " "
  596. name += str(dropItemCount)
  597. name += "°³"
  598. return name+EUL(name)+"¹ö¸®½Ã°Ú½À´Ï±î?"
  599. def NumberToMoneyString(number):
  600. if number <= 0:
  601. return "0³É"
  602. number = str(number)
  603. result = CutMoneyString(number, 0, 4, "", "")
  604. result = CutMoneyString(number, 4, 8, "¸¸", result)
  605. result = CutMoneyString(number, 8, 12, "¾ï", result)
  606. result = result + "³É"
  607. return result
  608. def NumberToSecondaryCoinString(number):
  609. if number <= 0:
  610. return "0Àü"
  611. number = str(number)
  612. result = CutMoneyString(number, 0, 4, "", "")
  613. result = CutMoneyString(number, 4, 8, "¸¸", result)
  614. result = CutMoneyString(number, 8, 12, "¾ï", result)
  615. result = result + "Àü"
  616. return result
  617. def FISHING_NOTIFY(isFish, fishName):
  618. if isFish:
  619. return fishName + I(fishName) + "¹® µí ÇÕ´Ï´Ù."
  620. else:
  621. return fishName + I(fishName) + "°É¸°µí ÇÕ´Ï´Ù."
  622. def FISHING_SUCCESS(isFish, fishName):
  623. if isFish:
  624. return fishName + EUL(fishName) + "Àâ¾Ò½À´Ï´Ù!"
  625. else:
  626. return fishName + EUL(fishName) + "¾ò¾ú½À´Ï´Ù!"
  627. elif 932 == app.GetDefaultCodePage():
  628. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  629. if sellItemCount > 1 :
  630. return "%s %s ŒÂ‚ğ %s‚É”„‚è‚Ü‚·‚©H" % ( sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  631. else:
  632. return "%s ‚ğ %s‚Å”„‚è‚Ü‚·‚©H" % (sellItemName, NumberToMoneyString(sellItemPrice) )
  633. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  634. if buyItemCount > 1 :
  635. return "%s %sŒÂ‚ğ %s‚Å”ƒ‚¢‚Ü‚·‚©H" % ( buyItemName, buyItemCount, buyItemPrice )
  636. else:
  637. return "%s‚ğ %s‚Å”ƒ‚¢‚Ü‚·‚©H" % ( buyItemName, buyItemPrice )
  638. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  639. return "%s‚ğ‘•’…‚Å‚«‚È‚¢ƒAƒCƒe?‚Å‚·B" % (attachedItemName)
  640. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  641. return "%s‚ğ‘•’…‚·‚é?ƒPƒbƒg‚ª‚ ‚è‚Ü‚¹‚ñB" % (attachedItemName)
  642. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  643. return "%s‚ğ‘•’…‚Å‚«‚鉩‹à?ƒPƒbƒg‚ª‚ ‚è‚Ü‚¹‚ñB" % (attachedItemName)
  644. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  645. if dropItemCount > 1 :
  646. return "%s %d ŒÂ‚ğŽÌ‚Ă܂·‚©H" % (dropItemName, dropItemCount)
  647. else :
  648. return "%s‚ğŽÌ‚Ă܂·‚©H" % (dropItemName)
  649. def FISHING_NOTIFY(isFish, fishName) :
  650. if isFish :
  651. return "%s ‚ªH‚¢‚‚¢‚½‚悤‚Å‚·" % ( fishName )
  652. else :
  653. return "%s ‚ª‚©‚©‚Á‚½‚悤‚Å‚·" % ( fishName )
  654. def FISHING_SUCCESS(isFish, fishName) :
  655. if isFish :
  656. return "%s ‚ğ•߂܂¦‚Ü‚µ‚½I" % (fishName)
  657. else :
  658. return "%s ‚ğŽè‚É“ü‚ê‚Ü‚µ‚½I" % (fishName)
  659. def NumberToMoneyString(number) :
  660. if number <= 0 :
  661. return "0—¼"
  662. number = str(number)
  663. result = CutMoneyString(number, 0, 4, "", "")
  664. result = CutMoneyString(number, 4, 8, "–œ", result)
  665. result = CutMoneyString(number, 8, 12, "‰­", result)
  666. result = result + "—¼"
  667. return result
  668. def NumberToSecondaryCoinString(number) :
  669. if number <= 0 :
  670. return "0jun"
  671. number = str(number)
  672. result = CutMoneyString(number, 0, 4, "", "")
  673. result = CutMoneyString(number, 4, 8, "–œ", result)
  674. result = CutMoneyString(number, 8, 12, "‰­", result)
  675. result = result + "jun"
  676. return result
  677. elif IsHONGKONG():
  678. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  679. if sellItemCount > 1 :
  680. return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  681. else:
  682. return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )
  683. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  684. if buyItemCount > 1 :
  685. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  686. else:
  687. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  688. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  689. return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)
  690. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  691. return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)
  692. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  693. return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
  694. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  695. if dropItemCount > 1 :
  696. return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
  697. else :
  698. return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)
  699. def FISHING_NOTIFY(isFish, fishName) :
  700. if isFish :
  701. return FISHING_NOTIFY1 % ( fishName )
  702. else :
  703. return FISHING_NOTIFY2 % ( fishName )
  704. def FISHING_SUCCESS(isFish, fishName) :
  705. if isFish :
  706. return FISHING_SUCCESS1 % (fishName)
  707. else :
  708. return FISHING_SUCCESS2 % (fishName)
  709. def NumberToMoneyString(number) :
  710. if number <= 0 :
  711. return "0 %s" % (MONETARY_UNIT0)
  712. number = str(number)
  713. result = CutMoneyString(number, 0, 4, "", "")
  714. result = CutMoneyString(number, 4, 8, MONETARY_UNIT1, result)
  715. result = CutMoneyString(number, 8, 12, MONETARY_UNIT2, result)
  716. result = result + MONETARY_UNIT0
  717. return result
  718. def NumberToSecondaryCoinString(number) :
  719. if number <= 0 :
  720. return "0 %s" % (MONETARY_UNIT_JUN)
  721. number = str(number)
  722. result = CutMoneyString(number, 0, 4, "", "")
  723. result = CutMoneyString(number, 4, 8, MONETARY_UNIT1, result)
  724. result = CutMoneyString(number, 8, 12, MONETARY_UNIT2, result)
  725. result = result + MONETARY_UNIT_JUN
  726. return result
  727. elif IsNEWCIBN() or IsCIBN10():
  728. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  729. if sellItemCount>1:
  730. return "È·¶¨Òª°Ñ%s¸ö%sÒÔ%s½ğ±ÒÂôµôÂğ£¿" % (str(sellItemCount), sellItemName, str(sellItemPrice))
  731. else:
  732. return "È·¶¨Òª°Ñ%sÒÔ%s½ğ±ÒÂôµôÂğ£¿" % (sellItemName, str(sellItemPrice))
  733. def DO_YOU_BUY_ITEM(sellItemName, sellItemCount, sellItemPrice):
  734. if sellItemCount>1:
  735. return "È·¶¨Òª°Ñ%s¸ö%sÒÔ%s½ğ±ÒÂò½øÂğ£¿" % (str(sellItemCount), sellItemName, str(sellItemPrice))
  736. else:
  737. return "È·¶¨Òª°Ñ%sÒÔ%s½ğ±ÒÂò½øÂğ£¿" % (sellItemName, str(sellItemPrice))
  738. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName):
  739. return "ÎŞ·¨ÏâǶ%s µÄ×°±¸" % (attachedItemName)
  740. def REFINE_FAILURE_NO_SOCKET(attachedItemName):
  741. return "ûÓĞ¿ÉÒÔÏâǶ%s µÄ¿×" % (attachedItemName)
  742. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName):
  743. return "ûÓĞ¿ÉÒÔÏâǶ%s µÄ»Æ½ğ¿×" % (attachedItemName)
  744. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount):
  745. if dropItemCount>1:
  746. return "È·¶¨ÒªÈÓµô%d¸ö%sÂğ?" % (dropItemCount, dropItemName)
  747. else:
  748. return "È·¶¨ÒªÈÓµô%sÂğ?" % (dropItemName)
  749. def FISHING_NOTIFY(isFish, fishName):
  750. if isFish:
  751. return fishName # º»·¡ ¿©±â¿¡ ¾î² ¸»ÀÌ ºÙ¾îÀִµ¥, ÀÎÄÚµùÀÌ ±úÁ®À־ º¹¿øÇÒ ¼ö°¡ ¾ø´Ù ¤Ğ¤Ğ... cython¿¡¼­ ÀÎÄÚµù ¿¡·¯ ³ª¼­ Áö¿ö¹ö¸²...
  752. else:
  753. return "µö×Å" + fishName + "ÁË¡£"
  754. def FISHING_SUCCESS(isFish, fishName):
  755. if isFish:
  756. return "µö×Å" + fishName + "ÁË¡£"
  757. else:
  758. return "»ñµÃ" + fishName + "ÁË¡£"
  759. def NumberToMoneyString(number):
  760. if number <= 0:
  761. return "0Á½"
  762. number = str(number)
  763. result = CutMoneyString(number, 0, 4, "", "")
  764. result = CutMoneyString(number, 4, 8, "Íò", result)
  765. result = CutMoneyString(number, 8, 12, "ÒÚ", result)
  766. result = result + "Á½"
  767. return result
  768. def NumberToSecondaryCoinString(number):
  769. if number <= 0:
  770. return "0JUN"
  771. number = str(number)
  772. result = CutMoneyString(number, 0, 4, "", "")
  773. result = CutMoneyString(number, 4, 8, "Íò", result)
  774. result = CutMoneyString(number, 8, 12, "ÒÚ", result)
  775. result = result + "JUN"
  776. return result
  777. elif IsEUROPE() and not IsWE_KOREA() and not IsYMIR():
  778. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  779. if sellItemCount > 1 :
  780. return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  781. else:
  782. return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )
  783. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  784. if buyItemCount > 1 :
  785. return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  786. else:
  787. return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  788. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  789. return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)
  790. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  791. return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)
  792. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  793. return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
  794. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  795. if dropItemCount > 1 :
  796. return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
  797. else :
  798. return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)
  799. def FISHING_NOTIFY(isFish, fishName) :
  800. if isFish :
  801. return FISHING_NOTIFY1 % ( fishName )
  802. else :
  803. return FISHING_NOTIFY2 % ( fishName )
  804. def FISHING_SUCCESS(isFish, fishName) :
  805. if isFish :
  806. return FISHING_SUCCESS1 % (fishName)
  807. else :
  808. return FISHING_SUCCESS2 % (fishName)
  809. def NumberToMoneyString(n) :
  810. if n <= 0 :
  811. return "0 %s" % (MONETARY_UNIT0)
  812. 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)
  813. def NumberToWonString(n) :
  814. if n <= 0 :
  815. return "0 %s" % (CHEQUE_SYSTEM_UNIT_WON)
  816. 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 ]), CHEQUE_SYSTEM_UNIT_WON)
  817. def NumberToChequeString(n) :
  818. if n <= 0 :
  819. return "0 %s" % (CHEQUE_SYSTEM_UNIT_WON)
  820. cheque = str(n)
  821. return "%s %s" % (cheque, CHEQUE_SYSTEM_UNIT_WON)
  822. def NumberToMoneyStringKitmir(number):
  823. if number <= 0:
  824. return "0 Yang"
  825. # if len(int(number)) > 3:
  826. number = str(number)
  827. result = CutMoneyString(number, 0, 3, "", "")
  828. result = CutMoneyString(number, 3, 6, "|cFFc7b81fK|r", result)
  829. result = CutMoneyString(number, 6, 9, "|cFFc7b81fM|r", result)
  830. result = CutMoneyString(number, 9, 12, "|cFFc7b81fT|r", result)
  831. result = result+ "|cFFc7b81fYang|r"
  832. return result
  833. def NumberToSecondaryCoinString(n) :
  834. if n <= 0 :
  835. return "0 %s" % (MONETARY_UNIT_JUN)
  836. 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)
  837. def NumberToString(n) :
  838. if n <= 0 :
  839. return "0"
  840. 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 ]))