Hallo zusammen,
der in 2015 releaste Ingame Channel Switcher ist in den Fliege Files schon vorhanden gewesen.
Mir fehlte in meinem Client der gegenpart dazu welchen ich hinzugefügt habe.
Die berechnung der Ports habe ich angepasst.
Ch1 13031 - 13041 - 13051
Ch2 15031 - 15041 - 15051
Ch3 17031 - 17041 - 17051
Ch4 19031 - 19041 - 19051
Mein Problem ist nun, ich öffne Ingame das Channel Wechseln Fenster und beim drücken der Channel Buttons bekomme ich nur Chat Infos ausgegeben.
Ansonsten passiert nichts.
Er ruft also erfolgreich die jeweilige Funktion __1, __2 etc in uichannel.py auf woraufhin die Funktion __OnChangeChannel(ch) mit dem jeweiligem Channel aufgerufen wird.
uichannel.py
- import ui
- import net
- import app
- import chat
- import math
- import wndMgr
- import serverInfo
- import background
- import ServerStateChecker
- import snd
- import constInfo
- Channel_window = "uiscript/channel.py"
- class ChannelChanger(ui.ScriptWindow):
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- def __del__(self):
- ui.ScriptWindow.__del__(self)
- def Show(self):
- self.__LoadWindow()
- ui.ScriptWindow.Show(self)
- def __LoadWindow(self):
- try:
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, Channel_window)
- except:
- import exception
- exception.Abort("PetWindow.LoadWindow.LoadObject")
- #buttons
- self.TitleBar = self.GetChild("TitleBar")
- self.channel1 = self.GetChild("Channel_1")
- self.channel2 = self.GetChild("Channel_2")
- self.channel3 = self.GetChild("Channel_3")
- self.channel4 = self.GetChild("Channel_4")
- #event buttons
- self.TitleBar.SetCloseEvent(ui.__mem_func__(self.Close))
- self.channel1.SetEvent(ui.__mem_func__(self.___1))
- self.channel2.SetEvent(ui.__mem_func__(self.___2))
- self.channel3.SetEvent(ui.__mem_func__(self.___3))
- self.channel4.SetEvent(ui.__mem_func__(self.___4))
- def ___1(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, "Channel 1 gewählt !")
- snd.PlaySound("sound/ui/click.wav")
- ch = "1"
- self.__OnChangeChannel(ch)
- def ___2(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, "Channel 2 gewählt !")
- snd.PlaySound("sound/ui/click.wav")
- ch = "2"
- self.__OnChangeChannel(ch)
- def ___3(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, "Channel 3 gewählt !")
- snd.PlaySound("sound/ui/click.wav")
- ch = "3"
- self.__OnChangeChannel(ch)
- def ___4(self):
- chat.AppendChat(chat.CHAT_TYPE_INFO, "Channel 4 gewählt !")
- snd.PlaySound("sound/ui/click.wav")
- ch = "4"
- self.__OnChangeChannel(ch)
- 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",
- "metin2_map_orclabyrinth",
- "metin2_map_n_flame_dungeon_01",
- "metin2_map_n_snow_dungeon_01"
- ]
- if str(background.GetCurrentMapName()) in dis_maps:
- return TRUE
- return FALSE
- def __OnChangeChannel(self, ch):
- ServerStateChecker.Update()
- channel = net.GetServerInfo()[-1]
- # channelnum = filter(str.isdigit, channel)
- if ch == channel:
- chat.AppendChat(chat.CHAT_TYPE_INFO, "Du bist schon in diesem Channel !")
- return
- if self.__IsSpecialMap():
- chat.AppendChat(chat.CHAT_TYPE_INFO, "Du kannst auf dieser Map nicht den Channel wechseln !")
- return
- net.SendChatPacket("/channel "+ str(ch))
- self.Close()
- def Close(self):
- constInfo.channel = 0
- self.Hide()
- return TRUE
- def OnPressEscapeKey(self):
- constInfo.channel = 0
- self.Hide()
- return TRUE
Syserr Server und ClientSide sind leer.
Ich kenne mich mit dem Ablauf nicht wirklich aus, ich vermute es fehlt die Verbindung Client zu Source ?