Advertisement
VegaS1234

localeInfo.py - Fixed

Mar 22nd, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 13.73 KB | None | 0 0
  1. import app
  2. import constInfo
  3. if app.ENABLE_EXTENDED_ALIGNMENT_SYSTEM:
  4.     import chr, net
  5.     GENDER_FEMALE   = 0
  6.     GENDER_MALE     = 1
  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 net
  115.         SERVER = "쾌도 서버"
  116.         if SERVER == net.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()
  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 LoadLocaleFile(srcFileName, localeDict):
  145.  
  146.     funcDict = {"SA":SA, "SNA":SNA}
  147.  
  148.     lineIndex = 1
  149.  
  150.     try:
  151.         lines = pack_open(srcFileName, "r").readlines()
  152.     except IOError:
  153.         import dbg
  154.         dbg.LogBox("LoadLocaleError(%(srcFileName)s)" % locals())
  155.         app.Abort()
  156.  
  157.     for line in lines:
  158.         try:       
  159.             tokens = line[:-1].split("\t")
  160.             if len(tokens) == 2:
  161.                 localeDict[tokens[0]] = tokens[1]
  162.             elif len(tokens) >= 3:
  163.                 type = tokens[2].strip()
  164.                 if type:
  165.                     localeDict[tokens[0]] = funcDict[type](tokens[1])
  166.                 else:
  167.                     localeDict[tokens[0]] = tokens[1]
  168.             else:
  169.                 raise RuntimeError, "Unknown TokenSize"
  170.  
  171.             lineIndex += 1
  172.         except:
  173.             import dbg
  174.             dbg.LogBox("%s: line(%d): %s" % (srcFileName, lineIndex, line), "Error")
  175.             raise
  176.  
  177. all = ["locale","error"]
  178.  
  179. FN_GM_MARK = "%s/effect/gm.mse" % app.GetLocalePath()
  180. LOCALE_FILE_NAME = "%s/locale_game.txt" % app.GetLocalePath()
  181.  
  182. constInfo.IN_GAME_SHOP_ENABLE = 1
  183.  
  184. LoadLocaleFile(LOCALE_FILE_NAME, locals())
  185.  
  186. locale = mapping(
  187. )
  188.  
  189. def CutMoneyString(sourceText, startIndex, endIndex, insertingText, backText):
  190.     sourceLength = len(sourceText)
  191.     if sourceLength < startIndex:
  192.         return backText
  193.  
  194.     text = sourceText[max(0, sourceLength-endIndex):sourceLength-startIndex]
  195.  
  196.     if not text:
  197.         return backText
  198.  
  199.     if int(text) <= 0:
  200.         return backText
  201.  
  202.     text = str(int(text))
  203.     if backText:
  204.         backText = " " + backText
  205.  
  206.     return text + insertingText + backText
  207.  
  208. def SecondToDHM(time):
  209.     if time < 60:
  210.         if IsARABIC():
  211.             return "%.2f %s" % (time, SECOND)
  212.         else:
  213.             return "0" + MINUTE
  214.        
  215.     second = int(time % 60)
  216.     minute = int((time / 60) % 60)
  217.     hour = int((time / 60) / 60) % 24
  218.     day = int(int((time / 60) / 60) / 24)
  219.  
  220.     text = ""
  221.  
  222.     if day > 0:
  223.         text += str(day) + DAY
  224.         text += " "
  225.  
  226.     if hour > 0:
  227.         text += str(hour) + HOUR
  228.         text += " "
  229.  
  230.     if minute > 0:
  231.         text += str(minute) + MINUTE
  232.  
  233.     return text
  234.  
  235. def SecondToHM(time):
  236.     if time < 60:
  237.         if IsARABIC():
  238.             return "%.2f %s" % (time, SECOND)
  239.         else:
  240.             return "0" + MINUTE
  241.  
  242.     second = int(time % 60)
  243.     minute = int((time / 60) % 60)
  244.     hour = int((time / 60) / 60)
  245.  
  246.     text = ""
  247.  
  248.     if hour > 0:
  249.         text += str(hour) + HOUR
  250.         if hour > 0:
  251.             text += " "
  252.  
  253.     if minute > 0:
  254.         text += str(minute) + MINUTE
  255.  
  256.     return text
  257.  
  258. if app.ENABLE_EXTENDED_ALIGNMENT_SYSTEM:
  259.     def GetAlignmentTitleName(currentAlignment):
  260.         titleNameTuple = TITLE_NAME_DICT.get(chr.RaceToSex(net.GetMainActorRace()), ('UNKNOWN_GENDER', ))
  261.        
  262.         for alignmentIndex, alignmentValue in enumerate((12000, 8000, 4000, 1000, 0, -4000, -8000, -12000)):
  263.             if currentAlignment >= alignmentValue:
  264.                 return titleNameTuple[alignmentIndex]
  265.  
  266.         return titleNameTuple[-1]
  267. else:
  268.     def GetAlignmentTitleName(alignment):
  269.         if alignment >= 12000:
  270.             return TITLE_NAME_LIST[0]
  271.         elif alignment >= 8000:
  272.             return TITLE_NAME_LIST[1]
  273.         elif alignment >= 4000:
  274.             return TITLE_NAME_LIST[2]
  275.         elif alignment >= 1000:
  276.             return TITLE_NAME_LIST[3]
  277.         elif alignment >= 0:
  278.             return TITLE_NAME_LIST[4]
  279.         elif alignment > -4000:
  280.             return TITLE_NAME_LIST[5]
  281.         elif alignment > -8000:
  282.             return TITLE_NAME_LIST[6]
  283.         elif alignment > -12000:
  284.             return TITLE_NAME_LIST[7]
  285.  
  286.         return TITLE_NAME_LIST[8]
  287.        
  288.        
  289. OPTION_PVPMODE_MESSAGE_DICT = {
  290.     0 : PVP_MODE_NORMAL,
  291.     1 : PVP_MODE_REVENGE,
  292.     2 : PVP_MODE_KILL,
  293.     3 : PVP_MODE_PROTECT,
  294.     4 : PVP_MODE_GUILD,
  295. }
  296.  
  297. error = mapping(
  298.     CREATE_WINDOW = GAME_INIT_ERROR_MAIN_WINDOW,
  299.     CREATE_CURSOR = GAME_INIT_ERROR_CURSOR,
  300.     CREATE_NETWORK = GAME_INIT_ERROR_NETWORK,
  301.     CREATE_ITEM_PROTO = GAME_INIT_ERROR_ITEM_PROTO,
  302.     CREATE_MOB_PROTO = GAME_INIT_ERROR_MOB_PROTO,
  303.     CREATE_NO_DIRECTX = GAME_INIT_ERROR_DIRECTX,
  304.     CREATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_NOT_EXIST,
  305.     CREATE_NO_APPROPRIATE_DEVICE = GAME_INIT_ERROR_GRAPHICS_BAD_PERFORMANCE,
  306.     CREATE_FORMAT = GAME_INIT_ERROR_GRAPHICS_NOT_SUPPORT_32BIT,
  307.     NO_ERROR = ""
  308. )
  309.  
  310. GUILDWAR_NORMAL_DESCLIST = [GUILD_WAR_USE_NORMAL_MAP, GUILD_WAR_LIMIT_30MIN, GUILD_WAR_WIN_CHECK_SCORE]
  311. GUILDWAR_WARP_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_WIPE_OUT_GUILD, GUILD_WAR_REWARD_POTION]
  312. GUILDWAR_CTF_DESCLIST = [GUILD_WAR_USE_BATTLE_MAP, GUILD_WAR_WIN_TAKE_AWAY_FLAG1, GUILD_WAR_WIN_TAKE_AWAY_FLAG2, GUILD_WAR_REWARD_POTION]
  313.  
  314. MINIMAP_ZONE_NAME_DICT = {
  315.     "metin2_map_a1"  : MAP_A1,
  316.     "map_a2"         : MAP_A2,
  317.     "metin2_map_a3"  : MAP_A3,
  318.     "metin2_map_b1"  : MAP_B1,
  319.     "map_b2"         : MAP_B2,
  320.     "metin2_map_b3"  : MAP_B3,
  321.     "metin2_map_c1"  : MAP_C1,
  322.     "map_c2"         : MAP_C2,
  323.     "metin2_map_c3"  : MAP_C3,
  324.     "map_n_snowm_01" : MAP_SNOW,
  325.     "metin2_map_n_flame_01" : MAP_FLAME,
  326.     "metin2_map_n_desert_01" : MAP_DESERT,
  327.     "metin2_map_milgyo" : MAP_TEMPLE,
  328.     "metin2_map_spiderdungeon" : MAP_SPIDER,
  329.     "metin2_map_deviltower1" : MAP_SKELTOWER,
  330.     "metin2_map_guild_01" : MAP_AG,
  331.     "metin2_map_guild_02" : MAP_BG,
  332.     "metin2_map_guild_03" : MAP_CG,
  333.     "metin2_map_trent" : MAP_TREE,
  334.     "metin2_map_trent02" : MAP_TREE2,
  335.     "season1/metin2_map_WL_01" : MAP_WL,
  336.     "season1/metin2_map_nusluck01" : MAP_NUSLUCK,
  337.     "Metin2_map_CapeDragonHead" : MAP_CAPE,
  338.     "metin2_map_Mt_Thunder" : MAP_THUNDER,
  339.     "metin2_map_dawnmistwood" : MAP_DAWN,
  340.     "metin2_map_BayBlackSand" : MAP_BAY,
  341. }
  342.  
  343. JOBINFO_TITLE = [
  344.     [JOB_WARRIOR0, JOB_WARRIOR1, JOB_WARRIOR2,],
  345.     [JOB_ASSASSIN0, JOB_ASSASSIN1, JOB_ASSASSIN2,],
  346.     [JOB_SURA0, JOB_SURA1, JOB_SURA2,],
  347.     [JOB_SHAMAN0, JOB_SHAMAN1, JOB_SHAMAN2,],
  348. ]
  349.  
  350. WHISPER_ERROR = {
  351.     1 : CANNOT_WHISPER_NOT_LOGON,
  352.     2 : CANNOT_WHISPER_DEST_REFUSE,
  353.     3 : CANNOT_WHISPER_SELF_REFUSE,
  354. }
  355.  
  356. NOTIFY_MESSAGE = {
  357.     "CANNOT_EQUIP_SHOP" : CANNOT_EQUIP_IN_SHOP,
  358.     "CANNOT_EQUIP_EXCHANGE" : CANNOT_EQUIP_IN_EXCHANGE,
  359. }
  360.  
  361.  
  362. ATTACK_ERROR_TAIL_DICT = {
  363.     "IN_SAFE" : CANNOT_ATTACK_SELF_IN_SAFE,
  364.     "DEST_IN_SAFE" : CANNOT_ATTACK_DEST_IN_SAFE,
  365. }
  366.  
  367. SHOT_ERROR_TAIL_DICT = {
  368.     "EMPTY_ARROW" : CANNOT_SHOOT_EMPTY_ARROW,
  369.     "IN_SAFE" : CANNOT_SHOOT_SELF_IN_SAFE,
  370.     "DEST_IN_SAFE" : CANNOT_SHOOT_DEST_IN_SAFE,
  371. }
  372.    
  373. USE_SKILL_ERROR_TAIL_DICT = {  
  374.     "IN_SAFE" : CANNOT_SKILL_SELF_IN_SAFE,
  375.     "NEED_TARGET" : CANNOT_SKILL_NEED_TARGET,
  376.     "NEED_EMPTY_BOTTLE" : CANNOT_SKILL_NEED_EMPTY_BOTTLE,
  377.     "NEED_POISON_BOTTLE" : CANNOT_SKILL_NEED_POISON_BOTTLE,
  378.     "REMOVE_FISHING_ROD" : CANNOT_SKILL_REMOVE_FISHING_ROD,
  379.     "NOT_YET_LEARN" : CANNOT_SKILL_NOT_YET_LEARN,
  380.     "NOT_MATCHABLE_WEAPON" : CANNOT_SKILL_NOT_MATCHABLE_WEAPON,
  381.     "WAIT_COOLTIME" : CANNOT_SKILL_WAIT_COOLTIME,
  382.     "NOT_ENOUGH_HP" : CANNOT_SKILL_NOT_ENOUGH_HP,
  383.     "NOT_ENOUGH_SP" : CANNOT_SKILL_NOT_ENOUGH_SP,
  384.     "CANNOT_USE_SELF" : CANNOT_SKILL_USE_SELF,
  385.     "ONLY_FOR_ALLIANCE" : CANNOT_SKILL_ONLY_FOR_ALLIANCE,
  386.     "CANNOT_ATTACK_ENEMY_IN_SAFE_AREA" : CANNOT_SKILL_DEST_IN_SAFE,
  387.     "CANNOT_APPROACH" : CANNOT_SKILL_APPROACH,
  388.     "CANNOT_ATTACK" : CANNOT_SKILL_ATTACK,
  389.     "ONLY_FOR_CORPSE" : CANNOT_SKILL_ONLY_FOR_CORPSE,
  390.     "EQUIP_FISHING_ROD" : CANNOT_SKILL_EQUIP_FISHING_ROD,
  391.     "NOT_HORSE_SKILL" : CANNOT_SKILL_NOT_HORSE_SKILL,
  392.     "HAVE_TO_RIDE" : CANNOT_SKILL_HAVE_TO_RIDE,
  393. }
  394.  
  395. LEVEL_LIST=["", HORSE_LEVEL1, HORSE_LEVEL2, HORSE_LEVEL3]
  396.  
  397. HEALTH_LIST=[
  398.     HORSE_HEALTH0,
  399.     HORSE_HEALTH1,
  400.     HORSE_HEALTH2,
  401.     HORSE_HEALTH3,
  402. ]
  403.  
  404.  
  405. USE_SKILL_ERROR_CHAT_DICT = {  
  406.     "NEED_EMPTY_BOTTLE" : SKILL_NEED_EMPTY_BOTTLE,
  407.     "NEED_POISON_BOTTLE" : SKILL_NEED_POISON_BOTTLE,
  408.     "ONLY_FOR_GUILD_WAR" : SKILL_ONLY_FOR_GUILD_WAR,
  409. }
  410.  
  411. SHOP_ERROR_DICT = {
  412.     "NOT_ENOUGH_MONEY" : SHOP_NOT_ENOUGH_MONEY,
  413.     "SOLDOUT" : SHOP_SOLDOUT,
  414.     "INVENTORY_FULL" : SHOP_INVENTORY_FULL,
  415.     "INVALID_POS" : SHOP_INVALID_POS,
  416.     "NOT_ENOUGH_MONEY_EX" : SHOP_NOT_ENOUGH_MONEY_EX,
  417. }
  418.  
  419. STAT_MINUS_DESCRIPTION = {
  420.     "HTH-" : STAT_MINUS_CON,
  421.     "INT-" : STAT_MINUS_INT,
  422.     "STR-" : STAT_MINUS_STR,
  423.     "DEX-" : STAT_MINUS_DEX,
  424. }
  425.  
  426. MODE_NAME_LIST = ( PVP_OPTION_NORMAL, PVP_OPTION_REVENGE, PVP_OPTION_KILL, PVP_OPTION_PROTECT, )
  427. if app.ENABLE_EXTENDED_ALIGNMENT_SYSTEM:
  428.     TITLE_NAME_DICT = {
  429.         GENDER_FEMALE : ( PVP_LEVEL0_F, PVP_LEVEL1_F, PVP_LEVEL2_F, PVP_LEVEL3_F, PVP_LEVEL4_F, PVP_LEVEL5_F, PVP_LEVEL6_F, PVP_LEVEL7_F, PVP_LEVEL8_F, ),
  430.         GENDER_MALE : ( PVP_LEVEL0_M, PVP_LEVEL1_M, PVP_LEVEL2_M, PVP_LEVEL3_M, PVP_LEVEL4_M, PVP_LEVEL5_M, PVP_LEVEL6_M, PVP_LEVEL7_M, PVP_LEVEL8_M, ),
  431.     }
  432. else:
  433.     TITLE_NAME_LIST = ( PVP_LEVEL0, PVP_LEVEL1, PVP_LEVEL2, PVP_LEVEL3, PVP_LEVEL4, PVP_LEVEL5, PVP_LEVEL6, PVP_LEVEL7, PVP_LEVEL8, )
  434.  
  435. def GetLetterImageName():
  436.     return "season1/icon/scroll_close.tga"
  437. def GetLetterOpenImageName():
  438.     return "season1/icon/scroll_open.tga"
  439. def GetLetterCloseImageName():
  440.     return "season1/icon/scroll_close.tga"
  441.  
  442. def DO_YOU_SELL_ITEM(sellItemName, sellItemCount, sellItemPrice):
  443.     if sellItemCount > 1 :
  444.         return DO_YOU_SELL_ITEM2 % (sellItemName, sellItemCount, NumberToMoneyString(sellItemPrice) )
  445.     else:
  446.         return DO_YOU_SELL_ITEM1 % (sellItemName, NumberToMoneyString(sellItemPrice) )
  447.  
  448. def DO_YOU_BUY_ITEM(buyItemName, buyItemCount, buyItemPrice) :
  449.     if buyItemCount > 1 :
  450.         return DO_YOU_BUY_ITEM2 % ( buyItemName, buyItemCount, buyItemPrice )
  451.     else:
  452.         return DO_YOU_BUY_ITEM1 % ( buyItemName, buyItemPrice )
  453.        
  454. def REFINE_FAILURE_CAN_NOT_ATTACH(attachedItemName) :
  455.     return REFINE_FAILURE_CAN_NOT_ATTACH0 % (attachedItemName)
  456.  
  457. def REFINE_FAILURE_NO_SOCKET(attachedItemName) :
  458.     return REFINE_FAILURE_NO_SOCKET0 % (attachedItemName)
  459.  
  460. def REFINE_FAILURE_NO_GOLD_SOCKET(attachedItemName) :
  461.     return REFINE_FAILURE_NO_GOLD_SOCKET0 % (attachedItemName)
  462.    
  463. def HOW_MANY_ITEM_DO_YOU_DROP(dropItemName, dropItemCount) :
  464.     if dropItemCount > 1 :
  465.         return HOW_MANY_ITEM_DO_YOU_DROP2 % (dropItemName, dropItemCount)
  466.     else
  467.         return HOW_MANY_ITEM_DO_YOU_DROP1 % (dropItemName)
  468.  
  469. def FISHING_NOTIFY(isFish, fishName) :
  470.     if isFish :
  471.         return FISHING_NOTIFY1 % ( fishName )
  472.     else :
  473.         return FISHING_NOTIFY2 % ( fishName )
  474.  
  475. def FISHING_SUCCESS(isFish, fishName) :
  476.     if isFish :
  477.         return FISHING_SUCCESS1 % (fishName)
  478.     else :
  479.         return FISHING_SUCCESS2 % (fishName)
  480.        
  481. def NumberToMoneyString(n) :
  482.     if n <= 0 :
  483.         return "0 %s" % (MONETARY_UNIT0)
  484.  
  485.     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)
  486.  
  487. def NumberToSecondaryCoinString(n) :
  488.     if n <= 0 :
  489.         return "0 %s" % (MONETARY_UNIT_JUN)
  490.  
  491.     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