client/bin_original/pack/root/uimapnameshower.py

286 lines
10 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import app
import ui
import uiScriptLocale
import locale
LOCALE_PATH = uiScriptLocale.MAPNAME_PATH
class MapNameShower(ui.ExpandedImageBox):
MAP_NAME_IMAGE = {}
STATE_HIDE = 0
STATE_FADE_IN = 1
STATE_SHOW = 2
STATE_FADE_OUT = 3
def __init__(self):
if locale.IsARABIC():
self.MAP_NAME_IMAGE = {
"metin2_map_a1" : LOCALE_PATH+"a1.tga",
"map_a2" : LOCALE_PATH+"a2.tga",
"season2/metin2_map_a2_1": LOCALE_PATH+"a2_2.tga",
"metin2_map_a3" : LOCALE_PATH+"a3.tga",
"metin2_map_b1" : LOCALE_PATH+"b1.tga",
"map_b2" : LOCALE_PATH+"b2.tga",
"metin2_map_b3" : LOCALE_PATH+"b3.tga",
"metin2_map_c1" : LOCALE_PATH+"c1.tga",
"map_c2" : LOCALE_PATH+"c2.tga",
"metin2_map_c3" : LOCALE_PATH+"c3.tga",
"metin2_map_deviltower1" : LOCALE_PATH+"devil1_title.tga",
"metin2_map_n_desert_01" : LOCALE_PATH+"desert1.tga",
"season2/metin2_map_n_desert_02": LOCALE_PATH+"desert2.tga",
"metin2_map_n_flame_01" : LOCALE_PATH+"frame1.tga",
"season2/metin2_map_n_flame_02": LOCALE_PATH+"frame2.tga",
"metin2_map_milgyo" : LOCALE_PATH+"milgyo.tga",
"season2/metin2_map_milgyo_a": LOCALE_PATH+"milgyo2.TGA",
"metin2_map_monkeydungeon" : LOCALE_PATH+"monkey1.tga",
"metin2_map_monkeydungeon_02" : LOCALE_PATH+"monkey2.tga",
"metin2_map_monkeydungeon_03" : LOCALE_PATH+"monkey3.tga",
"metin2_map_guild_01" : LOCALE_PATH+"guild1.tga",
"metin2_map_guild_02" : LOCALE_PATH+"guild2.tga",
"metin2_map_guild_03" : LOCALE_PATH+"guild3.tga",
"season2/metin2_map_skipia_dungeon_01": LOCALE_PATH+"skipia.tga",
"season2/metin2_map_skipia_dungeon_02": LOCALE_PATH+"skipia.tga",
"map_n_snowm_01" : LOCALE_PATH+"snow1.tga",
"season2/map_n_snowm_02": LOCALE_PATH+"snow2.tga",
"metin2_map_spiderdungeon" : LOCALE_PATH+"spider1.tga",
"metin2_map_trent" : LOCALE_PATH+"trent.tga",
"metin2_map_trent02" : LOCALE_PATH+"trent02.tga",
"season2/metin2_map_trent_a": LOCALE_PATH+"trent_a.tga",
"season2/metin2_map_trent02_a": LOCALE_PATH+"trent02_a.tga",
"metin2_map_dd" : LOCALE_PATH+"devil_basement.tga",
"metin2_map_devilsCatacomb" : LOCALE_PATH+"devil_basement.tga",
"metin2_map_dd" : LOCALE_PATH+"devil_basement.tga",
"season1/metin2_map_WL_01" : LOCALE_PATH+"wl.tga",
"season1/metin2_map_nusluck01": LOCALE_PATH+"nusluck.tga",
}
else:
self.MAP_NAME_IMAGE = {
"metin2_map_a1" : LOCALE_PATH+"a1.tga",
"map_a2" : LOCALE_PATH+"a2.tga",
"metin2_map_a3" : LOCALE_PATH+"a3.tga",
"metin2_map_b1" : LOCALE_PATH+"b1.tga",
"map_b2" : LOCALE_PATH+"b2.tga",
"metin2_map_b3" : LOCALE_PATH+"b3.tga",
"metin2_map_c1" : LOCALE_PATH+"c1.tga",
"map_c2" : LOCALE_PATH+"c2.tga",
"metin2_map_c3" : LOCALE_PATH+"c3.tga",
"map_n_snowm_01" : LOCALE_PATH+"snow1.tga",
"metin2_map_deviltower1" : LOCALE_PATH+"devil1_title.tga",
"metin2_map_n_flame_01" : LOCALE_PATH+"frame1.tga",
"metin2_map_n_desert_01" : LOCALE_PATH+"desert1.tga",
"metin2_map_milgyo" : LOCALE_PATH+"milgyo.tga",
"metin2_map_monkeydungeon" : LOCALE_PATH+"monkey1.tga",
"metin2_map_monkeydungeon_02" : LOCALE_PATH+"monkey2.tga",
"metin2_map_monkeydungeon_03" : LOCALE_PATH+"monkey3.tga",
"metin2_map_guild_01" : LOCALE_PATH+"guild1.tga",
"metin2_map_guild_02" : LOCALE_PATH+"guild2.tga",
"metin2_map_guild_03" : LOCALE_PATH+"guild3.tga",
"metin2_map_trent" : LOCALE_PATH+"trent.tga",
"metin2_map_trent02" : LOCALE_PATH+"trent02.tga",
"season2/map_n_snowm_02": LOCALE_PATH+"snow2.tga",
"season2/metin2_map_a2_1": LOCALE_PATH+"a2_2.tga",
"season2/metin2_map_n_desert_02": LOCALE_PATH+"desert2.tga",
"season2/metin2_map_n_flame_02": LOCALE_PATH+"frame2.tga",
"season2/metin2_map_milgyo_a": LOCALE_PATH+"milgyo2.TGA",
"season2/metin2_map_trent_a": LOCALE_PATH+"trent_a.tga",
"season2/metin2_map_trent02_a": LOCALE_PATH+"trent02_a.tga",
"season2/metin2_map_skipia_dungeon_01": LOCALE_PATH+"skipia.tga",
"season2/metin2_map_skipia_dungeon_02": LOCALE_PATH+"skipia.tga",
"metin2_map_devilsCatacomb" : LOCALE_PATH+"devil_basement.tga",
"metin2_guild_village_01" : LOCALE_PATH+"a4.tga",
"metin2_guild_village_02" : LOCALE_PATH+"b4.tga",
"metin2_guild_village_03" : LOCALE_PATH+"c4.tga",
"metin2_map_BayBlackSand" : LOCALE_PATH+"bay.tga",
"metin2_map_Mt_Thunder" : LOCALE_PATH+"thunder.tga",
"metin2_map_dawnmistwood" : LOCALE_PATH+"dawn.tga",
"Metin2_map_CapeDragonHead" : LOCALE_PATH+"cape.tga",
"metin2_map_spiderdungeon" : LOCALE_PATH+"sd01.tga",
"season1/metin2_map_spiderdungeon_02" : LOCALE_PATH+"sd02.tga",
"season1/metin2_map_spiderdungeon_02_1" : LOCALE_PATH+"sd02.tga",
"metin2_map_spiderdungeon_03" : LOCALE_PATH+"sd03.tga",
}
ui.ExpandedImageBox.__init__(self, "TOP_MOST")
self.AddFlag("not_pick")
self.__Initialize()
def __del__(self):
ui.ExpandedImageBox.__del__(self)
def __Initialize(self):
self.floorImage = None
self.objectiveImage = None
self.fadeStartTime = 0
self.state = self.STATE_HIDE
self.curAlpha = 0.0
self.SetAlpha(0.0)
self.SetWindowHorizontalAlignCenter()
self.SetPosition(0, 80)
self.Hide()
def __GetDevilTowerFloor(self, x, y):
if x > 10000 and y > 58000 and x < 25000 and y < 72000:
return 1
elif x > 10000 and y > 35000 and x < 25000 and y < 50000:
return 2
elif x > 10000 and y > 10000 and x < 25000 and y < 25000:
return 3
elif x > 35000 and y > 61000 and x < 43500 and y < 70500:
return 4
elif x > 35000 and y > 38000 and x < 43500 and y < 48000:
return 5
elif x > 14000 and y > 14000 and x < 43500 and y < 24500:
return 6
elif x > 56000 and y > 60000 and x < 68000 and y < 73000:
return 7
elif x > 56000 and y > 38000 and x < 68000 and y < 49000:
return 8
elif x > 56000 and y > 13000 and x < 68000 and y < 23000:
return 9
return 0
def __GetDevilBase(self, x, y):
if x > 3000 and y > 4500 and x < 45000 and y < 45000:
return 1
elif x > 54000 and y > 3900 and x < 100000 and y < 46200:
return 2
elif x > 104800 and y > 3500 and x < 145500 and y < 45800:
return 3
elif x > 3100 and y > 54100 and x < 56400 and y < 105800:
return 4
elif x > 65000 and y > 54000 and x < 105000 and y < 95500:
return 5
elif x > 117500 and y > 57600 and x < 142000 and y < 81000:
return 6
elif x > 5000 and y > 104900 and x < 15000 and y < 122000:
return 7
return 0
def ShowMapName(self, mapName, x, y):
if not self.MAP_NAME_IMAGE.has_key(mapName):
print " [ERROR] - There is no map name image", mapName
return
try:
self.LoadImage(self.MAP_NAME_IMAGE[mapName])
except RuntimeError:
return
self.__Initialize()
if mapName == "metin2_map_deviltower1":
self.SetPosition(-60, 80)
self.floorImage = ui.ExpandedImageBox()
self.floorImage.AddFlag("not_pick")
self.floorImage.SetWindowHorizontalAlignCenter()
self.floorImage.SetPosition(100, 80)
self.floorImage.SetAlpha(0.0)
self.floorImage.Show()
# <20><><EFBFBD≯<EFBFBD> (ex: <20>Ʊ͵<C6B1><CDB5><EFBFBD>) <20>̹<EFBFBD><CCB9><EFBFBD> <20>ε<EFBFBD> & ǥ<><C7A5>
try:
floor = self.__GetDevilTowerFloor(x, y)
print x, y, floor
self.floorImage.LoadImage(LOCALE_PATH+"devil1_%df.tga" % floor)
except RuntimeError:
self.SetPosition(0, 80)
self.floorImage.Hide()
self.floorImage = None
if locale.IsYMIR() or locale.IsWE_KOREA():
self.objectiveImage = ui.ExpandedImageBox()
self.objectiveImage.AddFlag("not_pick")
self.objectiveImage.SetWindowHorizontalAlignCenter()
self.objectiveImage.SetPosition(0, 200)
self.objectiveImage.SetAlpha(0.0)
self.objectiveImage.Show()
# <20><><EFBFBD><EFBFBD> <20><>ǥ <20>̹<EFBFBD><CCB9><EFBFBD> <20>ε<EFBFBD> & ǥ<><C7A5>
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˾ƿ<CBBE><C6BF><EFBFBD> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϵ<EFBFBD><CFB5>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD>ϱ<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
try:
floor = self.__GetDevilTowerFloor(x, y)
print x, y, floor
self.objectiveImage.LoadImage(LOCALE_PATH + mapName + "/obj_%02df.tga" % floor)
except RuntimeError:
self.SetPosition(0, 80)
self.objectiveImage.Hide()
self.objectiveImage = None
if mapName == "metin2_map_devilsCatacomb":
self.SetPosition(-75, 80)
self.floorImage = ui.ExpandedImageBox()
self.floorImage.AddFlag("not_pick")
self.floorImage.SetWindowHorizontalAlignCenter()
self.floorImage.SetPosition(100, 80)
self.floorImage.SetAlpha(0.0)
self.floorImage.Show()
# <20><><EFBFBD≯<EFBFBD> (ex: <20>Ʊ͵<C6B1><CDB5><EFBFBD>) <20>̹<EFBFBD><CCB9><EFBFBD> <20>ε<EFBFBD> & ǥ<><C7A5>
try:
floor = self.__GetDevilBase(x, y)
print x, y, floor
self.floorImage.LoadImage(LOCALE_PATH+"devil1_%df.tga" % floor)
except RuntimeError:
self.SetPosition(0, 80)
self.floorImage.Hide()
self.floorImage = None
if locale.IsYMIR() or locale.IsWE_KOREA():
self.objectiveImage = ui.ExpandedImageBox()
self.objectiveImage.AddFlag("not_pick")
self.objectiveImage.SetWindowHorizontalAlignCenter()
self.objectiveImage.SetPosition(0, 200)
self.objectiveImage.SetAlpha(0.0)
self.objectiveImage.Show()
# <20><><EFBFBD><EFBFBD> <20><>ǥ <20>̹<EFBFBD><CCB9><EFBFBD> <20>ε<EFBFBD> & ǥ<><C7A5>
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˾ƿ<CBBE><C6BF><EFBFBD> <20>κ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϵ<EFBFBD><CFB5>ڵ<EFBFBD><DAB5><EFBFBD> <20><><EFBFBD>ϱ<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
try:
floor = self.__GetDevilBase(x, y)
print x, y, floor
self.objectiveImage.LoadImage(LOCALE_PATH + mapName + "/obj_%02df.tga" % floor)
except RuntimeError:
self.SetPosition(0, 80)
self.objectiveImage.Hide()
self.objectiveImage = None
self.state = self.STATE_FADE_IN
self.fadeStartTime = app.GetTime() + 1.0
self.Show()
def Update(self):
self.SetAlpha(self.curAlpha)
if self.floorImage:
self.floorImage.SetAlpha(self.curAlpha)
if self.objectiveImage:
self.objectiveImage.SetAlpha(self.curAlpha)
if self.STATE_FADE_IN == self.state:
if app.GetTime() > self.fadeStartTime:
self.curAlpha += 0.05
if self.curAlpha > 0.9:
self.state = self.STATE_SHOW
self.fadeStartTime = app.GetTime() + 5.0
elif self.STATE_SHOW == self.state:
if app.GetTime() > self.fadeStartTime:
self.state = self.STATE_FADE_OUT
elif self.STATE_FADE_OUT == self.state:
self.curAlpha -= 0.05
if self.curAlpha < 0.0001:
self.Hide()
if self.floorImage:
self.floorImage.Hide()
self.floorImage = None
if self.objectiveImage:
self.objectiveImage.Hide()
self.objectiveImage = None
return