Removed all the code which isn't used like korean characters < bad encoding(editors problem) and more checks.
Removed over 500 lines unused.
Removed function mapping(**kwargs) and use constructor of dict > dict(**kwarg) which is same (**kwarg let you take arbitrary number of keyword arguments).
Removed function CutMoneyString because is used just when locale is HongKong, CIBN.
Removed check IsYMIR from function LoadLocaleData which load locale as locale/ymir or locale/we_korea.
LOGIN_FAILURE_WEB_BLOCK, LOGIN_FAILURE_BLOCK_LOGIN, CHANNEL_NOTIFY_FULL, now they're readed directly from locale_game.txt.
Removed declared global variables.
Removed checks for declaring LOCALE_FILE_NAME, FN_GM_MARK and use current path.
Removed korean functions/lists/dictionaries/characters GetAuxiliaryWordType, JOBINFO_DATA_LIST, dictSingleWord, dictDoubleWord, etc.
Removed unused things: locale mapping, 'all' list etc.
Removed IN_GAME_SHOP_ENABLE declaration, should be declared inside of constInfo directly.
Removed checks (locale path) - 949, 932 == app.GetDefaultCodePage(), IsHONGKONG, IsNEWCIBN() or IsCIBN10() from declaration of functions like (NumberToMoneyString, NumberToSecondaryCoinString, ...),
now they're declared directly from old style (IsEUROPE() and not IsWE_KOREA() and not IsYMIR()).
Added custom string format(format_string, *args, **kwargs) instead of %. (old-style).
Added new checks inside of LoadLocaleFile for security:
* Check if token3 (token1=original_string, token2=return-string, token3=function) function name exist in our types (SA, SNA, SAA, SAN) then try to call it.
Text moved with changes to lines 444-447 (98.2% similarity)
if hour > 0:
# Fishing notify when looks like the fish is hooked.
text += str(hour) + HOUR
def FISHING_NOTIFY(isFish, fishName):
if hour > 0:
return FISHING_NOTIFY1 % (fishName) if isFish else FISHING_NOTIFY2 % (fishName)
text += " "
if minute > 0:
# Fishing notify when you capture a fish.
text += str(minute) + MINUTE
def FISHING_SUCCESS(isFish, fishName):
return FISHING_SUCCESS1 % (fishName) if isFish else FISHING_SUCCESS2 % (fishName)
# Convert a integer amount into a string and add . as separator for money.
def NumberToMoneyString(n):
return '0 {:s}'.format(MONETARY_UNIT0) if (n <= 0) else '{:s} {:s}'.format(('.'.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))
return text
# Convert a integer amount into a string and add . as separator for secondary coin.
def NumberToSecondaryCoinString(n):
return '0 {:s}'.format(MONETARY_UNIT_JUN) if (n <= 0) else '{:s} {:s}'.format('.'.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)
# Return the title of alignment by points.
def GetAlignmentTitleName(alignment):
def GetAlignmentTitleName(alignment):
if alignment >= 12000:
if alignment >= 12000:
return TITLE_NAME_LIST[0]
return TITLE_NAME_LIST[0]
elif alignment >= 8000:
elif alignment >= 8000:
return TITLE_NAME_LIST[1]
return TITLE_NAME_LIST[1]
elif alignment >= 4000:
elif alignment >= 4000:
return TITLE_NAME_LIST[2]
return TITLE_NAME_LIST[2]
elif alignment >= 1000:
elif alignment >= 1000:
return TITLE_NAME_LIST[3]
return TITLE_NAME_LIST[3]
elif alignment >= 0:
elif alignment >= 0:
return TITLE_NAME_LIST[4]
return TITLE_NAME_LIST[4]
elif alignment > -4000:
elif alignment > -4000:
return TITLE_NAME_LIST[5]
return TITLE_NAME_LIST[5]
elif alignment > -8000:
elif alignment > -8000:
return TITLE_NAME_LIST[6]
return TITLE_NAME_LIST[6]
elif alignment > -12000:
elif alignment > -12000:
return TITLE_NAME_LIST[7]
return TITLE_NAME_LIST[7]
return TITLE_NAME_LIST[8]
return TITLE_NAME_LIST[8]
# Convert seconds to Days-Hours-Minutes
Text moved with changes from lines 290-293 (99.3% similarity)
OPTION_PVPMODE_MESSAGE_DICT = {
def SecondToDHM(time):
0 : PVP_MODE_NORMAL,
if time < 60:
1 : PVP_MODE_REVENGE,
if IsARABIC():
2 : PVP_MODE_KILL,
return '%.2f %s' % (time, SECOND)
3 : PVP_MODE_PROTECT,
4 : PVP_MODE_GUILD,
}
Text moved with changes to lines 200-210 (96.7% similarity)