Több kérdés

Started by Deadly2000, 2015-06-09, 19:13:47

Radar alatt Dátum
Hogy a radar alatt ki írja ,hogy 2015.x.x



INGAME Ch váltó
Vagy egy gomb segítségével vagy pedig az ESC panelnél lenne

Nem tudom milyen órád van a kliensedben, gondolom olyan mint VZ-ben (ATAG-féle) pozíció helyett óra.




1,

root.eix/epk --> uiminimap.py

rákeresel erre:

self.positionInfo = 0


Aláírod ezt:

self.positionInfo2 = 0



Ezután rákeresel erre:

self.positionInfo = self.GetChild("PositionInfo")


Aláírod ezt:

self.positionInfo2 = self.GetChild("PositionInfo2")



Rákeresel erre a sorra:

self.positionInfo.Hide()


Aláírod ezt:

self.positionInfo2.Hide()



Végezetül rákeresel erre a funkcióra:

def OnUpdate(self):


Így nézzen ki az eleje:

def OnUpdate(self):
(x, y, z) = player.GetMainCharacterPosition()
miniMap.Update(x, y)

self.positionInfo.SetText(time.strftime("[%H:%M:%S]")) #óra, perc, másodperc
self.positionInfo2.SetText(time.strftime("[%Y/%m/%d]")) #év, hó, nap

if self.tooltipInfo:
if TRUE == self.MiniMapWindow.IsIn():



uiscript.eix/epk --> minimap.py

Ez alá írod:

## PositionInfo
{
"name" : "PositionInfo",
"type" : "text",

"text_horizontal_align" : "center",

"outline" : 1,

"x" : 70,
"y" : 195, #190

"text" : "",
},


Ezt a tömböt:

## PositionInfo2 dátum
{
"name" : "PositionInfo2",
"type" : "text",

"text_horizontal_align" : "center",

"outline" : 1,

"x" : 70,
"y" : 210, #190

"text" : "",
},










2, CH váltó leírás

intrologin.py-t megnyitod:

Rákeresel erre:

def Connect(self, id, pwd):


Végére írod ezt:

net.ACCOUNT_ID = id
net.ACCOUNT_PW = pwd

      
Ezt beírod intrologin.py elejére:

################################### Changer channel
import chat
import math
import background
import ServerStateChecker
###################################


Ezután az egész class ChannelChanger(ui.ScriptWindow): részt bemásolod egy másik osztály elé!

Rákeresel erre:

class ConnectingDialog(ui.ScriptWindow):


Ez fölé írod ezt:

class ChannelChanger(ui.ScriptWindow):
def __init__(self):
ui.ScriptWindow.__init__(self)

self.__Init_ChannelChanger()
self.__Load_Gui()
self.__Fill_Up_ChannelList()

def __del__(self):
ui.ScriptWindow.__del__(self)

def Destroy(self):
self.Hide()
return TRUE

def __Init_ChannelChanger(self):
ServerStateChecker.Create(self)
self.SetSize(150, 175)
self.SetPosition(
(wndMgr.GetScreenWidth() / 2) - int(math.floor(self.GetWidth() / 2.)),
(wndMgr.GetScreenHeight() / 2) - int(math.floor(self.GetHeight() / 2.))
)
#self.AddFlag("movable")
self.AddFlag("float")
self.Show()

def __Load_Gui(self):
self.Board = ui.Board()
self.Board.SetParent(self)
self.Board.SetSize(self.GetWidth(), self.GetHeight())
self.Board.SetPosition(0, 0)
#self.Board.AddFlag("movable")
self.Board.AddFlag("float")
self.Board.Show()

self.TitleBar = ui.TitleBar()
self.TitleBar.SetParent(self.Board)
self.TitleBar.SetPosition(7, 7)
self.TitleBar.MakeTitleBar(self.GetWidth() - 2 * 7, 'bloodyblue')
self.TitleBar.SetCloseEvent(self.Close)
self.TitleBar.Show()

self.RefreshButton = ui.Button()
self.RefreshButton.SetParent(self.TitleBar)
self.RefreshButton.SetPosition(3, 3)
self.RefreshButton.SetUpVisual("d:/ymir work/ui/game/guild/refresh_button_01.sub")
self.RefreshButton.SetOverVisual("d:/ymir work/ui/game/guild/refresh_button_02.sub")
self.RefreshButton.SetDownVisual("d:/ymir work/ui/game/guild/refresh_button_03.sub")
self.RefreshButton.SetToolTipText("Frissítés", 0, - 23)
#   "Refresh"
self.RefreshButton.SetEvent(lambda : self.__Fill_Up_ChannelList())
self.RefreshButton.Show()

self.TitleText = ui.TextLine()
self.TitleText.SetParent(self.TitleBar)
self.TitleText.SetPosition(0, 4)
self.TitleText.SetText("CH - Választó")
#    "CH - Switcher"
self.TitleText.SetWindowHorizontalAlignCenter()
self.TitleText.SetHorizontalAlignCenter()
self.TitleText.Show()

self.ServerName = ui.TextLine()
self.ServerName.SetParent(self.TitleBar)
self.ServerName.SetPosition(0, self.TitleBar.GetHeight())
self.ServerName.SetText(str(net.GetServerInfo()).split(",")[0])
self.ServerName.SetWindowHorizontalAlignCenter()
self.ServerName.SetHorizontalAlignCenter()
self.ServerName.Show()

self.ChannelListBase = ui.SlotBar()
self.ChannelListBase.SetParent(self.Board)
self.ChannelListBase.SetSize(self.Board.GetWidth() - 2 * 16, 5 * 18 - 4)
self.ChannelListBase.SetPosition(16 , 7 + self.TitleBar.GetHeight() + 6 + 10)
self.ChannelListBase.Show()

self.ChannelList = ui.ListBox()
self.ChannelList.SetParent(self.ChannelListBase)
self.ChannelList.SetSize(self.ChannelListBase.GetWidth()- 20, self.ChannelListBase.GetHeight())
self.ChannelList.SetPosition(0, 0)
self.ChannelList.SetEvent(ui.__mem_func__(self.__OnSelectChannel))
self.ChannelList.Show()

self.ChangeButton = ui.Button()
self.ChangeButton.SetParent(self.Board)
self.ChangeButton.SetPosition(self.Board.GetWidth() / 2 - 44, self.Board.GetHeight() - 35)
self.ChangeButton.SetUpVisual('d:/ymir work/ui/public/Large_button_01.sub')
self.ChangeButton.SetOverVisual('d:/ymir work/ui/public/Large_button_02.sub')
self.ChangeButton.SetDownVisual('d:/ymir work/ui/public/Large_button_03.sub')
self.ChangeButton.SetEvent(lambda : self.__OnClickConnectButton())
self.ChangeButton.SetText("Mehet")
#   "Go"
self.ChangeButton.Show()
self.DisableChangeButton()

self.ChannelListScrollBar = ui.ScrollBar()
self.ChannelListScrollBar.SetParent(self.ChannelListBase)
self.ChannelListScrollBar.SetPosition(18, 3)
self.ChannelListScrollBar.SetScrollBarSize(83)
self.ChannelListScrollBar.SetWindowHorizontalAlignRight()
self.ChannelListScrollBar.SetScrollEvent(ui.__mem_func__(self.__OnScrollChannelList))
self.ChannelListScrollBar.Show()

def DisableChangeButton(self):
self.ChangeButton.Disable()
self.ChangeButton.Down()
self.ChangeButton.ButtonText.SetFontColor(0.4, 0.4, 0.4)

def EnableChangeButton(self):
self.ChangeButton.Enable()
self.ChangeButton.SetUp()
self.ChangeButton.ButtonText.SetFontColor(1, 1, 1)

def __GetRegionID(self):
return 0

def __GetServerID(self):
regionID = self.__GetRegionID()
for i in serverInfo.REGION_DICT[regionID].keys():
if serverInfo.REGION_DICT[regionID][i]["name"] == net.GetServerInfo().split(",")[0]:
serverID = int(i)
break

return serverID

def __Fill_Up_ChannelList(self):
self.__RequestServerStateList()
self.__RefreshServerStateList()
#self.ChannelList.SelectItem(0)

def __RequestServerStateList(self):
regionID = self.__GetRegionID()
serverID = self.__GetServerID()

try:
channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
except:
return

for id, channelDataDict in channelDict.items():
key=channelDataDict["key"]
ip=channelDataDict["ip"]
udp_port=channelDataDict["udp_port"]
ServerStateChecker.Request(key, ip, udp_port)

def __RefreshServerStateList(self):
regionID = self.__GetRegionID()
serverID = self.__GetServerID()
bakChannelID = self.ChannelList.GetSelectedItem()

self.ChannelList.ClearItem()

try:
channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"]
except:
return

for channelID, channelDataDict in channelDict.items():
channelName = channelDataDict["name"]
channelState = channelDataDict["state"]
self.ChannelList.InsertItem(channelID, "%s %s" % (channelName, channelState))

self.ChannelList.SelectItem(bakChannelID-1)

def NotifyChannelState(self, addrKey, state):
try:
stateName = serverInfo.STATE_DICT[state]
except:
stateName = serverInfo.STATE_NONE

regionID  = int(addrKey / 1000)
serverID  = int(addrKey / 10) % 100
channelID = addrKey % 10

try:
serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] = stateName
self.__RefreshChannelStateList()
except:
pass

def __IsSpecialMap(self):
dis_maps = [
"season1/metin2_map_oxevent",
"season2/metin2_map_guild_inside01",
"season2/metin2_map_empirewar01",
"season2/metin2_map_empirewar02",
"season2/metin2_map_empirewar03",
"metin2_map_dragon_timeattack_01",
"metin2_map_dragon_timeattack_02",
"metin2_map_dragon_timeattack_03",
"metin2_map_skipia_dungeon_boss",
"metin2_map_skipia_dungeon_boss2",
"metin2_map_devilsCatacomb",
"metin2_map_deviltower1",
"metin2_map_t1",
"metin2_map_t2",
"metin2_map_t3",
"metin2_map_t4",
"metin2_map_t5",
"metin2_map_wedding_01",
"metin2_map_duel"
]
if str(background.GetCurrentMapName()) in dis_maps:
return TRUE
return FALSE

def __OnSelectChannel(self):
if self.ChangeButton.IsDown():
self.EnableChangeButton()

##< Works but not need >##
#regionID = self.__GetRegionID()
#serverID = self.__GetServerID()
#channelID = self.ChannelList.GetSelectedItem()
#if self.__IsSpecialMap():
# self.DisableChangeButton()
# return
#elif serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] == serverInfo.STATE_NONE:
# self.DisableChangeButton()
# return

def __OnScrollChannelList(self):
viewItemCount = self.ChannelList.GetViewItemCount()
itemCount = self.ChannelList.GetItemCount()
pos = self.ChannelListScrollBar.GetPos() * (itemCount - viewItemCount)
self.ChannelList.SetBasePos(int(pos))

def __OnClickConnectButton(self):
regionID = self.__GetRegionID()
serverID = self.__GetServerID()
channelID = self.ChannelList.GetSelectedItem()
if not channelID:
chat.AppendChat(1, "Nem választotál ki csatornát!")
#    "You did not select a channel!"
return

try:
serverName = serverInfo.REGION_DICT[regionID][serverID]["name"]
channelName = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["name"]
addrKey = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["key"]
ip = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["ip"]
tcp_port = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["tcp_port"]
state = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"]

account_ip = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["ip"]
account_port = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["port"]

markKey = regionID * 1000 + serverID * 10
markAddrValue=serverInfo.MARKADDR_DICT[markKey]
net.SetMarkServer(markAddrValue["ip"], markAddrValue["tcp_port"])
app.SetGuildMarkPath(markAddrValue["mark"])
app.SetGuildSymbolPath(markAddrValue["symbol_path"])
except:
chat.AppendChat(1, "Hiba történt a csatlakozás közben!")
#    "An error occurred while connect!"
return

if state == serverInfo.STATE_NONE:
chat.AppendChat(1, "Sajnálom a kiválasztott csatorna nem elérhető!")
#    "Sorry the selected channel is offline!"
return
elif state == serverInfo.STATE_DICT[3]:
chat.AppendChat(1, "Sajnálom a kiválasztott csatorna telítve van!")
#    "Sorry the selected channel is full!"
return
elif net.GetServerInfo().strip().split(", ")[1] == self.ChannelList.textDict[self.ChannelList.selectedLine].strip().split(" ")[0]:
chat.AppendChat(1, "Te jelenleg is a kiválasztott csatornán tartózkodsz!")
#    "You are already on the selected channel!"
return
elif self.__IsSpecialMap():
chat.AppendChat(1, "Sajnálom ezen a területen nem válthatsz csatornát kilépés nélkül!")
#    "Sorry in this area you cannot change channel without logout!"
return

self.Close()
net.SetServerInfo("%s, %s" % (serverName, channelName))
self.DirectConnect(ip, tcp_port, account_ip, account_port)

def DirectConnect(self, ChannelIP, ChannelPort, AuthServerIP, AuthServerPort):
#net.SetLoginInfo("xPengii", "kiU2_w1A_q2olDle9")
net.SetLoginInfo(decode_string(net.ACCOUNT_ID), decode_string(net.ACCOUNT_PW))
net.ConnectToAccountServer(ChannelIP, ChannelPort, AuthServerIP, AuthServerPort)
net.DirectEnter(0)
net.SendSelectCharacterPacket(0)
net.SendEnterGamePacket()

def Show(self):
ui.ScriptWindow.Show(self)

def Close(self):
ServerStateChecker.Destroy(self)
self.Hide()
return TRUE

def OnPressEscapeKey(self):
self.Close()
return TRUE

def OnUpdate(self):
ServerStateChecker.Update()

iom = ChannelChanger()
iom.Show()
chat.AppendChat(1, "#DEV#{Succesfully loaded}")