Jump to content

Chyu ^^

  • Content count

  • Joined

  • Last visited

Chyu ^^ last won the day on January 15 2017

Chyu ^^ had the most liked content!

Community Reputation

27 Good

1 Follower

About Chyu ^^

  • Rank

Profile Information

  • Gender

Contact Methods

  • Skype

Recent Profile Visitors

1,130 profile views
  1. Hello devs, I have discovered a thing that is a bit confusing for me. I don't have enough experience in client section, however I would like somebody to explain me how this things works. I'm talking here about connection between files in Root package and client binary. Let's move on to my question. Okay, let's take a function form IntroLogin.py: net.SetPhaseWindow(net.PHASE_WINDOW_LOGIN, self) I though that this function has it's definition in NetworkModule.py: def SetPhaseWindow(self, newPhaseWindow): if self.newPhaseWindow: print "Already changed to a new window, ", newPhaseWindow self.__ChangePhaseWindow() self.newPhaseWindow = newPhaseWindow if self.curPhaseWindow: print "Change when fade out." self.curtain.FadeOut(self.__ChangePhaseWindow) else: print "Current window does not exist." self.__ChangePhaseWindow() But here is a problem with arguments. Function in NetworkModule.py has two parameters, self and newPhaseWindow. So if this definition is from function in IntroLogin.py it would looks like: net.PHASE_WINDOW_LOGIN is a self argument and self (of SetPhaseWindow() function) is newPhaseWindow. I think there is not problem with second argument, but first could not be correct. So I've been looking for definition in client binary... Here we go, PythonNetworkStream.cpp: void CPythonNetworkStream::SetPhaseWindow(UINT ePhaseWnd, PyObject* poPhaseWnd) { if (ePhaseWnd >= PHASE_WINDOW_NUM) { return; } m_apoPhaseWnd[ePhaseWnd] = poPhaseWnd; } Yes, this probably could be that we are searching for, BUT! We have a bit similar function (by name) in PythonNetworkStreamModule.cpp: And we know that our function is called with net module. So could this be a definition? PyObject* netSetPhaseWindow(PyObject* poSelf, PyObject* poArgs) { int ePhaseWnd; if (!PyTuple_GetInteger(poArgs, 0, &ePhaseWnd)) return Py_BuildException(); PyObject* poPhaseWnd; if (!PyTuple_GetObject(poArgs, 1, &poPhaseWnd)) return Py_BuildException(); CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance(); rkNetStream.SetPhaseWindow(ePhaseWnd, poPhaseWnd); return Py_BuildNone(); } List of questions: What does net module do? Where can I find it? Can I compile it by myself? What definition is from function in IntroLogin.py? Why there are those two functions in binary? What does each of them do? Thanks for all replies, regards Chyu ^^.
  2. Python and it's struggles

    Hello developers, especially Python ones! Here am I to create a discussion about Python. I would like to hear your thoughts on this programming language. Why do you like it and why don't? Through working with M2 I spent the most time in C++, C# and LUA. Now I decided to do some stuffs in my client but I'm really disgusted with it's syntax. Why did Ymir choose this language? Are there any better scripting language alternatives? Here are a few examples that making me want to drive up a wall: no data types no semicolons import command does not distinguish python includes and my includes (like C do by "" and <>) Correct: if (ASSEMBLY and ARPA): return 1 Incorrect: if (ASSEMBLY && ARPA): return 1 Correct: JesusHere = { "WHY" : Locale.WHY, "SO" : Locale.SO, "SERIOUS" : Locale.SERIOUS, } Incorrect: JesusHere = { "WHY" : Locale.WHY, "SO" : Locale.SO, "SERIOUS" : Locale.SERIOUS, } Correct: def printme(str): "This prints a passed string into this function." print str return Incorrect: def printme(str) { "This prints a passed string into this function." print str return }
  3. open Sash Log problem

    Post your LogManager::ItemLog() function. You can find it in Log.cpp at line 49.
  4. open Sash Log problem

    Show us your query.
  5. open Help erro PM in Chat

    Show code.
  6. open autopatcher problem

    Didn't you forget to make a new patchlist?
  7. open How protect pack client?

    I guess you should have a bit of experience to do this stuff effectively. Not everything from tutorial is secure or well done. Especially if we are talking about making pack files. Firstly I would recommend to learn a basics of C/C++ and try to understand a source of client binary.
  8. Client Problem [Login Interface]

    I hope, one day, will community get that, you have to show up your code, if you want to help with it.
  9. map Picabo - Stone Case

    It's too basic but not bad.
  10. Hey devs! What is correct structure of Pack/Index file and how it works? I have seen a few examples and I'm a bit confused. What are the differences between those: * ETC * PC * Locale_US D:/Ymir Work/UI/ ETC D:/Ymir Work/PC/ PC Locale/ Locale_US Data/ ETC Data/ PC Data/ Locale_US And which way is the best to use? Thanks for all your replies.
  11. open Warrior's tattoo

    There is not just tattoo render in client. It's implemented in basic warrior texture which you can find at PC/Warrior/warrior_novice_red.tga or PC/Warrior/warrior_novice_blue.tga.
  12. open Help Bug Costume Texture

    I don't get it, but does warrior_Springwear1.gr2 has any lods file? It should be something like warrior_Springwear1_lod_1.gr2, warrior_Springwear1_lod2.gr2 and warrior_Springwear1_lod3.gr2. If yes, open them in Granny Viewer and make sure they have similiar model (could be a bit transformed, but that's not a problem).
  13. Post your desktop.

  14. [HELP]

    Hello! You can use some kind of GR2 texture changer to change texture path in every model.
  15. Discussion about m2dev

    Yes! This would be good solution. But I'm wondering about only 5 GB for normal users. Isn't that a little?