Advertisement
Guest User

Untitled

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