You should do a hd remake of every single Metin2 weapon. That would be spicy
Beiträge von Steap
-
-
Wenn du DS-Lite hast könntest du beim Anbieter mal anrufen, dann geben sie dir echtes Dual Stack. Das könnte dein Problem auch lösen, aber das ist auch nur ein weiterer Lösungsansatz. Ich brauchte echtes Dual Stack damals, damit für andere meine Ports offen sind (jedenfalls glaube ich das).
Bitte melden Sie sich an, um diesen Link zu sehen.
-
Bei mir funktioniert alles wunderbar. Ich habe auch nichts groß verändert, nur die DNS (Google), damit die Webseitensperren von Vodefone aufgehoben werden aber ich kann mir kaum vorstellen, das Vodafone einen Metin2 Server für ihre Nutzer sperrt.
Hast du die Server IP mal angepingt? Vielleicht liegt das Problem ja ganz wo anders. Seltsam ist das dennoch.
-
Im schlimmsten Fall such dir hier Hilfe bei Usern die noch menschlich geblieben sind, denn nicht jeder hier ist ein Versager, der es an anderen Rauslassen muss (weil er im RL keine Anerkennung in seinem können findet).
Ich hätte es vielleicht nicht so ausgedrückt, aber du sprichst mir aus der Seele. Die Community kann verdammt hilfreich sein, also immer schön bei jemanden melden der vielleicht nicht unbedingt einen Rang hat, aber auch scheint etwas in der Birne zu haben.
Ich hoffe dir haben die Tipps hier im Thread geholfen. Manche Tipps sollte man sich mehr ans Herz nehmen als andere, aber ich denke du kannst hier was für dich wichtiges rausfischen!
-
Ich glaube die Martyfiles könnten als Anfänger auch etwas kompliziert sein. Jedenfalls habe ich das mal gelesen, deshalb empfehlen alle die Fliege Files.
-
Hallo,
danke für eure beiden kompetenten und netten Reaktionen.
Gibt es denn noch jemanden in der Szene (keine 0815 Skypekontakte meine ich damit), die bereits einige Dienste in der Richtung verrichtet haben, sodass man das Geld dann nicht umsonst investiert?
Dass die Files "roh" sind das weiß ich natürlich - ist ja wie bei Daroo und co, jedoch wollte ich schon gerne wissen auf welchem "Stand" die Files sind, Lykaner drin? (habe ich z.B. noch nie gespielt, würde ich dann gerne testen), maxlevel, generell eben wie die Rohfassung so aussieht und funktioniert, was man entbuggen MUSS um einmal durch zu spielen etc.
Vielen Dank nochmal
Schau mal bei "Mitglieder" unter die Benutzergruppen der Developer, dort findest du fast nur fähige Programmierer. Ich kann nicht zu allen was sagen, aber es gibt schon paar die dir da weiterhelfen können. VegaS & Lead haben einen laufenden "Service".
-
A magical power has arrived between the three kingdoms, we are now opening the power of a much more stable market between the villagers.
Take a part of this amazing update and sell your items even if you're offline, you can still open a normal shop using Bitte melden Sie sich an, um dieses Bild zu sehen.Package.
Press ''Y'' or ''Z'' to open the window of the new offline shop, it depends of your keyboard type.
Features:
- My Shop ~ Allows you to open a max 8 days offline shop.
- List of Shops ~ Let you see a list of opened offline shops.
- Safebox ~ The place where you money from sales goes, or a place where unsold / withdrawn items from offline shop go to.
- My Offers ~ See offers you did.
- Search ~ Advanced offline shop search.
- History ~ A full list of your offline shop usage history.
- My Patterns ~ Save & use again and over again your saved list of Search filters.
- My Auction ~ Create your own auction for items, so other players can offer more and more gold for your goods.
- Auction List ~ See a full list of auctions.
Preview:
Bitte melden Sie sich an, um dieses Bild zu sehen.
Once you open a shop, it automatically creates in each kingdom & channel.
Video:
Unknown
Other changes:
- Waiting time between switchers removed while using Bitte melden Sie sich an, um dieses Bild zu sehen.Enchant Change Scroll.
Please feel free to contact us for any problem.
"This server is pvm hard classic and it's like metin2.us at the end of 2008." -> You should change that maybe, it could confuse some players
-
Es gibt sicherlich eine weitaus einfachere Methode, aber öffne die .sln in Notepad und such nach der "VisualStudioVersion" in Google. Dort findest du die passende Visual Studio Version zur Buildnumber nach der du gesucht hast.
-
mit diesem Beitrag möchte ich eine Video Plattform für Metin2 Inhalte Veröffentlichen!
Hiermit implizierst du meiner Meinung nach stark, dass du eine Videoplattform für Metin2 Inhalte veröffentlichen möchtest. Das heißt für mich, dass es eine Videoplattform einschließlich für Metin2 Inhalte ist. Aber kurz daraufhin schreibst du:
sollte intresse an einer separaten plattform nur für metin2 bestehen.
und das verwirrt ziemlich. Du bist dir anscheinend nicht so ganz sicher, was das für eine Plattform ist / wird und das macht mich persönlich ziemlich skeptisch darüber, ob du versuchst eine Plattform für die Community zu erstellen oder mehr im Sinn hast und Metin2 nur als Mittel zum Zweck nutzt um die paar Zuschauer zu angeln. So kommt es nun mal leider rüber, jedenfalls für mich (ich spreche für niemanden außer für mich).
ich hab eher probleme mit der promo
Kurz daraufhin schreibst du, dass du Probleme mit der Promotion hast, aber direkt danach:
das ist doch keine richtige Promotion hier.
Meine Fragen sind:
- Haben wir es hier mit einem festen Konzept zutun?
- Lohnt es sich Videos auf eine Plattform hochzuladen, welche sich selbst unsicher darüber ist, was Sache ist?
- Werden die anderen Videos die Metin2 Videos nicht zu sehr untergehen lassen?
- Du schriebst in deinem ersten Post, dass du die Plattform hiermit "veröffentlichen" möchtest, sie scheint aber noch nicht fertig zu sein. Ist die nun final oder nicht? Ist das eine Beta? Eine Alpha? Ist es nur ein Testlauf?
Egal was deine Antworten auf die oberen Fragen sind, ich habe nicht vor deine Webseite runterzureden. Du scheinst zumindest etwas Ahnung zu haben und das reicht aus um eine Community in dieser Größe zu bedienen. Jedoch empfehle ich dir dem Projekt vor der Veröffentlichung ein paar Monate Zeit zu geben, weil das aktuell absolut unfertig aussieht.
-
Die Seite sieht nicht wirklich attraktiv aus. Auch die Videos die dort hochgeladen werden, die passen einfach nicht zu Metin2. Niemand wird auf eine andere Seite gehen nur um Metin2 Content zu schauen und wenn doch, sind es wahrscheinlich die wenigsten.
Ein modernes Design würde sicherlich einiges tun, aber auch das wird nicht genug sein. Es wäre echt genial wenn man die Seite mit Metin2 Servern verknüpfen könnte. Wenn man zum Beispiel Live ist, Zuschauer irgendwie mit dem Streamer interagieren können indem man z.B Items spenden kann oder sowas in der Art. Oder Giveaways automatisiert werden bei Servern welche unterstützt werden und man z.B alle 2 Stunden die ein Streamer streamt, ein paar Zuschauer kostenlose Items erhalten.
Aber viel Glück dennoch.
man kann ja sicher noch was dran basteln z.b. das script als eine separate seite machen wo es dann nur noch um metin2 geht.
soweit ich das ganze jetzt überblicken kann sind die server resoruchen erstmal ausreichend und was den speicher an geht gibt es von DanielNeto schon möglichkeiten diesen auf mehrere server zuverteilen.
gleichzeitig habe ich auch eine eigene cloud (über nextcloud) eingerichtet mit 75GB Gratis Speicher Pro Nuter dokumente lassen sich mit only office direkt in der cloud bearbeiten was mir und meinem Kumpel bei unserem Metin2 Server arbieten sehr hilfreich ist da man so zeit gleich dokumente bearbeiten kann und man alles sofort sieht.
ihr könnt ja mal rein schauen auf Bitte melden Sie sich an, um diesen Link zu sehen. arbeite zurzeit an einer weiteren cloud die alle daten per live backup aktuell hät das falls der eine server mal offline ist man über server 2 an seine daten kommt.
ein datenbank tool intrgier ich auch grad in die cloud.
Wenn man startet, sollte man wenigstens etwas auf den Beinen haben. Du wirbst für eine Videoplattform auf der Metin2 Inhalte veröffentlicht werden, auf der man aber keine Metin2 Inhalte findet. Wieso fängt denn jetzt schon die Promotion an? Sogar eine richtige Domain fehlt. Schreib halt wenigstens ein paar YouTuber an die sich dafür interessieren würden und die Videos hochladen und dann starte die Promotion neu.
-
Code
- def __ClickExitButton(self):
- def arayuz(self):
- self.Close()
- try:
- self.k.OpenDialog()
- pass
- except:
- import uiinterfececolor
- self.k = uiinterfececolor.kolorDialog()
- self.k.OpenDialog()
- pass
- self.Close()
- net.ExitApplication()
- def __ClickAchievementButton(self):
- self.Close()
- import chchanger
- chchanger.ChannelBoard().Show()
Meines Wissens macht es keinen Sinn eine Funktion in einer Funktion zu schreiben. Ich kann mir vorstellen das sowas funktioniert, aber selbst dann würde es in diesem Beispiel keinen Sinn machen, weil die Funktion innerhalb des Scopes nicht angefasst wird. Sie wird jedoch von einer SAFE_SetEvent Funktion genutzt um sie mit dem Button in der UIScript zu binden.
Das hier wäre für mich der logischste Ansatz (einfach den Code durch deinen alten ersetzen):
Python- import net
- import app
- import ui
- import uiOption
- import uiachievementsystem
- import uiSystemOption
- import uiGameOption
- import uiScriptLocale
- import networkModule
- import constInfo
- import localeInfo
- SYSTEM_MENU_FOR_PORTAL = FALSE
- ###################################################################################################
- ## System
- class SystemDialog(ui.ScriptWindow):
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- self.__Initialize()
- def __Initialize(self):
- self.eventOpenHelpWindow = None
- self.systemOptionDlg = None
- self.gameOptionDlg = None
- def LoadDialog(self):
- if SYSTEM_MENU_FOR_PORTAL:
- self.__LoadSystemMenu_ForPortal()
- else:
- self.__LoadSystemMenu_Default()
- def __LoadSystemMenu_Default(self):
- pyScrLoader = ui.PythonScriptLoader()
- if constInfo.IN_GAME_SHOP_ENABLE:
- pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "SystemDialog.py")
- else:
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("logout_button").SAFE_SetEvent(self.__ClickLogOutButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- self.GetChild("arayuz_button").SAFE_SetEvent(self.arayuz)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SetText("Change channel")
- if constInfo.IN_GAME_SHOP_ENABLE:
- self.GetChild("mall_button").SAFE_SetEvent(self.__ClickInGameShopButton)
- def __LoadSystemMenu_ForPortal(self):
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog_forportal.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- def Destroy(self):
- self.ClearDictionary()
- if self.gameOptionDlg:
- self.gameOptionDlg.Destroy()
- if self.systemOptionDlg:
- self.systemOptionDlg.Destroy()
- self.__Initialize()
- def SetOpenHelpWindowEvent(self, event):
- self.eventOpenHelpWindow = event
- def OpenDialog(self):
- self.Show()
- def __ClickChangeCharacterButton(self):
- self.Close()
- net.ExitGame()
- def __OnClosePopupDialog(self):
- self.popup = None
- def __ClickLogOutButton(self):
- if SYSTEM_MENU_FOR_PORTAL:
- if app.loggined:
- self.Close()
- net.ExitApplication()
- else:
- self.Close()
- net.LogOutGame()
- else:
- self.Close()
- net.LogOutGame()
- def __ClickExitButton(self):
- self.Close()
- net.ExitApplication()
- def arayuz(self):
- self.Close()
- try:
- self.k.OpenDialog()
- pass
- except:
- import uiinterfececolor
- self.k = uiinterfececolor.kolorDialog()
- self.k.OpenDialog()
- pass
- def __ClickAchievementButton(self):
- self.Close()
- import chchanger
- chchanger.ChannelBoard().Show()
- def __ClickSystemOptionButton(self):
- self.Close()
- if not self.systemOptionDlg:
- self.systemOptionDlg = uiSystemOption.OptionDialog()
- self.systemOptionDlg.Show()
- def __ClickGameOptionButton(self):
- self.Close()
- if not self.gameOptionDlg:
- self.gameOptionDlg = uiGameOption.OptionDialog()
- self.gameOptionDlg.Show()
- def __ClickHelpButton(self):
- self.Close()
- if None != self.eventOpenHelpWindow:
- self.eventOpenHelpWindow()
- def __ClickInGameShopButton(self):
- self.Close()
- #import event
- #constInfo.ITEMSHOP["questCMD"] = 'LOAD#'+str(constInfo.ITEMSHOP['tableUpdate'])
- #event.QuestButtonClick(int(constInfo.ITEMSHOP["qid"]))
- net.SendChatPacket("/in_game_mall")
- def Close(self):
- self.Hide()
- return TRUE
- def RefreshMobile(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.RefreshMobile()
- #self.optionDialog.RefreshMobile()
- def OnMobileAuthority(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnMobileAuthority()
- #self.optionDialog.OnMobileAuthority()
- def OnBlockMode(self, mode):
- uiGameOption.blockMode = mode
- if self.gameOptionDlg:
- self.gameOptionDlg.OnBlockMode(mode)
- #self.optionDialog.OnBlockMode(mode)
- def OnChangePKMode(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnChangePKMode()
- #self.optionDialog.OnChangePKMode()
- def OnPressExitKey(self):
- self.Close()
- return TRUE
- def OnPressEscapeKey(self):
- self.Close()
- return TRUE
- if __name__ == "__main__":
- import app
- import wndMgr
- import systemSetting
- import mouseModule
- import grp
- import ui
- import chr
- import background
- import player
- #wndMgr.SetOutlineFlag(TRUE)
- app.SetMouseHandler(mouseModule.mouseController)
- app.SetHairColorEnable(TRUE)
- wndMgr.SetMouseHandler(mouseModule.mouseController)
- wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
- app.Create("METIN2 CLOSED BETA", systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
- mouseModule.mouseController.Create()
- wnd = SystemDialog()
- wnd.LoadDialog()
- wnd.Show()
- app.Loop()
- import net
- import app
- import ui
- import uiOption
- import uiachievementsystem
- import uiSystemOption
- import uiGameOption
- import uiScriptLocale
- import networkModule
- import constInfo
- import localeInfo
- SYSTEM_MENU_FOR_PORTAL = FALSE
- ###################################################################################################
- ## System
- class SystemDialog(ui.ScriptWindow):
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- self.__Initialize()
- def __Initialize(self):
- self.eventOpenHelpWindow = None
- self.systemOptionDlg = None
- self.gameOptionDlg = None
- def LoadDialog(self):
- if SYSTEM_MENU_FOR_PORTAL:
- self.__LoadSystemMenu_ForPortal()
- else:
- self.__LoadSystemMenu_Default()
- def __LoadSystemMenu_Default(self):
- pyScrLoader = ui.PythonScriptLoader()
- if constInfo.IN_GAME_SHOP_ENABLE:
- pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "SystemDialog.py")
- else:
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("logout_button").SAFE_SetEvent(self.__ClickLogOutButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- self.GetChild("arayuz_button").SAFE_SetEvent(self.arayuz)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SetText("Change channel")
- if constInfo.IN_GAME_SHOP_ENABLE:
- self.GetChild("mall_button").SAFE_SetEvent(self.__ClickInGameShopButton)
- def __LoadSystemMenu_ForPortal(self):
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog_forportal.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- def Destroy(self):
- self.ClearDictionary()
- if self.gameOptionDlg:
- self.gameOptionDlg.Destroy()
- if self.systemOptionDlg:
- self.systemOptionDlg.Destroy()
- self.__Initialize()
- def SetOpenHelpWindowEvent(self, event):
- self.eventOpenHelpWindow = event
- def OpenDialog(self):
- self.Show()
- def __ClickChangeCharacterButton(self):
- self.Close()
- net.ExitGame()
- def __OnClosePopupDialog(self):
- self.popup = None
- def __ClickLogOutButton(self):
- if SYSTEM_MENU_FOR_PORTAL:
- if app.loggined:
- self.Close()
- net.ExitApplication()
- else:
- self.Close()
- net.LogOutGame()
- else:
- self.Close()
- net.LogOutGame()
- def __ClickExitButton(self):
- self.Close()
- net.ExitApplication()
- def arayuz(self):
- self.Close()
- try:
- self.k.OpenDialog()
- pass
- except:
- import uiinterfececolor
- self.k = uiinterfececolor.kolorDialog()
- self.k.OpenDialog()
- pass
- def __ClickAchievementButton(self):
- self.Close()
- import chchanger
- chchanger.ChannelBoard().Show()
- def __ClickSystemOptionButton(self):
- self.Close()
- if not self.systemOptionDlg:
- self.systemOptionDlg = uiSystemOption.OptionDialog()
- self.systemOptionDlg.Show()
- def __ClickGameOptionButton(self):
- self.Close()
- if not self.gameOptionDlg:
- self.gameOptionDlg = uiGameOption.OptionDialog()
- self.gameOptionDlg.Show()
- def __ClickHelpButton(self):
- self.Close()
- if None != self.eventOpenHelpWindow:
- self.eventOpenHelpWindow()
- def __ClickInGameShopButton(self):
- self.Close()
- #import event
- #constInfo.ITEMSHOP["questCMD"] = 'LOAD#'+str(constInfo.ITEMSHOP['tableUpdate'])
- #event.QuestButtonClick(int(constInfo.ITEMSHOP["qid"]))
- net.SendChatPacket("/in_game_mall")
- def Close(self):
- self.Hide()
- return TRUE
- def RefreshMobile(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.RefreshMobile()
- #self.optionDialog.RefreshMobile()
- def OnMobileAuthority(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnMobileAuthority()
- #self.optionDialog.OnMobileAuthority()
- def OnBlockMode(self, mode):
- uiGameOption.blockMode = mode
- if self.gameOptionDlg:
- self.gameOptionDlg.OnBlockMode(mode)
- #self.optionDialog.OnBlockMode(mode)
- def OnChangePKMode(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnChangePKMode()
- #self.optionDialog.OnChangePKMode()
- def OnPressExitKey(self):
- self.Close()
- return TRUE
- def OnPressEscapeKey(self):
- self.Close()
- return TRUE
- if __name__ == "__main__":
- import app
- import wndMgr
- import systemSetting
- import mouseModule
- import grp
- import ui
- import chr
- import background
- import player
- #wndMgr.SetOutlineFlag(TRUE)
- app.SetMouseHandler(mouseModule.mouseController)
- app.SetHairColorEnable(TRUE)
- wndMgr.SetMouseHandler(mouseModule.mouseController)
- wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
- app.Create("METIN2 CLOSED BETA", systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
- mouseModule.mouseController.Create()
- wnd = SystemDialog()
- wnd.LoadDialog()
- wnd.Show()
- app.Loop()
Und poste hier am besten die richtige Datei rein, sonst muss man den Code kopieren und beim einfügen gibt es dann Veränderungen in den Abständen zwischen den Zeilen.
Vielen Dank erstmal!
Füge ich das in Locale Systemdialog ein, oder bei root?
LgDas ist einfach nur der Code von oben, ich weiß nicht wo du ihn her hast.
-
xXGaardenXx Stimmt, darauf habe ich nicht geachtet.
Well, du hast irgendwas im Code falsch gemacht. Du hast eine Funktion in eine andere Funktion gepasted und jetzt hast du es wahrscheinlich korrigiert, ohne die arayuz Funktion neu einzufügen. Jetzt fehlt sie dir nämlich.
Ja ich verstehe es nicht. Ich habe es halt 1:1 übernommen, warum bekomme ich trotzdem Fehlercodes....
Code- def __ClickExitButton(self):
- def arayuz(self):
- self.Close()
- try:
- self.k.OpenDialog()
- pass
- except:
- import uiinterfececolor
- self.k = uiinterfececolor.kolorDialog()
- self.k.OpenDialog()
- pass
- self.Close()
- net.ExitApplication()
- def __ClickAchievementButton(self):
- self.Close()
- import chchanger
- chchanger.ChannelBoard().Show()
Meines Wissens macht es keinen Sinn eine Funktion in einer Funktion zu schreiben. Ich kann mir vorstellen das sowas funktioniert, aber selbst dann würde es in diesem Beispiel keinen Sinn machen, weil die Funktion innerhalb des Scopes nicht angefasst wird. Sie wird jedoch von einer SAFE_SetEvent Funktion genutzt um sie mit dem Button in der UIScript zu binden.
Das hier wäre für mich der logischste Ansatz (einfach den Code durch deinen alten ersetzen):
Python- import net
- import app
- import ui
- import uiOption
- import uiachievementsystem
- import uiSystemOption
- import uiGameOption
- import uiScriptLocale
- import networkModule
- import constInfo
- import localeInfo
- SYSTEM_MENU_FOR_PORTAL = FALSE
- ###################################################################################################
- ## System
- class SystemDialog(ui.ScriptWindow):
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- self.__Initialize()
- def __Initialize(self):
- self.eventOpenHelpWindow = None
- self.systemOptionDlg = None
- self.gameOptionDlg = None
- def LoadDialog(self):
- if SYSTEM_MENU_FOR_PORTAL:
- self.__LoadSystemMenu_ForPortal()
- else:
- self.__LoadSystemMenu_Default()
- def __LoadSystemMenu_Default(self):
- pyScrLoader = ui.PythonScriptLoader()
- if constInfo.IN_GAME_SHOP_ENABLE:
- pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "SystemDialog.py")
- else:
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("logout_button").SAFE_SetEvent(self.__ClickLogOutButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- self.GetChild("arayuz_button").SAFE_SetEvent(self.arayuz)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SetText("Change channel")
- if constInfo.IN_GAME_SHOP_ENABLE:
- self.GetChild("mall_button").SAFE_SetEvent(self.__ClickInGameShopButton)
- def __LoadSystemMenu_ForPortal(self):
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog_forportal.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- def Destroy(self):
- self.ClearDictionary()
- if self.gameOptionDlg:
- self.gameOptionDlg.Destroy()
- if self.systemOptionDlg:
- self.systemOptionDlg.Destroy()
- self.__Initialize()
- def SetOpenHelpWindowEvent(self, event):
- self.eventOpenHelpWindow = event
- def OpenDialog(self):
- self.Show()
- def __ClickChangeCharacterButton(self):
- self.Close()
- net.ExitGame()
- def __OnClosePopupDialog(self):
- self.popup = None
- def __ClickLogOutButton(self):
- if SYSTEM_MENU_FOR_PORTAL:
- if app.loggined:
- self.Close()
- net.ExitApplication()
- else:
- self.Close()
- net.LogOutGame()
- else:
- self.Close()
- net.LogOutGame()
- def __ClickExitButton(self):
- self.Close()
- net.ExitApplication()
- def arayuz(self):
- self.Close()
- try:
- self.k.OpenDialog()
- pass
- except:
- import uiinterfececolor
- self.k = uiinterfececolor.kolorDialog()
- self.k.OpenDialog()
- pass
- def __ClickAchievementButton(self):
- self.Close()
- import chchanger
- chchanger.ChannelBoard().Show()
- def __ClickSystemOptionButton(self):
- self.Close()
- if not self.systemOptionDlg:
- self.systemOptionDlg = uiSystemOption.OptionDialog()
- self.systemOptionDlg.Show()
- def __ClickGameOptionButton(self):
- self.Close()
- if not self.gameOptionDlg:
- self.gameOptionDlg = uiGameOption.OptionDialog()
- self.gameOptionDlg.Show()
- def __ClickHelpButton(self):
- self.Close()
- if None != self.eventOpenHelpWindow:
- self.eventOpenHelpWindow()
- def __ClickInGameShopButton(self):
- self.Close()
- #import event
- #constInfo.ITEMSHOP["questCMD"] = 'LOAD#'+str(constInfo.ITEMSHOP['tableUpdate'])
- #event.QuestButtonClick(int(constInfo.ITEMSHOP["qid"]))
- net.SendChatPacket("/in_game_mall")
- def Close(self):
- self.Hide()
- return TRUE
- def RefreshMobile(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.RefreshMobile()
- #self.optionDialog.RefreshMobile()
- def OnMobileAuthority(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnMobileAuthority()
- #self.optionDialog.OnMobileAuthority()
- def OnBlockMode(self, mode):
- uiGameOption.blockMode = mode
- if self.gameOptionDlg:
- self.gameOptionDlg.OnBlockMode(mode)
- #self.optionDialog.OnBlockMode(mode)
- def OnChangePKMode(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnChangePKMode()
- #self.optionDialog.OnChangePKMode()
- def OnPressExitKey(self):
- self.Close()
- return TRUE
- def OnPressEscapeKey(self):
- self.Close()
- return TRUE
- if __name__ == "__main__":
- import app
- import wndMgr
- import systemSetting
- import mouseModule
- import grp
- import ui
- import chr
- import background
- import player
- #wndMgr.SetOutlineFlag(TRUE)
- app.SetMouseHandler(mouseModule.mouseController)
- app.SetHairColorEnable(TRUE)
- wndMgr.SetMouseHandler(mouseModule.mouseController)
- wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
- app.Create("METIN2 CLOSED BETA", systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
- mouseModule.mouseController.Create()
- wnd = SystemDialog()
- wnd.LoadDialog()
- wnd.Show()
- app.Loop()
- import net
- import app
- import ui
- import uiOption
- import uiachievementsystem
- import uiSystemOption
- import uiGameOption
- import uiScriptLocale
- import networkModule
- import constInfo
- import localeInfo
- SYSTEM_MENU_FOR_PORTAL = FALSE
- ###################################################################################################
- ## System
- class SystemDialog(ui.ScriptWindow):
- def __init__(self):
- ui.ScriptWindow.__init__(self)
- self.__Initialize()
- def __Initialize(self):
- self.eventOpenHelpWindow = None
- self.systemOptionDlg = None
- self.gameOptionDlg = None
- def LoadDialog(self):
- if SYSTEM_MENU_FOR_PORTAL:
- self.__LoadSystemMenu_ForPortal()
- else:
- self.__LoadSystemMenu_Default()
- def __LoadSystemMenu_Default(self):
- pyScrLoader = ui.PythonScriptLoader()
- if constInfo.IN_GAME_SHOP_ENABLE:
- pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "SystemDialog.py")
- else:
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("logout_button").SAFE_SetEvent(self.__ClickLogOutButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- self.GetChild("arayuz_button").SAFE_SetEvent(self.arayuz)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- self.GetChild("achievement_button").SetText("Change channel")
- if constInfo.IN_GAME_SHOP_ENABLE:
- self.GetChild("mall_button").SAFE_SetEvent(self.__ClickInGameShopButton)
- def __LoadSystemMenu_ForPortal(self):
- pyScrLoader = ui.PythonScriptLoader()
- pyScrLoader.LoadScriptFile(self, "uiscript/systemdialog_forportal.py")
- self.GetChild("system_option_button").SAFE_SetEvent(self.__ClickSystemOptionButton)
- self.GetChild("game_option_button").SAFE_SetEvent(self.__ClickGameOptionButton)
- self.GetChild("change_button").SAFE_SetEvent(self.__ClickChangeCharacterButton)
- self.GetChild("exit_button").SAFE_SetEvent(self.__ClickExitButton)
- self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton)
- self.GetChild("cancel_button").SAFE_SetEvent(self.Close)
- # self.GetChild("achievement_button").SAFE_SetEvent(self.__ClickAchievementButton)
- def Destroy(self):
- self.ClearDictionary()
- if self.gameOptionDlg:
- self.gameOptionDlg.Destroy()
- if self.systemOptionDlg:
- self.systemOptionDlg.Destroy()
- self.__Initialize()
- def SetOpenHelpWindowEvent(self, event):
- self.eventOpenHelpWindow = event
- def OpenDialog(self):
- self.Show()
- def __ClickChangeCharacterButton(self):
- self.Close()
- net.ExitGame()
- def __OnClosePopupDialog(self):
- self.popup = None
- def __ClickLogOutButton(self):
- if SYSTEM_MENU_FOR_PORTAL:
- if app.loggined:
- self.Close()
- net.ExitApplication()
- else:
- self.Close()
- net.LogOutGame()
- else:
- self.Close()
- net.LogOutGame()
- def __ClickExitButton(self):
- self.Close()
- net.ExitApplication()
- def arayuz(self):
- self.Close()
- try:
- self.k.OpenDialog()
- pass
- except:
- import uiinterfececolor
- self.k = uiinterfececolor.kolorDialog()
- self.k.OpenDialog()
- pass
- def __ClickAchievementButton(self):
- self.Close()
- import chchanger
- chchanger.ChannelBoard().Show()
- def __ClickSystemOptionButton(self):
- self.Close()
- if not self.systemOptionDlg:
- self.systemOptionDlg = uiSystemOption.OptionDialog()
- self.systemOptionDlg.Show()
- def __ClickGameOptionButton(self):
- self.Close()
- if not self.gameOptionDlg:
- self.gameOptionDlg = uiGameOption.OptionDialog()
- self.gameOptionDlg.Show()
- def __ClickHelpButton(self):
- self.Close()
- if None != self.eventOpenHelpWindow:
- self.eventOpenHelpWindow()
- def __ClickInGameShopButton(self):
- self.Close()
- #import event
- #constInfo.ITEMSHOP["questCMD"] = 'LOAD#'+str(constInfo.ITEMSHOP['tableUpdate'])
- #event.QuestButtonClick(int(constInfo.ITEMSHOP["qid"]))
- net.SendChatPacket("/in_game_mall")
- def Close(self):
- self.Hide()
- return TRUE
- def RefreshMobile(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.RefreshMobile()
- #self.optionDialog.RefreshMobile()
- def OnMobileAuthority(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnMobileAuthority()
- #self.optionDialog.OnMobileAuthority()
- def OnBlockMode(self, mode):
- uiGameOption.blockMode = mode
- if self.gameOptionDlg:
- self.gameOptionDlg.OnBlockMode(mode)
- #self.optionDialog.OnBlockMode(mode)
- def OnChangePKMode(self):
- if self.gameOptionDlg:
- self.gameOptionDlg.OnChangePKMode()
- #self.optionDialog.OnChangePKMode()
- def OnPressExitKey(self):
- self.Close()
- return TRUE
- def OnPressEscapeKey(self):
- self.Close()
- return TRUE
- if __name__ == "__main__":
- import app
- import wndMgr
- import systemSetting
- import mouseModule
- import grp
- import ui
- import chr
- import background
- import player
- #wndMgr.SetOutlineFlag(TRUE)
- app.SetMouseHandler(mouseModule.mouseController)
- app.SetHairColorEnable(TRUE)
- wndMgr.SetMouseHandler(mouseModule.mouseController)
- wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())
- app.Create("METIN2 CLOSED BETA", systemSetting.GetWidth(), systemSetting.GetHeight(), 1)
- mouseModule.mouseController.Create()
- wnd = SystemDialog()
- wnd.LoadDialog()
- wnd.Show()
- app.Loop()
Und poste hier am besten die richtige Datei rein, sonst muss man den Code kopieren und beim einfügen gibt es dann Veränderungen in den Abständen zwischen den Zeilen.
-
xXGaardenXx Stimmt, darauf habe ich nicht geachtet.
Well, du hast irgendwas im Code falsch gemacht. Du hast eine Funktion in eine andere Funktion gepasted und jetzt hast du es wahrscheinlich korrigiert, ohne die arayuz Funktion neu einzufügen. Jetzt fehlt sie dir nämlich.
-
Nach dem "def arayuz(self):" musst du die unteren Zeilen mit einem TAB starten.
-
Bei so einer Vorstellung kann man kaum was falsch machen. Sieht sehr gut aus, sauber und übermittelt die genannten Punkte sehr gut. Die Bilder sind in hoher Qualität und gut erkennbar.
Viel Glück & einen guten Start!
-
Die Seite sieht nicht wirklich attraktiv aus. Auch die Videos die dort hochgeladen werden, die passen einfach nicht zu Metin2. Niemand wird auf eine andere Seite gehen nur um Metin2 Content zu schauen und wenn doch, sind es wahrscheinlich die wenigsten.
Ein modernes Design würde sicherlich einiges tun, aber auch das wird nicht genug sein. Es wäre echt genial wenn man die Seite mit Metin2 Servern verknüpfen könnte. Wenn man zum Beispiel Live ist, Zuschauer irgendwie mit dem Streamer interagieren können indem man z.B Items spenden kann oder sowas in der Art. Oder Giveaways automatisiert werden bei Servern welche unterstützt werden und man z.B alle 2 Stunden die ein Streamer streamt, ein paar Zuschauer kostenlose Items erhalten.
Aber viel Glück dennoch.
-
Wow, du hast dich seit dem letzten mal super gesteigert! Weiter so!
-
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um dieses Bild zu sehen.
-
-
Hey martysama0134 ,
im not sure if you're away for a long time again, but this might be something important for your next update. It is a problem with the second editor option where you can edit model collision data. If i put in a shape data for the .msm file before using the worldeditor to reposition the collisions, it updates or corrects the Group ShapeData -> Group ShapeData00 key by removing "Group" from its original name.
Before saving with WorldEditor:
Bitte melden Sie sich an, um dieses Bild zu sehen.
After saving with WorldEditor:
Bitte melden Sie sich an, um dieses Bild zu sehen.
I would love to see it in one of your upcoming updates. It makes the WorldEditor for this pupose so much easier to use.