Jump to content

I need help with LoadingWindow


Recommended Posts

Hello guys ?,

I'm new here, and I want to learn a bit from the best in the Metin2 field.

I also want to know if it's possible, how can I make the loading screen as modern as most servers have?

To have it without a background as I currently have it, when you teleport, the server's logo in GIF format should appear and be animated.

I mention that the images are already created.

 

Quote

Thank you very much to everyone who looks and tries to help me. I wish you all a pleasant evening/day.

 

  • Love 1
Link to comment
Share on other sites

Hi

 

You must keep in mind that the fast loading is one thing and the backgroundless image is another, even if they come from the same system.
This time I will tell you how to make the backgroundless image at login. I can't share you the playersettingmodule by binary because all the "systems" are premium.

1. Remove the stuff related to the loading image and loading bar:
2. Change the script path

Let's begin.


root/introloading.py

1.

class LoadingWindow(ui.ScriptWindow):
    def __init__(self, stream):
        print "NEW LOADING WINDOW -------------------------------------------------------------------------------"
        ui.Window.__init__(self)
        net.SetPhaseWindow(net.PHASE_WINDOW_LOAD, self)

        self.stream=stream
        #self.loadingImage=0 #comment this line
        #self.loadingGage=0 #comment this line
        self.errMsg=0
        self.update=0
        self.playerX=0
        self.playerY=0
        self.loadStepList=[]

2.

    def Open(self):
        print "OPEN LOADING WINDOW -------------------------------------------------------------------------------"

        #app.HideCursor()

        try:
            pyScrLoader = ui.PythonScriptLoader()

            if localeInfo.IsYMIR() or localeInfo.IsWE_KOREA() or localeInfo.IsCANADA() or localeInfo.IsBRAZIL() or localeInfo.IsEUROPE() or localeInfo.IsJAPAN():
                #pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "LoadingWindow.py") #comment this line. This path is locale/common/ui
                pyScrLoader.LoadScriptFile(self, uiScriptLocale.LOCALE_UISCRIPT_PATH + "NewLoadingWindow.py") #add this line
            else:
                pyScrLoader.LoadScriptFile(self, "UIScript/LoadingWindow.py")
        except:
            import exception
            exception.Abort("LodingWindow.Open - LoadScriptFile Error")

        try:
            #self.loadingImage=self.GetChild("BackGround") #comment this line
            self.errMsg=self.GetChild("ErrorMessage")
            #self.loadingGage=self.GetChild("FullGage") #comment this line
        except:
            import exception
            exception.Abort("LodingWindow.Open - LoadScriptFile Error")

3.

    def Close(self):
        print "---------------------------------------------------------------------------- CLOSE LOADING WINDOW"

        app.SetFrameSkip(1)

        self.loadStepList=[]
        #self.loadingImage=0 #comment this line
        #self.loadingGage=0 #comment this line
        self.errMsg=0
        self.ClearDictionary()
        self.Hide()

4.

    #comment this method
    #def __SetProgress(self, p):
    #    if self.loadingGage:
    #        self.loadingGage.SetPercentage(2+98*p/100, 100)


    
5.

            (98, ui.__mem_func__(self.__LoadGuildBuilding)),
            # END_OF_GUILD_BUILDING

            (100, ui.__mem_func__(self.__StartGame)),
        ]
        if app.ENABLE_WOLFMAN_CHARACTER:
            self.loadStepList+=[(100, ui.__mem_func__(self.__LoadWolfman)),]

        #self.__SetProgress(0) #comment this line
        #self.__SetNext(self.__LoadMap)

    def OnUpdate(self):

5.

            self.loadStepList.pop(0)

            #self.__SetProgress(progress) #comment this line

    def __InitData(self):
        playerSettingModule.LoadGameData("INIT")

Finally, we are going to remove the transparency of the loading window.

Every time the client changes phase, for example, from the character change phase to the login phase, the window will be completely black because the alpha value (transparency) is equal to 1. We must change the value to 0.

root/uiphasecurtain.py

    def OnUpdate(self):

        if 0 != self.event:

            self.curAlpha += self.speed
            if self.curAlpha >= 1.0: #change value to 0.0
                self.curAlpha = 1.0 #change value to 0.0

                event=self.event
                self.event = 0


                if -1 != self.args:
                    event(self.args)
                else:
                    event()


                    

Put newloadingwindow.py in locale/common/ui, then put images in d:/ymir work/ui/game/new_loading/

Files: 

This is the hidden content, please


 

  • Metin2 Dev 6
  • Not Good 1
  • Good 1
  • Love 1
  • Love 5
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.